打印
[AVR单片机]

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

[复制链接]
2998|6
手机看帖
扫描二维码
随时随地手机跟帖
楼主
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);




程序验证过。。能按照你的要求运行。。。

使用特权

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

本版积分规则