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

AVR C Atmega32 przerwania bez zmiany wyjść na pinach

jacik 19 Lis 2009 09:48 1687 7
REKLAMA
  • #1 7280312
    jacik
    Poziom 12  
    Witam
    Mam problem
    Wszystko działało na portach PA PC i PD4-7 ale jak podpiąłem cały PD PB do drugiej części matrycy diodowej to przestało działać chyba przez przerwania.
    Zmieniłem rodzaj przerwania na czasomierz z uwagi ze chyba piny INT0 zmieniały stany.
    Wszystkie porty mam jako wyjścia a w części matrycy mam błędy zawsze w tym samym miejscu.

    Jaki rodzaj przerwania użyć do odswieżania ekranu i jak go skonfigurować żeby nie zmieniał stanów wyjść ?
  • REKLAMA
  • REKLAMA
  • #3 7280571
    jacik
    Poziom 12  
    a ta się to jakoś ustawić rejestrami żeby zmieniało ??
    Kopiowałem gotowe przykłady ale niestety mam w domu wiec nie wkleje kodu ale to wygląda mniej więcej tak:

    volatile unsigned char EKRAN[128];//bufor wyświetlanej grafiki

    volatile const unsigned char GRAFIKA1[]={
    136,131,83,200,243,133,30,49
    (... 128 bajtów)
    };//END


    SIGNAL (SIG_OVERFLOW1)
    {
    TCNT1 = 0xFF00; // przeładuj timer 1
    //odświeżanie matrycy w oparciu o tablice EKRAN
    }
    int main(void)
    {

    TIMSK = _BV(TOIE1); // włącz obsługę przerwań T/C1
    TCNT1 = 0xFF00; // wartość początkowa T/C1
    TCCR1A = 0x00; // włącz tryb czasomierza T/C1
    //TCCR1B = _BV(CS10)|_BV(CS12); // preskaler ck/1024
    //zmieniłem na: ck/64
    TCCR1B = _BV(CS10)|_BV(CS11);


    sei(); // włącz obsługę przerwań
    while()
    {
    //modyfikacja tablicy ekranu co jakiś czas z tablic GRAFIKAX

    }
    }
  • #5 7281082
    Balu
    Poziom 38  
    Bardzo poważny opis problemów...
    "Przestało działać" taki... rzeczowy
    Jak pisze nasz muzyk forumowy(:P) nic samo z siebie nie zmienia i nie generuje.
    Do wyświetlania multiplexowanego użyj timera. Np. OVF na pewno nie zmienia stanów;P
  • REKLAMA
  • #6 7281112
    Konto nie istnieje
    Konto nie istnieje  
  • REKLAMA
REKLAMA