evang Δημοσ. 11 Μαΐου 2008 Δημοσ. 11 Μαΐου 2008 Σε ενα project με avr stk500 θελω να χρησιμοποιω και την ωρα μεσα στον κωδικα, με c++ και avrstudio, αν γινεται...
takeda Δημοσ. 11 Μαΐου 2008 Δημοσ. 11 Μαΐου 2008 το 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; ΚΟΚ } αυτός είναι ένας πιθανός τρόπος για να γίνει
takeda Δημοσ. 11 Μαΐου 2008 Δημοσ. 11 Μαΐου 2008 άλλος τρόπος είναι να χρησημοποιήσεις την AVR LIB C (gnu) που έχει μέσα έτοιμα structs για τον χρόνο με καλώς ορισμένους τύπος κλπ δες και εκεί
firewalker Δημοσ. 11 Μαΐου 2008 Δημοσ. 11 Μαΐου 2008 Αν χρειάζεσαι πραγματικό χρόνο στην εφαρμογή σου η πιο εύκολη λύση θα ήταν ίσως η χρήση του DS1307 πάνω σε κάποιο miniboard που θα επικοινωνεί με I2C Bus με τον avr σου. Τι ακριβώς θέλεις να κάνεις αν επιτρέπεται; http://www.futurlec.com.au/Mini_DS1307.jsp
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.