Forum: Mikrocontroller und Digitale Elektronik Tabelle auslesen (PIC)


von Tom -. (-tom-tom-)


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.
1
    org  02FF
2
TAB_SX    addwf  PCL,F
3
    dt  00AF,00AB,0089,00FB,002D,0018,007B,001B,0051,009A,006C,00F4,00C0,0076,0086,00F5
4
    dt  0095,0072,00AA,00D1,000D,006F,00AE,0073,0076,0010,003F,004C,0098,0066,0014,00D7
5
    dt  00CB,00A6,002D,00DD,00C4,001D,001C,0031,00B3,00AF,00F5,0025,00DF,0001,00C8,0056
6
    dt  009D,0077,00B6,00B2,00C6,0017,0023,006F,008C,0040,00DB,00E0,0039,00F2,00CC,00B8
7
    dt  00FD,008C,0022,00A0,0030,0000,00B5,0029,0078,0036,00D7,00D8,0001,0029,009D,0004
8
    dt  0033,00E5,00D5,00C4,0066,0077,00D6,0037,0057,003E,00BF,00FF,0007,006E,00DA,0018
9
    dt  0091,005A,00A4,0074,0044,0055,00A3,001B,0075,00DC,0002,0021,00D4,0071,009A,0006
10
    dt  0058,0018,00BA,00C0,00B6,000C,00D0,0011,00B5,0079,00E5,0048,005B,0080,0093,00F8
11
    dt  009B,004C,006B,00D0,0092,0061,0022,0033,002C,00C0,0086,00BF,00A8,0095,00CD,0009
12
    dt  00D1,00CB,0043,004B,0037,0040,00DF,005C,00C0,0012,001E,00B9,0007,001D,00A3,0012
13
    dt  00F6,0065,0084,0053,002A,00C4,00E1,00A2,0038,00F2,001D,00A2,0070,0093,0020,0078
14
    dt  00E9,004E,00BC,00AE,00B6,000F,003E,004A,00C7,001A,0062,00AF,0061,008A,00D4,00F7
15
    dt  00BD,007D,00E8,0082,00B2,00FE,00B4,0031,009D,0038,0038,00C0,00E9,00EF,00A1,0003
16
    dt  0030,0086,006D,0023,00C5,00B7,0098,008B,0044,0033,0035,0050,00D7,001F,000C,00F2
17
    dt  00A7,001B,00F6,00FB,0022,009D,0087,002B,002B,00F3,004F,00A2,0099,00E4,0060,00CD
18
    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:
1
SP_POS  decf  SERVO_POX,F
2
3
    movlw  high TAB_SX
4
    movwf  PCLATH
5
    movf  SERVO_POX,W
6
    call  TAB_SX
7
    movwf  SERVO_1

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

Gruß
Thomas

von Peter D. (peda)


Lesenswert?

Thomas Obermeier wrote:

>
1
    org  02FF
2
> TAB_SX
3
>

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


Peter

von juppi (Gast)


Lesenswert?

02FF +1

Landest du das nicht auf 0000

von holger (Gast)


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.

von holger (Gast)


Lesenswert?

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

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

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
Noch kein Account? Hier anmelden.