PDA

Επιστροφή στο Forum : Κώδικας AVR



ALAMAN
17-03-07, 11:32
Γνωρίζει κανείς πως μπορώ να ελέγχω την χρονική καθηστέρισει μίας θύρας με διακόπτες;
Δηλαδή...
Θα έχω έναν μεγάλο μικροελεγκτή AVR πχ 8515.
Εφόσον ορίσω δύο θύρα ώς είσοδο, θέλω όταν η πρώτη θύρα έχει έναν συδνυασμό απο 0 και 1, που θα επιλέγετε
απο απλούς διακόπτες, να μπορώ να ελέγξω την χρονική καθηστέρυση μερικών pins.
Η χρονική καθυστέρηση θέλω να επιλέγετε απο την δεύτερη θύρα ως είσοδο, όταν δηλαδή έχει ένα συνδυασμό απο
0 και 1, μιλάω πάντα για όλη την θύρα, δηλαδή θα έχει έναν συνδυασμό 0100111 ας πούμε και σε αυτόν τον συνδυασμό
παράδειγμα θα δουλεύεουν 1 ή δύο πιν μόνο για μερικά δευτερόλεπτα ή αν γίνετε για 1 ή δύο λεπτά το πολύ.
Μπορεί να με βοηθήσει κάποιος;
Δεν είναι καμία εργασία για το σχολείο.

gsmaster
17-03-07, 14:04
Στην θύρα που λές ότι θα έχεις χρονοκαθυστέρηση, τι χρονοκαθυστέρηση θα είναι αυτή?

Θα μπορούσες να το κάνεις ώς εξής
Στα 8 bit της θύρας ελέγχου, θα βάζεις δυαδικές τιμές απο 0-255 με τους μικροδιακόπτες. Στο πρόγραμμά σου θα παίρνεις την τιμή την πόρτας αυτής και θα υπολογίζεις ανάλογα την χρονοκαθυστέρηση.
πχ διακόπτες 00000011 διαδικό = 3 δεκαδικό = κα8υστέρηση ας πούμε 3mS
πχ διακόπτες 11111111 διαδικό = 255 δεκαδικό = κα8υστέρηση ας πούμε 255mS


Μπορείς να κάνεις πράξεις στους αριθμούς και να παίρνεις και άλλες τιμές.

EDIT Αν σε ενδιαφέρει να έχει και ακρίβεια, έχει λίγο φασαρία.

ALAMAN
17-03-07, 14:37
Όχι ας μην έχει ακρίβεια.
Ναί έτσι θέλω περίπου αλλα όχι ms, sec. ή καλύτερα min.
Αλλα θέλω να επιλέγω πια πιν να έχουν αυτήν την καθηστέρυση απο μία άλλη θύρα.
Δηλαδή δύο θύρες ελέγχου ας πούμε... η μία θα ελέγχει ποιά πιν θα έχουν καθυστέρηση και η άλη πόση καθυστέρηση
θα έχουν τα επιλεγμένα πιν.
Γιαυτό και διάλεξα έναν μεγάλο μικροελεγκτή με πολές θύρες.
Πώς μπορώ να το βγάλω σε κώδικα;

Επιστήμων
17-03-07, 22:47
Θα πρέπει να κάνεις ένα πρόγραμμα το οποίο :

1- Με το ξεκίνημα ξεκινάει και η μέτρηση ( με delay ή με βήθεια TIMER0,1 )
2- ελέγχει αν η μέτρηση είναι ίση με την επιλεγμένη είσοδο ( που ελέγχει τον χρόνο)
3- αν όχι συνεχίζει τη μέτρηση
4- (βήμα 2)
5- αν η μέτρηση είναι ίση με τον αριθμό της θύρας τότε
ελέγχει ποια pin έχουν επιλεγεί να είναι έξοδοι και
ανοίγει τα αντίστοιχα pin της θύρας εξόδου.

Ελπίζω να έδωσα κάποια ιδέα !

ALAMAN
17-03-07, 23:13
Ναί μπράβο έτσι.
Αλλα επίσης δεν ξέρω άν κατάλαβες, τα πιν που θα οριστούν ώς έξοδος θα έχουν και χρονοκαθηστέρηση.
Όπως επιλέγχτηκαν τα πιν για έξοδο έτσι θα επιγεχτή και η χρονοκαθυστέρηση στα πιν.
Κώδικας; :roll:

ALAMAN
02-04-07, 11:21
Ξέρετε κανένα tutorials για να μάθω assembly :?:
Κανένα βιβλίο;