[AVR单片机] 请教:用ATmega128定时器1控制LED每隔1s闪烁,怎么不对,现象:LED常亮

[复制链接]
 楼主| aaxiaoduan 发表于 2013-8-6 15:05 | 显示全部楼层 |阅读模式
#include<iom128v.h>
#include<macros.h>
#define uchar unsigned char
#define uint unsigned int

uchar tt;

#pragma interrupt_handler timer1_ovf_isr:15
void timer1_ovf_isr()
{
    tt++;
    TCNT1H=0XCF;  //赋初值定义0.1s
    TCNT1L=0X2B;
    if(tt==20)    //2s时回零
        tt=0;
    if(tt<=10)
        PORTE=0XFF;
    else
        PORTE=0X00;
          
}


void init_timer1()
{
        TCCR1B=0X03;   //64分频
        TIFR=0X01;
        TIMSK=0X04;
        TCNT1H=0XCF;
        TCNT1L=0X2B;
        SREG|=BIT(7);
}


void main()
{
    DDRE=0XFF;
    PORTE=0X00;
    init_timer1();
    while(1);
}
qin552011373 发表于 2013-8-6 15:24 | 显示全部楼层
估计都没进中断  这程序写的太那个了  一句注释都没有的
 楼主| aaxiaoduan 发表于 2013-8-6 15:47 | 显示全部楼层
qin552011373 发表于 2013-8-6 15:24
估计都没进中断  这程序写的太那个了  一句注释都没有的

这么简单的程序,该注释的都注释了
qin552011373 发表于 2013-8-6 15:57 | 显示全部楼层
aaxiaoduan 发表于 2013-8-6 15:47
这么简单的程序,该注释的都注释了

对  是很简单
gaogao303 发表于 2013-8-6 16:12 | 显示全部楼层
一步一步的调,先让它全灭,看LED灭不灭
huangxz 发表于 2013-8-6 17:14 | 显示全部楼层
qin552011373 发表于 2013-8-6 15:24
估计都没进中断  这程序写的太那个了  一句注释都没有的

其实程序也够简单了,只是没有icc,没法试啊,呵呵
yfei827 发表于 2013-8-6 17:29 | 显示全部楼层

#include<iom16v.h>
#include<macros.h>
#define uchar unsigned char
#define uint unsigned int

uchar tt;

#pragma interrupt_handler timer1_ovf_isr:15
void timer1_ovf_isr()
{
    tt++;
    TCNT1H=0XCF;  //赋初值定义0.1s
    TCNT1L=0X2B;
    if(tt==20)    //2s时回零
        tt=0;
    if(tt<=10)
        PORTC=0XFF;
    else
        PORTC=0X00;
           
}


void init_timer1()
{
        TCCR1B=0X03;   //64分频
        TIFR=0X01;
        TIMSK=0X04;
        TCNT1H=0XCF;
        TCNT1L=0X2B;
        SREG|=BIT(7);
}


void main()
{
    DDRC=0XFF;
    PORTC=0X00;
    init_timer1();
    while(1);




程序验证过。。能按照你的要求运行。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

2

帖子

0

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