Witam!
Mam taki problem. potrzebuję zrobić funkcję opóźniającą 1us. To jest łatwe do zrobienia jak mam kwarc 8MHz. Ale ja bym musiał wykorzystać do tego celu 11.0592 MHz. A oto kawałek kodu:
jakby to wykonać na tym kwarcu, który mam? myslalem nad preskalerem 8, ale wtedy otrzymuje około 1.449 us. Chyba, że program przyjmuje w przybliżeniu jako jeden cykl - 1us.
Pozdrawiam
Mam taki problem. potrzebuję zrobić funkcję opóźniającą 1us. To jest łatwe do zrobienia jak mam kwarc 8MHz. Ale ja bym musiał wykorzystać do tego celu 11.0592 MHz. A oto kawałek kodu:
void czekaj_us(uint16_t usekundy)
{
OCR1A = usekundy;
TIFR |=(1<<OCF1A); //TIFR - Timer Interrupt Flag Register.
Timer1_ON; //wlacz Timer1
while(!(TIFR&(1<<OCF1A))){}; //podczas gdy warunek nie jest spełniony
Timer1_OFF; //wylacz Timer1
}
jakby to wykonać na tym kwarcu, który mam? myslalem nad preskalerem 8, ale wtedy otrzymuje około 1.449 us. Chyba, że program przyjmuje w przybliżeniu jako jeden cykl - 1us.
Pozdrawiam