ES: campo1, campo2, campo3 -> indirizzo scheda, numero parametro, parametro, valore.
scusa ma non avevo fatto caso a questo topic e mi dispiace che nessuno ti abbia risposto.
gestire con il bascom la seriale di un avr è abbastanza semplice,
ti consiglio comunque di non usare l'interrupt della seriali URXC poichè unitamente alla istruzione INPUT bloccheresti l'esecuzione del programma durante questa istruzione.
allora quello che ti proporngo è di creare un buffer seriale, configurando opportunamente il SerialIn con Config, e saltare ad una funzione Serial0charmatch quando si digita ad esempio Return chr(13) o un altro carattere a tuo piacimento definito sul Config SerialIn.
Per quano riguarda l'estrazione di campi puoi usare l'istruzione SPLIT come di seguito riportato.
- Code: Select all
'*******************************************************************************
'
' Gestione seriale con buffer serial-input 20 byte - by G. De Luca
' Uso di split per estrapolazione di campi
'
'*******************************************************************************
$sim 'versione simulatore
$regfile = "m328def.dat"
$crystal = 16000000
$hwstack = 128
$swstack = 128
$framesize = 128
$baud = 57600
'-------------------------------------------------------------------------------
Config Serialin = Buffered , Size = 40 , Bytematch = 13
Dim Cmd As String * 40
Dim Arr(20) As String * 5
Dim Buf_full As Bit
Dim I As Byte
Dim Bt As Byte
Enable Interrupts
'-------------------------[ Main ]----------------------------------------------
Do
If Buf_full = 1 Then
Print Arr(1) ; " " ; Arr(2) ; " " ; Arr(3) ; " " ; Arr(4)
Clear Serialin
Reset Buf_full
End If
Loop
End
'------------------------[ Gestione serial buffer ]-----------------------------
Serial0charmatch:
Cmd = ""
For I = 1 To _rs_bufcountr0
Cmd = Cmd + Chr(_rs232inbuf0(i))
Next
Set Buf_full
Bt = Split(cmd , Arr(1) , ",")
Return
'-------------------------------------------------------------------------------
Posso sapere la versione di Bascom che hai installato sul tu PC e se è Demo o Full?