63

帖子

0

TA的资源

一粒金砂(初级)

21
 
谢谢你呀,如果用了
.global _c_int08  ; Hookup the c_int08 ISR in main()
这句话相当于.ref _c_int08
如果我用了.global _c_int08,同时也用了.ref _c_int08会不会有问题?

之前没看到回帖我给你发了邮件,里面附了我的中断服务程序,觉得执行起来比较长,你不是可以把转存数据部分放回主函数以减少执行时间呢?



 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

22
 
你发过来的程序看不全,可能是邮箱的问题。不知道Enc函数是做什么的。
关于执行时间,你可以用profile中的clock测量,你的I2C的传输速率是多少,根据传输速率可以计算出两个I2C中断的最小间隔,如果DMA中断执行时间小于这个间隔的话,应该就不会出现冲突了。
如果改为HWI来做的话,那么中断中的复制部分和Enc函数都用一个SWI函数完成,在HWI中post那个SWI即可,HWI结束之后会自动运行post了的SWI。
6713DSK有个简单的声音输入输出的例子dsk_app,你可以参照一下。

我认为.global后面的不应该修改
保留.global _vector8  ;这里用.global _vector8是好让别的程序也能够参照_vector8这个符号。

然后用.ref _c_int08

你修改.global _vector8为.global _c_int08有什么根据么,参照的什么例子?
不过即使同时用.global _c_int08和.ref _c_int08也没有问题,只是没有这个必要。

 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

23
 
6713DSK声音输入输出的例子可否发给我,我没看到有,而我在中断服务程序里写的那个Enc函数是个空的,只是代表一下,以后往里面增加应用程序。至于你说得.global _c_int14 ; 是参照seed提供给我的例子我自己改写的
 
 
 

回复

94

帖子

0

TA的资源

一粒金砂(初级)

24
 

I2C1发送数据

您好呀:
我现在把原来的接收程序改为发送,就是I2C1发送数据出去,但是改完之后发现不能够进入发送中断服务程序,请帮我分析一下,中断状态寄存器和中断使能寄存器应该都没有错

[ 本贴由 guoguocaibing 于 2006-7-10 09:08 AM 最后编辑 ]
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

25
 
引用:

您好呀:
我现在把原来的接收程序改为发送,就是I2C1发送数据出去,但是改完之后发现不能够进入发送中断服务程序,请帮我分析一下,中断状态寄存器和中断使能寄存器应该都没有错

[ 本贴由 guoguocaibing 于 2006-7-10 09:08 AM 最后编辑 ]
发送中断是在发送缓存寄存器从满转空的时候,因此发送的第一个数据要先写入寄存器。当第一个数据发完之后就会产生中断,在中断中写第二个数据...
如果程序设置都没有问题的话,最好用示波器看看波形。你的I2C是做slave吧,它必须配合master工作,因此master方是否在适当的时候读取数据很重要。
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

26
 

???

您好:
  我在接收数据的时候主发送端会写R/W位和ACK位和数据一起发送过来,我想问问它发送过来的R/W会影响I2C哪个寄存器呢?从而让我I2C知道是工作在接收还是发送的状态呢,我现在想弄清楚主器件发来R/W(确定读写方式位)在我DSP I2C中怎么体现?谢谢呀!急急急!
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

27
 
我想I2C的硬件如果收到R的信号,它就会自动把输出缓存寄存器的值发送出去,具体的细节请参考6713的I2C手册。
不知道你现在遇到什么问题了,发送时还是进不了中断么?
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

28
 
对,就是发送时,中断源寄存器没有反应保持全零,因此也进不了中断服务程序
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

29
 
再请问一下你告诉我怎么用示波器观测?我不知道具体该观测什么?反正我现在发送时就是进不了中断服务程序,中断源寄存器也没有改变保持全零
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

30
 
请检查以下配置:
1。 i2cimr中要允许ICXRDY中断。
2。在i2c master要求第一个数据之前,把要发送的数据写入了I2CDXR。
3。当I2C模块把I2CDXR中的数据发出之后,会向DSP请求中断。

如果你的程序是按照以上步骤运行的,那么就用示波器察看I2C的时钟和数据线,看主控发出读命令之后,数据线上是否有数据,ACK是否正常。
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

31
 
我现在在示波器上观察接收时的数据,发现数据流中没有插入低电平ACK,不知怎么回事,我明明设置了I2C_I2CMDR_NACKMOD_ACK,为什么没有ACK数据呢?您有空也收一下邮件呀,谢谢呀!!!
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

32
 

不过我没有用过I2COAR设为0,换一个地址试试看?发送端也需要修改一下。地址0应该有特殊用途吧。
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

33
 
哈哈,你跟我想到一起去了,我把
I2C_RSET(I2COAR1,I2C_I2COAR_RMK(I2C_I2COAR_A_OF(1)))设为1
同时
I2C_RSET(I2CSAR1,I2C_I2CSAR_RMK(I2C_I2CSAR_A_OF(1)));
发现,此时I2C1工作在从接收方式,接收不到数据了,发送端发送地址0000001,真是奇怪呀?
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

34
 
地址1也有特殊用处,用2到15。
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

35
 
为什么?资料上为什么找不到?可否详细跟我说一下
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

36
 
我现在改为2了,可以接受到数据但是用示波器观察仍然看不到ACK代表的低电平,为什么呢,I2CMDR配置如下:
I2C_RSET(I2CMDR1,I2C_I2CMDR_RMK(I2C_I2CMDR_NACKMOD_ACK,
I2C_I2CMDR_FREE_BSTOP,
I2C_I2CMDR_STT_NONE ,
I2C_I2CMDR_STP_NONE,
I2C_I2CMDR_MST_SLAVE,
I2C_I2CMDR_TRX_RCV,
I2C_I2CMDR_XA_7BIT,
I2C_I2CMDR_RM_NONE,
I2C_I2CMDR_DLB_NONE,
I2C_I2CMDR_IRS_NRST,
I2C_I2CMDR_STB_NONE,
I2C_I2CMDR_FDF_NONE,
I2C_I2CMDR_BC_BIT8FDF));
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

37
 
我看的是The I2C Specification Version 2.1,不是TI的文档。
你的I2C能够连续接收数据么,如果能够接收的话,应该没有问题。
示波器的图像能发过来看看么
 
 
 

回复

53

帖子

0

TA的资源

一粒金砂(初级)

38
 
可能太大了,我又换了邮箱发了谢谢呀,我想问问你你工作在从接收模式下应该不用设置I2casr吧
 
 
 

回复

97

帖子

0

TA的资源

一粒金砂(中级)

39
 
从模式不需要设置I2CSAR
VSD格式的图片我看不了,最好转成JPEG

 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

40
 
的确没有ACK,我刚才看了一下I2C文档,以下地址有特殊用途:
0000 000
0000 001
0000 010
0000 011
0000 1xx
1111 1xx
1111 0xx

因此建议用地址8试试看。
另外,发送端的程序在ACk时是否释放了SDA线?
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表