Čauves,
měl bych prosbu ohledně nastavení timer1 na attiny24/45/85.
Ohledně nastavení jsem se docela ztratil a datasheetu také nejsem úplně moudrý.
Potřeboval bych ho nastavit v 8bitovém režimu a v 16bitovém, vysvětlit by mi někdo na examplu jak na to??
timer 0 jsem nastavil bez problému, ale v jedný aplikaci potřebuji používat dva timery.
děkuji.
Ahoj.
Timer 0 a 1 jsou osmibitové
Takže nastavovat něco 16-bitově je nesmysl.
Potřebuji zjistit, jak ten Timer 1 chceš provozovat.
Zda CTC, PWM nebo jiné.
Jinak podle datasheetu je to jednoduché, stačí procházet registr po registru a nastavovat spravne hodnoty.
Timer 1 stejně jako Timer 0 chci provozovat v režimu CTC a PWM.
Mne stačí jen vypsat ty registry jak mají být nastavené, já se v tom datasheetu trochu ztratil u timer 1.
děkuji
CTC
*
* Timer1Example.c
*
* Created: 14.09.2021 21:42:06
*/
#define F_CPU 1000000
#include <avr/io.h>
#include <avr/interrupt.h>
//Set timer to 1hz
void setupTimer1() {
// Clear registers
TCNT1 = 0;
TCCR1 = 0;
// OCR1C ((60)+1) = (1000000 HZ CPU/((1 HZ)*1024))
OCR1C = 60;
// interrupt COMPA
OCR1A = OCR1C;
// CTC
TCCR1 |= (1 << CTC1);
// Prescaler 16384
TCCR1 |= (1 << CS13) | (1 << CS12) | (1 << CS11) | (1 << CS10);
// Output Compare Match A Interrupt Enable
TIMSK |= (1 << OCIE1A);
}
ISR(TIMER1_COMPA_vect) {
// 1 Hz Interrupt
}
int main(void)
{
setupTimer1();
sei();
/* Replace with your application code */
while (1)
{
}
}