lazybones 发表于 2012-10-26 13:24:26

atmega8515的问题,救命啊

本帖最后由 lazybones 于 2012-10-26 15:07 编辑

//芯片atmega8515


#include <avr/io.h>

void cli()
{
        SREG &= 0x7f;
}

void fTimerInit()
{
        TCCR0 = 0x01;                        //无分频
        TIMSK = 0x02;                        //开中定时器0溢出
}


void sei()
{
        SREG |= 0x80;
}

void main()
{
        cli();
        fTimerInit();
        sei();
        while(1)
        {

        }
}




ISR(TIMER0_OVF_vect)
{
    PORTA = 0x00;
}

进不去中断,定时器0溢出的时候芯片重启了,求帮助啊....救命

shuipaopao 发表于 2012-10-26 15:30:21

定时器初始化的时候给数据寄存器赋值了吗?TCNT0=??还有既然是定时器溢出中断,为什么中断里没有给TCNT0赋值?!

lazybones 发表于 2012-10-26 17:20:03

不赋值就是0-255吧,也不应该芯片重启啊

yklstudent 发表于 2012-10-26 21:12:31

/*
* avr8515.c
*
* Created: 2012/10/26 星期五 13:36:01
*Author: Administrator
*/


#include <avr/io.h>
#include <avr/interrupt.h>
#ifndef F_CPU
#define F_CPU        8000000UL
#endif

void Time0_Init(void)
{
        TCCR0 = 0x02;
        TIMSK = 0x02;
        TIFR = 0x00;
        TCNT0 = 0;
}

void Port_Init(void)
{
        DDRC = 0xFF;
        PORTC = 0x00;
}

int main(void)
{
        Port_Init();
        Time0_Init();
        sei();
    while(1)
    {
      //TODO:: Please write your application code
    }
}

ISR(TIMER0_OVF_vect)
{
        PORTC ^= 0x55;
}

yklstudent 发表于 2012-10-26 21:14:05

#include <avr/interrupt.h>
这个包涵进去试试

lazybones 发表于 2012-11-6 10:21:22

本帖最后由 lazybones 于 2012-11-6 10:42 编辑

在while()中没有语句会影响到中断吗?
我软件彷真的时候好像老进去,出不来,但在while(1)中随便加一句就好了
页: [1]
查看完整版本: atmega8515的问题,救命啊