Χρήση Interrupts σε C++

Συζητήσεις για την γλώσσα C και C++

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
J_Ouzou
Δημοσιεύσεις: 2
Εγγραφή: 05 Μάιος 2011 00:32

Χρήση Interrupts σε C++

Δημοσίευση από J_Ouzou » 05 Μάιος 2011 01:15

Προσπαθώ να βρώ αν μπορώ να χρησιμοποιήσω interrupts σε C++. Το πρόγραμμα ειναι για μια εργασία οπού θα χρησιμοποιώ τον stk500 με ATmega8515 και θα διαβάζει κάποια κουμπιά και αισθητήρια και αναλογα θα ενεργεί. Το προγραμμα θα έχει 2 καταστάσεις το αυτοματο(θα ενεργεί αναλογα με τις τιμές απο τα αισθητήρια) και το χειροκίνητο(θα σταματάει το διαβασμα απο τα αισθητήρια και θα δεχεται εντολές απο Buttons). Το πρόβλημα είναι οτι θέλω ένα Button, που όταν είναι πατημένο θα βρίσκεται σε χειροκίνητη κατάσταση, αλλα θέλω με το που το πατάω να σταματάει οτιδήποτε κάνει και να αλλάζει αμέσως κατάσταση.

Συγγνώμη για το σεντόνι και ευχαριστώ εκ των προτέρων.

GReaper
Δημοσιεύσεις: 48
Εγγραφή: 11 Δεκ 2010 21:47
Επικοινωνία:

Χρήση Interrupts σε C++

Δημοσίευση από GReaper » 05 Μάιος 2011 13:59

Αν έχεις οποιοδήποτε σύγχρονο λειτουργικό σύστημα εγκατεστημένο είναι 99% πιθανό τα interrupts να έχουν περιοριστεί ή και απαγορευθεί στο επίπεδο του χρήστη!

nkast
Δημοσιεύσεις: 137
Εγγραφή: 15 Νοέμ 2009 20:31
Επικοινωνία:

Χρήση Interrupts σε C++

Δημοσίευση από nkast » 05 Μάιος 2011 16:10

@GReaper
Αναφέρει κάποιον μικροεπεξεργαστή οπότε δεν χρειάζεται να τον μπερδεύουμε με λειτουργικά συστήματα.
Φαντάζομαι οτι καταλαβαινεις τα interrupt με την μορφή που τα χρησιμοποιούσε το DOS, δηλαδή ένα είδους API. Αυτη η χρήση όντος εχει εγκαταλειφθεί πλεον αλλα τα interrupt πρωταρχικά χρησιμοποιούνται για την ενημερώση του επεξεργαστής για εξωτερικά γεγονότα.

@J_Ouzou
Θα πρεπει να εγκαταστήσεις εναν interrupt handler, (θα γραψεις δηλαδη μια ρουτίνα κώδικα και θα κατευθυνεις ενα interrupt να δίχνει στην ρουτινα αυτή).
Το button θα συνδεθεί στο pin του επεξεργαστή που πυροδοτει αυτο το interrupt. H ρουτινα σου (interrupt hander) μαλλον δεν χρειαζεται να κανει και πολλα, απλα θα θετει σε μια μεταβλητη την κατασταση του button και θα επιστρεφει.

Το κυριο προγραμμα σου πιθανον να ειναι μια κλειστή loop
που θα ελενχει την κατασταση της μεταβλητης και θα ενεργει αναλογα.

Περισσοτερο δεν μπορώ να βοηθήσω μιας που δεν ξερω τον επεξεργαστη. Θα πρεπει να το ψάξεις μονος σου και να επικοινωνείς με τον καθηγητη καθε φορα που κολας καπου.

J_Ouzou
Δημοσιεύσεις: 2
Εγγραφή: 05 Μάιος 2011 00:32

Χρήση Interrupts σε C++

Δημοσίευση από J_Ouzou » 05 Μάιος 2011 17:33

ΟΚ ευχαριστώ θα το ψάξω

Απάντηση

Επιστροφή στο “C, C++”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες