-         

Ergebnis 1 bis 4 von 4

Thema: tiny26 Timer Interrupt

  1. #1

    tiny26 Timer Interrupt

    Anzeige

    Hallo,
    ich versuche beim Tiny26 den timer Interrupt zu nutze.
    Leider springt das Prog nicht in die Interrupt Sub.
    Stell ich mich nur blöd an? Was mach ich falsch?

    Grüsse Klaus

    Code:
    $regfile = "At26def.dat"
    $crystal = 8000000
    
    '----------------Timer config---------------------------
    Config Timer0 = Timer , Prescale = 256
    Enable Timer0
    Enable Interrupts
    On Ovf0 Tim0_isr
    
    '----------------- RS232 Config ------------------
    Open "coma.5:9600,8,n,1" For Output As #1
    Dim Timervar As Integer
    
    Stop Timer0
    
    Do
       Print #1 , Timervar
       Waitms 500
    Loop
    
    Tim0_isr:
     Incr Timervar
    Return
    
    End

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    01.02.2006
    Beiträge
    16
    Hi g_lock,

    wenn Du den Timer stoppst, läuft er auch nicht.
    Schmeiß den Befehl "Stop Timer0" raus.

    Gruß.
    Rainer

  3. #3
    Oh, wie peinlich!

    Ich hatte das so:

    Code:
    $regfile = "At26def.dat"
    $crystal = 8000000
    '----------------Timer config---------------------------
    Config Timer0 = Timer , Prescale = 256
    Enable Timer0
    Enable Interrupts
    On Ovf0 Tim0_isr
    '----------------- RS232 Config ------------------
    Open "coma.5:9600,8,n,1" For Output As #1
    Dim Timervar As Integer
    
    Stop Timer0
    Start Timer0
    Do
       Print #1 , Timervar
       Waitms 500
    Loop
    
    Tim0_isr:
     Incr Timervar
    Return
    
    End
    wollte den

    Stop Timer0 Löschen
    Start Timer0 lassen.
    habs genau umgekehrt gemacht.

    Es läuft leider trotzdem nicht.[/quote]

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    01.02.2006
    Beiträge
    16
    Ok, hab's jetzt mal durch den Simulator gejagt.
    Der Timerinterrupt lässt dem Software-UART keine Chance mal was auszugeben. Der Timer springt ca. alle 8000 µS in die ISR. Scheint mit dem Software-UART nicht zu gehen. Probier mal mein Beispiel. Nur mal so zum testen.
    Code:
    $regfile = "At26def.dat"
    $crystal = 8000000
    '----------------Timer config---------------------------
    Config Timer0 = Timer , Prescale = 1024
    Enable Timer0
    Enable Interrupts
    On Timer0 Tim0_isr
    '----------------- RS232 Config ------------------
    Open "coma.5:9600,8,n,1" For Output As #1
    Dim Timervar As Integer
    Do
       Stop Timer0
       Print #1 , Timervar
       Start Timer0
       Waitms 500
    Loop
    
    Tim0_isr:
     Incr Timervar
    Return
    
    End
    Bei Timervar > 32767 kriegst Du einen Überlauf und es wird von -32767 bis +32767 gezählt .... also nicht erschrecken
    Ist aber zum testen jetzt egal

    Gruß.
    Rainer

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •