Programmcounter-Sprünge ??? Im Unterforum Microcontroller - Beschreibung: Hardware - Software - Ideen - Projekte
| Autor |
|
Programmcounter-Sprünge ??? |
|
|
|
|
BID = 364262
Peingebrecks Neu hier

Beiträge: 47
|
|
Hi, hab folgendes Problem:
Ich möchte gern Programmcountersprünge machen jedoch funktioniert es nicht aber ich weis auch nicht warum?
Habt ihr eine Idee woran es liegen könnte oder eine andere Variante die genauso funktionieren würde?
MfG
|
|
BID = 364312
perl Ehrenmitglied
       
Beiträge: 11110,1 Wohnort: Rheinbach
|
|
Das geht natürlich so auch nicht.
Wofür hat der Hersteller sich nur soviel Mühe mit dem Simulator und der Beschreibung gemacht, wenn das nicht benutzt wird ?
Die erste grobe Macke, bei der Wunsch und Wirklichkeit nicht übereinstimmt, sehe ich hier:
movlw D'8' ; lade 0 ins w-register
Der nächste Klops hier:
incf Progzähler,f
movf ProgZähler,W
1.) Den ersten Befehl kannst du dir eigentlich schenken, denn du überschreibst das Ergebnis sofort. Allenfalls wird dadurch die Z-Flag gesetzt.
2.) Verträgt der Assembler, außer in Literalen, überhaupt Umlaute ? Sollte mich wundern.
Jedenfalls enthält die Variable ProgZähler nachher irgendeinen Wert, der zufällig in W stand.
Beim erstenmal, ist das wahrscheinlich noch die 8 aus der seltsamen Initialisierung, aber auch die führt vermutlich zu einem Programmabsturz, da der daraus resultierende Sprung addwf PCL,8 zu einem Sprung hinter die Jumptable führt.
_________________
Haftungsausschluß:
Bei obigem Beitrag handelt es sich um meine private Meinung.
Rechtsansprüche dürfen aus deren Anwendung nicht abgeleitet werden.
Besonders VDE0100; VDE0550/0551; VDE0700; VDE0711; VDE0860 beachten ! |
|
BID = 364346
Peingebrecks Neu hier

Beiträge: 47
|
Sry, da hab ich was übersehen. Ich habe den Wert auf 0 geändert, so wie er sein soll und zusätzlich habe ich noch die Variablen gekürzt so dass ProgZähler = PZ, PrellStart = PS.
Was ich doch nicht verstehe ist warum kann ich mir den befehl
incf Progzähler,f
movf ProgZähler,W
der Inkrementierbefehl ist ja notwendig um die sprungzeile in meinen Falle zubestimmen und der Kopierbefehl ist notwendig um anschließend eine arithmetische Funktion auszuführen damit ich im File-Register die PCL-Adresse und somit den Programmcounter beeinflussen kann.
|
BID = 364352
perl Ehrenmitglied
       
Beiträge: 11110,1 Wohnort: Rheinbach
|
Zitat :
| incf Progzähler,f
movf ProgZähler,W
der Inkrementierbefehl ist ja notwendig um die sprungzeile in meinen Falle zubestimmen und der Kopierbefehl ist notwendig ... |
Ja, du hast wohl recht, und ich habe mich geirrt.  Ich habe seit einer Weile keine PICs mehr programmiert, und der Microchip Assembler ist einer der wenigen, bei dem die Destination rechts vom Komma steht.
Trotzdem hast du nach wie vor den Fehler, daß du den ersten Goto Befehl nicht erreichst (dazu brauchtest du eine 0 in W, müsstest also mit FF initialisieren), und den Bereich der Variablen nicht auf die sinnvollen Werte 0..7 beschränkst, was vermutlich zum Absturz führt.
_________________
Haftungsausschluß:
Bei obigem Beitrag handelt es sich um meine private Meinung.
Rechtsansprüche dürfen aus deren Anwendung nicht abgeleitet werden.
Besonders VDE0100; VDE0550/0551; VDE0700; VDE0711; VDE0860 beachten !
|
BID = 364356
Peingebrecks Neu hier

Beiträge: 47
|
Jap, ich hab meinen Fehler gefunden warum das ganze net funzt.
Ich Trottel  habe ganz am Anfang meine Eingabe & Ausgabe pins festgelegt, wobei man ja die Speicher-Bänke wechseln muss. Soweit so gut das hatte ich getan jedoch glatt vergesen wenn ich auf Bank1 bin und festdeklarierte Adressen aus Bank0 im Hauptprogramm verwende kann das nix werden!
Das entprellen hab ich auch etwas verändert, sowie den Rücksprung aus den einzelenen Programmen.
Siehe da jetzt funzt es wie es soll :D.
Trotzdem danke für deine Hilfe.
|
|
Zum Ersatzteileshop
Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum
Datenschutz
Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland
gerechnet auf die letzten 30 Tage haben wir 17 Beiträge im Durchschnitt pro Tag heute wurden bisher 7 Beiträge verfasst © x sparkkelsputz Besucher : 187992514 Heute : 11744 Gestern : 11123 Online : 281 28.12.2025 18:04 12 Besucher in den letzten 60 Sekunden alle 5.00 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
|
xcvb
ycvb
0.0216610431671
|