www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik XC167 - Timer Problem


Autor: Tobias Faiß (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,
ich schreibe gerade an einem in Assembler geschriebenes 
Reaktionszeitprogramm für den XC167CI.
Entwickelt wird mit Keil µVision 3 Eval.

Sobald ich versuche den Timer zu initialisieren bzw. zu starten, will 
dieser jedoch nicht starten.
Quellcode sieht wie folgt aus:

main PROC NEAR ; Start Hauptprogramm

startWarte:
movb P1H, #00h
taster:
movb rl3, DP1H
cmpb rl3, #01h
jmp cc_ne, taster

mov T2CON, #0284h
mov T2IC, #044h
mov T2, #0FFFFh


movb rl3, #00h
movb DP1H, rl3

call pause

movb P1H, #11111111b
bset IEN
bset T2R

stopWarte:
cmp r4, #00h
jmp cc_eq, goError
movb rl3, DP1H
cmpb rl3, #01h
jmp cc_ne, stopWarte

bclr T2R

movb rl3, #00h
movb DP1H, rl3

call zeitumrechnung

endeMain:
jmp cc_uc, endeMain

goError: call error


main ENDP Ende Hauptprogramm


----

Im Debug-Mode innerhalb von keil wird der Timer zwar initialisiert, aber 
sobald der Debugger über den "bset T2R" Befehl hinweggeht, bleibt der 
Status des Timers nach wie vor auf "Stopped" bzw. fängt nicht an zu 
zählen...

Kann mir dort jmd vllt weiterhelfen, wo der (denk-)fehler steckt?? Wäre 
super :)

Vielen Dank im Voraus

Gruß

Tobias

Autor: Microman (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Tobias,

überprüfe doch bitte mal wie das Disable-Bit im SYSCON3 Register für die 
GPT Einheit steht. Vielleicht ist der Wert falsch. (User's Manual 6-58)

Gruß
Microman

Autor: Tobias Faiß (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Microman,
erstmal danke für die Hilfe :)

Inwiefern kann ich dieses Bit überprüfen? Soweit ich weiß, wird beim 
Reset bzw beim Startup das Register mit nem Standardwert gesetzt 
(9FD0h). Laut User Manual 6-6 müssten dabei auch die GPT enabeld 
werden...

Danke nochmals für die Hilfe!

Gruß

Autor: Microman (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

das ist soweit korrekt! Dachte nur falls Du den Registerwert im Startup 
oder so änderst, könnte da ja vielleicht was schief gegangen ist. Poste 
doch mal ein Bild was Dir der Keil Debugger beim T2 anzeigt. Ich 
verwende in meinem Projekt auch Keil mit dem XC167. Ich könnte dann 
deine Settings mal bei mir laden und schauen was bei mir passiert.

Gruß

Microman

Autor: Tobias Faiß (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Microman,
wäre super, wenn du das ausprobieren könntest!
Verwendest du auch Assembler?

Bisher habe ich kein Startup-File eingebunden, da ich (siehe div. andere 
threads) keine wirkliche Dokumentation gefunden habe, wie ich unter 
Assembler das Startup einbinde bzw. es zum laufen bekomme...
Wäre super, wenn du da weiterhelfen könntest :)

Danke im Voraus

Gruß Tobias

Autor: Microman (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Tobias,

habe deine Settings bei mir mal geladen und der Timer läuft wie sollte. 
Habe Dir mal einen Screenshot von meine Einstellungen angehängt. Kannst 
die ja mal mit deinen vergleichen. Der große Unterschied ist aber, dass 
Du anscheinend den Simulator verwendest und ich es mit einer realen 
Hardware ausprobiert habe. Leider habe ich keine Erfahrungen mir dem 
Simulator sondern nur via OCDS Dongle mit realer Hardware.
Aber vergleich doch mal und melde Dich doch hier wieder.

Gruß
Microman

Autor: Tobias Faiß (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Microman,
bisher habe ich nur im Keil programmiert, weil ich kein entsprechendes 
Dokument gefunden habe, das erklärt, wie ich Programme bzw. die 
Startup-Datei initialisieren/konfigurieren muss, damit es auf der 
Hardware funktioniert (Benutze den XC167 von Phytec). Deswegen benutze 
ich auch primär den Debug-Modus aus Keil :)
Da es ja bei dir einwandfrei funktioniert, müsste es wohl an den 
Settings liegen... Hast du mir evtl einen Tipp, wie ich das Board 
"richtig" initialisieren muss bzw lauffähig bekomme mit der 
Startup-Datei? Ein Beispielprogramm wäre auch schon klasse... Ich 
vermute sehr stark, das bei der Initialisierung irgendwo der Hund 
begraben ist...

Danke nochmals fürs Helfen! Ist echt klasse! :)

Gruß

Autor: TManiac (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

es gibt ein Register in welchem die ganzen Einheiten de-/aktiviert 
werden ( weiß den Namen leider nicht aus dem Kopf). Ich habe mit einem 
XC161 programmiert, bei dem eigentlich auch laut Voreinstellung die 
CapComs aktiv sein sollten und habe mich gewundert warum mein µC nicht 
das macht was er sollte. Bis ich mal den Inhalt des besagten Registers 
auf die LEDs gelegt habe. Da war die CapCom2 deaktiviert. Ich habe 
glaube da war irgend was noch deaktiviert. Bin mir aber nicht mehr so 
sicher.

Gruß, TManiac

Autor: Microman (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Tobias,

hast du immer noch dein Problem? War leider in letzter Zeit sehr 
beschäftigt, Sorry! Melde dich doch kurz.

Microman

Autor: Tobias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!
Ja, ich hab in der Zwischenzeit versucht weitere Startup-Dateien zu 
"bauen" bzw. in meine Assemblerprogramme zu integrieren - ohne Erfolg...
bin mittlerweile ziemlich ratlos, is wie nach ner nadel im heuhaufen zu 
suchen :-/

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.