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

Jak napisać program w C dla ATMega 128 z odliczaniem czasu na wyświetlaczu?

baartt 15 Lis 2005 17:56 3194 5
REKLAMA
  • #1 1992652
    baartt
    Poziom 2  
    Posty: 4
    Witam,
    potrzebuje napisac program w WinAvr sterujacy urzadzeniem ATMega 128 a dokladnie odliczajacy czas w dol (60, 59...2,1) i pokazujacy to na wyswietlaczu urzadzenia ATMega 128.
    Program ma byc w C. Moge uzywac WinAvr, MegaLoad.
    Prosilbym o wszelka pomoc na mail:
    baartt(_at_)baartt.com

    Z gory dziekuje i pozdrawiam
  • REKLAMA
  • Pomocny post
    #2 1992817
    valarian
    Poziom 22  
    Posty: 647
    Pomógł: 33
    Ocena: 112
    Jako ze nie przepadam za pisaniem na maile, to odpowiem tutaj...
    Musisz skonfigurowac odpowiedni timer i przy przerwaniu, jakie generuje [przy zliczeniu w gore lub w dol] wywolywac funkcje, ktora np. zwieksza jakas zmienna do okreslonej wartosci...
    Nie wiem, jak z adresami rejestrow w ATM128, ale na ATM8 wygladaloby to tak [timer0]:
    
    
    int czas=0;
    int timer0=131;
    
    SIGNAL (SIG_OVERFLOW0)
    {
     czas++; if (czas==5000) BUUM(); //jezeli czas osiagnal 5000ms, to wywolaj funkcje BUUM();
     TCNT0 = timer0; // zaladowanie do licznika wartosci poczatkowej
     UpdateLCD(czas); //funkcja, ktora wyswietla zmienna czas na LCD
    } 
    
    void main()
    {
      TIMSK |= (1<<TOIE0); // zezwolenie przerwania po przepełnieniu timera T0
     TCNT0 = timer0; // ustawienie wartosci początkowej
     TCCR0 = 2; //ustawienie preskalera
     sei(); //wlaczenie przerwan
    }
    
    


    Tak to wyglada... Przy takich ustawieniach preskalera i rejestru TCNT0 [kwarc 1MHz] licznik generuje przerwanie z f=1kHz, czyli zmienna czas zwieksza sie co 1ms... Jak wyliczyc te parametry w zaleznosci od kwarcu, znajdziesz w manualu uC... Ewentualnie mam gdzies do tego odpowiedni program...

    Nie wiem, jakiego uzywasz LCD, wiec Ci nie pomoge w tej kwestii...

    Pozdrawiam...
  • REKLAMA
  • #3 1992843
    baartt
    Poziom 2  
    Posty: 4
    Dzieki
    a mozna prosic tez o ten program?
    Mam wyswietlacz HD44780U (LCD-II) Hitachi.
    Dzieki raz jeszcze za pomoc.
  • REKLAMA
  • Pomocny post
    #4 1992967
    valarian
    Poziom 22  
    Posty: 647
    Pomógł: 33
    Ocena: 112
    Prosze bardzo...
    Powodzenia...

    Plik sprawdzony programem Avast Anitivirus 4.6 z baza danych sprzed miesiaca...
    Załączniki:
    • kalk.rar (93.02 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • #5 2056132
    baartt
    Poziom 2  
    Posty: 4
    A mozliwe jest ze napisalby mi Pan caly program w programie WinAvr
    prgram ktory steruje wyswietlaczem HD44780U (LCD-II) Hitachi z wykorzystaniem ATMega 128?

    Ma to byc prosty timer odliczajacy w dol plus dodatkowo zegarek.

    Jestem zielony z tego tematu, probowalem cos zrobic i nic,
    z gory dziekuje,
    Bartek
  • #6 2056243
    valarian
    Poziom 22  
    Posty: 647
    Pomógł: 33
    Ocena: 112
    Chetnie bym pomogl, ale niestety nie mam teraz czasu. Ucze sie, a ten okres mam wyjatkowo goracy.
    Moze ktos, kto pisze na ATMega128 bylby chetny pomoc?
REKLAMA