Si, avete ragione, ma quello che ho postato possiamo definirlo un "esperimento" in cui l'ottimizzazione non interessa molto, ma è possibile "debuggare" il codice così attenzionando i parametri principali dell'hardware...
Comunque sia, il mio intento è di collegare un quarzo da 32KHz in modo da ottenere un interrupt al secondo, nel "test" avevo collegato il quarzo tra PB0 e PB1 (T0 e T1), arrivati a questo punto, è possibile che questi due pin lavorino esclusivamente ad onda quadra?
Guardando meglio nel datasheet del micro, ho notato che il timer 2 (8Bit) ha la predisposizione per il quarzo a 32KHz, dividendo la frequenza per il top del timer, quindi con generazione di un interrupt di tipo overflow (256) ottengo esattamente 128 overflow equivalenti a 1 secondo.
Nel caso alternativo quale il caso di T0 e T1 potrebbero essere ad onda quadra, e quindi utilizzabili impostando un quarzo su un partitore e tenendo in considerazione i parametri del partitore, si associa un comparatore con tensione di riferimento impostata secondo i parametri del partitore del quarzo...
Sicuramente cambierò la disposizione delle connessioni...
Timer 16bit con clock esterno
Moderatore:
Paolino
24 messaggi
• Pagina 2 di 3 • 1, 2, 3
0
voti
Dando un rapido sguardo nel datasheet del tuo microcontroller mi pare di capire che il quarzo va messo tra i pin PC6 e PC7.
Inoltre:
Quando ti si chiede lo schema, un motivo c'è. Siamo qui per cercare di darti una mano. Se non ci dai le informazioni che ci servono, ci metti i bastoni tra le ruote. Mi sembra un po' una mancanza di rispetto verso il tempo che stiamo investendo per aiutarti.
Boiler
Inoltre:
On this device, the Timer/Counter Oscillator Pins (TOSC1 and TOSC2) are shared with XTAL1 and
XTAL2. When using the Timer/Counter Oscillator, the system clock needs to be four times the oscillator
frequency. Due to this and the pin sharing, the Timer/Counter Oscillator can only be used when the
Calibrated Internal RC Oscillator is selected as system clock source.
Quando ti si chiede lo schema, un motivo c'è. Siamo qui per cercare di darti una mano. Se non ci dai le informazioni che ci servono, ci metti i bastoni tra le ruote. Mi sembra un po' una mancanza di rispetto verso il tempo che stiamo investendo per aiutarti.
Boiler
0
voti
Si, appena fatto la prova, quarzo tra PC6 e PC7
Con queste impostazioni sembra essere a tempo, rimane un mistero il procedimento matematico
- Codice: Seleziona tutto
...
uint8_t count;
int main(){
count = 0;
ASSR = (1 << EXCLK); // Clock source esterno
TIMSK2 = (1 << TIOE2);// Interrupt overflow
TCCR2B = (1 << CS20) | (1 << CS21) | (1 << CS22); //prescaler 1024
sei();
while(1){
if(count == 64){
display_value += 1;
LCD_clear();
print_num(display_value,10);
count = 0;
}
}
}
ISR(TIMER2_OVF_vect){
count ++;
}
Con queste impostazioni sembra essere a tempo, rimane un mistero il procedimento matematico
-

daniele1996
610 3 8 11 - Sostenitore

- Messaggi: 1554
- Iscritto il: 29 ago 2011, 11:29
0
voti
Questo
è molto piú robusto di questo
Non sarebbe una cattiva idea dichiarare count come volatile.
Boiler
- Codice: Seleziona tutto
if(count >= 64)
è molto piú robusto di questo
- Codice: Seleziona tutto
if(count == 64)
Non sarebbe una cattiva idea dichiarare count come volatile.
Boiler
0
voti
boiler ha scritto:Questo
- Codice: Seleziona tutto
if(count >= 64)
è molto piú robusto di questo
- Codice: Seleziona tutto
if(count == 64)
Non sarebbe una cattiva idea dichiarare count come volatile.
Boiler
Hai ragione, se non c'è il maggiore qualcosa la puo saltare...
perché i miei calcoli non risultano?
-

daniele1996
610 3 8 11 - Sostenitore

- Messaggi: 1554
- Iscritto il: 29 ago 2011, 11:29
0
voti
Ripeto la domanda: dove hai montato il circuito? Su cosa? Millefori, breadboard o cos’altro?
-

PietroBaima
90,7k 7 12 13 - G.Master EY

- Messaggi: 12206
- Iscritto il: 12 ago 2012, 1:20
- Località: Londra
0
voti
Atmel ha scritto:Bit 6 – EXCLK: Enable External Clock Input
When EXCLK is written to one, and asynchronous clock is selected, the external clock input buffer is enabled and an external clock can be input on timer oscillator 1 (TOSC1) pin instead of a 32kHz crystal. Writing to EXCLK should be done before asynchronous operation is selected. Note that the crystal oscillator will only run when this bit is zero.
Nota bene: non ho mai lavorato con un microcontroller Atmega, ciononostante sto trovando queste informazioni nel giro di pochi minuti.
Non mi sembra che tu sia interessato a farti aiutare (come avevo già scritto) e il fatto che continui a non rispondere alle domande di Pietro conferma questo sospetto. Io mi astengo dal resto di questo thread. Buona fortuna.
Boiler
0
voti
Ho stampato una schedina con gli header, il quarzo della cpu da 16Mhz è collegato direttamente al micro, nelle porte attualmente ho collegato un display 1602A con configurazione 8 bit e un tastierino con le pcint (e tutto questo funziona correttamente). Dunque inizialmente avevo collegato il quarzo da 32KHz sui pin PB0 e PB1, che potenzialmente potrebbero richiedere un clock ad onda quadra... Mi sono accorto dopo che il timer che può fare da RTC è il timer a 8Bit. Dando una guardata a questo (trovato ieri sera) i miei calcoli dovrebbero essere giusti, ma in pratica nel codice che piu o meno sembra esser temporizzato correttamente ci vogliono 64 overflow per fare 1 secondo... e i calcoli indicati nella application note dicono tutt'altro...
-

daniele1996
610 3 8 11 - Sostenitore

- Messaggi: 1554
- Iscritto il: 29 ago 2011, 11:29
0
voti
EcoTan ha scritto:daniele1996 ha scritto:quarzo tra PC6 e PC7
Ci vanno i soliti due condensatori esterni? (altrimenti, magari va in seconda armonica e giustifica il tutto)
sinceramente penso che siccome i condensatori sono molto meno precisi dei quarzi, e correggere un imprecisione con una imprecisione più grande mi sembra un po un tiro alla lotteria...
-

daniele1996
610 3 8 11 - Sostenitore

- Messaggi: 1554
- Iscritto il: 29 ago 2011, 11:29
24 messaggi
• Pagina 2 di 3 • 1, 2, 3
Torna a Firmware e programmazione
Chi c’è in linea
Visitano il forum: Nessuno e 3 ospiti

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)
pigreco]=π
