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

Re: Timer T7 Kategorie: Progr. Assembler, TaskingTools, OS (von Hansi - 4.12.2004 3:35)
Als Antwort auf Timer T7 von Hansi - 4.12.2004 0:49
Ich nutze:
C-Control II Unit, C-Control II Station, OSOPT V3.0


Guten Morgen,

bevor Ihr Euch jetzt den Kopf zerbrecht, der Fehler hat sich vermutlich doch woanders einge-
schlichen.
Ich habe bei der Beseitigung des Bugs ( siehe Bug im FS20-Modul ) ein Semikolon falsch gesetzt.
Das kann ich allerdings erst heute Nachmittag praktisch prüfen ich werde mich dann auf jedenfall
noch einmal dazu äu�ern.

MfG Hansi



> 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 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)