Πίνακας περιεχομένων:
- Προμήθειες
- Βήμα 1: Εγκατάσταση των YAKINDU Statechart Tools ως Plugin to Code Composer Studio
- Βήμα 2: Ξεκινώντας με τα State Machines στο Code Composer Studio
- Βήμα 3: Δημιουργήστε το Blinky State Machine
- Βήμα 4: Δημιουργήστε τον Κώδικα State Machine C
- Βήμα 5: Κλήση της κρατικής μηχανής από τον κωδικό σας
- Βήμα 6: Εκτελέστε το έργο
Βίντεο: Πεπερασμένη κατάσταση μηχανή σε MSP430: 6 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:34
Θα σας δείξω πώς να προγραμματίσετε ένα MSP430G2 Launchpad με μηχανές πεπερασμένης κατάστασης (FSM) χρησιμοποιώντας τα YAKINDU Statechart Tools απευθείας στο Texas Instruments Code Composer Studio.
Αυτό το σεμινάριο περιέχει έξι βήματα:
- Εγκατάσταση του YAKINDU Statechart Tools ως προσθήκη στο Code Composer Studio
- Ξεκινώντας με τα State Machines στο Code Composer Studio
- Δημιουργήστε το Blinky State Machine
- Δημιουργήστε τον κωδικό State Machine C
- Κλήση της κρατικής μηχανής από τον κωδικό σας
- Εκτελέστε το έργο!
Αυτό το έργο μπορεί να χρησιμοποιηθεί ως σχέδιο για οποιοδήποτε MPS430 ή MSP432!
Προμήθειες
Λογισμικό:
- Εργαλεία YAKINDU Statechart
- Code Composer Studio (CCS) Integrated Development Environment (IDE)
Σκεύη, εξαρτήματα:
Κιτ ανάπτυξης MSP430G2 LaunchPad
Βήμα 1: Εγκατάσταση των YAKINDU Statechart Tools ως Plugin to Code Composer Studio
Πρώτον, πρέπει να εγκαταστήσετε το Code Composer Studio της TI. Έχω δοκιμάσει επιτυχώς τη ρύθμιση με την έκδοση CCS 9.2 και παλαιότερη μία φορά. Μπορείτε να βρείτε έναν σύνδεσμο λήψης εδώ:
Λήψη CCS
Κάντε κλικ για λήψη και βεβαιωθείτε ότι έχετε επιλέξει τουλάχιστον τα MSP430 εξαιρετικά χαμηλής ισχύος MCU κατά την εγκατάσταση. Εν τω μεταξύ, μπορείτε να αποκτήσετε τον ιστότοπο ενημέρωσης για τα Εργαλεία κρατικών χαρτών YAKINDU. Παω σε:
Κατεβάστε το YAKINDU Statechart Tools
Σε αυτόν τον ιστότοπο, κάντε κλικ στο Λήψη τώρα και ακολουθήστε τις οδηγίες. Όπως μπορείτε να δείτε στη φωτογραφία: Είναι δωρεάν για μη εμπορική χρήση. Μετά την εγγραφή, θα λάβετε μια επισκόπηση των επιλογών λήψης. Κάντε κλικ στο STANDARD DOWNLOAD SITE και κάντε κλικ στο INSTALL FROM UPDATE SITE. Εκεί θα λάβετε έναν σύνδεσμο στην περιοχή Σταθερές εκδόσεις. Πιάστε αυτόν τον σύνδεσμο και αποθηκεύστε τον ή τοποθετήστε τον στο πρόχειρό σας.
Η εγκατάσταση των YAKINDU Statechart Tools στο Code Composer Studio μπορεί να είναι λίγο δύσκολη, ανάλογα με την έκδοση του Code Composer Studio που χρησιμοποιείτε. Maybeσως αυτά τα βήματα να είναι παλιά εν τω μεταξύ - ωστόσο: μη διστάσετε να με ρωτήσετε στα σχόλια εάν χρειάζεστε βοήθεια.
Αυτά είναι τα βήματά μου:
Αφού εγκαταστήσετε επιτυχώς το CCS στο σύστημά σας, ανοίξτε την καρτέλα Βοήθεια και κάντε κλικ στο Εγκατάσταση νέου λογισμικού … Σε αυτόν τον οδηγό, προσθέστε τον ακόλουθο ιστότοπο ενημέρωσης μέσω του κουμπιού Προσθήκη …:
download.eclipse.org/releases/2018-09/
Μην προσθέσετε τίποτα, απλά πρέπει να λυθεί. Μπορείτε να το δείτε στην εικόνα.
Μετά από αυτό, επαναλάβετε τα βήματα και κάντε κλικ στο κουμπί Προσθήκη…. Εισαγάγετε τον ιστότοπο ενημέρωσης YAKINDU Statechart Tools, τον οποίο ελπίζετε ότι έχετε αποθηκεύσει. Στη συνέχεια, επιλέξτε το πλαίσιο ελέγχου YAKINDU License License και κάντε κλικ στο επόμενο. Ακολουθήστε τις οδηγίες. Το IDE σας μπορεί να κάνει επανεκκίνηση μία φορά.
Τέλος, μπορείτε να εγκαταστήσετε τα εργαλεία YAKINDU Statechart. Επαναλάβετε τα τελευταία βήματα, αλλά αυτή τη φορά επιλέξτε YAKINDU Statechart Tools Standard Edition. Για άλλη μια φορά, ακολουθήστε τις οδηγίες. Μετά την επανεκκίνηση, εγκαταστήσατε επιτυχώς τα Εργαλεία YAKINDU Statechart.
Βήμα 2: Ξεκινώντας με τα State Machines στο Code Composer Studio
Για να χρησιμοποιήσετε μηχανήματα κατάστασης προχωρήστε κανονικά και δημιουργήστε ένα νέο έργο CCS. Ανοίξτε την καρτέλα Αρχείο, ανοίξτε Νέο και κάντε κλικ στο CCS Project. Ορίστε ένα όνομα έργου, επιλέξτε τον μικροελεγκτή σας και δημιουργήστε ένα κενό έργο, το οποίο περιέχει ένα κενό αρχείο main.c. Χρησιμοποίησα το MSP430G2553.
Τώρα μπορείτε να ξεκινήσετε να εργάζεστε με κρατικές μηχανές!
Κάντε δεξί κλικ στο έργο, ανοίξτε Νέο και επιλέξτε Statechart Model. Θα ανοίξει ένας Οδηγός στον οποίο μπορείτε να επιλέξετε το έργο σας και να ονομάσετε το κρατικό σας γράφημα. Για παράδειγμα, ονομάστε το blinkyStateMachine.sct.
Το μοντέλο Statechart θα εμφανιστεί στο φάκελο του έργου αφού κάνετε κλικ στο Τέλος. Κάντε κλικ στο Ναι εάν σας ζητηθεί να αλλάξετε την προοπτική.
Βήμα 3: Δημιουργήστε το Blinky State Machine
Τώρα μπορείτε να ξεκινήσετε τη δημιουργία του κρατικού χάρτη!
Στην αριστερή πλευρά, θα βρείτε το λεγόμενο τμήμα ορισμού. Εκεί μπορείτε να προσθέσετε στοιχεία κειμένου στο μοντέλο, για παράδειγμα, λειτουργίες, οι οποίες μπορούν να κληθούν στο μηχάνημα κατάστασης.
Διαγράψτε τα πάντα από αυτό και προσθέστε απλώς αυτούς τους τρεις ορισμούς λειτουργίας:
εσωτερικός:
λειτουργία init () λειτουργία redOn () λειτουργία redOff ()
Στη συνέχεια, μεταβείτε στο μοντέλο statechart και προσθέστε τρεις καταστάσεις:
- Αρχικοποίηση
- κόκκινο LED αναμμένο
- κόκκινο LED απενεργοποιημένο
Συνδέστε τις καταστάσεις όπως φαίνεται στην εικόνα και προσθέστε τις μεταβάσεις και τις ενέργειες εισαγωγής. Μπορείτε να τα βρείτε ξανά στην εικόνα που περιλαμβάνεται.
Βήμα 4: Δημιουργήστε τον Κώδικα State Machine C
Τώρα ήρθε η ώρα να δημιουργήσουμε τον Κώδικα C. Για να γίνει αυτό, πρέπει να προστεθεί ένα μοντέλο γεννήτριας. Κάντε δεξί κλικ για άλλη μια φορά στο έργο και ανοίξτε Νέο και κάντε κλικ στο Μοντέλο γεννήτρια κώδικα. Επιλέξτε ένα όνομα για το αρχείο sgen. Είναι καλή πρακτική να παραμένετε με το όνομα της κρατικής μηχανής. Καλέστε το blinkyStateMachine.sgen και κάντε κλικ στο Επόμενο. Επιλέξτε το επιθυμητό μηχάνημα κατάστασης κάνοντας κλικ στο πλαίσιο ελέγχου. Βεβαιωθείτε ότι έχετε επιλέξει τη γεννήτρια κώδικα YAKINDU SCT C (όπως θέλουμε να δημιουργήσουμε κωδικό C) και κάντε κλικ στο Τέλος.
Συνήθως, ο Κώδικας C θα δημιουργηθεί αυτόματα, αλλά αν όχι, μπορείτε να κάνετε δεξί κλικ στο αρχείο sgen -file και να κάνετε κλικ στο Generate Code Artifacts για να το κάνετε αυτό. Οι φάκελοι src και src-gen θα πρέπει να εμφανίζονται στο έργο σας. Περιλαμβάνουν τον δημιουργούμενο κωδικό C, ο οποίος θα ενημερώνεται αυτόματα όταν επεξεργαστείτε και αποθηκεύσετε τον πίνακα κατάστασης.
Επειδή αυτός ο χάρτης καταστάσεων χρησιμοποιεί γεγονότα που βασίζονται στο χρόνο, πρέπει να εφαρμοστεί μια υπηρεσία χρονοδιακόπτη. Για να το προετοιμάσετε, χρειάζεστε αυτά τα δύο αρχεία: sc_timer_service.c και sc_timer_service.h Μπορείτε να τα προμηθευτείτε από το GitHub ή να τα κατεβάσετε εδώ. Πρέπει να τα προσθέσετε στο φάκελο src.
Βήμα 5: Κλήση της κρατικής μηχανής από τον κωδικό σας
Τέλος, το μηχάνημα κατάστασης μπορεί να χρησιμοποιηθεί στην κύρια λειτουργία σας!
Πρώτον, πρέπει να συμπεριλάβετε το μηχάνημα κατάστασης και την υπηρεσία χρονοδιακόπτη. Στη συνέχεια, πρέπει να δηλωθούν και να οριστούν το μηχάνημα κατάστασης, η υπηρεσία χρονοδιακόπτη και οι απαιτούμενες λειτουργίες για την υπηρεσία χρονοδιακόπτη. Επιπλέον, πρέπει να εφαρμοστούν οι καθορισμένες λειτουργίες που ενεργοποιούν και απενεργοποιούν ξανά το κόκκινο led.
#περιλαμβάνω
#include "src-gen/BlinkyStateMachine.h" #include "src/sc_timer_service.h" BlinkyStateMachine blinky; #define MAX_TIMERS 4 στατικά χρονόμετρα sc_timer_t [MAX_TIMERS]; στατική sc_timer_service_t timer_service? //! υλοποίηση επανάκλησης για τη ρύθμιση χρονικών συμβάντων extern void blinkyStateMachine_setTimer (λαβή BlinkyStateMachine*, const sc_eventid evid, const sc_integer time_ms, const sc_boolean periodic) {sc_timer_start (& timer_service, handle, evid, time_ms, periodic); } //! υλοποίηση επανάκλησης για ακύρωση χρονικών συμβάντων. extern void blinkyStateMachine_unsetTimer (λαβή BlinkyStateMachine*, const sc_eventid evid) {sc_timer_cancel (& timer_service, evid); } //! καθορισμός λειτουργιών extern void blinkyStateMachineInternal_init (const BlinkyStateMachine* handle) {WDTCTL = WDT_MDLY_32; IE1 | = WDTIE; P1DIR | = BIT0; } extern void blinkyStateMachineInternal_redOn (const BlinkyStateMachine* λαβή) {P1OUT | = BIT0; } extern void blinkyStateMachineInternal_redOff (const BlinkyStateMachine* λαβή) {P1OUT & = ~ BIT0; }
Η κύρια λειτουργία περιλαμβάνει δύο μέρη:
Η λειτουργία εκκίνησης και εισαγωγής της μηχανής κατάστασης και η εκκίνηση του χρονοδιακόπτη.
Το δεύτερο μέρος είναι ένας ατελείωτος βρόχος - ο βρόχος while (1). Μέσα σε αυτόν τον βρόχο, καλείται η λειτουργία κύκλου εκτέλεσης της μηχανής κατάστασης. Στη συνέχεια, το MSP430 θα τεθεί στη Λειτουργία χαμηλής κατανάλωσης 0 και θα οριστεί το bit Γενικής Διακοπής Ενεργοποίησης. Τώρα ο μικροελεγκτής κοιμάται και περιμένει μια διακοπή. Μετά τη διακοπή του WDT, ο χρονοδιακόπτης θα προχωρήσει. Αυτό σημαίνει ότι κάθε χρονόμετρο ενημερώνεται και ο χρόνος που παρέχεται αυξάνεται κατά 32 - ο χρόνος σε χιλιοστά του δευτερολέπτου, ο οποίος προχωρά μετά από κάθε διακοπή του WDT.
κενό κενό (κενό) {WDTCTL = WDTPW | WDTHOLD; // Διακοπή χρονομέτρου φύλακα
// Init timer and state machine sc_timer_service_init (& timer_service, timers, MAX_TIMERS, (sc_raise_time_event_fp) & blinkyStateMachine_raiseTimeEvent); blinkyStateMachine_init (& blinky); blinkyStateMachine_enter (& blinky);
ενώ (1)
{// κλήση μηχανής κατάστασης κάθε 32 ms blinkyStateMachine_runCycle (& blinky); _bis_SR_register (LPM0_bits + GIE); sc_timer_service_proceed (& timer_service, 32); }}
// ISR WDT
#pragma vector = WDT_VECTOR _διακοπή void watchdog_timer (κενό) {_bic_SR_register_on_exit (LPM0_bits + GIE); }
Βήμα 6: Εκτελέστε το έργο
Αυτό είναι - Τώρα μπορείτε να δημιουργήσετε και να ανεβάσετε το πρόγραμμα στο MSP430 σας!
Ας ελπίσουμε ότι αυτό το σεμινάριο σας βοήθησε να δημιουργήσετε με επιτυχία ένα έργο για το MSP430. Τώρα ήρθε η ώρα να εφαρμόσετε τις δικές σας ιδέες!
Για τη δημιουργία κώδικα, τα YAKINDU Statechart Tools απαιτούνται ως Πρόσθετα στο Code Composer Studio σας.
Μπορείτε να λάβετε τον ιστότοπο ενημέρωσης εδώ! <
Ξεκινά με δοκιμαστική έκδοση 30 ημερών. Στη συνέχεια, μπορείτε να λάβετε δωρεάν άδεια για μη εμπορική χρήση!
Συνιστάται:
Πώς έφτιαξα τη δική μου μηχανή πυγμαχίας ;: 11 βήματα (με εικόνες)
Πώς έφτιαξα τη δική μου μηχανή πυγμαχίας;: Δεν υπάρχει καμία εκπληκτική ιστορία πίσω από αυτό το έργο - μου άρεσαν πάντα οι μηχανές πυγμαχίας, οι οποίες βρίσκονταν σε διάφορα δημοφιλή μέρη. Αποφάσισα να φτιάξω το δικό μου
Αυτόματη μηχανή χύτευσης με έγχυση για ανακύκλωση πλαστικών: 5 βήματα
Αυτόματη μηχανή χύτευσης με έγχυση για ανακύκλωση πλαστικών: Γεια σας :) Αυτό το Instructable αφορά την " αυτοματοποιημένη μηχανή χύτευσης με έγχυση για ανακύκλωση πλαστικών ". (ονομάζεται: Smart Injector) Η ιδέα πίσω από το μηχάνημα είναι να προσφέρει μια αποκεντρωμένη λύση ανακύκλωσης πλαστικού. Η ανακύκλωση είναι συχνά περιορισμένη
Ενεργοποιητής συσκευής από την κατάσταση ύπνου: 5 βήματα
Device Activator From Sleeping Mode: Δεδομένου ότι η τεχνολογία έχει προχωρήσει με εξαιρετικά υψηλούς ρυθμούς, η πλειοψηφία του πληθυσμού δεν μπορεί να ζήσει χωρίς την ευκολία μιας τέτοιας ανάπτυξης. Ως άτομο που απαιτεί συσκευές καθημερινά, αυτό το έργο Arduino θα παρουσιάσει έναν ενεργοποιητή συσκευών. Αυτό
Κατάσταση μπαταρίας DF65: 6 βήματα
DF65 Battery Status: El problema - The problemEl DragonForce 65 es un velero RC que protege la electrónica del agua, un un modo que hace que sea muy poco προσβάσιμο. Εκτός από τις περιόδους, θα μπορούσατε να πάρετε το πακέτο μπαταριών για τη μεσογειακή βόλτα και τις υπηρεσίες
Πώς να φτιάξετε μια μίνι οθόνη για την κατάσταση του καιρού: 4 βήματα
Πώς να φτιάξετε μια μίνι προβολή κατάστασης καιρού: Σχετικά με το έργοΟ μικροελεγκτής μπορεί να είναι διασκεδαστικός και διασκεδαστικός ταυτόχρονα, προσθέστε κάποια σύνδεση στο Διαδίκτυο για πραγματικό Διαδίκτυο πραγμάτων! Επιτρέψτε μου να σας δείξω πώς κατάφερα να δημιουργήσω μια μίνι οθόνη κατάστασης καιρού χρησιμοποιώντας οθόνη μήτρας 8x8 και