Hallo zusammen
Bin neu hier im Forum und bitte daher um Nachsicht bei etwaigen Fehlern!
Kurz zu mir: Ich heiße Thomas bin 50 Jahre alt und versuche seit einiger Zeit mich mit der Programmierung von PIC´s. Als Hilfeseite habe ich bisher die Seite von "sprut" genutzt von der ich auch viel gelernt habe! Ach habe ich Teile aus Seinen Projekten bei mir genutzt, vor allem wenn ich mit meinen eigenen nicht weiter kam.
Nun zu meinen Problem-Projekt: Ich möchte einen Fahrregler für die Modellbahn konstruieren, der digital angesteuert wird und ein PWM Signal ausgibt. Wenn das geht soll er später weiter modifiziert werden aber halt erst wenn das mit der PWM funktioniert. Die PWM wird über einen Zähler (Fahrstufenzähler) welcher über Tasten hoch und runter gezählt wird modifiziert (Wert für Duty cycle). Der Wert der Fahrstufe (0 bis 31) wird in BCD Zahlen umgewandelt und über 2 Schieberegister (4094) an 2 7-Segmentdisplays ausgegeben (Zehner und Einer). Als Grundprojekt habe ich dazu ein PWM Regler, der über einen Poti gesteuert wurde, genommen, daher die Fragmente für den ADC. Ohne PWM funktioniert ganze so wie ich es mir gedacht habe.
Nun zu meine Problem: Wenn jetzt die Konfigvariablen für die PWM freischalte (Semikolon weg) fängt das Programm an zu "spinnen". Das äußert sich dahin, das beim hochzählen der Zähler bei bestimmtem Einer Werten wieder genullt wird. Beim runterzählen nullt sich der Zähler beim Wechsel von 0 zu 9. Mit den Tasten +/- 5 kann ich über diese Werte drüber springen. Und es passiert nur bei den Einer Werten. als 2. Phänomen hatte ich, das der Zähler nur bis zu einen bestimmten Wert zählte z.B. 27 und sich dann nullte. Der PIXC hängt sich aber anscheinend nicht auf, da auf Tastendruck weiter zählt aber hat nur bis zum "Problemwert".
ich wäre sehr dankbar wenn mir hier jemand weiterhelfen könnte, da ich derzeit nicht mehr weiterweis wo das Problem liegt. Es ist bestimmt ein Programmierfehler von mir aber ich finde ihn nicht.
ich habe im Anhang mal die gerade noch funktionierende asm uns lst Dateien angehängt. Wenn ich in dieser asm Datei jetzt ein Semikolon für die PWM weg nehme (freigeben der Konfigvariable) funktioniert das ganze nicht mehr (jedenfalls bei mir)
Als Pich verwende ich einen 16F876A, als Taktquelle einen 4MHz Resonator, aufgebaut ist das ganze auf einem Steckbrett. Zum programmieren verwende ich ein "PICKit 3" und als Software "MPLAB IPE v3.55" und zum Übersetzen "MPASMWIN".
Vielen Dank im voraus für eure Hilfe. Sollten noch Fragen oder Infos fehlen, dann bitte melden.
PS: ich hoffe das mit den Anhänge war richtig. Da der Code recht lang ist wollte ich nicht hier direkt einstellen. Bei Fehlern hier im Forum bitte darauf hinweisen.
Gruß Thomas
Lesezeichen