Προς το περιεχόμενο

Ώρα σε avr stk500 project


evang

Προτεινόμενες αναρτήσεις

Δημοσ.

Σε ενα project με avr stk500 θελω να χρησιμοποιω και την ωρα μεσα στον κωδικα, με c++ και avrstudio, αν γινεται...

Δημοσ.

το stk500 δεν έχει σχέση με το project σου μια πλατφόρμα για να προγραμματίζεις avr μικροελεγκτές είναι, οπότε εσύ λογικά θέλεις με κώδικα C να φτιάξεις ένα ρολόι στον μικροεπεξεργαστή σου

 

θα χρησημοποιήσεις μεταβλητές integer για να αποθηκέυεις την τρέχουσα ώρα, θα χρησημοποιήσεις κάποιον απο τους counters/timers που έχει ο μικροελεγκτής σου και ανάλογα με τον κρύσταλλο που έχει πάνω (ή εσωτερικό ρολοί) θα ρυθμίσεις ένα interrupt ανα δευτερόλεπτο (η μιλιδευτερόλεπτο ή 100 μιλιδευτερόλεπτα ότι θες εσύ) και στην ρουτίνα ISR{} (χειρισμός διακοπής) θα τροποποιείς τις volatile global μεταβλητές ώστε να 'τρέχει' ο χρόνος και να αποθηκεύεται σε αυτές,

 

ένα παράδειγμα μεταβλητών θα είναι

 

volatile int8_t hour, minute, second;

 

όταν θα τρέχει το ISR θα κάνεις (αν είναι ρυθμισμένος να κάνει interrupt κάθε δευτερόλεπτο)

 

ISR ( TIMER0_compare_match )

{

seccond ++ ;

if (second < 60) τότε άυξησε το λεπτό και μηδένισε το second;

 

ΚΟΚ

 

}

 

 

αυτός είναι ένας πιθανός τρόπος για να γίνει

Δημοσ.

άλλος τρόπος είναι να χρησημοποιήσεις την AVR LIB C (gnu) που έχει μέσα έτοιμα structs για τον χρόνο με καλώς ορισμένους τύπος κλπ

 

δες και εκεί

Δημοσ.

Αν χρειάζεσαι πραγματικό χρόνο στην εφαρμογή σου η πιο εύκολη λύση θα ήταν ίσως η χρήση του DS1307 πάνω σε κάποιο miniboard που θα επικοινωνεί με I2C Bus με τον avr σου. Τι ακριβώς θέλεις να κάνεις αν επιτρέπεται;

 

http://www.futurlec.com.au/Mini_DS1307.jsp

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...