www.mikrocontroller.net

Forum: Mikrocontroller und Elektronik XC167 - Timer Problem

Autor: Tobias Faiß (Gast)
Datum: 28.04.2008 22:01

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: 04.05.2008 13:31

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: 05.05.2008 23:19

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: 07.05.2008 22:38

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: 08.05.2008 08:55
Dateianhang: xc167.zip (66 KB, 12 Downloads)

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: 08.05.2008 20:15
Dateianhang: Timer_Settings.jpg (475 KB, 43 Downloads)
preview image for Timer_Settings.jpg

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: 09.05.2008 00:38

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: 11.05.2008 22:59

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: 25.05.2008 11:20

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: 27.05.2008 18:37

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 Email-Adresse ist freiwillig. Wenn Sie automatisch per Email über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Suchfunktion und Betreffsuche benutzen - vielleicht gibt es schon einen ähnlichen Beitrag
  • Aussagekräftigen Betreff wählen
  • Im Betreff angeben um welchen Controllertyp es geht (AVR, PIC, ...)
  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang
  • JPEG-Dateien (.jpg) nur für Fotos und Scans verwenden
  • Schaltpläne, Screenshots usw. als PNG oder GIF anhängen

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [pre]vorformatierter Text (z.B. Code in anderen Sprachen)[/pre]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel






webmaster@mikrocontroller.netImpressumWerbung auf Mikrocontroller.net