完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
你好,
我仍然在使用一个用于照明系统的DMX RS485协议的项目。该应用程序基本上是接收数据(512字节),根据两个CAPSENSE按钮请求的地址将其移位,并从该地址开始发送回。 我所面临的问题是数据流需要连续,至少对于所有512字节加上一些流指示开始。这两个ISR不断地为每个字节开火,因为它需要花很长时间才能读完所有的内容,然后立即把它们全部写出来,并引起灯光的反动反应。 我的问题是,是否有一种方法让接收ISR运行,直到它的缓冲区满了,然后关闭,然后打开发送ISR。然后发送ISR将发送它的512个字节,并关闭,返回到接收ISR。 我会以一种非常复杂的方式,请让我知道如果是这样的情况以及。 谢谢,见附件项目。 汤姆 DMX地址寄存器 4.9兆字节 |
|
相关推荐
9个回答
|
|
不看项目:你在使用组件内部ISRs?它们正在字节式传输到缓冲区,对不对。
你能做什么: 跳过的ISR,使用DMA传输数据,只做一件事情的时候,准备好一个缓冲区写自己的程序,从而在一柄全512字节去(但这可能意味着你在发送到一个接收器缓冲区溢出)使用的ISR,定义缓冲区足够大以容纳例如600字节,然后做他们以外的(在你的主回路)-等到512个字节的接收,将它们拷贝到发送缓冲区,再等待(我建议# 1第一,然后# 3) |
|
|
|
看项目;-)我建议增加Rx和Tx 600的缓冲区大小。这将使一个内部中断的处理和作为一个结果-禁用中断RX接收字节和TX FIFO空,你现在使用的。不要在这种配置中使用它们!你可以得到通知时,你的字节传输完毕时有一个接收中断。此外,您可以检查字节数收到为止。传输和接收是通过UART组件“背景”是一种真正的双向驱动的中断。
当缓冲区接收你可以读它并将结果用通常不会阻止由于大的缓冲区大小的功能阻断Tx缓冲区。 鲍勃 |
|
|
|
|
|
|
|
你好,
感谢所有的提示!我有一些问题和意见: 这600个字节有什么特殊性吗?为什么会触发中断?如何访问此中断?你的意思是串口缓冲区,或DMXbuffer软件缓冲区?背景会如何填充?我把延误的主要方法,它似乎是工作好多了。我还必须将DXXOUT设置为优先级1。CapSense不读书很好,由于大量的中断发生。我怎么才能停下来检查一下呢?这可能与你所谈论的600字节触发,让我做别的事情时缓冲区填满。当我将CapSense中断,混乱的数据传输。我没有关于DMA知道,要读一些关于它的更多。使用DMA和串行的例子吗?谢谢你的帮助! 汤姆 |
|
|
|
你不会学到很多关于DMA,因为PSoC4没有DMA(还没有)。
当增加UART的缓冲区时,您会看到“内部”中断打开。没有必要(也不应该)使用这个内部中断。它只关心你的RX缓冲区被填满,你的TX缓冲区在没有你的任何动作的情况下被传送。在主体()中,您可以用不返回缓冲区大小的API(Apple GeTrxBuffResisie)()来检查进度,但是缓冲区中的字符数。与GETTXBuffResiZe()相同,当所有需要的字节都被发送时,它返回0(0)。 有一个函数发送一个中断,一个状态位告诉一个中断被接收。 我取了600字节缓冲区大小,因为它比你的512字节流长度要大很多。 鲍勃 |
|
|
|
|
|
|
|
对不起,关于DMA引用,我没有重述这个问题是关于PSoC4的。(DMAWIS只在即将到来的PSoC4M)中。
关于内部中断:一旦接收器或发送缓冲器大于8字节(对于SCB UART)或4字节(对于基于UDB的UART),它将被启用。但是要注意缓冲区的大小,PSoC4没有那么多内存… 如果你有中断问题,也许你可以把CAPSHONE中断优先级设置得更高,以确保它处理得更快。 |
|
|
|
|
|
|
|
当启用内部中断时,可以查看UART组件的生成源代码。内部ISR应该向您显示内部缓冲区的确切位置,您可以直接访问它。
它可能是一个循环缓冲区,所以它不会是一个简单的MEMCPY操作。你也会将自己绑定到实现中——如果它改变了,你需要改变你的代码。 |
|
|
|
只有小组成员才能发言,加入小组>>
752个成员聚集在这个小组
加入小组2075 浏览 1 评论
1829 浏览 1 评论
3643 浏览 1 评论
请问可以直接使用来自FX2LP固件的端点向主机FIFO写入数据吗?
1766 浏览 6 评论
1517 浏览 1 评论
CY8C4025LQI在程序中调用函数,通过示波器观察SCL引脚波形,无法将pin0.4(SCL)下拉是什么原因导致?
516浏览 2评论
CYUSB3065焊接到USB3.0 TYPE-B口的焊接触点就无法使用是什么原因导致的?
366浏览 2评论
CX3连接Camera修改分辨率之后,播放器无法播出camera的画面怎么解决?
413浏览 2评论
360浏览 2评论
使用stm32+cyw43438 wifi驱动whd,WHD驱动固件加载失败的原因?
867浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-28 21:03 , Processed in 0.975096 second(s), Total 93, Slave 76 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号