Nov sam u programiranju mikrokontrolera te vas molim za pomoć.
Kupio sam EasyPIC5 i mikroBasic. Pokusavam po uputama iz knjige PC Interfejsi
autora V. Milanović napraviti LCD display 2x16 redova preko USB porta.
Pločicu sam napravio po shemi g. V. Milanovića i pokušavam ubaciti kod iz knjige
u PIC18F4550.
Kad u mikroBasic-u pokrenem Build prijavi mi grešku
u 2. redu: Identifier '8' was not declared
i u zadnjem redu:
Syntax error: Expected 'end' but '' found
Syntax error: Expected '.' but '' found
Code:
'Program za LCD display na USB portu
DEFINE OSC 8
DEFINE LCD_DREG PORTD 'I/O port gdje je LCD
DEFINE LCD_DBIT 4
DEFINE LCD_RSREG PORTD
DEFINE LCD_RSBIT 2 'Register select pin
DEFINE LCD_EREG PORTD
DEFINE LCD_EBIT 3 'Enable pin
DEFINE LCD_BITS 4 '4-bitni data bus
DEFINE LCD_LINES 2 'LCD ima dva reda karaktera
USBBufferSizeMax con 64 'Maksimalna velicina bufera
USBBufferSizeTX con 64 'Ulazni
USBBufferSizeRX con 64 'Izlazni
'USB buferi...
USBBuffer Var Byte[USBBufferSizeMax]
USBBufferCount Var Byte
i Var byte
Red1 Var byte[16]
Red2 Var byte[16]
TRISB = $00 'Port B je izlazni
ADCON1 = 15 'Svi pinovi su digitalni
usbinit 'Inicijalizacija USB-a...
ProgramStart:
gosub DoUSBIn
goto ProgramStart
'Prijem podataka sa USB basa
DoUSBIn:
USBBufferCount = USBBufferSizeRX 'Velicina RX buffera
USBService
USBIn 1, USBBuffer, USBBufferCount, DoUSBIn 'Citanje podataka
If USBBuffer[0] = 253 and USBBuffer[1] = 1 Then
For i = 2 To 17
Red1 [i-2] = Usbbuffer[i]
Next
Lcdout $fe, 1, STR Red1\16
EndIf
If USBBuffer[0] = 253 and USBBuffer[1] = 2 Then
For i = 2 To 17
Red2 [i-2] = Usbbuffer[i]
Next
Lcdout $fe, $C0, STR Red2\16
EndIf
return
'Slanje podataka sa USB-a
DoUSBOut:
USBBufferCount = USBBufferSizeTX 'Velicina TX buffera
USBService
USBOut 1, USBBuffer, USBBufferCount, DoUSBOut 'Slanje podataka
Return
'Program za LCD display na USB portu
DEFINE OSC 8
DEFINE LCD_DREG PORTD 'I/O port gdje je LCD
DEFINE LCD_DBIT 4
DEFINE LCD_RSREG PORTD
DEFINE LCD_RSBIT 2 'Register select pin
DEFINE LCD_EREG PORTD
DEFINE LCD_EBIT 3 'Enable pin
DEFINE LCD_BITS 4 '4-bitni data bus
DEFINE LCD_LINES 2 'LCD ima dva reda karaktera
USBBufferSizeMax con 64 'Maksimalna velicina bufera
USBBufferSizeTX con 64 'Ulazni
USBBufferSizeRX con 64 'Izlazni
'USB buferi...
USBBuffer Var Byte[USBBufferSizeMax]
USBBufferCount Var Byte
i Var byte
Red1 Var byte[16]
Red2 Var byte[16]
TRISB = $00 'Port B je izlazni
ADCON1 = 15 'Svi pinovi su digitalni
usbinit 'Inicijalizacija USB-a...
ProgramStart:
gosub DoUSBIn
goto ProgramStart
'Prijem podataka sa USB basa
DoUSBIn:
USBBufferCount = USBBufferSizeRX 'Velicina RX buffera
USBService
USBIn 1, USBBuffer, USBBufferCount, DoUSBIn 'Citanje podataka
If USBBuffer[0] = 253 and USBBuffer[1] = 1 Then
For i = 2 To 17
Red1 [i-2] = Usbbuffer[i]
Next
Lcdout $fe, 1, STR Red1\16
EndIf
If USBBuffer[0] = 253 and USBBuffer[1] = 2 Then
For i = 2 To 17
Red2 [i-2] = Usbbuffer[i]
Next
Lcdout $fe, $C0, STR Red2\16
EndIf
return
'Slanje podataka sa USB-a
DoUSBOut:
USBBufferCount = USBBufferSizeTX 'Velicina TX buffera
USBService
USBOut 1, USBBuffer, USBBufferCount, DoUSBOut 'Slanje podataka
Return
Unaprijed HVALA.