Da pic basic a pic C

Salve ragazzi! Qualcuno di voi sa dirmi quale e' il comando in pic C corrispodente al hserout[] usato in pic Basic? Devo scrivere un programma che manda fuori segnali midi e dopo aver messo un oscillatore da 20MHz e inizializzato a dovera la USART del

16F876 (cose che mi riescono sia in basic che in C) riesco a far uscire dati midi usando hserout in Basic ma non riesco a far uscire dati midi usando printf in C... evidentemente non e' la funzione giusta... quale dovrei usare?

Grazie

Reply to
Michelangelo
Loading thread data ...

Non lo so, ma visto che sto lavorando a qualcosa di molto simile, ti va di descrivere a grandi linee il progetto e le soluzioni adottate?

--
Io.
Reply to
Colossale Pezzo di Idiota

"Colossale Pezzo di Idiota" ha scritto nel messaggio news: snipped-for-privacy@y43g2000cwc.googlegroups.com...

Ciao, sono Michelangelo... Non ho fatto molti progressi, non ha risposto nessun'altro oltre te purtroppo... Ho scoperto che hserout e' un comando di Hardware asynchronous serial output... Ho cercato l'equivalente in CCS senza successo, un ragazzo di #elettronica di azzurra mi ha detto che in CCS non esiste l'equivalente e che dovrei scrivermi io una routine simile a hserout ma questo non è un compito facile....

Mi pare strano che in CCS non sia possibile usare una USART per la comunicazione seriale... perche' printf non funziona? e non capisco nemmeno che differenze ci sono tra:

putc() fputc() putchar()

puts() fputs()

printf() frpintf()

Sull'help di ccs non si capisce na mazza!!

Grazie a chi ci risponde

Reply to
dino

Non trattare male CCS :) solo perch=E8 non lo conosci e non sai interpretare un help in linea! Scherzo dai...

Tornando a noi... ovviamente hai messo questa linea di codice:

#use rs232(baud=3D9600, xmit=3DPIN_C6, rcv=3DPIN_C7) (per il significato dei parametri guarda l'help)

dopodiche puoi usare tutte le funzioni che hai elencato dato che TUTTE mandano o un byte o un'intera stringa alla UART. Le versioni con la 'f' davanti ti permettono di indirizzare il dato verso una UART particolare dato che in CCS puoi definire pi=F9 porte seriali... ovviamente quella a cui hai assegnato i PIN del PIC che sono gli effettivi UART sar=E0 implementata dal CCS in maniera HARDWARE mentre le altre tramite routine software a te nascoste e trasparenti. Per fare una prova banale fai un programma stupido di prova che looppa buttando fuori con la putc un carattere... apri il terminale di windows e verifica se arriva qualcosa...=20

Ale

Reply to
[mAnNaRo]

no invece e' piuttosto semplice scrivere le routione di basso livello come la getc e la putc tramite seriale

non e' impossibile nel senso che tu intendi devi solo avere le routine opportune che possono variare da hardware ad hardware , mageri in un altro progetto potresti voler usare un display LCD ed una tastiera

c'e' anche il problema che il C proviene da sistemi piu' grandi dove e' presente il concetto di file piu' che di dispositivo fisico ed e' il sistema operativo a fornire lo strato d'interfaccia

le funzioni che hai citato fanno parte della cosidetta libreria standard del C

scrive un carattere nello stdin

scrive un carattere in un file

alias per putc

idem per le stringhe

scrive nello stdin una dei valori formattati ( tipicamente fa uso della funzione putc )

questo e' non standard

cerca negli esempi sicuramente troverai una implementazione 'semplice' della putc getc tramite porta seriale

Reply to
mmm

Ocio che 9600 baud non vanno bene neanche per scherzo, MIDI viaggia a

31250.
--
Io.
Reply to
Colossale Pezzo di Idiota

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.