logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

ATTiny85 - Pytanie odnośnie programu do wyzwalania diody

Pontar90 12 Maj 2014 22:46 852 2
REKLAMA
  • #1 13595908
    Pontar90
    Poziom 9  
    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.

    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;
    }

  • REKLAMA
  • #3 13596126
    Pontar90
    Poziom 9  
    Dzięki wielkie! Już wszystko działa. Z tym rejestrem B zorientowałem się wcześniej ale nie doczytałem o rejestrze OCR0 i w tym leżał mój błąd.
REKLAMA