Forum: Mikrocontroller und Digitale Elektronik PicAxe mit NOKIA_LCD


von Maxi (Gast)


Lesenswert?

Hallo,
habe nachfolgendes Programm aus dem Elektor 11/2005 mit einem 
"Nokia-LCD"  benutzt. Wenn ich es jetzt mit der aktuellen Version (5.16) 
compilieren will wird immer "GoSub WriteToLCD" angemeckert.
Mit einer älteren Version ging es immer, ohne Fehler.
Was muß ich ändern, bzw wo bekomme ich die alte Version wieder her, da 
ich nach Systemumbau meines PC's auch neue Festplatten habe?
Danke Maxi

'Attribute VB_Name = "Module1"
symbol SCLK = 0 'Display pin 2 to PICAXE out 0
symbol SDA = 1  'Display pin 3 to PICAXE out 1
symbol DC = 2   'Display pin 4 to PICAXE out 2
symbol CS = 3   'Display pin 5 to PICAXE out 3
symbol RES = 4  'Display pin 8 to PICAXE out 4
symbol Command = bit0
symbol Value = b2
symbol X = b3
symbol Y = b4
symbol GraphicData = b5
symbol Mask = b7
symbol Loop1 = b10
symbol Loop2 = b11
symbol loop3 = b12

setfreq m8
GoSub Init
GoSub PrName
GoSub Graphic
GoSub Invert
pause 500
GoSub Normal
setfreq m4
Stop
End

Graphic:
        X = 10
        For Loop1 = 15 To 41
                read Loop1, GraphicData
                Y = GraphicData / 8
                loop3 = -Y * 8 + GraphicData + 7
                X = X + 1
                Command = 1
                GoSub GotoXY
                Command = 0
                read loop3, Value
                GoSub WriteToLCD
        Next
Return

PrName:
        Command = 0
        For Loop1 = 43 To 65
                read Loop1, Value
                GoSub WriteToLCD
        Next Loop1
Return

Init:
        'initialisation commands
        EEPROM 0,(33,197,6,19,32,12)
        'powers of 2 for graphs
        EEPROM 6,(0,1,2,4,8,16,32,64,128)
        'sine wave lookup table
        EEPROM 
15,(24,26,28,30,31,33,34,36,38,39,41,42,43,44,45,46,47,47,47,47,47,47,47 
,46,45,44,43,42)
        'some characters to display
        EEPROM 
43,(127,8,8,8,127,0,32,84,84,84,56,0,124,8,4,4,120,0,72,84,84,84,32)
        low SCLK
        low SDA
        low DC
        low CS
        low RES
        pause 500
        high RES
        high CS
        Command = 1
        for Loop1 = 0 to 5              ‘ start a loop
                read Loop1, Value       ‘ read value from EEPROM
                gosub WriteToLCD        ‘ transmit to serial LCD module
        Next Loop1
        GoSub White
        X = 0
        Y = 0
        GoSub GotoXY
        GoSub ClearFast
        GoSub Normal
Return

WriteToLCD:
        high DC 'Data mode
        If Command = 0 Then DataMode
        low DC  'Command mode
DataMode:
        low CS
        For Loop2 = 1 To 8
                low SCLK
                Mask = Value & 128
                low SDA
                If Mask = 0 Then Skiphigh
                high SDA
Skiphigh:
                high SCLK
                Value = Value * 2
        Next Loop2
        high CS
Return

ClearFast:
        low SDA
        high DC
        low CS
        For Loop1 = 1 To 48
                For loop3 = 1 To 84
                        low SCLK
                        high SCLK
                Next loop3
        Next Loop1
Return

GotoXY:
        Command = 1
        Value = X + 128
        GoSub WriteToLCD
        Value = Y + 64
        GoSub WriteToLCD
Return

Invert:
        Command = 1
        Value = 13
        GoSub WriteToLCD
Return

Black:
        Command = 1
        Value = 9
        GoSub WriteToLCD
Return

White:
        Command = 1
        Value = 8
        GoSub WriteToLCD
Return

Normal:
        Command = 1
        Value = 12
        GoSub WriteToLCD
Return

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.