avr644中断问题

[复制链接]
 楼主| vv123456 发表于 2013-3-13 16:15 | 显示全部楼层 |阅读模式
#include <avr/io.h>   //头文件
#include <util/delay.h>   //引用系统自带的延时函数
#include<string.h>
#include<avr\interrupt.h>
#include <usart.h>  
#include <crc8.h>    //CRC校验函数就在这个文件里面
#define uchar        unsigned char  
#define uint         unsigned int
#define ulong         unsigned long  

#define   amount 10   //设定通讯数据量(包括1个地址帧,n个数据帧,1个校验帧)

unsigned char  send[amount];           //发件箱
unsigned char inbox[amount];           //收件箱
unsigned char n=0;                     //**中断次
//unsigned char temp;
//波特率9600/9个数据位/1个停止位/奇校验/收发开启/接收中断
void usart_init(void)
     {   
       UCSR0A=0x00; //不知道 ABC设置有没有错,
       UCSR0B=0x98;
       UCSR0C=0x06;
       UBRR0H=0x00;
       UBRR0L=51;  //8M,9600
                    DDRD  |= (1<<2);  //MAX485平时工作在接收状态
                    PORTD &= ~(1<<2);
     }  


//--------------------------------------------------------------------
ISR(SIG_UART0_RECV)           //接收中断
{   
    DDRC|=(1<<0);
        PORTC |=(1<<0);
        asm("cli");
       
        unsigned char temp;
        temp=UDR0;                       //保存到收件箱  
        _delay_ms(50);
        PORTD |= (1<<2);
        UDR0=temp;
        _delay_ms(50);
        PORTD &= ~(1<<2);
        asm("sei");
}
//---------------------------------------------------------------------
int main(void)
{
        usart_init();                         //串口初始化
        UCSR0A=0;                            //主机关闭地址筛选功能(多机通讯功能)
        asm("sei");                         //打开全局中断  
       
       
    DDRC|=(1<<0);
        PORTC |=(1<<0);
        while(1)
        {
        }
       
}
中断不了,串口发送11,后不返回11,进入不了中断,不知道那出问题了
refee 发表于 2013-3-13 18:43 | 显示全部楼层
        while(1)
        {
        }
空的 怎么玩         
airwill 发表于 2013-3-13 19:06 | 显示全部楼层
楼上的不用奇怪, 这样做没有问题的.

我看可能是 UART 的中断设置有问题吧, 我没有去看数据手册核对这么多 UCSR0x 的值是否设置正确.
楼主再对照手册核对核对吧, 有没有打开中断允许和中断允许的类型.
airwill 发表于 2013-3-13 19:06 | 显示全部楼层
楼上的不用奇怪, 这样做没有问题的.

我看可能是 UART 的中断设置有问题吧, 我没有去看数据手册核对这么多 UCSR0x 的值是否设置正确.
楼主再对照手册核对核对吧, 有没有打开中断允许和中断允许的类型.
refee 发表于 2013-3-14 08:46 | 显示全部楼层
汗一个 没玩过AVR 孤陋寡闻了
dqyubsh 发表于 2013-3-14 10:02 | 显示全部楼层
下个AVRLIB,如果用GCC,改都不用改了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

31

主题

722

帖子

1

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