THMMY.gr

Ηλεκτρονικοί Υπολογιστές και Τεχνικά Θέματα => Ηλεκτρολογικές... απορίες => Topic started by: greekoo on July 31, 2016, 14:43:49 pm



Title: Asychronous Timer (32768hz) σε Arduino UNO
Post by: greekoo on July 31, 2016, 14:43:49 pm
Καλησπέρα και πάλι,

Θέλω να χρησιμοποιήσω τον Timer2 σε Asychronous Mode, με ρολόι τον internal 32768hz κρύσταλλο (που έχει ο atmega328p)

Όσο αφορά την διαδικασία κώδικα ακολουθώ ότι λέει στο datasheet:

;setting Timer2
   ;Asychronous Mode, prescaler = 128 , full sec timer overflow enabled Normal Mode
   ldi r16,0b00100000
   sts assr,r16
   clr r16
   sts TCCR2A,r16
   ldi r16,0b00000101
   sts TCCR2B,r16
   clr r16
   sts tcnt2,r16
assr_update_busy:
   lds r16,assr
   cpi r16,0b00100000
   brne assr_update_busy
   ldi r16,0b00000111
        sts tifr2,r16 ; clear any pending interrupts

        ldi r16,1
        sts timsk2,r16
        sei
Παρόλαυτά ο μετρητής δεν φαίνεται να δουλεύει.

Θα πρέπει να κάνω κάποια συνδεσμολογία  για να ενεργοποιήσω τον εσωτερικό 32768 κρύσταλλο;

Eυχαριστώ.


Title: Re: Asychronous Timer (32768hz) σε Arduino UNO
Post by: Nerevar on July 31, 2016, 14:55:41 pm
Απ'οσο θυμάμαι για να αλλάξεις clock πρέπει να πειράξεις κάποια fuse bits (με επιφύλαξη πάντα,δεν έχω ασχοληθεί τα 2 τελευταία χρόνια)

http://eleccelerator.com/fusecalc/fusecalc.php?chip=atmega328p (http://eleccelerator.com/fusecalc/fusecalc.php?chip=atmega328p)


Title: Re: Asychronous Timer (32768hz) σε Arduino UNO
Post by: greekoo on July 31, 2016, 20:05:25 pm
Απ'οσο θυμάμαι για να αλλάξεις clock πρέπει να πειράξεις κάποια fuse bits (με επιφύλαξη πάντα,δεν έχω ασχοληθεί τα 2 τελευταία χρόνια)

http://eleccelerator.com/fusecalc/fusecalc.php?chip=atmega328p (http://eleccelerator.com/fusecalc/fusecalc.php?chip=atmega328p)

Ευχαριστώ φιλε θα το τσεκάρω κ αν δν νιώσω θα σ πω.