Witam,
Jestem absolutnie początkujący i mam taki oto program, jego celem jest wyzwalać diodę LED z częstotliwością 56 kHz, pracuję z kwarcem 3,579545 Mhz.
Dla samego wyzwalania diody z delayem działa wszystko ok, ale w pętli jest problem. dla działania z pętli dioda w ogóle się nie wyzwala.
Proszę o pomoc.
Program pisany z pomocą książki Mikrokontrolery AVR Mirosława Kardasia.
Jestem absolutnie początkujący i mam taki oto program, jego celem jest wyzwalać diodę LED z częstotliwością 56 kHz, pracuję z kwarcem 3,579545 Mhz.
Dla samego wyzwalania diody z delayem działa wszystko ok, ale w pętli jest problem. dla działania z pętli dioda w ogóle się nie wyzwala.
Proszę o pomoc.
Program pisany z pomocą książki Mikrokontrolery AVR Mirosława Kardasia.
Cytat:#include <avr/io.h> nagłówkowego
#include <avr/interrupt.h>
#include <util/delay.h>
#define LED_PIN (1<<PB0)
#define LED_TOG PORTB ^= LED_PIN
void d_led_init(void);
int main(void)
{
// ****** inicjalizacja *********
d_led_init();
sei();
while(1)
{
// LED_TOG;
// _delay_ms(100);
}
}
void d_led_init(void)
{
DDRB=LED_PIN; // wszystkie piny
// ustawienie TIMER0
TCCR0A |= (1<<WGM01); // tryb CTC
TCCR0A |= (1<<CS01)|(1<<CS00); // preskaler = 64
TIMSK |= (1<<OCIE0A); // zezwolenie na przerwanie CompareMatch
}
// ================= PROCEDURA OBSŁUGI PRZERWANIA – COMPARE MATCH
ISR(TIMER0_COMPA_vect)
{
LED_TOG;
}