完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
大家看看这个程序,我用protues仿真,LED可以亮灭,但是想加入延时,自己写的延时加上去没有反应,用个自减语句也没反应,发现除了IO口的亮灭语句执行外,在IO亮灭语句间加函数、FOR、WHILE、等都不会执行,而且加这些语句之后连它后面的亮灭语句也不执行了。如果只有IO口的亮灭语句和大循环的while语句,可以闪烁,但是跳不出循环,我估计这个大循环while也有问题。 就这个几个语句,我程序没问题的啊,有谁碰到过。好像我用AS6.2也有相同问题。真是太奇葩了 |
|
相关推荐
14个回答
|
|
|
看你这个图,是低电平点亮。
你这个代码有两个很严重的问题。 1、PA口先0X01,然后延时,最后0XFF,这个时候执行完马上又会回到最开始PA=0X01,因为是while(1)这个无限循环。第一个问题就在这里了,AVR执行速度很快,PA=0XFF,然后回到开始PA=0X01,也就是说PA=0XFF根本没有保持长时间。那么,人眼肯定是看不到LED全灭,因为马上变成0X01。因为你在PA=0X01后面加了一点延时,说明PA=0X01保持时间比PA=0XFF久,所以宏观上看,肯定是看到七个灯亮,一个灯灭的效果。所以在PA=0XFF后面,也是要放延时的。 2、你的 while(i--)延时,里面是2000,我们粗略估算,假设执行一次是2us,那么执行2000次是4000us,也就是4ms。4ms的延时,人眼肯定是分辨不出来的,你的延时太短了! 要成功,那么你应该这样:每个PA状态后面都要放延时。然后每个延时时间要长。
最佳答案
评分
|
||
|
|
||
|
自己顶一下,刚刚学了51,现在看AVR,感觉avr比51麻烦,不够直观。而且还有这个奇葩问题
|
|
|
|
|
|
|
|
|
果真如此,竟然忘了在最后也加上延时。太不严谨了。多谢前辈指点!
|
|
|
|
|
|
果真如此,竟然忘了在最后也加上延时。太不严谨了。多谢前辈指点!
|
|
|
|
|
|
果真如此,竟然忘了在最后也加上延时。太不严谨了。多谢前辈指点!
|
|
|
|
|
|
果真如此,竟然忘了在最后也加上延时。太不严谨了。多谢前辈指点!
|
|
|
|
|
|
果真如此,竟然忘了在最后也加上延时。太不严谨了。多谢前辈指点!
|
|
|
|
|
|
果真如此,竟然忘了在最后也加上延时。太不严谨了。多谢前辈指点!ICC里面好像没有设置晶振频率啊,怎么计算自己写的延时呢
|
|
|
|
|
|
|
|
|
个人感觉AVR比51要简单得多呀!
|
|
|
|
|
|
得根据你自己的实际晶振是多少,再粗略计算了 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
265 浏览 0 评论
【原创】【RA4M2-SENSOR开发板评测】低功耗+USB综合测试
789 浏览 0 评论
1306 浏览 2 评论
787 浏览 0 评论
【RA4M2-SENSOR开发板评测】Analogue+Timers综合测试
1587 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
16900 浏览 31 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 00:42 , Processed in 0.974800 second(s), Total 104, Slave 81 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1015