LGT RTC当普通定时器使用 附程序(GCC)
先上代码:#include <avr/io.h>
#include <iolgt8f0xa.h>
#define F_CPU 16000000
#include <util/delay.h>
#include <avr/interrupt.h>
#define uchar unsigned char
#define uintunsigned int
#define ulong unsigned long
uchardata=0x01;
SIGNAL(RTC_vect)
{
PORTA^=(1<<PA2);//取反PA1
RTCISR&=~(1<<IF);//清除RTC溢出 //不能使用写1清除 PDF 中有问题
RTCTOPH=0X00;
RTCTOPM=0X00;
RTCTOPL=0X80; //RTCOP=0X0002080AT128HZ1S
}
int main(void)
{
CLKPR=0X80;
CLKPR=0X80;
DDRA=0XFF;
PORTA=0X00;
PORTA|=(1<<PA7);
PMCR |= (1 << RC1KEN); //ENRC1K
_delay_ms(5); //等待内部RC1K稳定
RTCTOPH=0X00;
RTCTOPM=0X00;
RTCTOPL=0X80; //RTCOP=0X0002080AT128HZ1S
RTCISR&=~(1<<IF);//清除RTC溢出 //不能使用写1清除 PDF 中有问题
RTCISR|=(1<<IEN);//使能RTC中断
SREG|=0X80; //开总中断
while(!(RTCSR & 0x80)); //判断是不是写入有效
RTCSR|=(1 << CWEN)|(1 << LOAD)|(1 << EN);//|(1 << POWOFF); //
while(1)
{
PORTA^=(1<<PA3);//取反PA1
_delay_ms(100);
}
}
可怜的LGT只有2路定时器还兼顾捕获和PWM输出,这样在某些场合下定时器不够用,
就必须现在这个案子,打起了RTC的注意。
和大家讨论下RTC当普通定时器用的可靠性能。
RTC还没研究到。
LGT好冷清呀。
页:
[1]