Advertisement
Ostu

Untitled

Mar 28th, 2021
2,516
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <avr/io.h>
  2. #include <avr/interrupt.h>
  3.  
  4. #define czas 224 // Ilość taktów potrzebna do odmierzenia czasu 100ms
  5.  
  6. volatile unsigned char a;
  7.  
  8. int main (void)
  9. {
  10.     a = 70;
  11.     DDRA = 0xFF;
  12.     TCCR0 = (1 << CS02) | (1 << CS00) | (1 << WGM01); // preskaler 1024, tryb CTC
  13.     OCR0 = czas; // przypisanie wartości rejestru OCR0
  14.     TIMSK |= (1 << OCIE0); // zezwolenie na przerwania od zrównania stanu rejestru TCNT0 i OCR0
  15.  
  16.     sei(); // globalne zezwolenie na przerwania
  17.  
  18.     while(1);
  19. }
  20.  
  21. ISR(TIMER0_COMP_vect)
  22. {
  23.     a--;
  24.     if(a < 7) // ilość przepełnień timera potrzebna do odliczenia czasu 100ms
  25.     {
  26.         PORTA = 0xFF;
  27.     }
  28.     if(a == 0)
  29.     {
  30.         a = 70;
  31.         PORTA = 0X00;
  32.     }
  33. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement