- Messaggi: 7
- Ringraziamenti ricevuti 1
Esercizio accensione 4 led pic18
9 Anni 3 Settimane fa #1
da Framarru
Esercizio accensione 4 led pic18 è stato creato da Framarru
Premetto che sono ancora alle basi quindi mi scuso in anticipo per qualsiasi errore possa aver commesso .
Detto ciò passiamo alla pratica : sto programmando un pic18f452 che tutto sommato si avvicina a quello descritto nel testo di Mauro . L'esercizio in questione prevede l'accensione di 4 led collegati rispettivamente ai pin RB0 , RB1 , RB2 , RB3
ho anche un pulsante collegato alla porta RC0 che servirà per azionare la partenza del timer che accende i led in sequenza .
la funzione ISR è descritta nel file ma non riesco a capire come funziona perchè inizialmente nel main setta tutti i bit di PORTB a 1 quindi avremo un 0b11111111 , mentre la ISR facendo la moltiplicazione * 2 shifta ogni volta di un bit
0b11111110 poi 0b11111100 e via discorrendo ma non avremo mai il 0b0001000 necessario per l'if .
Ho provato il programma su PROTEUS e a quanto pare funziona correttamente quindi c'è qualche lacuna nel mio ragionamento ( ho allegato anche un immagine del circuito per completezza ) .
Detto ciò passiamo alla pratica : sto programmando un pic18f452 che tutto sommato si avvicina a quello descritto nel testo di Mauro . L'esercizio in questione prevede l'accensione di 4 led collegati rispettivamente ai pin RB0 , RB1 , RB2 , RB3
ho anche un pulsante collegato alla porta RC0 che servirà per azionare la partenza del timer che accende i led in sequenza .
la funzione ISR è descritta nel file ma non riesco a capire come funziona perchè inizialmente nel main setta tutti i bit di PORTB a 1 quindi avremo un 0b11111111 , mentre la ISR facendo la moltiplicazione * 2 shifta ogni volta di un bit
0b11111110 poi 0b11111100 e via discorrendo ma non avremo mai il 0b0001000 necessario per l'if .
Ho provato il programma su PROTEUS e a quanto pare funziona correttamente quindi c'è qualche lacuna nel mio ragionamento ( ho allegato anche un immagine del circuito per completezza ) .
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Framarru
- Autore della discussione
- New Member
Riduci
Di più
9 Anni 3 Settimane fa - 9 Anni 3 Settimane fa #2
da Framarru
Risposta da Framarru al topic Esercizio accensione 4 led pic18
Riguardando il codice ho capito il mio errore . Praticamente PORTB=1 è in cifre decimaili e setta solo il primo bit = 1 quindi avremo 0b00000001 facendo la moltiplicaizone e shiftando avremo 0b00000010 e via discorrendo .
Ultima Modifica 9 Anni 3 Settimane fa da Framarru.
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Framarru
- Autore della discussione
- New Member
Riduci
Di più
- Messaggi: 7
- Ringraziamenti ricevuti 1
9 Anni 2 Settimane fa #3
da Mauro Laurenti
Risposta da Mauro Laurenti al topic Esercizio accensione 4 led pic18
Confermo...hai 0b00000001.
Da quello che hovisto nel codice dovresti avere un LED che va a destra e a sinistra.
Info generali.
Nel caso reale i LED devono avere dei resistori in serie, altrimenti potresti rompere la porta di uscita del PIC.
Personalmente uso 560ohm per avere circa 4-6mA di corrente.
Il bit Timer ON dovrebbe essere settato solo dopo aver impostato il timer.
Successivamente, dopo aver pulito il bit TMR0IF, attivi anche le interruzioni TMR0IE.
E' un modo "sequenzialmente pulito" di operare che puo' aiutare in altri casi.
Saluti,
Mauro
Da quello che hovisto nel codice dovresti avere un LED che va a destra e a sinistra.
Info generali.
Nel caso reale i LED devono avere dei resistori in serie, altrimenti potresti rompere la porta di uscita del PIC.
Personalmente uso 560ohm per avere circa 4-6mA di corrente.
Il bit Timer ON dovrebbe essere settato solo dopo aver impostato il timer.
Successivamente, dopo aver pulito il bit TMR0IF, attivi anche le interruzioni TMR0IE.
E' un modo "sequenzialmente pulito" di operare che puo' aiutare in altri casi.
Saluti,
Mauro
Ringraziano per il messaggio: Framarru
Si prega Accedi o Crea un account a partecipare alla conversazione.
9 Anni 2 Settimane fa - 9 Anni 2 Settimane fa #4
da Framarru
Risposta da Framarru al topic Esercizio accensione 4 led pic18
Grazie mille per la risposta Mauro
Per quanto riguarda lo schema si è vero avevo dimenticato i resistori , grazie anche per la dritta del timer in effetti è meglio settare prima tutti i bit e poi avviarlo
Per quanto riguarda lo schema si è vero avevo dimenticato i resistori , grazie anche per la dritta del timer in effetti è meglio settare prima tutti i bit e poi avviarlo
Ultima Modifica 9 Anni 2 Settimane fa da Framarru.
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Framarru
- Autore della discussione
- New Member
Riduci
Di più
- Messaggi: 7
- Ringraziamenti ricevuti 1
9 Anni 2 Settimane fa #5
da Mauro Laurenti
Risposta da Mauro Laurenti al topic Esercizio accensione 4 led pic18
Nella nuova foto sembri più abbronzato...
Buon lavoro.
Saluti,
Mauro
Buon lavoro.
Saluti,
Mauro
Si prega Accedi o Crea un account a partecipare alla conversazione.
Moderatori: Mauro Laurenti, Pinna, StefA, Matteo Garia
Registrati al sito
Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.