w灰太狼x 发表于 2013-5-21 22:38:43

AVR定时器中断有个警告不知怎么解决

警告是这样的 unknown #pragma interrput_handler_miao
程序是想在数码管前两位显示一个一分钟的计数器,但是数码管根本不走.
能帮我看看吗?程序好像真没问题哎,是不是编译器设置问题啊

#include<iom16v.h>
#include<macros.h>
#define uint unsigned int
#define uchar unsigned char
#pragma interrput_handler_miao:9
#pragma data:code
flash uchar table={
0xc0,0xf9,0xa4,0xb0,0x99,
0x92,0x82,0xf8,0x80,0x90};
uint num;
void delay(uint ms)
{
       uint i,j;
       for(i=0;i<ms;i++)
               for(j=0;j<600;j++);
}
void show(uchar add,uchar date)
{
       DDRD|=0xf0;       //设置PD口高四位为输出模式,低四位模式不变
       PORTD=BIT(add+3);//打开位选
       
       DDRB=0xff;   
       PORTB=table;//段选
       delay(5);
}
void init(void)
{
       TCCR1B=0x04;
       TCNT1H=0x85;      //装初值,先写高位在写低位
       TCNT1L=0xED;      //读则相反
       TIMSK|=BIT(2);
       SREG|=BIT(7);
}
void miao(void)
{
       num++;
       if(num==60)
               num=0;
       
       TCNT1H=0x85;
       TCNT1L=0xED;
}                                                      
void main(void)
{
       uchar shi,ge;
       num=0;
       init();
       while(1)
       {
                 shi=num/10;
               ge=num%10;
                 show(1,shi);
               show(2,ge);
                // show(3,2);
                // show(4,3);
       }
}

zhujinliang2124 发表于 2013-5-21 22:58:06

本帖最后由 zhujinliang2124 于 2013-5-21 23:09 编辑

楼主用的什么编译器?

Winavr或者说Gccavr,代码不是这样写的

w灰太狼x 发表于 2013-5-22 07:52:17

zhujinliang2124 发表于 2013-5-21 22:58 static/image/common/back.gif
楼主用的什么编译器?

Winavr或者说Gccavr,代码不是这样写的

我用的是ICCAVR

millwood0 发表于 2013-5-22 08:20:08

我用的是ICCAVR

Have you read the compiler manual?

zhpowerpcb 发表于 2013-5-22 08:22:48

w灰太狼x 发表于 2013-5-22 07:52 static/image/common/back.gif
我用的是ICCAVR

中断就衔接不上,建议你直接在ICCAVR里设置好想要的参数,直接生成初始化程序

#pragma interrupt_handler int1_isr:iv_INT1   //外部中断入口
void int1_isr(void)
{
      ...
         }

zhujinliang2124 发表于 2013-5-22 08:23:30

搜了一个ICCAVR的中断例子,其中一段是这样写的,楼主对照这个改改看看:

#pragma interrupt_handler int0_isr:2
void int0_isr(void)
{
//external interupt on INT0
i++;//在中断里进行操作
}

相关链接:http://www.avrvi.com/avr_examples/interrupt.html

w灰太狼x 发表于 2013-5-22 08:46:36

millwood0 发表于 2013-5-22 08:20 static/image/common/back.gif
Have you read the compiler manual?

没怎么读,才入手.

w灰太狼x 发表于 2013-5-22 08:47:03

zhujinliang2124 发表于 2013-5-22 08:23 static/image/common/back.gif
搜了一个ICCAVR的中断例子,其中一段是这样写的,楼主对照这个改改看看:

#pragma interrupt_handler int0 ...

谢谢,我试试看.

w灰太狼x 发表于 2013-5-22 08:47:48

zhpowerpcb 发表于 2013-5-22 08:22 static/image/common/back.gif
中断就衔接不上,建议你直接在ICCAVR里设置好想要的参数,直接生成初始化程序

#pragma interrupt_handle ...

这个怎么设置呢?我才入手,不太会设置啊

w灰太狼x 发表于 2013-5-22 09:07:50

zhpowerpcb 发表于 2013-5-22 08:22 static/image/common/back.gif
中断就衔接不上,建议你直接在ICCAVR里设置好想要的参数,直接生成初始化程序

#pragma interrupt_handle ...

我用的是定时器中断,不是外不中断啊

zhujinliang2124 发表于 2013-5-22 09:09:03

本帖最后由 zhujinliang2124 于 2013-5-22 09:10 编辑

w灰太狼x 发表于 2013-5-22 09:07 static/image/common/back.gif
我用的是定时器中断,不是外不中断啊

学人家说话就是了:
#pragma   interrupt_handler                           int0_isr:2
中间是断开的

另可猜测int0_isr指的是后面的中断服务函数,2指的是中断号, 把这两个改成自己的

w灰太狼x 发表于 2013-5-22 09:33:42

zhujinliang2124 发表于 2013-5-22 09:09 static/image/common/back.gif
学人家说话就是了:
#pragma   interrupt_handler                           int0_isr:2
中间是断开的


这个我知道,谢谢,偶尔可以冒几个数出来.

jnmcu 发表于 2013-5-22 22:57:05

#pragma interrput_handler_miao:9   

==>
   
#pragma interrput_handler miao:9

yklstudent 发表于 2013-5-23 08:31:24

interrupt 这个才是正确的 楼主英文估计比我都菜呵呵 开玩笑

w灰太狼x 发表于 2013-5-23 13:14:40

yklstudent 发表于 2013-5-23 08:31 static/image/common/back.gif
interrupt 这个才是正确的 楼主英文估计比我都菜呵呵 开玩笑

原来是这样啊!万分感谢.说实话我英文重来没及格过.
页: [1]
查看完整版本: AVR定时器中断有个警告不知怎么解决