Χρησιμοποιώντας Rx διακόπτει για PIC16F877 για να λάβετε τις τιμές από το PC

D

dark_ph0enix

Guest
Hi! Είμαι νέα στο χώρο του ξενοδοχείου και έρχομαι εδώ και ταπεινά να ζητήσει διορατικότητα σας: χαμόγελο: Είμαι προγραμματισμό ενός 16F877 από Microchip (με τη χρήση υψηλής τεχνολογίας compiler) και βρήκα μια κατάσταση όπου θα πρέπει να λαμβάνουν 3 τιμές από το PC (αποστέλλονται με MATLAB). Η ερώτησή μου, η υποδοχή μπορεί να συμβεί ανά πάσα στιγμή, οπότε η λογική ideia θα ήταν να διακόψει τη χρήση RX. Πώς μπορώ να κάνω αυτό; Δεν μπορώ να βρώ παραδείγματα σε C για διακοπές και, επίσης, οποιαδήποτε ιδέα για το πώς θα κλειδώσει το διακόψουν τη λήψη των συγκεκριμένων 3 τιμές; Χάρη στην J εκ των προτέρων
 
Εδώ είναι μια σύνδεση με ένα από τα καλύτερα σε απευθείας σύνδεση σεμινάρια ΣΜΕ που έχω συναντήσει: [URL = "http://www.gooligum.com.au/tutorials.html"] Gooligum Tutorials PIC [/URL] Τα μαθήματα καλύπτουν τόσο την αρχική τιμή και υπεύθυνοι μεσαία χρησιμοποιώντας Συνέλευση και Hi-Tech C. Η PIC16F877 είναι μια μεσαία ΣΜΕ, έτσι θα θελήσετε να επικεντρωθεί στις ακόλουθες δύο ομάδες tutorials: [URL = "http://www.gooligum.com.au/tut_midrange. html "] Midrange ΣΜΕ Tutorials Assembler [/url] [url =" http://www.gooligum.com.au/tut_midrange_C.html "] Midrange ΣΜΕ Hi-Tech C Προγραμματισμός Tutorials [/URL] Η εκμάθηση είναι πολύ επαγγελματικά γίνει , είναι σε μορφή PDF με δυνατότητα λήψης πηγαίο κώδικα και το καλύτερο από όλα είναι απολύτως δωρεάν. Η μεσαία κατηγορία Hi-Tech Tutorials C αρχίσει καλύπτει Διακοπές στο μάθημα 3 και συνεχίζουν να εισάγουν διακόψει τις τεχνικές μέσα από τα υπόλοιπα μαθήματα. Ξεκινήστε με τα tutorials και αν εξακολουθείτε να έχετε απορίες, απλά ρωτήστε. Ελπίζω να βοηθήσει στις προσπάθειές σας. BigDog
 
Ο καλύτερος τρόπος είναι να αναφερθεί στο δελτίο του PIC16F877 για τη ρύθμιση σχετικών μητρώων. και τι εννοείς με το κλείδωμα του διακόπτει;
 
@ Bigdogguru Σας ευχαριστώ, εγώ θα εξετάζει τα tutorials =) @ nikhil_jain έχω ήδη ρυθμιστεί το διακόπτει, το πρόβλημα είναι, theres κανένα παράδειγμα πώς να ορίσετε μια διακοπή σε πραγματικό κώδικα στο φύλλο δεδομένων. Και τι εννοούσα με κλείδωμα ήταν, μετά την διακοπή έχει ενεργοποιηθεί, θα παραμείνει εκεί για να λαμβάνετε τα δύο 3 τιμές. Ευχαριστώ για τις απαντήσεις σας J
 
Γεια σου, δεν σίγουρος για τη σωστή synatx. Αλλά αν δεν λειτουργεί θα στείλω την σωστή σύνταξη από τον υπολογιστή μου στη δουλειά. Μπορείτε wouid μου αρέσει αυτό: unsigned char rxbuf? Unsigned char δείκτη? Rx_flag λίγο? Κενό διακόψει ISR (void) {εάν (RXIE & RXIF) {RXIF = 0? Rxbuf [δείκτης + +] = RXDATA? Αν (δείκτης> 3) { δείκτης = 0? rx_flag = 1?}}} Ο παραπάνω κώδικας είναι ένα παράδειγμα του πώς λειτουργεί το διακόψει. Βεβαιωθείτε ότι τα μητρώα για την USART έχει ρυθμιστεί σωστά, και το periperal καθώς και την παγκόσμια διακόπτει και την ταχύτητα baud είναι σωστή. Μπορείτε να την υπηρεσία του rx_flag στην κύρια ρουτίνα MN σας
 
= RXDATA? Αν (δείκτης> 3) { δείκτης = 0? rx_flag = 1?}}} Ο παραπάνω κώδικας είναι ένα παράδειγμα του πώς λειτουργεί το διακόψει. Βεβαιωθείτε ότι τα μητρώα για την USART έχει ρυθμιστεί σωστά, και το periperal καθώς και την παγκόσμια διακόπτει και την ταχύτητα baud είναι σωστή. Μπορείτε να την υπηρεσία του rx_flag στην κύρια ρουτίνα MN σας
νομίζω ότι αυτό είναι το = D θα είμαι προσπαθεί εκείνο το κομμάτι του κώδικα αύριο, εγώ θα σας αφήσει να ξέρω αν δουλεύει: χαμόγελο: ευχαριστώ εκ των προτέρων ^ ^
 
UART χρήση μου παράδειγμα [URL = "http://shahrulnizam.com/pic-lesson-uart-module/"] RX Διακοπή [/URL].
 

Welcome to EDABoard.com

Sponsor

Back
Top