salve a tutti questa è la mia prima domanda su questo forum e spero davvero che possiate aiutarmi a chiarirmi le idee....
ma bando alle ciance, ho 2 quesiti che mi frullano sulla testa ma sarà il caldo o sarà lo stress non riesco a venirne a capo....
1) usando l'interrupt relativo all'overflow di un timer counter , se vado ad effettuare modifiche sul registro relativo allo specifico timer counter questa modifica viene rilevata come se fosse un interrupt? in pratica se modifico il valore(ad esempio) di TCNT0 (prendo in considerazione un qualsiasi micro atmel) in fase di conteggio questa modifica mi farà scattare l'interrupt legato all'overflow di TCNT0?
ora provo a spiegare il perché di questo quesito
da una mezza simulazione fatta (sulla progettazione di una sveglia digitale) è come se modificando il timer counter in fase di conteggio mi manda in overflow il registro e mi genera l'interrupt... io sinceramente non so se succede realmente una cosa cosi... dico questo perché in pratica io ogni minuto faccio una piccola correzione sul timer counter (ovviamente è in fase di conteggio)facendolo partire non da 0 ma da 4...... (un conteggio completo da 0 a 255 del timer counter equivale a 1/16 di secondo) .... indovinate quanto tempo guadagno* dopo 16 ore (giusto giusto un secondo) è un caso o la mia ipotesi è giusta?
2) sempre restando sui timer counter.... lavorando in modalità CTC e sfruttando in questo caso l'interrupt "Compare Handler" il conteggio con un solo registro da 8 bit mi garantirà 256 conteggi o 255?
anche questa domanda deriva dal fatto che ho notato una netta differenza nello sfruttare l'interrupt "Overflow Handler" invece che quello con il confronto...in pratica è come se con l'interrupt "Compare Handler" mi risulta un conteggio in meno....
infatti se carico il registro di confronto(ad esempio OCR0 per TCNT0) con il valore massimo ,cioè 255 il conteggio mi risulta + veloce....
spero di essermi spiegato bene e che possiate aiutarmi
PS per ora sto programmando solo in assembly e non conosco il C