OPEL TID Programm von PIC16f84 auf PIC16f628

Gast #217762
Lesenswert?

Hallo Leute

Habe mich dazu entschieden einen Code der auf einem PIC16f84 läuft auf
einen 16f628 zu portieren . Leider funzt es nicht, aber die Übersetzung
mit MLAP ist 100% fehlerfrei. Wer könnte den Code überfliegen, und mir
eine eventuelle Fehlerquelle nennen?

Fehlerbeschreibung: Led blinkt (funktion Flash und Flash2), sendet
also. Aber nur lehre Zeichen, wie es scheint, den Display bleibt leer.

Möchte mich von folgendem Tread distanzieren, da in diesem versucht
wird mit AVR zu arbeiten.:

http://www.mikrocontroller.net/forum/read-1-149662.html#new
Gast #217767
Lesenswert?

Kauf einen Bonz, vergiss alle anderen Automarken. Die haben keine
Daseinsberechtigung. ;-)

Back on topic:
Der Quellcode hat beachtliche Ausmaße und interessante flämische
Kommentare.
Am geschicktesten mal die Manuals der beiden Typen auf Unterschiede
abklopfen (besonders SFR Adressen), da findet sich häufig was.

Gruß  Dieter
Gast #217768
Lesenswert?

Hallo Holtenpilsener,

die Probleme bei der Portierung von 16F84-Programmen auf einen 16F628
liegen meist daran das die IO-Pin´s vom PortA beim Starten als analoge
Eingange(für AD-Comparator) voreingestellet sind. Heist du must sie
erst in digigalen Pins umschalten (siehe Datenblatt S.27).
Weiter ist die Ansteuerung des internen EEPROM anders. Die Register
sind über zwei Bänke verteilt.

Denke mal das dir diese Anmerkungen weiterhelfen sollten.
Gast #217769
Lesenswert?

Danke Tom

Habe den Source nochmals überarbeitet , ausserdem habe ich die End
adresse im Cblock von 3ff auf 7ff geändert. Läuft dann zwar nicht mehr
auf dem 627er aber was solls.

Jemand hat mir eine Email mit folgendem Inhalt geschrieben:

In der ISR werden zwei Variablen verwendet, bei denen die
Bankeinstellung vor deren Verwendung unbekannt ist. Diese müssen beim
16F628 im RAM-Bereich 0x70-0x7F liegen, da nur dieser Bereich von allen
Bänken aus den Zugriff auf die selbe RAM-Adresse gestattet.


Könnt ihr mir weiterhelfen, ich schnalle es einfach nicht. Die Routine
ISR wird in der Main.asm aufgerufen


Dankeschön voraus
Angehängte Dateien:
Gast #217770
Lesenswert?

Du must im ISR den Bereich für zwei Variablen durch einen Cblock
deklarieren (siehe Anhang) Ich hoffe für dich, das es funktioniert.

Ich kann es leider nicht testen, weil ich kein TID, oder diese Platine
was benötigt wird nicht habe.
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren