Re:varie riguardo PIC
Re:varie riguardo PIC
ma in caso di errori di trasmissione cosa si fa? non mi pare che il midi preveda delle conferme di avvenuta trasmissione o cose simili..quindi al massimo si può ignorare il byte danneggiato..ma il messaggio viene perso però, e non viene ritrasmesso! possibile sia così?
- davidefender
- Garzone di Roger Mayer
- Messaggi: 1437
- Iscritto il: 11/02/2008, 23:51
- Località: Roma
- Contatta:
Re:varie riguardo PIC
si esatto!
si fonda praticamente sul fatto che la probabilità di un bit errato in un filo così corto è pressochè zero. Anzi se non sbaglio il protocollo MIDI non usa neppure il bit di parità, un byte errato viene interpretato come byte qualunque!
se ti volevo dire "carica la patch 13" ma ti è arrivato "carica la patch 12".... ciccia!

si fonda praticamente sul fatto che la probabilità di un bit errato in un filo così corto è pressochè zero. Anzi se non sbaglio il protocollo MIDI non usa neppure il bit di parità, un byte errato viene interpretato come byte qualunque!
se ti volevo dire "carica la patch 13" ma ti è arrivato "carica la patch 12".... ciccia!


La teoria è quando si sa tutto ma non funziona niente. La pratica è quando funziona tutto ma non si sa il perché. In ogni caso si finisce sempre con il coniugare la teoria con la pratica: non funziona niente e non si sa il perché.
(Albert Einstein)
(Albert Einstein)
Re:varie riguardo PIC
'Main:
bsf PORTA,2
bsf PORTA,3
call Delay
bcf PORTA,2
bcf PORTA,3
call Delay
goto Main
e se ne accende-lampeggia solo 1, mentre l'altro non da segni. Se però li alterno lampeggiano tutti e due, come detto prima..
cosa sbaglio?'
Premetto che non conosco i PIC (uso atmel e altri) ma nel codice che hai scritto i led non lampeggiano perchè li setti uno dopo l'altro. Dovresti fare 'PORTA & 0b0001100' ma non conoscendo l'assembler del pic (e i pic) non posso aiutarti oltre :-( La stessa cosa comunque varrebbe anche se la scrivi in c.
bsf PORTA,2
bsf PORTA,3
call Delay
bcf PORTA,2
bcf PORTA,3
call Delay
goto Main
e se ne accende-lampeggia solo 1, mentre l'altro non da segni. Se però li alterno lampeggiano tutti e due, come detto prima..
cosa sbaglio?'
Premetto che non conosco i PIC (uso atmel e altri) ma nel codice che hai scritto i led non lampeggiano perchè li setti uno dopo l'altro. Dovresti fare 'PORTA & 0b0001100' ma non conoscendo l'assembler del pic (e i pic) non posso aiutarti oltre :-( La stessa cosa comunque varrebbe anche se la scrivi in c.
Re:varie riguardo PIC
si grazie giordy è vero, l'istruzione va messa come unica..infatti in C mi funziona..
comunque, oggi sono passato all'harware dell'ingresso Midi, ho costruito la parte con l'opto-isolatore..
L'ho collegato alla porta RX del mio pic, e ho notato che da sempre circa 5V..e in effetti guardando lo schema il pin 6 dell 6N138 è collegato ai 5V tramite una resistenza da 1K.. Ma allora mi chiedo, come fa a leggere il messaggio il pic se si vede sempre questi 5V? ho sbagliato qualcosa?
comunque, oggi sono passato all'harware dell'ingresso Midi, ho costruito la parte con l'opto-isolatore..
L'ho collegato alla porta RX del mio pic, e ho notato che da sempre circa 5V..e in effetti guardando lo schema il pin 6 dell 6N138 è collegato ai 5V tramite una resistenza da 1K.. Ma allora mi chiedo, come fa a leggere il messaggio il pic se si vede sempre questi 5V? ho sbagliato qualcosa?
- davidefender
- Garzone di Roger Mayer
- Messaggi: 1437
- Iscritto il: 11/02/2008, 23:51
- Località: Roma
- Contatta:
Re:varie riguardo PIC
no è giusto, significa che in condizioni di riposo (nessun messaggio) il livello è alto, quando arriverà uno zero il PIC leggera in effetti un valore basso! grazie proprio alla resistenza da 1k che la "separa" dai 5 volt.
Quella resistenza viene chiamata apposta di pull-up, simile a quella di pull-down, fissa il valore di un ingresso ad un valore logico predefinito (in un caso i 5 volt, nell'altro massa) in maniera che in una situazione di indeterminazione (cavo staccato) l'ingresso non cominci ad oscillare!

Quella resistenza viene chiamata apposta di pull-up, simile a quella di pull-down, fissa il valore di un ingresso ad un valore logico predefinito (in un caso i 5 volt, nell'altro massa) in maniera che in una situazione di indeterminazione (cavo staccato) l'ingresso non cominci ad oscillare!

La teoria è quando si sa tutto ma non funziona niente. La pratica è quando funziona tutto ma non si sa il perché. In ogni caso si finisce sempre con il coniugare la teoria con la pratica: non funziona niente e non si sa il perché.
(Albert Einstein)
(Albert Einstein)
Re:varie riguardo PIC
bene grazie mille! ma come le sai queste cose??
c'è un documento sulle specifiche hardware del protocollo? non riesco proprio a trovarlo..
ho provato a testare il voltaggio sul connettore midi out, quando mando un messaggio midi dal pc a questo midi out il voltaggio (negativo) aumenta di 0,2V, sul pin 4 del midi.. mentre non vedo differenze sul pin 6 di uscita del foto-isolatore..è sempre sui 5V..
ma questa cosa che in riposo c'è livello alto il pic lo sa già oppure bisogna settarlo appositamente anche per questo?

ho provato a testare il voltaggio sul connettore midi out, quando mando un messaggio midi dal pc a questo midi out il voltaggio (negativo) aumenta di 0,2V, sul pin 4 del midi.. mentre non vedo differenze sul pin 6 di uscita del foto-isolatore..è sempre sui 5V..
ma questa cosa che in riposo c'è livello alto il pic lo sa già oppure bisogna settarlo appositamente anche per questo?
Re:varie riguardo PIC
Se lo misuri col multimetro non vedi niente, devi metterci un oscilloscopio che abbia una banda superiore ai 30kHz del midi... il multimetro fa tre letture al secondo, quello con un secondo fa trenta mila oscillazioni!!!!
MEMENTO trimmer Humdinger :lol1:
Re:varie riguardo PIC
CMQ grazie delle info sui pic davide!!! A breve (qualche mese) sicuramente farò una tesi che riguarda qualcosa in cui c'è un microcontrollore! quindi ti massacrerò di domande §:-)
MEMENTO trimmer Humdinger :lol1:
- davidefender
- Garzone di Roger Mayer
- Messaggi: 1437
- Iscritto il: 11/02/2008, 23:51
- Località: Roma
- Contatta:
Re:varie riguardo PIC
il mondo è pieno di possibilità per chi sa trovarle: http://en.wikipedia.org/wiki/UART :lol1:Dimitree ha scritto: bene grazie mille! ma come le sai queste cose??c'è un documento sulle specifiche hardware del protocollo? non riesco proprio a trovarlo..
non solo lo "sa" ma non può essere altrimenti! è infatti specifica dello standard USART.. come SICURAMENTE ricorderai (Dimitree ha scritto: ma questa cosa che in riposo c'è livello alto il pic lo sa già oppure bisogna settarlo appositamente anche per questo?

Tutto torna: se la linea è idle ci sono 5 volt, appena si sente la linea andare a 0V sta per cominciare un pacchetto! :face_green:
ciaoo! :ciao:
La teoria è quando si sa tutto ma non funziona niente. La pratica è quando funziona tutto ma non si sa il perché. In ogni caso si finisce sempre con il coniugare la teoria con la pratica: non funziona niente e non si sa il perché.
(Albert Einstein)
(Albert Einstein)
- davidefender
- Garzone di Roger Mayer
- Messaggi: 1437
- Iscritto il: 11/02/2008, 23:51
- Località: Roma
- Contatta:
Re:varie riguardo PIC
oooooluix ha scritto: CMQ grazie delle info sui pic davide!!! A breve (qualche mese) sicuramente farò una tesi che riguarda qualcosa in cui c'è un microcontrollore! quindi ti massacrerò di domande §:-)




grazie grazie!



La teoria è quando si sa tutto ma non funziona niente. La pratica è quando funziona tutto ma non si sa il perché. In ogni caso si finisce sempre con il coniugare la teoria con la pratica: non funziona niente e non si sa il perché.
(Albert Einstein)
(Albert Einstein)
Re:varie riguardo PIC
Di sicuro non a vanveradavidefender ha scritto: non elargisci complimenti spesso...

MEMENTO trimmer Humdinger :lol1:
Re:varie riguardo PIC
grazie!
quindi dove e come potrei mettere un led che mi segnala che arrivano bytes dal midi? a prescindere dal pic..
quindi dove e come potrei mettere un led che mi segnala che arrivano bytes dal midi? a prescindere dal pic..
- davidefender
- Garzone di Roger Mayer
- Messaggi: 1437
- Iscritto il: 11/02/2008, 23:51
- Località: Roma
- Contatta:
Re:varie riguardo PIC
basterebbe metter un led collegato con il CATODO (e non con l'anodo) sul pin di ingresso del PIC, e sull'ANODO una resistenza connessa a 5Volt, così quando la linea non è più idle (bit 0) il led dovrebbe lampeggiare.. l'unico problema è la frequenza forse comunque eccessiva, fai una prova ma attento!
nel circuito del led fai passare poche milliampere, diciamo 3 o al massimo 5 (controlla il datasheet dell'optoisolatore per controllare quanta corrente al massimo può erogare).
Altrimenti potresti fare in modo che quando un dato è presente nella coda UART, fai fare un lampeggio ad un LED in una porta di output, ancora più semplice!


Altrimenti potresti fare in modo che quando un dato è presente nella coda UART, fai fare un lampeggio ad un LED in una porta di output, ancora più semplice!


Ultima modifica di davidefender il 27/11/2009, 19:27, modificato 1 volta in totale.
La teoria è quando si sa tutto ma non funziona niente. La pratica è quando funziona tutto ma non si sa il perché. In ogni caso si finisce sempre con il coniugare la teoria con la pratica: non funziona niente e non si sa il perché.
(Albert Einstein)
(Albert Einstein)
Re:varie riguardo PIC
no il secondo metodo non posso usarlo perchè il led lo volevo proprio per vedere se passa qualcosa dal cavo midi fino all'uscita dell optoisolatore..
comunque, altra domandina..devo abilitare per forza Global Interrupt per far si chè funzioni l'interrupt dell'usart? oppure mi basta attivare il bit RCIE del registro PIE1 (è il bit di attivazione interrupt) ?
comunque, altra domandina..devo abilitare per forza Global Interrupt per far si chè funzioni l'interrupt dell'usart? oppure mi basta attivare il bit RCIE del registro PIE1 (è il bit di attivazione interrupt) ?
- davidefender
- Garzone di Roger Mayer
- Messaggi: 1437
- Iscritto il: 11/02/2008, 23:51
- Località: Roma
- Contatta:
Re:varie riguardo PIC
mm a quanto capisco hai dei problemi con la USART giusto?
guarda nello specifico ovviamente non so quali siano o meno i registri da abilitare con la serie PIC, io uso gli ATMEL quindi non ho esperienza diretta, cmq è facile, con il led vedi se per caso passa il segnale MIDI, poi al massimo puoi abilitarli tutti gli interrupt così non ti sbagli!
il primo passo è farlo funzionare, poi man mano capisci togliendo cosa, non funziona più!
Del resto, puoi anche disabilitare tutti gli interrupt e eseguire una seguenza di polling con la quale controlli che il buffer della USART sia vuoto o meno, è più semplice e a meno rischio di errori di programmazione! Fammi sapere come è andata!

guarda nello specifico ovviamente non so quali siano o meno i registri da abilitare con la serie PIC, io uso gli ATMEL quindi non ho esperienza diretta, cmq è facile, con il led vedi se per caso passa il segnale MIDI, poi al massimo puoi abilitarli tutti gli interrupt così non ti sbagli!

Del resto, puoi anche disabilitare tutti gli interrupt e eseguire una seguenza di polling con la quale controlli che il buffer della USART sia vuoto o meno, è più semplice e a meno rischio di errori di programmazione! Fammi sapere come è andata!

La teoria è quando si sa tutto ma non funziona niente. La pratica è quando funziona tutto ma non si sa il perché. In ogni caso si finisce sempre con il coniugare la teoria con la pratica: non funziona niente e non si sa il perché.
(Albert Einstein)
(Albert Einstein)