Onda quadra nell'onda quadra
- Gianni
- Autore della discussione
- Elit Utente
Less
Di più
13 Anni 10 Mesi fa #1
da Gianni
Sono tutti bravi ad essere "open" con il "source" degli altri.
Un amico è colui che ti dice sempre quando stai sbagliando. Il mio miglior amico è il parser.
SettoreZero
Onda quadra nell'onda quadra è stato creato da Gianni
Ho realizzato un orologio con un PIC16F628 sfruttando il Timer1 con il quarzo da 32768Hz. L'orologio spacca il millesimo. Faccio in modo che l'interrupt su overflow Timer1 avvenga ogni mezzo secondo in maniera tale da far lampeggiare i puntini alla frequenza di 1Hz (mezzo secondo puntini accesi, mezzo secondo puntini spenti), giusto per fare in modo che tra un'accensione e la successiva sia passato un secondo.
Orbene, il codice è alquanto banale:
dots è definito come RB1, è la linea alla quale sono collegati i puntini.
Le cifre del display sono 4 e i puntini sono collegati alla seconda e alla terza cifra, i puntini della prima e quarta cifra non sono collegati. La routine di multiplex lascia accesi i display per 5mS l'uno, per cui ogni display rimane acceso 5mS e spento 15mS.
Collegando l'oscilloscopio su RB1, dove sono collegati i puntini (che premetto: lampeggiano correttamente e l'orologio è preciso), guardate che stranezza mi accade osservando le immagini.
L'onda quadra è perfettamente ad 1Hz ma il livello alto, ingrandendolo, ha un andamento strano: oscilla tra 5.16V e circa 4 volt con un andamento costante.
Suppongo che questo comportamento sia dovuto al fatto che ad ogni ciclo,dato che quando cifra 1 e cifra 4 sono spente, i puntini pure vengono gestiti (accesi e spenti) ma in realtà non possono accendersi in quanto a quelle cifre non sono collegati, per cui momentaneamente il livello alto passa a basso fino a circa 4V per poi rialzarsi quando capita la cifra che lo pilota...
Non so come spiegarmi meglio spero abbiate capito... Il succo è che quando i puntini devono stare spenti, nessun problema, ma quando devono stare accesi, RB1 si trova si a livello alto ma i puntini si accendono solo quando "tocca" accendersi alle cifre 2 e 3, mentre RB1 sta a livello alto pure quando si accendono le cifre 1 e 4 alle quali, però, i puntini non sono collegati... per cui io attribuisco quest'onda quadra nell'onda quadra a questa questione...
Però mi chiedo: perchè arriva a 4 V anzichè scendere a zero direttamente?
Orbene, il codice è alquanto banale:
Code:
void interrupt ISR()
{
if(TMR1IF)
{
TMR1H=0xC0;
dots^=1; // inverto lo stato dei puntini
halfsec++; // mezzo secondo passato
dots è definito come RB1, è la linea alla quale sono collegati i puntini.
Le cifre del display sono 4 e i puntini sono collegati alla seconda e alla terza cifra, i puntini della prima e quarta cifra non sono collegati. La routine di multiplex lascia accesi i display per 5mS l'uno, per cui ogni display rimane acceso 5mS e spento 15mS.
Collegando l'oscilloscopio su RB1, dove sono collegati i puntini (che premetto: lampeggiano correttamente e l'orologio è preciso), guardate che stranezza mi accade osservando le immagini.
L'onda quadra è perfettamente ad 1Hz ma il livello alto, ingrandendolo, ha un andamento strano: oscilla tra 5.16V e circa 4 volt con un andamento costante.
Suppongo che questo comportamento sia dovuto al fatto che ad ogni ciclo,dato che quando cifra 1 e cifra 4 sono spente, i puntini pure vengono gestiti (accesi e spenti) ma in realtà non possono accendersi in quanto a quelle cifre non sono collegati, per cui momentaneamente il livello alto passa a basso fino a circa 4V per poi rialzarsi quando capita la cifra che lo pilota...
Non so come spiegarmi meglio spero abbiate capito... Il succo è che quando i puntini devono stare spenti, nessun problema, ma quando devono stare accesi, RB1 si trova si a livello alto ma i puntini si accendono solo quando "tocca" accendersi alle cifre 2 e 3, mentre RB1 sta a livello alto pure quando si accendono le cifre 1 e 4 alle quali, però, i puntini non sono collegati... per cui io attribuisco quest'onda quadra nell'onda quadra a questa questione...
Però mi chiedo: perchè arriva a 4 V anzichè scendere a zero direttamente?
Sono tutti bravi ad essere "open" con il "source" degli altri.
Un amico è colui che ti dice sempre quando stai sbagliando. Il mio miglior amico è il parser.
SettoreZero
Si prega Accesso o Crea un account a partecipare alla conversazione.
13 Anni 10 Mesi fa #2
da Gianni
Sono tutti bravi ad essere "open" con il "source" degli altri.
Un amico è colui che ti dice sempre quando stai sbagliando. Il mio miglior amico è il parser.
SettoreZero
Risposta da Gianni al topic Re: Onda quadra nell'onda quadra
Il comportamento strano me lo conferma che, ingrandendo il livello alto dell'onda quadra a 1Hz, ho che il periodo dell'onda quadra "piccola" è di 4.8mS ... tempo che corrisponderebbe a quello del multiplexing tra una cifra e l'altra...
Sono tutti bravi ad essere "open" con il "source" degli altri.
Un amico è colui che ti dice sempre quando stai sbagliando. Il mio miglior amico è il parser.
SettoreZero
Si prega Accesso o Crea un account a partecipare alla conversazione.
13 Anni 10 Mesi fa #3
da Mauro Laurenti
Risposta da Mauro Laurenti al topic Re: Onda quadra nell'onda quadra
Ciao Gianni,
non ho ben capito il problema, ma effettivamente un'uscita con quel valore è un po' anomala.
Potresti fare una misura con l'oscilloscopio anche sui pin dell'alimentazione?
Fai la misura con la sonda posta a x10.
Qual'è assorbimento di ogni LED?
Quanti led sono accesi in contemporanea (assumerei 7 + eventuale punto)?
Saluti,
Mauro
non ho ben capito il problema, ma effettivamente un'uscita con quel valore è un po' anomala.
Potresti fare una misura con l'oscilloscopio anche sui pin dell'alimentazione?
Fai la misura con la sonda posta a x10.
Qual'è assorbimento di ogni LED?
Quanti led sono accesi in contemporanea (assumerei 7 + eventuale punto)?
Saluti,
Mauro
Si prega Accesso o Crea un account a partecipare alla conversazione.
13 Anni 10 Mesi fa #4
da Gianni
Sono tutti bravi ad essere "open" con il "source" degli altri.
Un amico è colui che ti dice sempre quando stai sbagliando. Il mio miglior amico è il parser.
SettoreZero
Risposta da Gianni al topic Re: Onda quadra nell'onda quadra
Sull'alimentazione tutto ok. Ogni led assorbe 20mA e nel peggiore dei casi ne sono accesi 8 contemporaneamente. Però la questione penso non sia l'assorbimento... secondo me è la routine di multiplex che crea quel gioco.
Mi spiego: ogni 5mS cambio la cifra da visualizzare, si parte dalla cifra 1, poi cifra 2 che comprende il puntino in basso, poi cifra 3 che comprende il puntino in alto e infine cifra 4 per poi ricominciare. I puntini lampeggiano ad 1Hz ma all'interno della routine di multiplex che scatta ogni 5mS.
I primi 5mS si accende la cifra 1, contemporaneamente nel primo secondo vengono abilitati i puntini ma ovviamente, pur trovandosi la linea dei puntini a livello alto, non si accendono perchè è attiva la cifra 1, si accenderanno realmente per le cifre 2 e 3 ma comunque con un multiplex di 5 secondi, per la cifra 4 pure rimarranno spenti anche se attivi e così via, per cui quell'andamento è sicuramente causato da tutto questo. Quello che non mi spiego è il perchè della caduta di circa 1V
Mi spiego: ogni 5mS cambio la cifra da visualizzare, si parte dalla cifra 1, poi cifra 2 che comprende il puntino in basso, poi cifra 3 che comprende il puntino in alto e infine cifra 4 per poi ricominciare. I puntini lampeggiano ad 1Hz ma all'interno della routine di multiplex che scatta ogni 5mS.
I primi 5mS si accende la cifra 1, contemporaneamente nel primo secondo vengono abilitati i puntini ma ovviamente, pur trovandosi la linea dei puntini a livello alto, non si accendono perchè è attiva la cifra 1, si accenderanno realmente per le cifre 2 e 3 ma comunque con un multiplex di 5 secondi, per la cifra 4 pure rimarranno spenti anche se attivi e così via, per cui quell'andamento è sicuramente causato da tutto questo. Quello che non mi spiego è il perchè della caduta di circa 1V
Sono tutti bravi ad essere "open" con il "source" degli altri.
Un amico è colui che ti dice sempre quando stai sbagliando. Il mio miglior amico è il parser.
SettoreZero
Si prega Accesso o Crea un account a partecipare alla conversazione.
13 Anni 10 Mesi fa #5
da Mauro Laurenti
Risposta da Mauro Laurenti al topic Re: Onda quadra nell'onda quadra
Ciao Gianni,
ho visto lo schema sul tuo sito.
Ho qualche idea ma dovrei sapere:
Che PIC usi?
Quale valore hai per R11 e R15?
Saluti
Mauro
ho visto lo schema sul tuo sito.
Ho qualche idea ma dovrei sapere:
Che PIC usi?
Quale valore hai per R11 e R15?
Saluti
Mauro
Si prega Accesso o Crea un account a partecipare alla conversazione.
Moderatori: Mauro Laurenti, StefA, Matteo Garia
Registrati al sito
Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.
Forum - Ultimi messaggi
-
- Freedom III e compilazioni fallite
- da Black
-
- MODULO GSM SIM900A
- da FABRIZIO
-
- LTerminal - nuove funzioni
- da Mauro Laurenti
-
- Aggiornamento sito completato
- da Mauro Laurenti
-
- registro a scorrimento PIPO in cascata
- da Mauro Laurenti