完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本人正在做一个RGB调光程序,用按键来选择模式,当按键在按下之后的0.8s内没有再次按下(count=120),如果有按键按下则再次ID++,直到在按键没有在0.8s内按下,就进入相应的模式,但我始终调不出那个按键,因为当我第一次按的时候能够正常显示,而后面就不能了,而且调光也不行,反复试验之后发现第一次之后定时器关闭,当我在其他的调光程序中没有TR0=0,或者ea=0啊,它自己关的实在奇怪
void KeyScan() { if (key == 0) { do{ delay(10); if (key == 0) ID++; while(key == 0); }while(count<120) ; SBUF=ID; while(!ti); TI=0; switch(ID%3) { case 0: zhinengmode(); break; case 1: gameover(); break; case 2: whitelight(); break; } } } void Timer0Interrupt() interrupt 1 { TH0 = 0xcb; //0b //9b TL0 = 0xea; N1++; N2++; N3++; if(N1==255)N1=0; if(N2==255)N2=0; if(N3==255)N3=0; count++; if(key==0) count=0; } |
|
相关推荐
5个回答
|
|
帮顶。。。。
|
|
|
|
|
|
以下是主程序,一开机就进入智能模式,然后根据按键次数来进入相应的模式
void main() { InitTimer(); E2Write(color , 0x20, sizeof(color)); while(1) { if(ID%3==0) zhinengmode(); KeyScan(); //按键扫描 } } |
|
|
|
新人求指点求帮助,各位大神。。谢谢
|
|
|
|
跟我的情况一样!我最近也在做这个,用的是51核的2530,定时器如果用自由模式可以正常运行,其他三种都会自动关定时器。我最后是在定时器中断里重新开启定时器,可以保证顺利运行,但是开定时器的操作一定得放在中断的第一句执行。
|
|
|
|
只有小组成员才能发言,加入小组>>
2976 浏览 9 评论
2692 浏览 16 评论
3214 浏览 1 评论
8445 浏览 16 评论
3782 浏览 18 评论
6962浏览 6评论
求助,请问MS51FB9AE带隙电压能作为侦测的基准电压吗?
7457浏览 3评论
6959浏览 3评论
支持UART-to-BLE透传的新唐NuTool – BLE ATCMD开发工具推荐
5805浏览 3评论
9375浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-4-24 19:36 , Processed in 0.664232 second(s), Total 51, Slave 42 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号