[AVR单片机] ICCAVR的全局变量怎么用?

[复制链接]
2100|7
 楼主| sanguanko 发表于 2015-3-7 22:07 | 显示全部楼层 |阅读模式
#include <iom8v.h>
#include <macros.h>

extern unsigned char flag=0;

#pragma interrupt_handler int0_serve:2
int0_serve(void)
{
    CLI();
        flag=flag+1;
    putchar0(flag);
        if(flag==0x09) flag=0;
    SEI();        
}

int main(void)
{
    CLI();
        uart0_init();
        int0_init_H_to_L_edge();
        SEI();
        putchar0(flag);
        putchar0(0x55);
        while(flag==0x02)
          {
                  putchar0(0xaa);
          }        
                  
}
一上电串口会输出00和55,外中断是下降沿触发,按一次按键触发一次外中断,flag加1,当flag=0x02时,串口应该输出0xaa,但是没有,为什么?用的是ICCAVR V7.22编的。请指教,多谢。
yklstudent 发表于 2015-3-7 22:50 | 显示全部楼层
AVR GCC不用改ICC了???
 楼主| sanguanko 发表于 2015-3-7 23:25 | 显示全部楼层
是啊,上次相同的程序用avrstudio,不能进外中断,用ICCAVR就可以了,就接着用ICCAVR了
 楼主| sanguanko 发表于 2015-3-7 23:26 | 显示全部楼层
yklstudent,有什么建议吗?谢谢
yklstudent 发表于 2015-3-7 23:29 | 显示全部楼层
别逗了,喜欢用哪个就用哪个
反正都能用,就看个人习惯与喜好了
chenyu988 发表于 2015-3-8 09:58 | 显示全部楼层
程序飞了
while(1)
{
    if(flag==0x02)
     {
          putchar0(0xaa);
     }
}
 楼主| sanguanko 发表于 2015-3-8 13:01 | 显示全部楼层
真的是哦,谢谢 chenyu988
蓝魔大师弟 发表于 2015-3-13 14:11 | 显示全部楼层
学习了。。。。。。。。。。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

262

主题

290

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部