完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
不久前,我发布一个问题设置的时间来确定当一个包已完成传输。
我想用一个小的状态机,重置计时器每次一个字节的接收和设置一个标志,分组完成时。伪代码是什么我想应该工作,但我想知道是否可以阻止UART中断在中断和定时器是否重置定时器周期内是可以中断。我没有显示的初始化例程或确切语法但保持它简单说明的概念。我也不知道我要做一些阅读计时器保持计时器ISR运行。 cy_isr(定时器中断)/常规火灾时没有接收的字节数超过20ms { if(模式= =接收)/ /只设置的标志如果数据接收开始,否则忽略超时{ datainbuf = true;uart_stop();/ /停止UART防止超时后的状态变化} } cy_isr(cominterrupt){ if(模式= =空闲)/复位状态机,加incoing数据缓冲和复位定时器{ datainbuf = false;模式=接收;ptr = 0 } combuf [ PTR ] = uart_read();timer_writeperiod(MS20);} resetcom() /电话这之前准备好接收数据{模式= IDL时e;uARTHARSTART();} 如果(DATAIN BUF)进程COM(); |
|
相关推荐
5个回答
|
|
为什么不使用UART块的TXGEN输出作为计数器/捕获组件的输入?
|
|
|
|
|
|
|
|
我的错误。我误解了原来的问题。
我想不出一个简单的方法来做这件事,因为硬件必须了解包的结尾是什么样的,以便触发捕获。我认为您的软件解决方案是最直接的方式,但是正如鲍伯所说,注意变量(并声明一个中断处理程序可以改变为“易失性”的任何全局变量),并且您应该有一个工作解决方案。 |
|
|
|
是的,我使用在中断中修改的易失性变量。
定时器开始与timer_start(),我想刷新定时器每次UART字节接收(再次开始计数)来防止它timeoing除非没有更多的字符来。我做了这个特别的mircochip控制器使用一段时间发现效果不错但还不熟悉的PSoC定时器来实现它了。 这将是伟大的如果UART功能有一个超时功能,你可以设置为不活动。 我可以使用XON/XOFF式排列,但系统接收数据,没有这些dleimiters标记的开始和结束的包。 |
|
|
|
为UART提供超时将需要一个定时器组件和所需的底层硬件,这在所有设计中都是不需要的。你可以创建一个宏,它包含所有你需要的组件,并在设计中使用它。
在TimeReSth()中重新启动一个定时器,TimeRySt*(); 鲍勃 |
|
|
|
只有小组成员才能发言,加入小组>>
754个成员聚集在这个小组
加入小组2113 浏览 1 评论
1860 浏览 1 评论
3673 浏览 1 评论
请问可以直接使用来自FX2LP固件的端点向主机FIFO写入数据吗?
1794 浏览 6 评论
1540 浏览 1 评论
CY8C4025LQI在程序中调用函数,通过示波器观察SCL引脚波形,无法将pin0.4(SCL)下拉是什么原因导致?
581浏览 2评论
CYUSB3065焊接到USB3.0 TYPE-B口的焊接触点就无法使用是什么原因导致的?
434浏览 2评论
CX3连接Camera修改分辨率之后,播放器无法播出camera的画面怎么解决?
445浏览 2评论
393浏览 2评论
使用stm32+cyw43438 wifi驱动whd,WHD驱动固件加载失败的原因?
1020浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-31 00:55 , Processed in 1.074662 second(s), Total 85, Slave 69 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号