[ Pulapola @ 10.08.2009. 11:32 ] @
Poštovani,
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

Unaprijed HVALA.
[ Seme @ 10.08.2009. 14:53 ] @
Kod iz knjige, tj. kod koji si postavio na forumu je pisan za PICBasic kompajler a ne za MicroBasic. Instaliraj PICBasic i probaj da onda kompajliras program. POzz
[ Pulapola @ 18.08.2009. 16:00 ] @
Pozdrav svima,

HVALA Miroslav na uputama.

I dalje prisutni problemi...
Instalirao sam MicroCode Studio V.3.0.0.5
i Compiler PICBASIC PRO 2.50B

Upisao sam program i kad pokrenem Compile prijavi mi:
ERROR: Macro USBINIT? not found in macro file.
ERROR: Macro USBSERVICE? not found in macro file.
ERROR: Macro USBIN?CBBL not found in macro file.
ERROR: Macro USBOUT?CBBL not found in macro file.

U Compile and Program Options, Compiler je na: C:\pbp
a Assembler je na: c:\mcc18\mpasm i uključena je kvačica
na Use MPASM. Svi Radio buttons uključeni su na INHX8M.

Instalirao sam i MPLAB-C18-Full-v3_10 i dalje ne mogu pronaći grešku.

Molim za pomoć.

Hvala i pozdrav svima.
[ Pulapola @ 19.08.2009. 17:03 ] @
Pozdrav svima,

Nakon ne prospavane noći proradio je PicBasic PRO. Zapisao sam podatke u PIC
i postavio ga u pločicu Eksperimentalno kolo (autor: V. Milanović).
PC je prepoznao Eksperimentalno kolo kao HID-Compliant device.
Kad pokrenem program u VB-u za ispis teksta u dva reda na display-u ne dođe ništa.
Ako trimer 5K okrenem do kraja u prvom redu display-a pojave se crni kvadrati
do kraja reda a u drugom redu ništa.

Obzirom da nisam uspio nabaviti display D16217SYH (koji preporučuje autor),
nabavio sam display 162D-BA-BC.

Sumnjam da nisam dobro spojio display na pločicu.
Pin Assignment za D16217SYH je:
1. Vss; 2. Vdd; 3. Vo; 4. RS; 5. R/W; 6. E; 7. DB0; 8. DB1; 9. DB2; 10. DB3;
11. DB4; 12. DB5; 13. DB6; 14. DB7

Pin Assignment za 162D-BA-BC je:
1. DB7; 2. DB6; 3. DB5; 4. DB4; 5. DB3; 6. DB2; 7. DB1; 8. DB0; 9. E; 10. R/W;
11. RS; 12. Vo; 13. Vss; 14. Vdd

Uspoređujući pin assignment prvog i drugog display-a spojio sam 1 na 13; 2 na 14 itd.

Molim iskusnije za pomoć kako da spojim display?

Pozdrav svima i hvala unaprijed.
[ Milan Eric @ 12.03.2010. 22:23 ] @
Mozes li da kazes kako si resio problem sa grekama, novim kompajlerom ili cime vec