Tabellengröße

Gast #38511
Hallo Zusammen,

ich muß zur Ansteuerung eines intelligenten LED Displays einige Bytes
in einer Tabelle ablegen. Wenn ich aber in einer Tabelle mehr als 255
Bytes ablege, so zeigt der Zeiger nach dem 255 Byte auf irgendeine
andere Stelle.

Meine Frage ist nun, ob die Größe einer Tabelle beschränkt ist, oder ob
ich einen Fehler im Programmcode habe.

Zur kurzen Erläuterung : Ich setze den Zeiger an ein bestimmte Stelle
(Buffer) und dann werden 5 Bytes gelesen und ausgegeben.

Write:
    ldi  Reihe,$00

    ldi     ZL,LOW(ASCII_Tab1*2)
    ldi     ZH,HIGH(ASCII_Tab1*2)

    mov  Temp,Buffer
    add  ZL,Temp
    clr  Temp
    adc  ZH,Temp

Write_Loop:

    lpm
    mov  SPI_Byte,r0
    rcall  Putchar

    adiw    ZL,1
    inc  Reihe
    mov  Temp,Reihe
    cpi  Reihe,$05
    brne  Write_Loop
    ret

die Tabelle sieht ungefähr so aus :

.cseg

ASCII_Tab1:

  .db $00,$00,$00,$00,$00,$00  ;
; !
  .db $04,$24,$44,$60,$84,$00  ;
; "
  .db $0A,$2A,$40,$60,$80,$00  ;
; #
  .db $0A,$3F,$4A,$7F,$8A,$00  ;
; $
  .db $0F,$34,$4E,$65,$9E,$00  ;
; %
  .db $19,$3A,$44,$6B,$93,$00  ;
; &
  .db $08,$34,$4D,$72,$8D,$00  ;
; '
  .db $04,$24,$40,$60,$80,$00  ;

usw.
Gast
Wenn du nur eine 8 Bit-Offset (Buffer) nutzt, können auch nur 8 Bit
Start-Offset addiert werden.
oder du mußt Buffer mit der Anzahl pro Eintrag multiplizieren.
Gast
Vielen Dank, ich Depp hatte vorher den Buffer immer mit 6 multipliziert
und nicht bedacht, daß der ja überläuft :o)

Jetzt multipliziere ich den 16 Bit Zeiger und nun funzt es :o)

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 23 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.