微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > atmega48pa单片机管脚高低电平判断的问题

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;
                }
}

中断服务程序里通常不宜调用长时间延时程序,如果延时时间接近或大于中断周期,程序无法正常工作。

这个里面没有贴出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 ,但是还是不行

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top