mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Tabelle auslesen (PIC)


Autor: Thomas O. (-tom-tom-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich hab gerade ein großes Problem:

Ich verwende den PIC16F876

ich möchte eine Tabelle mit 256 werten auslesen.
leider funktioniert das nicht. Ich hab schon vieles ausprobiert, den 
PCLATH manipuliert und und und.
Aber mein Microcontroller hängt sich immer irgendwo auf.
    org  02FF
TAB_SX    addwf  PCL,F
    dt  00AF,00AB,0089,00FB,002D,0018,007B,001B,0051,009A,006C,00F4,00C0,0076,0086,00F5
    dt  0095,0072,00AA,00D1,000D,006F,00AE,0073,0076,0010,003F,004C,0098,0066,0014,00D7
    dt  00CB,00A6,002D,00DD,00C4,001D,001C,0031,00B3,00AF,00F5,0025,00DF,0001,00C8,0056
    dt  009D,0077,00B6,00B2,00C6,0017,0023,006F,008C,0040,00DB,00E0,0039,00F2,00CC,00B8
    dt  00FD,008C,0022,00A0,0030,0000,00B5,0029,0078,0036,00D7,00D8,0001,0029,009D,0004
    dt  0033,00E5,00D5,00C4,0066,0077,00D6,0037,0057,003E,00BF,00FF,0007,006E,00DA,0018
    dt  0091,005A,00A4,0074,0044,0055,00A3,001B,0075,00DC,0002,0021,00D4,0071,009A,0006
    dt  0058,0018,00BA,00C0,00B6,000C,00D0,0011,00B5,0079,00E5,0048,005B,0080,0093,00F8
    dt  009B,004C,006B,00D0,0092,0061,0022,0033,002C,00C0,0086,00BF,00A8,0095,00CD,0009
    dt  00D1,00CB,0043,004B,0037,0040,00DF,005C,00C0,0012,001E,00B9,0007,001D,00A3,0012
    dt  00F6,0065,0084,0053,002A,00C4,00E1,00A2,0038,00F2,001D,00A2,0070,0093,0020,0078
    dt  00E9,004E,00BC,00AE,00B6,000F,003E,004A,00C7,001A,0062,00AF,0061,008A,00D4,00F7
    dt  00BD,007D,00E8,0082,00B2,00FE,00B4,0031,009D,0038,0038,00C0,00E9,00EF,00A1,0003
    dt  0030,0086,006D,0023,00C5,00B7,0098,008B,0044,0033,0035,0050,00D7,001F,000C,00F2
    dt  00A7,001B,00F6,00FB,0022,009D,0087,002B,002B,00F3,004F,00A2,0099,00E4,0060,00CD
    dt  00E0,0042,0096,00BD,00CF,00E5,009E,00F8,0004,00A3,006B,00A5,0001,002F,0095,0032

diese möchte ich mit diesem Code auslesen:
SP_POS  decf  SERVO_POX,F

    movlw  high TAB_SX
    movwf  PCLATH
    movf  SERVO_POX,W
    call  TAB_SX
    movwf  SERVO_1

wieso funktioniert das nicht? Sitze irgendwie auf der Leitung.
Kann mir von euch jemand helfen?

Gruß
Thomas

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thomas Obermeier wrote:

>
    org  02FF
> TAB_SX
> 

high(TAB_SX) zeigt damit auf die vorhergehende Page (0x02).


Peter

Autor: juppi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
02FF +1

Landest du das nicht auf 0000

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn du die Tabelle per CALL ausliest sollten deine
Daten auch einem RETLW entsprechen:

RETLW k Return with literal in W  11 01xx kkkk kkkk

00AF z.B. müsste 34AF sein.

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Wenn du die Tabelle per CALL ausliest sollten deine
>Daten auch einem RETLW entsprechen:

Vergiss es, ich kannte das dt noch nicht. Sorry.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.