- Labornetzteil AliExpress         
Ergebnis 1 bis 8 von 8

Thema: Program Counter überlauf

  1. #1
    Gast

    Program Counter überlauf

    Anzeige

    Praxistest und DIY Projekte
    Hallo zusammen!!

    Vor kurzen habe ich mit PIC-programming angefangen, bin also noch ganz am Anfang und habe auch schon ein kleines Problem:

    Ich habe ein programm geschrieben, welches schon etwa 300 Zeilen umfasst. Das Problem ist, dass irgendwann der Program Counter (PCL Register) überlauft und der PIC wieder von vorne anfängt. Ich verwende den PIC16F627 bzw PIC16F627A der eigentlich einen 13bit Counter haben soll (PCLATH, der allerdings unangerührt bleibt). Muss ich die Register noch verbinden?

    Für Antworten und Hilfen bin ich dankbar!!

    Gruß

    Jörn

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.12.2005
    Ort
    Euskirchen-Großbüllesheim
    Alter
    74
    Beiträge
    2.063
    Hallo Jörn,
    programmierst Du in Assembler, C oder noch was anderes ?

    PS: Du hast nur 1 K Flash-Speicher; bei 300 Zeilen in Assembler kannst Du noch nicht den Speicher voll haben, bei C evtl. schon.
    MfG Karl-Heinz
    HobbyElektronik hier klicken ....

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    29.01.2006
    Beiträge
    101
    Hallo, danke für deine Antwort!

    programmiert habe ich den Code in Assembler und es sind keine vorkompilierten Objekte drin



    Gruß
    Jörn Arne

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.12.2005
    Ort
    Euskirchen-Großbüllesheim
    Alter
    74
    Beiträge
    2.063
    Hallo Jörn,
    Am ProgrammCounter brauchst/solltest Du bei normalem Programm-Ablauf nichts verändern. Der PCLATH ist z.B. bei Computed GOTO zu bedienen (siehe Beispiel unter http://www.domnick-elektronik.de/picasm.htm).
    Wie stellst Du fest, daß der PCL einen Überlauf hat ?
    Vielleicht hast Du etwas anderes nicht berücksichtigt. Eine FehlerCheckListe findest Du unter http://www.domnick-elektronik.de/piccheck.htm.
    MfG Karl-Heinz
    HobbyElektronik hier klicken ....

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    29.01.2006
    Beiträge
    101
    Hallo,


    für die Entwicklung benutze ich MPLab von Microchip, und bevor ich die Datei in den PIC lade Simuliere ich den Programmablauf. Irgendwann steht der PC (unten in der Statuszeile) recht nahe an ff und kurze Zeit später fängt der PIC bei 0 an.

    In meinem Programm verwende ich eine ganze Reihe von addwf PCL, f Befehlen, aber die Funktionieren eigentlich richtig.

    Die links werde ich mir gleich ansehen

    Danke

    Gruß
    Jörn Arne

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.12.2005
    Ort
    Euskirchen-Großbüllesheim
    Alter
    74
    Beiträge
    2.063
    Wenn Du addwf PCL,f verwendest und das Ergebnis in PCL einen Überlauf ergibt, also über eine 256-er-Grenze rüber geht, gibt es ein Problem, weil das Carry nicht berücksichtigt wird.
    Vor dem addwf PCL (hinterher ist zu spät) mußt Du PCLATH richtig setzen.
    MfG Karl-Heinz
    HobbyElektronik hier klicken ....

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    29.01.2006
    Beiträge
    101
    Deinen Tip habe ich mal ausprobiert, tatsächlich trat das Problem bei den PCL manipulationen auf. Im Simulator habe ich den PCLATH testweise kurz vor den überlauf auf 1 gesetzt, und siehe da es hat geklappt.

    Wenn ich das richtig sehe, muss ich vor dem Tatsächlichen "springen" erst mal prüfen ob der PC überlauft, wenn ich den gewünschten Wert addiere und gegebenfalls (wenn c = 1) den PCLATH auf 1 setzten (oder um eins erhöhen).
    Nur was ich nicht weiß ist was nach dem Sprung zu tun ist(PCLATH auf 0 setzten, bzw um eins verringern?).

    Allerdings konnte ich einige addwf PCL, f befehle aus meinem Projekt entfernen, und habe die Anweisungen durch indirekte Adressierung ausgetauscht. (Durch die Sprungbefehle habe ich mir eine Art Array gebastelt)
    In meinem Projekt gibt es nur noch eine addwf PCL, f Zeile, als Liste mit 127 Einträgen.

    Zurzeit arbeitet mein Programm richtig, aber es ist leider noch nicht fertig.

    Ich danke dir für deine Hilfe!!

  8. #8
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.12.2005
    Ort
    Euskirchen-Großbüllesheim
    Alter
    74
    Beiträge
    2.063
    Schau Dir noch mal den Link mit dem ...picasm an und klicke auf 'Computed GOTO'; da siehst Du, was mit PCLATH zu machen ist.
    MfG Karl-Heinz
    HobbyElektronik hier klicken ....

Benutzer, die dieses Thema gelesen haben: 0

Derzeit gibt es keine Benutzer zum Anzeigen.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests