S
seemanta
Guest
Salve,
Ho notato che dopo essere andato a dormire e svegliarsi, il mio timer 0 gestore di interrupt non vengono chiamate.
Il mio problema è questo:
Il mio micro riceve un interrupt esterna ogni secondo da un orologio in tempo reale.Questo interrupt esterna è legata a / INT0 del microrganismo.
Ho bisogno di luce di un LED per 10 secondi (allarme visivo).Ho calcolato quante volte il timer 0 sarebbe overflow in 10 secondi.Chiamiamo n questo conteggio '.Poi, nel mio timer 0 ISR, tengo un conteggio di quante volte l'ISR è stato chiamato.Quando questo numero di partite 'n' so che siano trascorsi 10 secondi e poi ho chiuso il LED verso il basso.
Il problema mi affrontare è che se vado a spegnere la modalità tra gli interrupt RTC, la mia LED continua a lampeggiare e non si ferma mai.Fondamentalmente il conteggio n '' non viene mai raggiunta.
Tuttavia, se scelgo di andare in modalità idle, invece di power down mode, tutto funziona e la mia LED non si accende dopo 10 secondi.
In qualche modo credo che questo sia dovuto al oscillatore arresto in power down mode e non fermarsi in modalità idle.Ma io non sono in grado di capire la connessione voce.
Per favore qualcuno può suggerire ciò che sta accadendo qui?Grazie in anticipo!
saluti,
SeemantaAggiunto dopo 2 ore 13 minuti:Ho avuto la causa di questo problema!Solo voluto condividere con il resto del edaboard'ians.
Ebbene, dal momento che l'oscillatore si blocca tra ogni interruzione, il TH0 e registri TL0 anche congelare durante il momento in cui il micro rimane al potere verso il basso.
È per questo che il tutto rallenta in modo efficace verso il basso, dal momento che per raggiungere il numero di 'micro n'the deve spendere più tempo di quanto si sarebbe speso con l'oscillatore in esecuzione tutto il tempo.
Credo che, questa è la prima volta qualcuno ha postato il problema e la soluzione così!
Spero che questo contribuirà a chiunque in futuro di fronte lo stesso problema
Anch'io di fronte!
saluti,
Seemanta
Ho notato che dopo essere andato a dormire e svegliarsi, il mio timer 0 gestore di interrupt non vengono chiamate.
Il mio problema è questo:
Il mio micro riceve un interrupt esterna ogni secondo da un orologio in tempo reale.Questo interrupt esterna è legata a / INT0 del microrganismo.
Ho bisogno di luce di un LED per 10 secondi (allarme visivo).Ho calcolato quante volte il timer 0 sarebbe overflow in 10 secondi.Chiamiamo n questo conteggio '.Poi, nel mio timer 0 ISR, tengo un conteggio di quante volte l'ISR è stato chiamato.Quando questo numero di partite 'n' so che siano trascorsi 10 secondi e poi ho chiuso il LED verso il basso.
Il problema mi affrontare è che se vado a spegnere la modalità tra gli interrupt RTC, la mia LED continua a lampeggiare e non si ferma mai.Fondamentalmente il conteggio n '' non viene mai raggiunta.
Tuttavia, se scelgo di andare in modalità idle, invece di power down mode, tutto funziona e la mia LED non si accende dopo 10 secondi.
In qualche modo credo che questo sia dovuto al oscillatore arresto in power down mode e non fermarsi in modalità idle.Ma io non sono in grado di capire la connessione voce.
Per favore qualcuno può suggerire ciò che sta accadendo qui?Grazie in anticipo!
saluti,
SeemantaAggiunto dopo 2 ore 13 minuti:Ho avuto la causa di questo problema!Solo voluto condividere con il resto del edaboard'ians.
Ebbene, dal momento che l'oscillatore si blocca tra ogni interruzione, il TH0 e registri TL0 anche congelare durante il momento in cui il micro rimane al potere verso il basso.
È per questo che il tutto rallenta in modo efficace verso il basso, dal momento che per raggiungere il numero di 'micro n'the deve spendere più tempo di quanto si sarebbe speso con l'oscillatore in esecuzione tutto il tempo.
Credo che, questa è la prima volta qualcuno ha postato il problema e la soluzione così!
Spero che questo contribuirà a chiunque in futuro di fronte lo stesso problema
Anch'io di fronte!
saluti,
Seemanta