bombernigno Inserito: 17 gennaio 2012 Segnala Inserito: 17 gennaio 2012 Salve,ho creato un programma che utilizza un interrupt, all'interno di quest'ultimo si associa il valore di un registro TCCN0 a quello di una variabile unsigned char, quando torno nel main la variabile non è utilizzabile ovvero risulta essere nulla. Ma se guardo lo stato della memoria la variabile è presente con il valore giusto.Perchè? come faccio ad utilizzare nel main variabili associate nelle funzioni interrupt?ciao
bombernigno Inserita: 17 gennaio 2012 Autore Segnala Inserita: 17 gennaio 2012 Bastava metterci VOLATILE UNSIGNED CHAR "nome variabile usata interrupt"
RealTime Inserita: 17 gennaio 2012 Segnala Inserita: 17 gennaio 2012 Vedo che hai trovato " una delle soluzioni " in modo autonomo ... perfetto RT
RealTime Inserita: 17 gennaio 2012 Segnala Inserita: 17 gennaio 2012 Spesso questi inconvenienti accadono quando il compilatore effettua particolari ottimizzazioni del codice (Es. Loop) ed utilizzo dei registri temporanei per la conservazioni dei valori delle variabili (Register Marshalling).Con la keyword "volatile" informi il tuo compilatore che quella particolare variabile "può cambiare".Hai trovato la soluzione più elegante e correttaRT
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora