Torna indietro   BaroneRosso.it - Forum Modellismo > Elettronica > Circuiti Elettronici


Rispondi
 
Strumenti discussione Visualizzazione
Vecchio 12 dicembre 05, 00:47   #1 (permalink)  Top
User
 
Data registr.: 04-06-2005
Residenza: Genova
Messaggi: 46
C'e' l'apice prima dell'inizializzazione quindi quella riga e' diventata un commento pero' mi sono accorto di una bestialita'.
Mi ha portato fuori strada il fatto che il terminale su pc visualizzava una stringa
ma sul lcd devo creare un buffer ad es. con un ciclo for/next perche' la seriale trasmette carattere per carattere cosi' ho fatto questo nuovo listato ma accetta solo 3 caratteri che vengono visualizzati in successione appena dopo il data (nella posiz 7 della seconda riga) e il cursore si posiziona dopo il "data" continuo a non capire.
allego il listato:
program lcd_serial

dim received_byte as byte
dim i as byte

main:

' Lcd_Init(PORT ' initialize LCD connected to portb
Lcd_Config(PORTB,0,3,1,7,6,5,4) ' pins custom
lcd_cmd( LCD_CLEAR) ' send command to LCD "clear display"
' lcd_cmd( LCD_CURSOR_OFF) ' send command cursor off
lcd_out(1,1,"GPS data") ' print txt to LCD, 1nd row, 1st column

Usart_Init(4800) ' Initialize USART module
while true

if Usart_Data_Ready = 1 then ' If data is received
received_byte = Usart_Read ' Read received data

Usart_Write(received_byte) ' Send data via USART

lcd_out(2,1,"data:") ' print gps data to LCD, 2nd row, 1st column

for i=0 to 10 'buffer
lcd_out(2,(7+i),received_byte) ' print gps data to LCD, 2nd row, 1st column
' lcd_cmd(LCD_CURSOR_ON) ' send command cursor on
Lcd_Cmd(Lcd_Move_Cursor_Right)
i=i+1
next i
end if
wend

end.


Se vuoi un bel tutorial c per pic vai sul sito di Fiser (http://www.jofi.it/fiser/page1.html
aduri non è collegato   Rispondi citando
Vecchio 12 dicembre 05, 02:09   #2 (permalink)  Top
UserPlus
 
L'avatar di protomax
 
Data registr.: 21-02-2005
Residenza: TURIN 45N 7E
Messaggi: 1.951
Invia un messaggio via MSN a protomax
Penso che il problema della perdita di caratteri sia dovuto al fatto che la lettura seriale (e' lenta) rispetto all'arrivo dei caratteri sulla stessa.

come vedo dal listato la lettura della seriale e' un "polling" sul byte che scarica un carattere dalla seriale, ora bisogna vedere se il compilatore e la routine che la gestisce fa' buffering sulla rs232, la soluzione piu' giusta sarebbe usare un'interrupt o meglio vedere se per ogni byte rx sulla seriale si ha a disposizione un evento (inserendo il codice all'interno di quell'evento e' possibile far si che non si abbia piu' la perdita di caratteri)

Altra soluzione e' quella di evitare di scrivere i caratteri mentre arrivano ma di incamerarli in un vettore e poi mandarli in stampa sul display tutti in una volta.
Nos so che tipo di gps sia ma in genere le stringhe che inviano possono essere lunghe una 30ina di caratteri e + oltretutto arrivano a raffica almeno 1 al secondo per la stringa di localizzazione

Quindi il pic deve far veloce a leggere e scrivere sul display
__________________
C'e' chi vola con l'elettronica e chi fa volare l'elettronica ... entrambi volano.
________________________________________________
ProtoMax proudly present: ProtoMeter 2
32bit ARM core + ZigBee Radio all in one Telemetry system
... Next on this forum

Ultima modifica di protomax : 12 dicembre 05 alle ore 02:14
protomax non è collegato   Rispondi citando
Rispondi

Bookmarks




Regole di scrittura
Non puoi creare nuove discussioni
Non puoi rispondere alle discussioni
Non puoi inserire allegati
Non puoi modificare i tuoi messaggi

BB code è Attivato
Le faccine sono Attivato
Il codice [IMG] è Attivato
Il codice HTML è Disattivato
Trackbacks è Disattivato
Pingbacks è Disattivato
Refbacks è Disattivato


Discussioni simili
Discussione Autore discussione Forum Commenti Ultimo Commento
Visualizzatore file dxf dwg filter Aeromodellismo Progettazione e Costruzione 4 12 giugno 06 12:54
Interfaccia seriale -> notebook senza porta seriale francyflyer Simulatori 4 10 marzo 06 18:48
Visualizzatore peppesci Simulatori 5 11 febbraio 05 10:25



Tutti gli orari sono GMT +2. Adesso sono le 09:54.


Basato su: vBulletin versione 3.8.11
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
E' vietata la riproduzione, anche solo in parte, di contenuti e grafica. Copyright 1998/2019 - K-Bits P.I. 09395831002