Hallo Zusammen, ich arbeite mich derzeit in die PIC 17 Programmierung ein; wobei ich hier ein einfaches Lauflicht über ein Tabelle auf den PortF ausgeben möchte. Ich lasse den TMR0 durchlaufen bei überlauf wird ein Interrupt gestzt und der PIC springt in das Unterprogramm "weiterschalten" vgl. unten um dort die nächste LED-Folge aus zu lesen und auf den PortF zu legen. Leider schreibt mit der Contoller zwischen die AusgabeWerte jeweils die alte und neue Hex-Adresse der TabellenWerte. Eine extra Schleife die mir nur denn richtigen Wert ausgibt möcht ich vermeiden. An was habe ich evtl. nicht gedacht? Die Adressen für die Tabledefinition etc. müßten stimmen. Grüße und Dank PJ weiterschalten movfp pointerwert,WREG ; Tabellenanfang laden movwf TBLPTRL ; unteren 8Bit der Tabelle ausgeben movlb 5 tablrd 0,1,PORTF ; Tabelle auslesen und table pointer control inkrementrieren movlb 0 movlw H'30' cpfslt TBLPTRL ;pointerwert prüfen ob am tabellenende goto pointernullen ; wenn pointerwert > 0x30 pointer auf 0x20 zurücksetzen ; ansonsten normal weitermachen movfp TBLPTRL, WREG movwf pointerwert
"Leider schreibt mit der Contoller zwischen die AusgabeWerte jeweils die alte und neue Hex-Adresse der TabellenWerte." Könntest du das genauer erklären? Der Code scheint so weit OK zu sein, wenn PORTF in Bank5 Liegt (habe jetzt nur das Datenblatt vom 17C44 zur Hand). Was gibt es noch für einen Grund die eigentlich völlig überholten 17Cxx zu verwenden?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.