madmax Inserito: 10 aprile 2004 Segnala Share Inserito: 10 aprile 2004 Ciao a tutti,ho realizzato un software in "C" per un microcontrollore atmel AVR ATmega8 che gestisce un dispositivo di visualizzazione dell'altezza di una colonna d'acqua.Questo dispositivo acquisisce il segnale di un sensore di pressione sul fondo di un serbatoio e visualizza su un display l'altezza del liquido.Ho sentito parlare di una periferica USART del microcontrollore che potrebbe permettermi, tramite un collegamento seriale, di far comunicare il dispositivo con un PC in modo da visualizzare sul monitor l'altezza della colonna, magari con una interfaccia grafica in visual basic.In particolare vorrei sapere che tipo di routine software devo progettare per spedire dati dal micro al PC e viceversa e in che modo il PC può visualizzarli con il programma in visual basic. Vorrei che il PC visualizzasse in tempo reale lo stato del serbatoio (o di più serbatoi collegati al PC).Inoltre avrei bisogno di qualche consiglio su come collegare il micro con il PC.Grazie a chiunque vorrà darmi qualche informazione a riguardo. Link al commento Condividi su altri siti More sharing options...
ifachsoftware Inserita: 10 aprile 2004 Segnala Share Inserita: 10 aprile 2004 Ti serve una seriale (io ti consiglio una RS485) in modo da evitare eventuali disturbi , e poter andare fino a 1200m , quello che devi fare e' inventarti un protocollo , gestendo in interrupt per la ricezione dei dati.Per quello che riguarda il lato PC puoi usare il controllo MS-comm.Ciao Link al commento Condividi su altri siti More sharing options...
madmax Inserita: 11 aprile 2004 Autore Segnala Share Inserita: 11 aprile 2004 Grazie mille per l'aiuto,quindi se ho capito bene devo progettare una routine di interrupt che venga eseguita dal microcontrollore ogni volta che dal PC invio dei comandi (per esempio quando devo settare alcuni parametri del dispositivo).Con il controllo MS-comm invece posso ricevere le informazioni relative all'altezza dell'acqua nel serbatoio e visualizzarle sul monitor, giusto? Link al commento Condividi su altri siti More sharing options...
madmax Inserita: 9 maggio 2004 Autore Segnala Share Inserita: 9 maggio 2004 Dato che per il momento non posso collaudare il dispositivo, vorrei chiedervi un paio di cose, giusto per vedere se quello che ho fatto è corretto, almeno dal punto di vista concettuale.Ho scritto le routine in C per la gestione dell'USART del microcontrollore, ho copiato quelle scritte nel datasheet del micro. Ad ogni ciclo di programma faccio un confronto: se il livello del liquido è cambiato, viene spedito il nuovo valore:void USART_init ( unsigned int baud ){ UBRRH = ( unsigned char ) ( baud >> 8 ); //set del baudrate UBRRL = ( unsigned char ) baud; UCSRB = ( 1 << RXEN ) | ( 1 << TXEN ); //abilitazione ricezione e trasmissione UCRSC = ( 1 << URSEL ) | ( 1 << USBS ) | ( 3 << UCSZ0 ); //formato del frame (8 bit,niente parità,2 bit stop)}void USART_transmit ( unsigned char altezza ){ while ( ! ( UCSRA & ( 1 << UDRE )); //aspetta finchè il buffer non è pieno UDR = "(" & altezza & ")"; //spedisce il dato} Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora