打印

求助大神帮忙看看这个AVR单片机TINY25外部中断程序的问题

[复制链接]
785|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yhq187|  楼主 | 2018-8-17 08:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近用了个AVR的TINY25芯片,按照网上查的资料写的中断程序有问题,求大神指点!!
#include <iot25v.h>
#include <macros.h>                        //包含"位"操作头文件
#include <stdio.h>                        //标准输入输出头文件
#define STBOH PORTB|=(1<< PB3)
#define STBOL PORTB&=~(1<<PB3)
#pragma interrupt_handler Int0:2        //外部中断0中断函数声明                          
char edge;
/*******************************************
函数名称: Init_kb
功    能: 初始化PS2函数
参    数: 无
返回值  : 无
/********************************************/
void Init_kb()
{           
MCUCR = 2;       //设置INT0为下降沿触发中断
edge = 0;        //0为下降沿中断标志,1为上升沿中断标志
DDRB&=~BIT(2); //配置中断管脚为输入
PORTB|=BIT(2); //使能中断管脚的上拉
//GIMSK|=BIT(6);
SREG|=BIT(7);//打开全局中断
GICR|=BIT(6);
}
void delay(unsigned char k)
{
unsigned char i;
  for(i=0;i<k;i++)
  ;
}
/*******************************************
函数名称: Int0
功    能: 外部中断0的中断服务函数
参    数: 无
返回值  : 无
/********************************************/
void Int0(void)
{
if (!edge)                                   // 如果是下降沿触发中断
{  
  STBOL;
  MCUCR=3;                                 //设置INT0为上升沿触发中断
  edge=1;                                 //设置上升沿中断标志
}
else                                          //如果是上升沿触发中断
{
delay(2);
  STBOH;
  MCUCR=2;                                 //设置INT0为下降沿触发中断
  edge=0;                                 //设置下降沿中断标志
}
}

/*******************************************
函数名称: main
功    能: ?
参    数: 无
返回值  : 无
/********************************************/
void main(void)
{

Init_kb();                                          //初始化

}
\iCCAvr\attiny\main.c(22): undeclared identifier `GICR'
C:\iccv7avr\bin\imakew.exe: Error code 1
C:\iccv7avr\bin\imakew.exe: 'main.o' removed.
Done: there are error(s). Exit code: 1. Fri Aug 17 08:34:31 2018

相关帖子

沙发
dirtwillfly| | 2018-8-17 17:19 | 只看该作者
错误信息很明确阿,未定义GICR
第一步:先查一下手册是不是有这个寄存器,看看拼写有没有问题。如果没问题进入第二步
第二步:看看头文件是否有这个寄存器的定义。追踪一下这个寄存器在哪个文件定义。看是不是没包含这个文件,还是编译器没找到这个文件。

使用特权

评论回复
板凳
tianxj01| | 2018-8-19 16:23 | 只看该作者
GICR未定义。不是用错寄存器定义的名称,就是头文件里面没包含定义文件。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

13

帖子

0

粉丝