完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我目前正在从头编写飞行控制器,目前我正在使用该模块来解码传入的PPM信号。请记住,这是一个ISR,我的功能仅限于从接收器读取通道值。它工作完全没问题,但我想要一些反馈和改进(如果可能的话)。ISR如下:
|
|
相关推荐
4个回答
|
|
相关的全局变量和各种实例初始化如下:
|
|
|
|
假设这些全局变量是在ISR之外访问的,那么它们应该被声明为volatile
|
|
|
|
任何被那些全局的唯一的ISR内访问,但需要保持自己的状态之间ISR调用我会声明为静态内的ISR。这样他们就无法从ISR外部进入,但在通话之间保持状态。
|
|
|
|
不需要返回语句
为了清晰起见,最好使用一些数组来最小化代码 读取通道值部分可写为: //read channel value else if(elapsedTime >= 1000 && elapsedTime <= 2000) { if((currentChannel >= 1) && (currentChannel <= 6)) { channelVal[currentChannel - 1] = elapsedTime; currentChannel = (currentChannel + 1) % 7; } } |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
969 浏览 0 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
954 浏览 2 评论
2066 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1162 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1587 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 13:16 , Processed in 0.798596 second(s), Total 84, Slave 66 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号