Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Timer T7 Kategorie: Progr. Assembler, TaskingTools, OS (von Hansi - 4.12.2004 0:49)
Ich nutze:
C-Control II Unit, C-Control II Station, OSOPT V3.0
Guten Abend,

ich habe momentan ein Problem damit für mein FS20-Treibermodul den Timer T7 zu verwenden.

Hintergrund:
Die aktuelle Empfangsroutine blockiert das System, wenn kein wechselndes Signal am Eingang
anliegt. Ich habe also den Timer T7 dafür mi�braucht, einen Timeout-Abbruch zu realisieren.


T7_             EQU 0F050h
T7IC_           EQU 0F17Ah
T78CON_     EQU 0FF20h
T7REL_       EQU 0F054h


.......

        mov r4,#0
        EXTS   #0,#1
        mov T7REL_,r4       ; Reload-Wert Timer 7 =0

        mov r4,#0
        EXTS   #0,#1
        mov T7IC_,r4           ; Interupt T7 aus

        mov r4,#042h
        EXTS   #0,#1
        mov T78CON_,r4     ; Timer 7 starten

        mov r4,#0
        EXTS   #0,#1
        mov T7_,r4              ; Timer 7 auf 0 setzen


Loop:    

        EXTS   #0,#1
        mov r4,T7_                        ; Timer 7 in r4 laden
        cmp r4,#Max_Wartezeit     ; #400
        jmpr cc_UGE, Timeout
       ......                                   ; hier wird der Port eingelesen und auf Signal geprüft
       jmpr Loop
       .......
                                                 ; dieser Timeout arbeit einwandfrei, aber die 2. Schleife
                                                 ; scheint endlos zu sein oder die CC2 stürzt ab

       .......
        mov r4,#0
        EXTS   #0,#1
        mov T7_,r4              ; Timer 7 wieder auf 0 setzen


Loop2:    

        EXTS   #0,#1
        mov r4,T7_                        ; Timer 7 in r4 laden
        cmp r4,#Max_Signallänge  ; # 750
        jmpr cc_UGE, Timeout
       ......                                   ; hier wird der Port eingelesen und auf not Signal geprüft
       jmpr Loop2
      .......
                                               
Timeout:
        mov r4,#002h
        EXTS   #0,#1
        mov T78CON_,r4     ; Timer 7 stopp

        mov r4,#4                 ; Kennung für Ã?berlänge
        ret



Ohne Timer ( 2. Schleife ) und einfache Zählung der Schleifendurchläufe in der 2. Schleife funktioniert
die Sache, allerdings dann natürlich nicht so genau.
Den dazwischen liegenden Sourche habe ich mehrmals geprüft, sogar neu geschrieben immer
mit dem gleichen Ergebnis. Die Routine endet scheinbar nicht, selbst wenn ein Signal anliegt.
Es muÃ? also ein Absturz sein. Ich habe auch schon den Timer angehalten bevor ich den Wert auf 0
gesetzt habe, auch ohne Erfolg.

GruÃ? Hansi


    Antwort schreiben


Antworten:

Re: Timer T7 (von Hansi - 4.12.2004 3:35)
    Re: Timer T7 (von Hansi - 4.12.2004 6:51)
        Off Topic: Re: Timer T7 (von krassos - 4.12.2004 9:58)
            Re: Off Topic: Re: Timer T7 (von reneforster - 4.12.2004 12:09)
                Re: Off Topic: Re: Timer T7 (von Hansi - 4.12.2004 16:17)