打印

avr644中断问题

[复制链接]
1116|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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 的值是否设置正确.
楼主再对照手册核对核对吧, 有没有打开中断允许和中断允许的类型.

使用特权

评论回复
5
refee| | 2013-3-14 08:46 | 只看该作者
汗一个 没玩过AVR 孤陋寡闻了

使用特权

评论回复
6
dqyubsh| | 2013-3-14 10:02 | 只看该作者
下个AVRLIB,如果用GCC,改都不用改了。

使用特权

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

本版积分规则

31

主题

722

帖子

1

粉丝