Gestione seriale su ATmega con Bascom

Sezione dedicata al sistema di sviluppo BASCOM-AVR per i micro AVR
At90s, Attiny, Atmega e Xmega

Gestione seriale su ATmega con Bascom

Postby omega25 » 07 Aug 2012, 07:44

salve a tutti,
mi trovo a configurare la seriale di un atmega32 e sto incontrando qualche problemino.
dovrei gestire l'input della seriale tramite interrupt (penso sia la strada migliore), estrapolare il dato letto e splittarlo in alcuni campi ad es:

ES: campo1, campo2, campo3 -> indirizzo scheda, numero parametro, parametro, valore.

come faccio a configurare la seriale per leggere questi dati?

vi ringrazio tantissimo se potrete aiutarmi con qualche semplice esempio.
omega25
 
Posts: 24
Joined: 04 Aug 2012, 09:33

Re: Gestione seriale su ATmega con Bascom

Postby omega25 » 29 Aug 2012, 21:26

ancora non ho risolto, c'è qualcuno che mi potrebbe aiutare?
non so come fare e avrei appunto questa esigenza.

grazie tante
omega25
 
Posts: 24
Joined: 04 Aug 2012, 09:33

Re: Gestione seriale su ATmega con Bascom

Postby flz47655 » 29 Aug 2012, 21:44

Devi avere pazienza, vedrai che presto qualcuno ti risponde.
Io purtroppo non ho competenze con bascom, uso l'ide di Arduino

Ciao
flz47655
 
Posts: 639
Joined: 19 Jan 2012, 21:16

Re: Gestione seriale su ATmega con Bascom

Postby deluca » 30 Aug 2012, 12:39

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?
Ciao
Il mio sito: http://www.delucagiovanni.com ......e la chat: chat/
User avatar
deluca
Site Admin
 
Posts: 1104
Joined: 19 Jun 2011, 10:44
Location: 95123 - Catania (Italy)

Re: Gestione seriale su ATmega con Bascom

Postby omega25 » 31 Aug 2012, 22:06

deluca
grazie per il codice
l'ho appena simulato e funziona alla perfezione,
appena posso lo compilo e lo butto giu sul 328.

per farlo andare sul micro devo togliere il $Sim che è una direttiva e poi ricompilare, giusto?

come faccio a trasformare i campi arr() in numeri che posso usare come valori per settaggi vari ad esempio: indirizzo, numero porta, valore porta?
grazie
omega25
 
Posts: 24
Joined: 04 Aug 2012, 09:33


Return to BASCOM-AVR

Who is online

Users browsing this forum: No registered users and 24 guests