用示波器看输出的波形没有变化!!
------解决方案--------------------
从编译器优化执行代码的角度出发,延时程序的执行过程是无用的,所以可能会自作聪明地将其优化掉,这样就没有延时了;
你可以检查一下,编译时所执行的make命令,就是gcc命令行上的附加开关,是否有 -O, -O1, -O2, -O3等, 数字越高,优化的级别越强,将优化开关去掉,再看看延时是否就有效果了.
------解决方案--------------------
看情况,确实很有可能是被编译器优化掉了,之前在CCS上遇到过。
没怎么用过atmel studio,估计在编译器的相关设置和选项里可以修改,自己试试吧。
------解决方案--------------------
仔细看看你的延时函数,可能起不到明显的延时作用,延时单位在指令周期级别;delay那个函数看起来有点怪怪的
------解决方案--------------------
void port_init(void)
{
PORTB = 0x00;
DDRB = 0x00;
PORTC = 0x00; //m103 output only
DDRC = 0x00;
PORTD = 0x00;
DDRD = 0x00;
}
不是没有延时,是你的IO配置错了,你配置成输入方式了。 你怎么能软件对IO数据操作呢?