一个avr的小程序,不知道什么问题帮帮忙
时间:10-02
整理:3721RD
点击:
#include<iom16v.h>
#include<macros.h>
#define uint unsigned int
void delay_ms(uint i);
//延时******************************************************
void delay_ms(uint i)
{
uint j;
while(i--)
for(j=0;j<1441;j++);
}
//主函数*******************************************************
void main()
{
DDRC|=0xff;
PORTC|=0xff;
while(1)
{
PORTC=~(BIT(2)|BIT(3));
//delay_ms(10);
PORTC=~(BIT(1)|BIT(3));
//delay_ms(10);
PORTC=~(BIT(3));
//delay_ms(10);
PORTC=~(BIT(1)|BIT(3));
//delay_ms(1);
PORTC=~(BIT(3));
//delay_ms(10);
PORTC=~(BIT(1)|BIT(3));
//delay_ms(10);
PORTC=~(BIT(0)|BIT(5));
//delay_ms(10);
}
}
加入延时函数仿真就不正常(只有while循环里的第一句在运行,就是第二第三个灯闪烁)
去掉延时就能正常仿真
#include<macros.h>
#define uint unsigned int
void delay_ms(uint i);
//延时******************************************************
void delay_ms(uint i)
{
uint j;
while(i--)
for(j=0;j<1441;j++);
}
//主函数*******************************************************
void main()
{
DDRC|=0xff;
PORTC|=0xff;
while(1)
{
PORTC=~(BIT(2)|BIT(3));
//delay_ms(10);
PORTC=~(BIT(1)|BIT(3));
//delay_ms(10);
PORTC=~(BIT(3));
//delay_ms(10);
PORTC=~(BIT(1)|BIT(3));
//delay_ms(1);
PORTC=~(BIT(3));
//delay_ms(10);
PORTC=~(BIT(1)|BIT(3));
//delay_ms(10);
PORTC=~(BIT(0)|BIT(5));
//delay_ms(10);
}
}
加入延时函数仿真就不正常(只有while循环里的第一句在运行,就是第二第三个灯闪烁)
去掉延时就能正常仿真