Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <avr/io.h>
- #include <avr/interrupt.h>
- #define czas 224 // Ilość taktów potrzebna do odmierzenia czasu 100ms
- volatile unsigned char a;
- int main (void)
- {
- a = 70;
- DDRA = 0xFF;
- TCCR0 = (1 << CS02) | (1 << CS00) | (1 << WGM01); // preskaler 1024, tryb CTC
- OCR0 = czas; // przypisanie wartości rejestru OCR0
- TIMSK |= (1 << OCIE0); // zezwolenie na przerwania od zrównania stanu rejestru TCNT0 i OCR0
- sei(); // globalne zezwolenie na przerwania
- while(1);
- }
- ISR(TIMER0_COMP_vect)
- {
- a--;
- if(a < 7) // ilość przepełnień timera potrzebna do odliczenia czasu 100ms
- {
- PORTA = 0xFF;
- }
- if(a == 0)
- {
- a = 70;
- PORTA = 0X00;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement