- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 5 von 5

Thema: Datentabelle aus Programmspeicher in Ram laden

  1. #1
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    17.08.2004
    Beiträge
    1.065

    Datentabelle aus Programmspeicher in Ram laden

    Anzeige

    Powerstation Test
    Moin zusammen.

    Ich arbeite momentan in meinem Praxissemestern mit Attinys und hab nun endlich vor meine eigenen Basteleien mit meinen PICs fortzusetzen.

    Es geht darum, dass ich eine größere Menge Daten im Programmspeicher ablegen will, die ich dann im Programm auslesen und ins Ram speichern will.

    Es gibt dazu ja Assembler Anweisungen wie DB, DA, DT und DATA.
    Diese ermöglichen das Ablegen von Bytes (DB), Ascii-Codes (DA), Bytes mit RETLW Befehl (DT) oder DATA (Mischung aus DB und DA).

    Nun hab ich noch den Code der Attiny im Kopf und würde einfach einen Pointer auf die Adresse setzen und die Sachen ins Ram schreiben

    Der PIC16F hat dazu ja ein FSR Register, allerdings bekomme ich es nicht hin, die Tabellenadresse mittels Label in das FSR zu bekommen.
    Hat jemand von euch eine Lösung?
    Ich bin doch langsam am Schwanken, ob die PICs so das wahre sind.

    MfG
    Björn
    ...

  2. #2
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    72
    Beiträge
    11.077
    Hallo the_Ghost666!

    Der FSR Register ist nur für indirekte Adressierung im RAM und nicht im Programmspeicher. Das kannst Du nutzen um die Daten vom W-Register im RAM sequenziell zu speichern.

    Vielleicht findest Du auch etwas unter "Tabellen" im Artikel "PIC Assembler" in Wiki.

    MfG

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    17.08.2004
    Beiträge
    1.065
    Hab gerade etwas gegoogelt, die PIC18 Serie hat 3 Pointer, die wie das FSR Register funktionieren, und einen Pointer auf den Programmspeicher, mh mal schauen ob ich umsteige, ich denke das wir kompliziert.
    ...

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    16.03.2007
    Alter
    36
    Beiträge
    58
    Hallo,
    Also ich Habe mir ein Tabelle für die Umwandlung von BCD nach 7-Segment-ANzeige erstellt. Das sieht dann folgender Maßen aus:
    Code:
    ;************************************************************************************************************************************
    ; Tabelle der Siebensegmentcodes von 0 bis 9 an RB1...RB7
    ;************************************************************************************************************************************
    tab		addwf	PCL,1		; Addiert W und PCL. Ergebnis steht in PCL,was Sprung zum entsprechenden Ausgabewert ergibt
    		retlw	0x7E		; 0
    		retlw	0xC			; 1
    		retlw	0xB6		; 2
    		retlw	0x9E		; 3
    		retlw	0xCC		; 4
    		retlw	0xDA		; 5
    		retlw	0xFA		; 6
    		retlw	0xE			; 7
    		retlw	0xFE		; 8
    		retlw	0xDE		; 9
    Hoffe es Hilft dir vllt.

    Gruß Carsten

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    05.11.2007
    Beiträge
    1.076
    Die 18F Serie hat spezielle Register TBLPTRL,TBLPTRH,TBLPTRU
    und TABLAT. Mit denen kann man direkt auf den Programmspeicher
    "Code Bereich" zugreifen.
    Bei den kleineren PIC Serien geht das wie schon von erwähnt wurde nur mittels RETLW xx . Hier muss man aber auf Seiten (PAGE) Übergange achten. Solche Tabellen sollte man im unterem Speicherbereich anlegen, sonst wirds kompliziert.

    mit freundlichen Bits
    Bernd Sirozynski

Berechtigungen

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

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad