打印
[AVR单片机]

时钟的变化问题

[复制链接]
1402|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
laslison|  楼主 | 2010-3-12 23:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<iom48v.h>
#include<macros.h>
#pragma interrupt_handler TIMER0_COMPA:15
extern timer0_init(void);
extern hanzi_Init(void);
unsigned char second,minute,hour;
unsigned char COUNTER;

void TIMER0_COMPA(void)
{
TCNT0=0;
COUNTER++;
  if(COUNTER==100)
  second++;
}

void main()
{
  COUNTER=0;
  second=0;
  minute=0;
  hour=0;
  timer0_init();
  SPI_Init();
  hanzi_Init();
  SREG=(1<<7);
while(1)
{
    if(second==60)
  {
    second=0;
    minute++;
  }
    if(minute==60)
  {
      minute=0;
      hour++;
  }
    if(hour==24)
  {
      hour=0;
  }
}
}
时钟的初始化
#include<iom48v.h>
#include<macros.h>
void timer0_init()
{
  TCCR0A=0;//决定了比较匹配发生时输出引脚OC0A 的电平
              //OC0A 以比较匹配输出的方式进行工作
  TCCR0B=0x05;//预分频101,为1024分频
  OCR0A=0xc4;
  
  //51.2*196=10035.2
  TIMSK0|=(1<<OCIE0A);
  
}   
谁可以帮忙分析一下,在COUNTER计数处存在问题,要++196时间加一次,下一次要++256再到196,时间存在问题,但是不知道怎么改正,同时希望把在LCD上面显示的程序加进来。谢谢!!!

相关帖子

沙发
麻辣鸭脖子| | 2010-3-13 22:53 | 只看该作者
顶起

使用特权

评论回复
板凳
Karlshen| | 2010-3-13 22:59 | 只看该作者
void TIMER0_COMPA(void)
{
TCNT0=0;
COUNTER++;
if(COUNTER==196)
{
  second++;
  COUNTER = 0;
}
}

使用特权

评论回复
地板
suoma| | 2010-3-16 22:25 | 只看该作者
可能计算存在问题

使用特权

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

本版积分规则

95

主题

791

帖子

1

粉丝