最近开始学习avr,网上atmega16视频多,所以就从它下手了。写了个灯闪烁的程序。用的WinAVR.
#include <avr/io.h>
#include <util/delay.h>
int main()
{
DDRD=0xFF;//PORTD口设为输出
DDRC=0xFF;
while(1)
{
PORTD^=_BV(PD0); //PD0亮
_delay_ms(10); //延时10ms, 问题就在这里。 在debug时(avrstudio), 发现这里实际是延时了20ms,才执行下一步程序。这是为什么呢?敬请详解
PORTC^=_BV(PC0); //PC0亮
}
}
此帖出自
小平头技术问答
又发现个新问题:在makefile文件中,默认是8Mhz,但是delay.h中默认是1Mhz. 这是怎么回事呢?
经调试,程序实际用的是8Mhz.
一周热门 更多>