Accendere led rs232 PC

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

Accendere led rs232 PC

Postby adriano » 20 Feb 2013, 09:17

mi dite per favore dove sto sbagliando ? il micro funziona , ho fatto tutti i controlli hw , i led rispondono a comandi diretti ...vorrei accendere e spegnere i led con inserimento da terminale pc dei numeri specificati nel "case"
GRAZIE !
PS: sto usando il micro con max232 su porta uart del micro PD0 / PD1
la comunicazione seriale funziona !
errori di compilazione non c'è ne sonno , ma i led non li controllo :(
:

$regfile = "m48def.dat"
$crystal = 16000000
$hwstack = 32
$swstack = 32
$framesize = 32
$baud = 115200
Config Com1 = 115200 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
Config Serialin = Buffered , Size = 255
Enable Serial


Start Timer1
Config Portd.2 = Output
Config Portd.3 = Output
Config Portd.4 = Output
Config Portd.7 = Output
Config Portd.0 = Input

Dim Ledcom As String * 25

Do

Ledcom = Inkey()

Select Case Ledcom


Case "1"
Portd.2 = 0
Print " led spento "
Case "2"
Portd.2 = 1
Print "led acceso"
Waitms 100

Case "3"
Portd.3 = 0
Print " led spento "
Case "4"
Portd.3 = 1
Print "led acceso"
Waitms 100

Case "5"
Portd.4 = 0
Print " led spento "
Case "6"
Portd.4 = 1
Print "led acceso"
Waitms 100

Case "7"
Portd.7 = 0
Print " led spento "
Case "8"
Portd.7 = 1
Print "led acceso"

End Select
Loop
End
Mai mi fu dato di vedere un animale in cordoglio di sé. Un uccelletto cadrà morto di gelo giù dal ramo senza aver provato mai pena per sé stesso.
User avatar
adriano
 
Posts: 108
Joined: 17 Feb 2013, 11:07

Re: Accendere led rs232 PC

Postby adriano » 23 Feb 2013, 13:18

piccola correzione:
i valori di $crystal e $baud li ho portati a $crystal 8000000 (il micro ora e settato a 8Mhz ) e la velocità sulla 232 funziona benissimo a 56700 !
i led pero continuano a non funzionare , non ci arrivo proprio dove sbaglio :(
si accettano consigli , grazie .
Mai mi fu dato di vedere un animale in cordoglio di sé. Un uccelletto cadrà morto di gelo giù dal ramo senza aver provato mai pena per sé stesso.
User avatar
adriano
 
Posts: 108
Joined: 17 Feb 2013, 11:07

Re: Accendere led rs232 PC

Postby deluca » 23 Feb 2013, 14:25

Riciao Adriano,

il tuo codice è funzionalmente valido, ma ci sono delle imperfezionioni, .... mi limiterò ad aggiustarti il codice che tu hai indicato.
1) se configuri Config Serialin = Buffered , Size = 255 avresti bisogno di una interruzione per intercettare la presenza di un carattere nel buffer della uart.....
2) Non è necessario abilitare il timer nè tantomeno la uart visto che non stai usando interrupts.

La versione che ti ho postato adesso è funzionante, ma non è certo la migliore.... il micro rimane bloccato aspettando un carattere e fino a quando non arriva non riesce a fare null'altro.......

Code: Select all
$regfile = "m48def.dat"
$crystal = 8000000
$hwstack = 32
$swstack = 32
$framesize = 32
$baud = 57600

 Config Portd.2 = Output
 Config Portd.3 = Output
 Config Portd.4 = Output
 Config Portd.7 = Output
 Config Portd.0 = Input

 Dim Ledcom As String * 25
'-------------------------------------------------------------------------------
Do

 Ledcom = Waitkey()

   Select Case Ledcom

    Case "1"
      Portd.2 = 0
      Print "led 1 spento "

    Case "2"
      Portd.2 = 1
      Print "led 1 acceso"

    Case "3"
      Portd.3 = 0
      Print "led 2 spento "

    Case "4"
      Portd.3 = 1
      Print "led 2 acceso"

    Case "5"
      Portd.4 = 0
      Print "led 3 spento "

    Case "6"
      Portd.4 = 1
      Print "led 3 acceso"

    Case "7"
      Portd.7 = 0
      Print "led 4 spento "
    Case "8"
      Portd.7 = 1
      Print "led 4 acceso"

   End Select
Loop
'-------------------------------------------------------------------------------
End


ciao
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: Accendere led rs232 PC

Postby adriano » 24 Feb 2013, 16:22

Grazie milla deluca ,
si come non posso minimamente dubitare che il SW non funzioni , ricontrollo tutto il mio HW ...anche se come dicevo i led li controllo bene con il comando "diretto" . La seriale butta fuori sicuro ( già provato ) oggi guardo con l'osciloscopio se sul piedino del micro arriva qualcosa dal pc . I led continuano a non funzionare . Come terminale sto usando Terminal V1.9 . Un normalissimo terminale 232. Per il resto a me come base di partenza va bene anche in versione semplicissima .
Mai mi fu dato di vedere un animale in cordoglio di sé. Un uccelletto cadrà morto di gelo giù dal ramo senza aver provato mai pena per sé stesso.
User avatar
adriano
 
Posts: 108
Joined: 17 Feb 2013, 11:07

Re: Accendere led rs232 PC

Postby deluca » 24 Feb 2013, 16:48

Attenzione !!
non vorrei essermi spiegato male....

Il codice che avevi postato non avrebbe potuto funzionare causa imperfezioni nell'uso degli stataments nella gestione della seriale.
Infatti, anche inviando i numeri tramite pc il micro non avrebbe potuto leggerli.

NB. Il codice che ho modificato ed allegato dovrebbe adesso funzionare.
Ciao e fammi sapere.
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: Accendere led rs232 PC

Postby adriano » 24 Feb 2013, 17:36

deluca wrote:Attenzione !!
non vorrei essermi spiegato male....

Il codice che avevi postato non avrebbe potuto funzionare causa imperfezioni nell'uso degli stataments nella gestione della seriale.
Infatti, anche inviando i numeri tramite pc il micro non avrebbe potuto leggerli.

NB. Il codice che ho modificato ed allegato dovrebbe adesso funzionare.
Ciao e fammi sapere.


Buongiorno deluca ,
ma io infatti non meto in dubio quello che gentilmente ha scritto lei , ho qualche dubio ancora sul mio hw , verifico e le facio sapere. unica cosa che sono certo che il max 232 e colegato bene , che il micro "stampa" sul terminale , e che i led con due righe riesco ad accendere. Di più non so .
Mai mi fu dato di vedere un animale in cordoglio di sé. Un uccelletto cadrà morto di gelo giù dal ramo senza aver provato mai pena per sé stesso.
User avatar
adriano
 
Posts: 108
Joined: 17 Feb 2013, 11:07

Re: Accendere led rs232 PC

Postby Fagos » 24 Feb 2013, 21:59

ciao adriano
che tipo di scheda stai costruendo? sperimentazione? per effettuare test? o altro

ho visto il tuo codice è abbastanza semplice e intuitivo, ma come dice deluca in quel modo blocchi il micro fino a quando non ricevi un carattere, giusto?

'sera'
User avatar
Fagos
 
Posts: 100
Joined: 31 Aug 2011, 15:01

Re: Accendere led rs232 PC

Postby adriano » 24 Feb 2013, 23:22

Fagos wrote:ciao adriano
che tipo di scheda stai costruendo? sperimentazione? per effettuare test? o altro

ho visto il tuo codice è abbastanza semplice e intuitivo, ma come dice deluca in quel modo blocchi il micro fino a quando non ricevi un carattere, giusto?

'sera'

Sera Fagos,
per ora mi limito a piccoli esperimenti , ho costruito diverse schede basate su atmega 48 . Non ho costruito un "starter kit" perchè una la uso solo per controllo servi ( rc ) , una per controllare led è giocare con l'adc ...una (in lavorazione) che fa da terminale ricezione dati rs232 .
Riguardo il codice che gentilmente deluca mi ha coretto , a me al momento interessa solo controllare dei led nel momento che dal terminale ( che gira su un pc ) arriva un carattere ( il micro non deve fare altro ) . Purtroppo non ho alcuna base di programmazione se non quello che ho preso di qua e di la da vari esempi. Sono penalizzato moltissimo anche dal fatto che con l'inglese non me la cavo molto bene , oltre il fatto che non si trova molta documentazione sul bascom avr ( in italiano ) ...dovrei vedere nel laboratorio o sul sito della grifo di scaricare il manuale bascom 8051 che se non ricordo male era in italiano .
ciao , una buona serata / o inizio settimana :)
Mai mi fu dato di vedere un animale in cordoglio di sé. Un uccelletto cadrà morto di gelo giù dal ramo senza aver provato mai pena per sé stesso.
User avatar
adriano
 
Posts: 108
Joined: 17 Feb 2013, 11:07

Re: Accendere led rs232 PC

Postby adriano » 26 Feb 2013, 18:23

ragazzi , io qualche cosina con il micro sono riuscito a "muovere" ma sti led non ne vogliono sapere ...uffa ...il codice sicuramente e giusto ( la scritto deluca ) , la mia seriale funziona in entrambi i versi ma i led non ne vogliono sapere :((
dove sto sbagliando secondo voi ?
questa la prova che il led funziona ( lampeggia ) :
'***led lampeggio portd.2***
$regfile = "m48def.dat"
$crystal = 8000000
$hwstack = 32
$swstack = 32
$framesize = 32
$baud = 57600
$sim
Config Portd.2 = Output
Do
Portd.2 = 1
Waitms 500
Portd.2 = 0
Waitms 500
Loop
End

domanda : perche nel simulatore di bascom il led "virtuale" pd.2 non lampeggia ???
perchè non riesco a controlare i led con la seriale ? quale può essere il problema ???
grazie.
Mai mi fu dato di vedere un animale in cordoglio di sé. Un uccelletto cadrà morto di gelo giù dal ramo senza aver provato mai pena per sé stesso.
User avatar
adriano
 
Posts: 108
Joined: 17 Feb 2013, 11:07

Re: Accendere led rs232 PC

Postby flz47655 » 26 Feb 2013, 18:39

Premetto che non utilizzo bascom, l'ho appena installato per far girare il tuo codice e posso dirti che la PORTD "lampeggia" correttamente, occhio a non confonderla con DDRD nella finestra IO

Per quanto riguarda la seriale col simulatore bascom tutto funziona perfettamente (la UART è emulata), potresti provare ad utilizzare bascom al posto di altri programmi per la rs232 se non sei sicuro che non introducano problemi
Ciao
flz47655
 
Posts: 639
Joined: 19 Jan 2012, 21:16

Re: Accendere led rs232 PC

Postby deluca » 26 Feb 2013, 18:58

Test1.jpg
Test1.jpg (142.8 KiB) Viewed 13088 times


Salve ragazzi,
adriano,
ho provato a simulare il tuo codice e il led lampeggia perfettamente.

Ora, prova a compilare e simulare il codice mostrato nell'immagine ....
Vedi la PORTD sulla destra?
ogni volta che inserisci un dato su Input il valore deve togglare tra 00 e 04.

Dimmi se ti funziona ...
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: Accendere led rs232 PC

Postby adriano » 26 Feb 2013, 19:20

ragazzi sono UN PIRLA :
"refresh variables" era da schiaciare ( il pulsantino con la manina che indica il foglio )( nel simulatore )
ora sul simulatore funziona sia il codice di deluca sia il "lampeggio"
ora mi rimane da capire perche non funziona con il mio terminale da pc ... forse dico una cavolata ...ma il mio terminale da pc quando nella "macro" li faccio butare fuori 1 o 2 cosa esce realmente ? ora che ho saldato gli ultimi fili sul terminale fatto con l'lcd controllo !

grazie amici , grazie deluca !
Mai mi fu dato di vedere un animale in cordoglio di sé. Un uccelletto cadrà morto di gelo giù dal ramo senza aver provato mai pena per sé stesso.
User avatar
adriano
 
Posts: 108
Joined: 17 Feb 2013, 11:07

Re: Accendere led rs232 PC

Postby deluca » 26 Feb 2013, 19:25

benissimo,

pochi passi, ma alla fine...... grande soddisfazione :)

ciao
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: Accendere led rs232 PC

Postby adriano » 26 Feb 2013, 19:32

deluca wrote:Dimmi se ti funziona ...


si funziona GRAZIE deluca ;)
Mai mi fu dato di vedere un animale in cordoglio di sé. Un uccelletto cadrà morto di gelo giù dal ramo senza aver provato mai pena per sé stesso.
User avatar
adriano
 
Posts: 108
Joined: 17 Feb 2013, 11:07

Re: Accendere led rs232 PC

Postby flz47655 » 26 Feb 2013, 19:43

adriano wrote:ma il mio terminale da pc quando nella "macro" li faccio butare fuori 1 o 2 cosa esce realmente ?!


Escono una serie di 1 e 0 che codificano 1 o 2 in decimale, il protocollo è molto semplice http://it.wikipedia.org/wiki/EIA_RS-232, riassumendo:
- c'è un bit di start (ALTO) seguito da
- 8 bit (1=BASSO, 0=ALTO) e
- uno o più bit di stop (BASSO)

Quindi un 1 decimale (codifica ASCII) è 0110001 in binario, quindi avrai qualcosa come HHLLHHHLL dove il primo e l'ultimo bit sono il bit di start e di stop, il numero decimale è invertito in quanto l'1 è il livello logico basso e lo 0 quello alto

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

Re: Accendere led rs232 PC

Postby adriano » 26 Feb 2013, 20:01

Grazie per la spiegazione flz , ma io mi ponevo anche il problema che magari il terminale che uso io ( su pc ) sia impostato in modo che il formato che buta fuori non va bene per il micro . Ora provo con l'Atlantic Research , sia a controlare cosa esce sia a controlare il micro con l'Atlantic .
... non lo accendo da mesi :)
....bellisimo strumento ( i 10 euro più ben spesi nella mia vita )

Grazie mille per l'aiuto che mi date , spero di contracambiare un giorno , almeno offrendo una pizza e una bira perche come tecnico sono io che devo imparare da voi :)
Mai mi fu dato di vedere un animale in cordoglio di sé. Un uccelletto cadrà morto di gelo giù dal ramo senza aver provato mai pena per sé stesso.
User avatar
adriano
 
Posts: 108
Joined: 17 Feb 2013, 11:07

Re: Accendere led rs232 PC

Postby flz47655 » 26 Feb 2013, 20:17

Il "formato" diciamo cambia solamente in poche cose, nella velocità di trasmettere i dati, nel numero di bit di stop, in un bit di controllo parità, etc.. ma deve essere impostato come nel programma del micro anche lato pc quindi sarà come quello descritto, se è diverso allora devi cambiare le impostazioni lato pc per farlo funzionare.

Cos'è l'atlantic? Hai un link?

Vedrai che se ti intendi di elettronica analogica ci saranno presto diverse domande :)
flz47655
 
Posts: 639
Joined: 19 Jan 2012, 21:16

Re: Accendere led rs232 PC

Postby adriano » 26 Feb 2013, 20:32

flz47655 wrote:Cos'è l'atlantic? Hai un link?



io lo pagato 10 euro , costava qualche milione di lire .
veniva usato in telefonia da ingegneri in centrale . oltre tutte le cosa che fa ( ora sono di corsa ma ritorno con spiegazioni ) ) fa anche da terminale vt100 .
http://www.ebay.com/itm/Atlantic-Resear ... 0971305720
Mai mi fu dato di vedere un animale in cordoglio di sé. Un uccelletto cadrà morto di gelo giù dal ramo senza aver provato mai pena per sé stesso.
User avatar
adriano
 
Posts: 108
Joined: 17 Feb 2013, 11:07

Re: Accendere led rs232 PC

Postby deluca » 26 Feb 2013, 20:41

@adriano,
mi sono accorto che stai compilando il codice settando il $cristal = 8Mhz e un baud rate pari a 57600 bps. (hai visto l'errore percentuale?)
tieni conto che l'errore in percentuale sul baud-rate con queste impostazioni è pari a 7.84% .... un pòooo altino.
potrebbe succedere che il tuo terminale è talmente preciso e poco tollerante che il micro non riesce ad agganciare la giusta sincronizzazione dei dati.

prova a scendere a 9600/19200/38400 bps ... vedrai che l'errore percentuale scenderà a soli 0.16% , alcune volte il prb si annida proprio lì.

ciao
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: Accendere led rs232 PC

Postby adriano » 27 Feb 2013, 03:25

deluca wrote:@adriano,
mi sono accorto che stai compilando il codice settando il $cristal = 8Mhz e un baud rate pari a 57600 bps. (hai visto l'errore percentuale?)
tieni conto che l'errore in percentuale sul baud-rate con queste impostazioni è pari a 7.84% .... un pòooo altino.
potrebbe succedere che il tuo terminale è talmente preciso e poco tollerante che il micro non riesce ad agganciare la giusta sincronizzazione dei dati.

prova a scendere a 9600/19200/38400 bps ... vedrai che l'errore percentuale scenderà a soli 0.16% , alcune volte il prb si annida proprio lì.

ciao


Giustissimo deluca ,
infatti il quarzo ideale sarebbe da 11.059 ( che ha bassisimo errore percentuale a diversi baudrate )ma quando non si sa cosa comprare !!! (ne ho comprato solo 20 pz) ... a 9600 avevo controlato e l'errore era basissino 0,16% se nn ricordo male . Ora vado a settare a 9600 .

ciao :)
Mai mi fu dato di vedere un animale in cordoglio di sé. Un uccelletto cadrà morto di gelo giù dal ramo senza aver provato mai pena per sé stesso.
User avatar
adriano
 
Posts: 108
Joined: 17 Feb 2013, 11:07

Next

Return to BASCOM-AVR

Who is online

Users browsing this forum: No registered users and 19 guests

cron