Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Timer T0 Asembler 8051

07 Cze 2007 19:33 4090 4
  • Poziom 10  
    Witam. Mam taki o to problem. Mam projekt stopera na at89s8253 przy użyciu Timer T0. Przy inicjalizacji przerwania od T0 czas zaczyna być odmierzany.. Wszystko ładnie śmiga, ale niestety nagle czas się przestaje zmieniać ( na tej samej wartości ).. W przerwaniu nic nie zmieniam odnośnie ustawień T0 ..

    Przykładowy program przerwania:
    Code:

    OBS_T0
       INC R3
       CJNE R3,#10,SKOK
       MOV R3,#0
    SKOK:
       MOV A,#11000000B
       CALL INSTRUKCJA
       CALL DELAY
       MOV DPTR,#LICZBY
       MOV A,R3
       MOVC A,@A+DPTR
       CALL DANA
          
       RETI


    Podprogramy INSTRUKCJA i DANA służą odpowiednio do wpisania instrukcji i wypisania danej na LCD. Za wszelkie odpowiedzi będę bardzo wdzięczny!

    Moderowany przez McRancor:

    Temat poprawiłem, na przyszłość staraj się z tematu robić podpowiedź a nie zagadkę

  • Poziom 33  
    A w jakim trybie uruchamiasz timer?
    Z kodu wynika że z autoprzeładowaniem.
  • Poziom 10  
    Witaj! Uruchamiam Timer T0 w trybie 1 - jako 16-bitowy zliczacz impulsów wewnętrznego generatora zegarowego. W programie głównym na początku ustawiam:

    Code:
    ..
    
            MOV A,#00010001B
            MOV TMOD,A
            MOV A,#00001010B
            MOV IE,A
          
            MOV A,#0
            MOV TL0,A
            MOV TH0,A
            MOV A,#1FH
            MOV TH1,A
            MOV TL1,A
       
            SETB EA
            SETB ET0
            SETB ET1
    ..


    No i potem aktywuje przyciskiem znacznik TR0. Chwilę pochodzi i niestety po jakichś 5 sekundach klapa.
  • Poziom 32  
    Te procedury proponowałbym wywalić z tego przerwania i przenieść do części głównej, bo może za długo się wykonują i "puchnie" stos.
  • Poziom 39  
    pan_rob napisał:
    Witam. Mam taki o to problem. Mam projekt stopera na at89s8253 przy użyciu Timer T0. Przy inicjalizacji przerwania od T0 czas zaczyna być odmierzany.. Wszystko ładnie śmiga, ale niestety nagle czas się przestaje zmieniać ( na tej samej wartości ).. W przerwaniu nic nie zmieniam odnośnie ustawień T0 ..
    ...

    To ja odpowiem pytaniem , na pytanie ;)
    Czy stosujesz "odkrycia" , na które wpadłeś w tym poście :?:
    https://www.elektroda.pl/rtvforum/viewtopic.php?p=3958702&highlight=#3958702

    Piotrek