Autor |
PIC_Prog von 12C509A auf 12F629 |
|
|
|
|
BID = 156927
don_alfredo Gerade angekommen
Beiträge: 4 Wohnort: München
|
|
Habe aus einem Buch ein Programm für den 12C509A. Dieses möchte ich auf einem 12F629 laufen lassen. Laut Buch ist
der 12F629 die Flash-Version des 12C509A. Je mehr ich mich
damit beschäftige(bin PIC-Anfänger), gewinne ich den Eindruck, dass das Programm nicht so ohne weiteres zu übernehmen ist. Der 12F629 kennt z.B. Option nicht. Hat jemand so etwas schon mal realisiert?
|
|
BID = 156951
perl Ehrenmitglied
Beiträge: 11110,1 Wohnort: Rheinbach
|
|
Seit ungefähr 10 Jahren steht in den Datenblättern von Microchip man solle OPTION und TRIS nicht mehr verwenden.
Wenn sie die Instruktionen dann wirklich nicht mehr unterstützen, ist das Geschrei groß.
Möglicherweise kennt der PIC12F629 diese Befehle aber trotzdem noch, denn auch in dessen Datenblatt findet sich noch der Satz:
Zitat :
| Note: To maintain upward compatibility with
future products, do not use the OPTION
and TRISIO instructions.
|
_________________
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 = 156978
don_alfredo Gerade angekommen
Beiträge: 4 Wohnort: München
|
Hallo @perl,
das verwendete Buch ist 1. Auflage 2002. Der Inhalt scheint
wohl älter zu sein, da ich auch den dazugehörigen Schrittmotor nicht mehr im regulären Handel erhalten habe.
Was war denn der Zweck von Option? Wie löst man das heute?
Im DATA Memory Map des 12F629 gibt es ein OPTION_REG?
Folgende Frage ist im Laufe des Nachmittags aufgekommen:
movwf OSCCAL Meldung: register in operand not in bank 0.
Beim 12C509A steht OSCCAL auf 05h(Bank 0). Beim 12F629 auf 90h(also in der Bank 1). Unter Register Files habe ich
OSCCAL EQU H'90' stehen.
|
BID = 157090
don_alfredo Gerade angekommen
Beiträge: 4 Wohnort: München
|
hier noch etwas genauer
bsf STATUS, RP0 ; Bank1
call 0x3FF
movwf OSCCAL
bcf STATUS, RP0 ; Bank 0
für den movwf erhalte ich folgende Meldung:
Warning[219]Invalid RAM location specified.
Message[302] Register in operand not in bank 0.
|
BID = 157344
don_alfredo Gerade angekommen
Beiträge: 4 Wohnort: München
|
Ursache gefunden:
es fehlte:
ERRORLEVEL -302 ; SUPRESS BANK SELECTION MESSAGES
mit _MAXRAM H'7F' selbst ins Knie geschossen.
|