创龙的6748程序谁有啊,能给我发一份吗 - TMS320C6748 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7724|回复: 18
打印 上一主题 下一主题

创龙的6748程序谁有啊,能给我发一份吗

[复制链接]

1

主题

14

帖子

1057

积分

金牌会员

Rank: 6Rank: 6

积分
1057
跳转到指定楼层
楼主
发表于 2016-9-20 20:48:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
997627482@qq.com,谢谢各位路过的大大~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
沙发
发表于 2016-9-21 08:59:07 | 只看该作者
网盘上有部分公开的
回复 支持 反对

使用道具 举报

1

主题

14

帖子

1057

积分

金牌会员

Rank: 6Rank: 6

积分
1057
板凳
 楼主| 发表于 2016-9-22 09:21:45 | 只看该作者
版主您好,我刚接触DSP。想请教您一个问题,28335中有GpioDataRegs.GPADAT.bit.GPIO26 =1语句,可以实现对GPIO口写,有GpioDataRegs.GPADAT.bit.GPIO26可以表示引脚的值,我看到用法是
  1. TempA=(TempA<<1) +  GpioDataRegs.GPADAT.bit.GPIO26
复制代码
,而我现在想把28335换成6748,不知道上面这个语句的功能在6748当中用GPIOPinRead(Add,Num)这个函数怎么实现?(还有就是6748中有这种按位操作的语句吗?)

点评

ADD 是 GPIO 外设寄存器地址 Num 就是 GPIO 管脚号咯 1-144  详情 回复 发表于 2016-9-22 10:18
回复 支持 反对

使用道具 举报

1

主题

14

帖子

1057

积分

金牌会员

Rank: 6Rank: 6

积分
1057
地板
 楼主| 发表于 2016-9-22 09:41:39 | 只看该作者
版主,6748有没有QQ交流群,视频上的QQ群不存在啊

点评

据说被同行举报了 加那个 L138 群就好了  详情 回复 发表于 2016-9-22 10:19
回复 支持 反对

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
5#
发表于 2016-9-22 10:18:46 | 只看该作者
leafy 发表于 2016-9-22 09:21
版主您好,我刚接触DSP。想请教您一个问题,28335中有GpioDataRegs.GPADAT.bit.GPIO26 =1语句,可以实现对G ...

ADD 是 GPIO 外设寄存器地址
Num 就是 GPIO 管脚号咯 1-144
回复 支持 反对

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
6#
发表于 2016-9-22 10:19:12 | 只看该作者
leafy 发表于 2016-9-22 09:41
版主,6748有没有QQ交流群,视频上的QQ群不存在啊

据说被同行举报了
加那个 L138 群就好了
回复 支持 反对

使用道具 举报

3

主题

852

帖子

3538

积分

创龙

Rank: 8Rank: 8

积分
3538
7#
发表于 2016-9-22 10:23:41 | 只看该作者
OMAPL138 TMS320C6748:227961486、324023586、385134684
回复 支持 反对

使用道具 举报

1

主题

14

帖子

1057

积分

金牌会员

Rank: 6Rank: 6

积分
1057
8#
 楼主| 发表于 2016-11-4 14:32:37 | 只看该作者
  1. //管脚读取数据函数
  2. void AD7606ReadOneSample(int * buf)
  3. {
  4.         unsigned char j, k;
  5.         unsigned short int TempA, TempB;


  6.         AD7606_CNVST_LOW();
  7.         Delay(0x000A);
  8.         AD7606_CNVST_HIGH();
  9.         Delay(0x0001);



  10.         while(GPIOPinRead(SOC_GPIO_0_REGS,31)==1)
  11.         {

  12.         }

  13.         AD7606_SCS_LOW();

  14.         for(j=0; j<4; j++)
  15.         {
  16.                 TempA=0;
  17.                 TempB=0;

  18.                 for(k=0; k<16; k++)
  19.                 {
  20.                         AD7606_SCK_LOW();

  21.                         TempA=(TempA<<1) + GPIOPinRead(SOC_GPIO_0_REGS,30);
  22.                         TempB=(TempB<<1) + GPIOPinRead(SOC_GPIO_0_REGS,136);

  23.                         AD7606_SCK_HIGH();
  24.                 }

  25.                 buf[j]=(int)TempA;
  26.                 buf[4+j]=(int)TempB;

  27.         }
  28.         AD7606_SCS_HIGH();
  29.         conv_flg=1;
  30. }
复制代码
回复 支持 反对

使用道具 举报

1

主题

14

帖子

1057

积分

金牌会员

Rank: 6Rank: 6

积分
1057
9#
 楼主| 发表于 2016-11-4 14:44:44 | 只看该作者
上面这段代码是AD7606串行读取函数,AD7606采用AB双通道,ADC转换完成之后将DOUT_A和DOUT_B上的数据存在数据TempA和TempB里,但是整个程序运行速度太慢了,因为我用到了GPIOREAD这个函数,说明如下:
while(GPIOPinRead(SOC_GPIO_0_REGS,31)==1),这时候需要判断GPIO31口(对应于AD7606的BUSY端子)的状态用到了GPIOREAD函数;
TempA=(TempA<<1) + GPIOPinRead(SOC_GPIO_0_REGS,30);
TempB=(TempB<<1) + GPIOPinRead(SOC_GPIO_0_REGS,136);
采用左移的思想将DOU_A、DOUT_B的数据存在TempA和TempB里;
回复 支持 反对

使用道具 举报

1

主题

14

帖子

1057

积分

金牌会员

Rank: 6Rank: 6

积分
1057
10#
 楼主| 发表于 2016-11-4 14:55:04 | 只看该作者
  1. #define AD7606_BUSY_READ                GpioDataRegs.GPADAT.bit.GPIO26
  2. #define AD7606_DOUTA_READ               GpioDataRegs.GPBDAT.bit.GPIO60
  3. #define AD7606_DOUTB_READ               GpioDataRegs.GPBDAT.bit.GPIO32
  4. while(AD7606_BUSY_READ==1)
  5.         {
  6.                 //delay_us(20);
  7.                 //Busy = AD7606_BUSY_READ;
  8.         }
  9. //BUSY输出高电平,表示转换过程已开始,直到转换过程结束为止,Busy都是高电平,Busy下降沿表示转换数据可供读取。
  10.         AD7606_SCS_LOW;//使能数据传输

  11.         for(j=0; j<4; j++)
  12.         {
  13.                 TempA=0;
  14.                 TempB=0;

  15.                 for(k=0; k<16; k++)//SCK是串行时钟输入,每一个数据是跟着SCK输出的
  16.                 {
  17.                         AD7606_SCK_LOW;//下降沿使DOUT_A和DOUT_B脱离三态,并逐个输出转换结果的最高有效位

  18.                         TempA=(TempA<<1) + AD7606_DOUTA_READ;
  19.                         TempB=(TempB<<1) + AD7606_DOUTB_READ;

  20.                         AD7606_SCK_HIGH;//SCK的上升沿将随后的所有数据位逐个送给串行数据输出DOU_A、DOUT_B。
  21.                 }
  22. //DOUT_A上是V1-V4,分别存在了buf[0]-buf[3];DOUT_B上是V5-V8,分别存在了buf[4]-buf[7]
  23.                 buf[j]=(int)TempA;//强制类型转换,变成了4个字节。
  24.                 buf[4+j]=(int)TempB;

  25.         }
  26.         AD7606_SCS_HIGH;//数据输出禁止
  27.         conv_flg=1;//标志位
  28. }
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2024-4-20 13:12 , Processed in 0.043349 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表