☰
Current Page
Main Menu
Home
Home
Editing
RS485 & RS232 - Invio singolo byte
Edit
Preview
h1
h2
h3
Keybinding
default
vim
emacs
Markup
AsciiDoc
Creole
Markdown
MediaWiki
Org-mode
Plain Text
RDoc
Textile
BibTeX
Pod
reStructuredText
Help 1
Help 1
Help 1
Help 2
Help 3
Help 4
Help 5
Help 6
Help 7
Help 8
Autosaved text is available. Click the button to restore it.
Restore Text
In questo esempio si inizializzano e si usano le seriali in ambiente linux in protocol mode 0 che si distingue dal mode 1 (detto anche protocol mode syel) per l'invio di singoli byte o pacchetti senza preambolo ne checksum e senza le funzioni di librieria syel. Nello start.c vengono eseguiti due task * rs485_task * rs232_task Le due funzioni che si vanno ad eseguire lanciando questi task sono presenti nel file common.h del progetto. Le prime linee di codice sono per l'inizializzazione e apertura della porta alle quali segue un ciclo infinito nel quale si resta in ascolto di eventuali byte in arrivo ``` void rs232_task(void) { // inizializzazione porta 232 MY_COM232 = PortaCOM232; com_close(MY_COM232); wait(500); com_open(MY_COM232, BaudRate232); com_disable(MY_COM232); protocol_mode(MY_COM232, 0); // protocollo 0 - invio singolo byte com_enable(MY_COM232); while(1) { //******* ricezione pacchetto ********** if (com_rx_empty(PortaCOM232)) { _idle(); } else { while (!com_rx_empty(PortaCOM232)) { counter_232_packets_rx++; retChar = com_rx(PortaCOM232); } } } } ``` Nella ricezione del pacchetto si nota come la funzione resti in idle finchè non arriva niente, mentre scarrella byte con la com_rx() finche qualcosa è presente sul buffer incrementando cosi un contatore. Per la 485 è tutto analogo eccetto per la com che è ovviamente diversa. Per inviare il singolo byte si usa la funzione com_tx ``` void invia232(void) { counter_232_packets_tx++; com_tx(PortaCOM232, sendChar); } ``` Nota: com_tx e com_rx sono funzioni dell'ambiente di sviluppo proteus spiegate nel manuale a pagina 34 sezione Porte Seriali. Per quanto riguarda l'interfaccia dell esempio è molto banale e permette di selezionare un carattere e inviarlo tramite 232 o 485 incrementando i relativi contatori così come anche anche in ricezione L'esempio è stato testato su due dispositivi syel p10 collegati tra loro in RS232 e RS485 ed liberamente scaricabile dal seguente link: [scarica](https://drive.google.com/file/d/1mDu0ULT9rZRgjtvueTfuG594QQA66_V8/view?usp=sharing) 2025-02-07 Creatore dell'articolo Simone De Santis. Per ulteriori richieste simone.desantis@syel.it
Uploading file...
Edit message:
Cancel