PDA

Επιστροφή στο Forum : Πρόβλημα μετρησης χρόνου



ds electronics
24-04-11, 22:28
Εφτιαξα ένα χρονοδιακόπτη ο οπόιος εξυπηρετή ένα μηχάνημα χρωμάτων το οποίο ανα 4 ώρες ενεργοποιή ένα μοτερ και ανακατευει τις χρωστικές για περίπου 1 λεπτό.
Παρατήρησα λοιπόν ότι έχω απόκλιση στους χρόνους.
Χρησιμοποιησα ενα 89c2051 με xtal 110592.
Έχω συνδεση οθονη όπου βλέπω το μετρημα σε δευτερολεπτα και όταν χρησημοποιώ την εντολή για διακοπή 1 δευτερολεπτου κατα το μετρημα έχω αποτελεσμα 1 προς 2.2, δλδ 1 λεπτό διακοπές στο ολοκληρωμένο πάιρνω αποτελεσμα 2,20 λεπτά.
Άλλαξα την διακοπή σε μετρημα ms και έβαλα 500 και 500 και 100 σε σειρά και έλαβα 99% σωστό αποτελεσμα.
Μου φάνηκε περιεργο γι'αυτό ρωτάω άν ξέρει κανείς διότι παρόλο που έχω κάνει πολλές εφαρμογές ποτέ δεν χρειάστηκε να μετρήσω με αποτέλεσμα να μην το έχω αντιληφθεί.

tasosmos
24-04-11, 22:53
Σε τι γλωσσα γραφεις?

To εχεις κανει με χρηση timers ή με συναρτηση του στυλ delay(χρονος)?

Γενικα οταν θες ακριβεια χρονισμου πρεπει να χρησιμοποιεις timers και ισως και καποια τμηματα σε assembly για να εισαι βεβαιος οτι θα γινουν στον σωστο χρονο.

Αν θες οσο το δυνατον μεγαλυτερη ακριβεια θελει καλο κρυσταλλο και πειραματικη μετρηση για διορθωση της μικρης αποκλισης που θα υπαρχει, ειτε μεσω του κωδικα ειτε με ενα τριμερακι αντι του ενος σταθερου πυκνωτη ταλαντωσης.

Βεβαια οπως και να εχει 220% αποκλιση δεν θα επρεπε να εχει σε καμια περιπτωση, κατι δεν παει καλα με τον κωδικα σου ή ισως με τα clocks του μΕ...

ds electronics
24-04-11, 23:02
Το όλο θέμα είναι ότι σε εντολή wait 1 παράγει διπλάσια καθυστέρηαη ενώ σε waitms 1000 λειτουργεί πιο σωστά.
Τό πρόγραμμα το έφτιαξα σε bascom γιατί έπαθε ζημιά ο δίσκοw μου και έχασα την plm.
Οπότε μέχρι να μου την στείλει ένας φίλος γράφω σε basic.

tasosmos
24-04-11, 23:08
Δεν ξερω τι υποστηριζει η bascom και πως υλοποιει τις συναρτησεις αλλα γενικα μπορεις να το κανεις με timers, απ'οτι ειδα εχει 2 16μπιτους ο μΕ σου.
Με 8051 δεν εχω δουλεψει καθολου αλλα φανταζομαι θα εχει επισης prescaler οποτε θα ειναι αρκετα ευκολο.