mariakal Δημοσ. 28 Ιανουαρίου 2009 Μέλος Δημοσ. 28 Ιανουαρίου 2009 Έχω ένα σύστημα παρακολούθησης που αποτελείται από 4 ασύρματες κάμερες και έναν δέκτη. Στον δέκτη υπάρχει ψηφιακός μικρο-ελεγκτής, ο οποίος διαβάζει 4 bits εισόδου (S1, S2, S3, S4) από αντίστοιχα dip switches και γράφει 4 bits εξόδου (C1, C2, C3, C4), που ενεργοποιούν τις 4 κάμερες, αντίστοιχα. C4 C3 C2 C1 S4 S3 S2 S1 Τα 4 bits εισόδου έχουν την παρακάτω χρήση: • S1: “1” / “0” = ενεργοποίηση / απενεργοποίηση παρακολούθησης • S2: “1”: κυκλική σάρωση καμερών, “0”: παρακολούθηση σταθερής κάμερας • S4S3: (S4 το πλέον σημαντικό bit) o αν S2=“1”, τότε: αναμονή 2*(S4S3)+2 sec ανά κάμερα, π.χ. για S4S3=112 αναμονή 8 sec ανά κάμερα, o αν S2=“0”, τότε: S4S3 = ο αριθμός της κάμερας που παρακολουθείται, π.χ. S4S3=112 για την κάμερα #4. Το λογισμικό του μικρο-ελεγκτή διαβάζει τα bits εισόδου από τη διεύθυνση (I/O) 80h και γράφει τα bits εξόδου στη διεύθυνση (I/O) 80h, ενώ δεν διαβάζει ούτε γράφει σε άλλες I/O διευθύνσεις. Η παραπάνω επικοινωνία I/O γίνεται περιοδικά (polling), με συχνότητα 10 Hz χρησιμοποιώντας τη γραμμή διακοπών (maskable interrupts) του μικρο-ελεγκτή. εκείνο που με βασανίζει είναι, πώς μπορώ να σχεδιασω το ψηφιακό κύκλωμα που υλοποιεί το παραπάνω σύστημα, με χρήση του μικροεπεξεργαστή 8085. [clock 10Hz] αλλά κυρίως πώς μπορώ να γραψω σε γλώσσα προγραμματισμού assembly 8085 η ρουτίνα εξυπηρέτησης διακοπών (Interrupt Service Routine), που υλοποιεί την παραπάνω λογική λειτουργία του μικρο-ελεγκτή.
mariakal Δημοσ. 28 Ιανουαρίου 2009 Δημοσ. 28 Ιανουαρίου 2009 Έχω ένα σύστημα παρακολούθησης που αποτελείται από 4 ασύρματες κάμερες και έναν δέκτη. Στον δέκτη υπάρχει ψηφιακός μικρο-ελεγκτής, ο οποίος διαβάζει 4 bits εισόδου (S1, S2, S3, S4) από αντίστοιχα dip switches και γράφει 4 bits εξόδου (C1, C2, C3, C4), που ενεργοποιούν τις 4 κάμερες, αντίστοιχα. C4 C3 C2 C1 S4 S3 S2 S1 Τα 4 bits εισόδου έχουν την παρακάτω χρήση: • S1: “1” / “0” = ενεργοποίηση / απενεργοποίηση παρακολούθησης • S2: “1”: κυκλική σάρωση καμερών, “0”: παρακολούθηση σταθερής κάμερας • S4S3: (S4 το πλέον σημαντικό bit) o αν S2=“1”, τότε: αναμονή 2*(S4S3)+2 sec ανά κάμερα, π.χ. για S4S3=112 αναμονή 8 sec ανά κάμερα, o αν S2=“0”, τότε: S4S3 = ο αριθμός της κάμερας που παρακολουθείται, π.χ. S4S3=112 για την κάμερα #4. Το λογισμικό του μικρο-ελεγκτή διαβάζει τα bits εισόδου από τη διεύθυνση (I/O) 80h και γράφει τα bits εξόδου στη διεύθυνση (I/O) 80h, ενώ δεν διαβάζει ούτε γράφει σε άλλες I/O διευθύνσεις. Η παραπάνω επικοινωνία I/O γίνεται περιοδικά (polling), με συχνότητα 10 Hz χρησιμοποιώντας τη γραμμή διακοπών (maskable interrupts) του μικρο-ελεγκτή. εκείνο που με βασανίζει είναι, πώς μπορώ να σχεδιασω το ψηφιακό κύκλωμα που υλοποιεί το παραπάνω σύστημα, με χρήση του μικροεπεξεργαστή 8085. [clock 10Hz] αλλά κυρίως πώς μπορώ να γραψω σε γλώσσα προγραμματισμού assembly 8085 η ρουτίνα εξυπηρέτησης διακοπών (Interrupt Service Routine), που υλοποιεί την παραπάνω λογική λειτουργία του μικρο-ελεγκτή.
Dr.Fuzzy Δημοσ. 28 Ιανουαρίου 2009 Δημοσ. 28 Ιανουαρίου 2009 Με λιγα λογια αυτο που σε βασανιζει ειναι ολη η επιλυση της ασκησης. Προτεινω λοιπον να κανεις post τι εχεις κανει μεχρι στιγμης και το βλεπουμε.
Dr.Fuzzy Δημοσ. 28 Ιανουαρίου 2009 Δημοσ. 28 Ιανουαρίου 2009 Με λιγα λογια αυτο που σε βασανιζει ειναι ολη η επιλυση της ασκησης. Προτεινω λοιπον να κανεις post τι εχεις κανει μεχρι στιγμης και το βλεπουμε.
mariakal Δημοσ. 31 Ιανουαρίου 2009 Μέλος Δημοσ. 31 Ιανουαρίου 2009 Δεν εχω κανει πολλά πράγματα γιατί με έχει δυσκολέψει πολύ!! Ο συλλογισμός μου εχει ως εξής: Με ρολόι 10Hz ο χρόνος μιας κατάστασης θα είναι Τ = 1/10Hz = 0,1sec χρόνος σχετικά μεγάλος για να αγνοηθούν οι εκτελούμενες εντολές μεταξύ 2 διαδοχικών εναλλαγών στις κάμερες (περίπτωση S2=1). Σε χρόνο αναμονής 2sec = 20T θα πρέπει οπωσδήποτε να χωρέσουν τουλάχιστον: - μια εντολή OUT 80h (10T), - μια μεταβολή στον Α (τουλάχιστον 4Τ), - ένα JMP (7Τ) για τη συνεχή επανάληψη πχ από την 4η στη 1η κάμερα Σύνολο λοιπόν 21Τ=2,1sec χρόνος που ξεπερνά το όριο των 2sec. Εν τέλει, νομίζω ότι με ρολόι 10Hz ο χρόνος μιας κατάστασης θα είναι Τ = 1/10Hz = 0,1 μsec (και όχι sec). 1Hz = 1cycle/sec = 1/sec μ = 10^(-6) Επομένως T= 1/10Hz = 0,1sec ΜΠΟΡΕΙ ΝΑ ΜΕ ΒΟΗΘΗΣΕΙ ΚΑΝΕΙΣ?
fromaz Δημοσ. 1 Φεβρουαρίου 2009 Δημοσ. 1 Φεβρουαρίου 2009 Τα 10Hz είναι μια αυθαίρετη συχνότητα polling. Αφορά το software/firmware. Η συχνότητα λειτουργίας (clock) του 8085 είναι 3MHz. Καμιά σχέση το ένα με το άλλο... Αλίμονο αν μια cpu ήθελε ~2 sec για να εκτελέσει μια χούφτα εντολές!
apollonermis Δημοσ. 8 Φεβρουαρίου 2009 Δημοσ. 8 Φεβρουαρίου 2009 Έχω ένα σύστημα παρακολούθησης που αποτελείται από 4 ασύρματες κάμερες και έναν δέκτη. Στον δέκτη υπάρχει ψηφιακός μικρο-ελεγκτής, ο οποίος διαβάζει 4 bits εισόδου (S1, S2, S3, S4) από αντίστοιχα dip switches και γράφει 4 bits εξόδου (C1, C2, C3, C4), που ενεργοποιούν τις 4 κάμερες, αντίστοιχα. C4 C3 C2 C1 S4 S3 S2 S1 Τα 4 bits εισόδου έχουν την παρακάτω χρήση: • S1: “1” / “0” = ενεργοποίηση / απενεργοποίηση παρακολούθησης • S2: “1”: κυκλική σάρωση καμερών, “0”: παρακολούθηση σταθερής κάμερας • S4S3: (S4 το πλέον σημαντικό bit) o αν S2=“1”, τότε: αναμονή 2*(S4S3)+2 sec ανά κάμερα, π.χ. για S4S3=112 αναμονή 8 sec ανά κάμερα, o αν S2=“0”, τότε: S4S3 = ο αριθμός της κάμερας που παρακολουθείται, π.χ. S4S3=112 για την κάμερα #4. Το λογισμικό του μικρο-ελεγκτή διαβάζει τα bits εισόδου από τη διεύθυνση (I/O) 80h και γράφει τα bits εξόδου στη διεύθυνση (I/O) 80h, ενώ δεν διαβάζει ούτε γράφει σε άλλες I/O διευθύνσεις. Η παραπάνω επικοινωνία I/O γίνεται περιοδικά (polling), με συχνότητα 10 Hz χρησιμοποιώντας τη γραμμή διακοπών (maskable interrupts) του μικρο-ελεγκτή. εκείνο που με βασανίζει είναι, πώς μπορώ να σχεδιασω το ψηφιακό κύκλωμα που υλοποιεί το παραπάνω σύστημα, με χρήση του μικροεπεξεργαστή 8085. [clock 10Hz] αλλά κυρίως πώς μπορώ να γραψω σε γλώσσα προγραμματισμού assembly 8085 η ρουτίνα εξυπηρέτησης διακοπών (Interrupt Service Routine), που υλοποιεί την παραπάνω λογική λειτουργία του μικρο-ελεγκτή. την έλυσες εν τέλει πως;
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.