Сообщение от ua3rad
|
Добрый день. В микропаскале есть библиотеки PWM1, PWM2 и PWM 16 bit. Можно ли использовать эти библиотеки для отсчета интервалов времени, например для реализации часов
|
За микропаскаль не скажу, для этого обычно используют прерывания по таймеру. Для часов надо использовать кварц, а лучше отдельную микросхему, например DS1307, тогда не надо заботиться о резервном питании для микроконтроллера. Я работаю в CVAVR, там есть библиотеки для работы с этими микросхемами.
Вот расчёт таймера для часов на кварце 14 745 600 Гц
//Clock value: 460,800 kHz
//on top=0xFFh cycle=555.5 us 1sec=1800 cycles
unsigned char sec=0;
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
static unsigned int counter=0;
counter++;
if (counter›1799) {counter=0; sec++;};
}
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 460,800 kHz
// Mode: Fast PWM top=0xFF
// OC0 output: Non-Inverted PWM
ASSR=0x00;
TCCR0=0x6B;
TCNT0=0x00;
OCR0=0x00;
Так что без всяких библиотек, но надо знать работу таймера. На gaw.ru есть перевод даташита
http://www.gaw.ru/html.cgi/txt/doc/m...h128/index.htm