这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » ATmega128,C0 ATmega128的T/C0溢出中断为什么进不去?!

共2条 1/1 1 跳转至

ATmega128,C0 ATmega128的T/C0溢出中断为什么进不去?!

院士
2006-09-17 18:14:16     打赏
ATmega128,C0 ATmega128的T/C0溢出中断为什么进不去?!



关键词: ATmega128     溢出     中断     为什么     进不去    

院士
2006-12-22 22:43:00     打赏
2楼
问 T/C0的初始化如下:
void TC0_Init(void)
{
TIMSK=(1<<TOIE0);                            //中断使能
TCCR0=0x00;                                  //先停止
T/C0
//SFIOR=(1<<TSM);                            //同步模式
TCNT0=0x00;                                  //设置初始

TCCR0=(1<<CS00)|(1<<CS01)|(1<<CS02);         //8M/1024
SEI();
}

中断程序声明及定义如下:
#pragma interrupt_handler   TC0_OvIsr:17           //Time0 Overflow
void TC0_OvIsr(void)
{
。。。。   
}

//主程序
void main(void)
{
TC0_Init();
for(;;)
     ;
}
AVRStudio中调试时,在ISR中设断点,确进不去。请大虾指教。非常感谢 1: 检查一下M103熔丝是如何设置的? 2: 试试我的 //定时器0初始化
     TCCR0B=0;
     TCNT0=0xFE98;                            //定时100ms,高字节先写入
     TCCR0B=0X05;                            //预分频比1024
     TIMSK = (1<<TOIE0);                      //timer interrupt sources

试试我的初始化,我的项目已经完工了。 3: 错发//Time0_init
    TCCR0 = 0x00;
    TCNT0 = 0x4C;                              //定时50ms
    
    TCCR1B=0;
    TCNT1=0xF1F0;                            //定时1s,高字节先写入
    TCCR1B=0X05;                        
    //TCCR0 = (1<<CS22)|(1<<CS21)|(1<<CS20);      //预分频比1024
    TIMSK = (1<<TOIE0)|(1<<TOIE1);

初始化定时器0与定时器1 4: 请问,定时时间怎么计算的谢谢 5: 请教AVR前辈。   
检查一下M103熔丝是如何设置的?

我不太理解。我把FUSES设置中的m13兼容选上了。还废了一个片子,
也修改了T/C0的初始化程序,但还是进不去ISR。非常着急。请大虾帮忙!

6: 用ICC application builder 建立一个样例,不要中断错了新的芯片不需要任何设置就可以进中断 7: M103熔丝是用于设置和MEGA103兼容的    M103熔丝是用于设置和MEGA103兼容的,STK500/JTAG ICE/SL ISP等都可以对其进行更改。
    你的程序编译选项设置如果没有错误,应该可以正常运行的,但AVRSTUDIO模拟时的速度比较慢,如果你的机器比较慢的话要稍微耐心等待一会。 8: 非常感谢小易和AVR,//非常感谢小易和AVR, 我的程序如下:(用ICC AVR编译,然后用
//AVRStudio4.09调用.cof文件,现在用模拟仿真)
//在ISR中设置断点,F5后,还是进不了中断,观察相关的寄存器都变化正常;
//真不知道这么好,编写第一个小程序就碰见麻烦。使信心背收打击啊。
//请前辈给看看程序;小弟感激流涕。
#include "iom128v.h"
#include "macros.h"
unsigned char flag;

#pragma interrupt_handler TC0_Isr: 17      //Time0 Overflow    
void TC0_Isr(void)
{
TCNT0 = 0x00;                              //重新定时
NOP();
NOP();
NOP();
}

void TC0_Init(void)
{
DDRD=(1<<PD6);                       //初始化PD6输出低
PORTD&=~(1<<PD6);

SFIOR=(1<<TSM);                      //同步模式
TCCR0=(1<<CS00)|(1<<CS01)|(1<<CS02); //8M/1024
TCNT0=0x00;
}

void main(void)
{
flag=0;
TC0_Init();
TIMSK=(1<<TOIE0);           //T/C0中断使能
SEI();                                      //开全局中断
for(;;)
  {
    NOP();
    NOP();
    NOP();
  }
} 9: 你原来的程序我在AVRSTUDIO409中调过,可以正常产生中断啊。 10: 原来是没有安心等待!模拟仿真进入中断了,原来是没有耐心等到进入中断的时候。一看半天没动静。就以为不行呢。谢谢AVR。谢谢小易,以后还得麻烦你们多帮忙。 11: 在JTAG ICE硬件调试下出现的问题我的T/C0中断在软件模拟环境下调试成功后,通过JTAG下载到目标板。出现如下问题:
请问是怎么回事,目标板的连线及电源和示众都正常。非常感谢!
JTAG ICE Warning: Reading the program counter, an invalid value (0x7FFFFFFF) was received from the device.

JTAG ICE Warning: A problem occured while executing this debug command! Please check the connections, the voltage, and the
clock system of the target application!

Error reading memory  IO  Address:0  Size:64
Error reading memory  REGISTERS  Address:0  Size:32
Error reading memory  SRAM  Address:96  Size:160
12: 原来是硬件的问题。谢谢各位前辈了

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]