atmega48pa单片机管脚高低电平判断的问题
时间:10-02
整理:3721RD
点击:
atmega48pa单片机 在pc2口接高低电平控制程序进入中断后灯闪烁,但是不管接电平高低都是红灯闪烁,大家帮满看看程序哪里有问题谢谢 ,中断没问题能进入,
DDRC&=~BIT(2); //PC2输入
PORTC|=BIT(2); //PC2上拉
void timer_2(void) //中断函数
{
//SMCR&=~BIT(0);
TCNT2=192;
PORTC|=BIT(3);
delayms(1000);
if(PINC&0x02==0 )
{ GLED_ON; //绿灯闪烁
delayms(200);
GLED_OFF;
}
else
{
RLED_ON;//红灯闪烁
delayms(200);
RLED_OFF;
}
}
DDRC&=~BIT(2); //PC2输入
PORTC|=BIT(2); //PC2上拉
void timer_2(void) //中断函数
{
//SMCR&=~BIT(0);
TCNT2=192;
PORTC|=BIT(3);
delayms(1000);
if(PINC&0x02==0 )
{ GLED_ON; //绿灯闪烁
delayms(200);
GLED_OFF;
}
else
{
RLED_ON;//红灯闪烁
delayms(200);
RLED_OFF;
}
}
中断服务程序里通常不宜调用长时间延时程序,如果延时时间接近或大于中断周期,程序无法正常工作。
这个里面没有贴出rled_ON 定义的参数,而且很多类似的都没有。
灯的定义什么的没问题 红绿灯闪烁互换都做过
灯的定义什么的没问题 红绿灯闪烁互换都做过
程序里貌似有错误,请问你用的是那个 IDE 编译的?
iccavr 编译的
if(PINC&0x02==0 )这里应该是0x04 ,但是还是不行
iccavr 编译的
if(PINC&0x02==0 )这里应该是0x04 ,但是还是不行
iccavr 编译的
if(PINC&0x02==0 )这里应该是0x04 ,但是还是不行
iccavr 编译的
if(PINC&0x02==0 )这里应该是0x04 ,但是还是不行
iccavr 编译的
if(PINC&0x02==0 )这里应该是0x04 ,但是还是不行
iccavr 编译的
if(PINC&0x02==0 )这里应该是0x04 ,但是还是不行
