完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
/* LED灯闪烁任务4--按键按下闪烁 */
void LedTask4(void * pdata) { u8 bit_status; bit_status = GPIO_ReadInputPin(GPIOC, GPIO_PIN_0); while(1) { if(bit_status == RESET) //SET or RESET { LED_Operation(LED_3, ON); OSTimeDlyHMSM(0,0,0,500 ); LED_Operation(LED_3, OFF); OSTimeDlyHMSM(0,0,0,500); OSTimeDly(1); } } } 为什么这样 按下按键没反应,而把 bit_status放在while(1)里,这样却是可以的呢。。。。 /* LED灯闪烁任务4--按键按下闪烁 */ void LedTask4(void * pdata) { while(1) { u8 bit_status; bit_status = GPIO_ReadInputPin(GPIOC, GPIO_PIN_0); if(bit_status == RESET) //SET or RESET { LED_Operation(LED_3, ON); OSTimeDlyHMSM(0,0,0,500 ); LED_Operation(LED_3, OFF); OSTimeDlyHMSM(0,0,0,500); OSTimeDly(1); } } } |
|
相关推荐
20个回答
|
|
先看了一半 你说不行
就觉得应该把那个bitstaus放while里面 至于为什么 也说不好 但是 如果不用系统的话 相信你 肯定是会放在while里面的 虽然说添加了系统 任务代码都会得到运行 但 个人理解 while里面的 获得cpu的几率 更大 |
|
|
|
不用系统的话 我会把定义的 放在while 外面的。。。。我对操作系统还是没有理解透彻。。 |
|
|
|
路过看看,看看
|
|
|
|
|
|
|
|
加不加系统,这任务也只会在while里面运行,也不会跑到外面去啊
|
|
|
|
所以加不加系统,输入判断的bitstatus都要放里面
|
|
|
|
这么长时间 了,我也理解了,放在外面 只会判断一次 哈哈 |
|
|
|
我早查出来了,是因为我的任务数的设定得少了,才导致这个原因的
|
|
|
|
2230072985说的是正确的,首先原函数就有问题,不管有没有操作系统,运行都会有问题,bistatus只会在进入LedTask4时获取端口状态一次,在以后的while(1)中值不变。
|
|
|
|
是啊,还没有来得及按键,程序已经进入到while(1)中了
|
|
|
|
有系统的情况下,每个任务都是一个死循环,由调度器进行调度获得CPU
|
|
|
|
当然房While里头啦,任务总是在while里循环运行,bitstatus只运行一次,以后再也不会读取硬件了,你说while里头的判断怎么检测按键呢?
|
|
|
|
|
|
|
|
好好 学习了学习了
|
|
|
|
bit_status = GPIO_ReadInputPin(GPIOC, GPIO_PIN_0);
方法一和二的区别: 你不在while(1)死循环里面去 不停的读取按键状态, 仅凭创建任务的瞬间读取一次。是想闹哪样? |
|
|
|
哈哈。。没错没错 |
|
|
|
|
|
因为 GPIO_ReadInputPin是一个读取pin脚的函数,返回值是0或者1两种状态,放在循环外面你只是刚进入task的时候读取了一下,循环内的值是死的。
|
|
|
|
你说的最详细! |
|
|
|
只有小组成员才能发言,加入小组>>
UCOSII中断中添加OSSemPost(Sem);程序无法运行
4985 浏览 1 评论
在BC5.0上编译uC/OS-II出现"eeror writing object file",怎样处理???
3196 浏览 1 评论
567浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-29 16:55 , Processed in 1.462176 second(s), Total 117, Slave 98 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号