很简单的是熔丝位设置问题!!mega128A是兼容mega128的。在你把程序加载到单片机之前,在软件里设置一下熔丝位,一般软件默认是片内RC振荡器,所以选择外部晶振我用PROGISP(Ver1.6.8)直接用ISP下载所以要这样设置(参考图片)!!!
AVR studio里也应该有设置的
注意:熔丝位不要乱设置会引起锁死!!到那时就惨了!!
1.有一种关键字叫inline,虽然我不用IAR,但是我想常规的编译器都会支持这种功能,当inline出现在函数声明前面的时候,编译器会将这个函数在调用处自动展开2.你说的循环10遍的问题,有一种编译优化叫循环展开,即将小于一定循环次数的循环 *** 作直接像你所说的依次执行,而不是通常循环指令,这个 *** 作要结合编译器手册看具体使用说明了,所以你还是要研究一下IAR的编译优化,看过这块,你的问题应该得到解决
应该是PORTA的低4位,循环输出0比如
num=2时,PORTA=PORTA&FE,第1个I/O口(PA0)将输出0,其他口保留原状
num=3时,PORTA的第2个I/O口(PA1)将输出0,其他口保留原状
num=4时,PORTA的第3个I/O口(PA2)将输出0,其他口保留原状
num=5时,PORTA的第4个I/O口(PA3)将输出0,其他口保留原状
num=40时,PORTA的低4位(PA0~PA3),将全部置1
因此,程序可能是跑马灯一样的效果,四个灯,依次亮起来,然后一段时间后熄灭,再依次亮起来,一直这样循环下去
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)