完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
你好,
我试图建立一个中断驱动的RS232接收器,它使用一个简单的状态机来收集字节。 本质上,每次中断触发并将字节捕获到缓冲区中时,我想设置50ms超时,以便检测传输结束(除非UART有某种空闲时间中断)。那太好了。 正在接收的数据OK。我可以运行它一段时间,Pasue,看看ReCieVE缓冲区和正确的数据在其中。 超时似乎不太好。计时器应该重新初始化为50ms超时,每次收到一个字节,当没有50ms内的字节,然后定时器INT应该火,并标志着数据准备在我的缓冲区。 我还需要一个方法来超时整个过程(例如,发送一个命令并等待一定的时间来响应,如果没有,则超时)。我想这将是一个非中断驱动的计时器,我启动,然后在我的缓冲区中查询TC或RX数据。 这是我的小代码片段。谢谢,我感谢所有帮助你的人给我爬的学习曲线与PSoC和造物主的成分。 cy_isr(servicetimer1)/定时器1 int这个程序应该只火时没有字节为50ms,如果接收国旗包 { Time1IsCutter();/50ms从上一个字节接收到的超时 numsoundrxbytes = audiorx_ptr;//得到一些接收的字节数 如果(soundrxmode = =接收)datainbuf = true;/ /旗包好 } cy_isr(service_soundrx)/本应该火每天收到的字节(它),应该重新启动定时器来防止它如果多个字节到达时间。 { AudioOrrxBuf[AdioRxxpTr++]=sOnthRxDATAZRE; SunDRXMODE=接收; Time1-停止(); Time1l写作周期(50000);//50ms Time1x启动(); AudioOthIn SalTeX(Service Time1);//启用定时器1 int } 空隙复位音(无效) { DATAN BUFF=FALSE; SunDRXMODE =空闲; AudioXXPtR=0x00; } |
|
相关推荐
3个回答
|
|
我可以自己回答问题。我设法找出它,并使用一个软件计数器,而不是试图启动和停止计时器。还需要读取状态以重置定时器。如果它对任何人有用,下面的代码。
CysISR(Service Time1)/定时器1 INT { 时间状态; MUST++; 如果((SANDRXMODE==接收)&(MSTUL==RxTimeOUT)) { DATAIN BUFF=TRUE;//标志数据包准备就绪 } } CysISR(Service eSunDRX) { 如果(SONDRXMODE==空闲) { AudioXXPtR=0x00; SunDRXMODE=接收; } RxTimeOUT=MtUn+ 50; AudioOrrxBuf[AdioRxxpTr++]=sOnthRxDATAZRE; } |
|
|
|
您也可以考虑LUT和50毫秒时钟作为LUT之一。
合格者的产量越高。只是一个想法。 还有,当你做中断时,一般做大部分的工作中断外 通过设置标志并退出ISR。另外声明内部使用的全局变量 ISR是挥发性的。 HTTP://www. BARRGROUP.COM/EnguldDeSts/Ho-to/C挥发关键字 问候,Dana。 |
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
751个成员聚集在这个小组
加入小组2063 浏览 1 评论
1823 浏览 1 评论
3631 浏览 1 评论
请问可以直接使用来自FX2LP固件的端点向主机FIFO写入数据吗?
1759 浏览 6 评论
1507 浏览 1 评论
CY8C4025LQI在程序中调用函数,通过示波器观察SCL引脚波形,无法将pin0.4(SCL)下拉是什么原因导致?
501浏览 2评论
CYUSB3065焊接到USB3.0 TYPE-B口的焊接触点就无法使用是什么原因导致的?
353浏览 2评论
CX3连接Camera修改分辨率之后,播放器无法播出camera的画面怎么解决?
408浏览 2评论
353浏览 2评论
使用stm32+cyw43438 wifi驱动whd,WHD驱动固件加载失败的原因?
850浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-19 12:18 , Processed in 0.966922 second(s), Total 80, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号