Vai al contenuto
PLC Forum


Trasmissione Stringhe Da Rs232


sfinge

Messaggi consigliati

Ciao a tutti,

Utilizzo un PIC16F876 e ho scritto in C una routine di ricezione caratteri e trasmissione caratteri utilizzando il compilatore della HTECH piccompiler.Fin qui tutto bene trametto da Hyperterminal un carattere e ne ricevo altri incrementando l'indice di un'array ad ogni richiesta di trasmissione.Ora:

non riesco a capire come fare a trasmettere ad esempio verso il PC il contenuto di una variabile con ad esempio valore intero 115.

Qualcuno mi può aiutare?

Grazie anticipatamente

Saluti a tutti!

Link al commento
Condividi su altri siti


Vediamo se ho capito esattamente. Tu non vuoi trasmettere il valore di 115 == 73h, ma proprio le 3 cifre 1,1,5. Se è così devi fare la conversione BCD ==> ASCII ed inviare un caratere alla volta. (Devo averne in una per 4 cifre proprio per i PIC, non ricordo se in asm o in "C" se ti interesa mandmi l'indirizzo email per MP)

Poi c'è il sistema più semplice che prevede la trasmissione come stringa. Devi usare la funzione "printf" passando dati e formato. il compilatore HTECH dovrebbe avercela.

Link al commento
Condividi su altri siti

Ciao Livio,

no no voglio separare i caratteri 1,1,5 ma inviare tutto in un blocco unico.Vorrei interfacciare il mio sistema ad un Plc tipo s7200.Ad una particolare interrogazione da Plc il PIC dovrà inviare il contenuto del Byte richiesto.

ciao grazie

Link al commento
Condividi su altri siti

Non vedo la difficoltà, basta mettere il byte da trasmettere nel buffer dell'USART, ma questo lo fa gia il compilatare "C"; basta usare una funzione "getc", "getch", "getchar", "putc" o "putchar".

Link al commento
Condividi su altri siti

Ciao Livio,

quale è la funzione della chiamata alla PUTCHAR?

Il valore che devo sparare fuori dalla seriale prima devo depositarlo nella chiamata alla PUTCHAR? e poi nella PRINTF.

Il famoso registro TXREG devo specificarlo anche nella funzione PRINTF? quello chiamato in gergo STREAM?

Scusami se le domande possono sembrare idiote ma non capisco come deve funzionare.La trasmissione di un singolo carattere mi funziona correttamente...

Ma vorrei fare di più,trasmettendo ad esempio il valore decimale per esempio 100 contenuto nel byte X.

Puoi farmi due righe di esempio?

Grazie anticipatamente worthy.gif

Link al commento
Condividi su altri siti

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 account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...