Mündəricat:
- Təchizat
- Addım 1: YAKINDU Statechart Alətlərini Kod Bəstəkar Studiyasına Plugin Olaraq Quraşdırmaq
- Addım 2: Code Composer Studio -da Dövlət Maşınlarına Başlayın
- Addım 3: Blinky State Machine yaradın
- Addım 4: Dövlət Maşını C Kodunu yaradın
- Addım 5: Dövlət Maşını Kodunuzdan Çağırın
- Addım 6: Layihəni işə salın
Video: MSP430: 6 addımda sonlu dövlət maşını
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:45
Sizə birbaşa Texas Instruments Code Composer Studio -da YAKINDU Statechart Alətlərindən istifadə edərək MSP430G2 Başlatıcısını Sonlu Dövlət Maşınları (FSM) ilə necə proqramlaşdıracağınızı göstərəcəyəm.
Bu təlimat altı addımdan ibarətdir:
- YAKINDU Statechart Alətlərinin Code Composer Studio -ya bir plagin olaraq quraşdırılması
- Code Composer Studio -da Dövlət Maşınları ilə işə başlayın
- Blinky State Machine yaradın
- State Machine C kodunu yaradın
- Kodunuzdan Dövlət Maşını çağırılır
- Layihəni işə salın!
Bu layihə hər hansı bir MPS430 və ya MSP432 üçün bir plan olaraq istifadə edilə bilər!
Təchizat
Proqram təminatı:
- YAKINDU Statechart Alətləri
- Code Composer Studio (CCS) Integrated Development Environment (IDE)
Avadanlıq:
MSP430G2 LaunchPad İnkişaf dəsti
Addım 1: YAKINDU Statechart Alətlərini Kod Bəstəkar Studiyasına Plugin Olaraq Quraşdırmaq
Əvvəlcə TI -nin Code Composer Studio proqramını quraşdırmalısınız. Bir dəfə CCS 9.2 və daha köhnə versiyası ilə quruluşu uğurla sınadım. Yükləmə bağlantısını burada tapa bilərsiniz:
CCS yükləyin
Yükləmək üçün vurun və quraşdırarkən ən az MSP430 ultra aşağı güclü MCU seçdiyinizə əmin olun. Bu vaxt, YAKINDU Statechart Tools üçün yeniləmə saytını tuta bilərsiniz. Getmək:
YAKINDU Statechart Alətlərini yükləyin
Bu saytda, İndi Yüklə'yi basın və təlimatları izləyin. Fotoda gördüyünüz kimi: Kommersiya məqsədi ilə istifadə üçün pulsuzdur. Qeydiyyatdan keçdikdən sonra yükləmə variantları haqqında ümumi məlumat əldə edəcəksiniz. STANDART YÜKLƏMƏ SAYTINA vurun və GÜNCƏLƏMƏ SAYTINDAN YÜKLƏ vurun. Orada Sabit Yayımlar altında bir keçid alacaqsınız. Bu linki tutun və qeyd edin və ya panoya qoyun.
YAKINDU Statechart Alətlərini Code Composer Studio -ya quraşdırmaq, istifadə etdiyiniz Code Composer Studio versiyasından asılı olaraq bir az çətin ola bilər. Bəlkə də bu addımlar köhnəlmiş olsa da - hər hansı bir yardıma ehtiyacınız varsa şərhlərdə mənə müraciət etməkdən çəkinməyin.
Bunlar mənim addımlarımdır:
CCS -ni sisteminizə uğurla yüklədikdən sonra, Yardım sekmesini açın və Yeni Proqramı Qurun düyməsini vurun … Bu sihirbazda Əlavə et … düyməsini istifadə edərək aşağıdakı yeniləmə saytını əlavə edin:
download.eclipse.org/releases/2018-09/
Heç bir şey əlavə etməyin, sadəcə həll etmək lazımdır. Şəkildə görə bilərsiniz.
Bundan sonra addımları təkrarlayın və Əlavə et … düyməsini basın. Ümid edirəm saxladığınız YAKINDU Statechart Tools yeniləmə saytını daxil edin. Sonra YAKINDU Lisenziya İdarəetmə onay qutusunu seçin və sonrakı düyməni basın. Təlimatları izləyin. IDE bir dəfə yenidən başlaya bilər.
Nəhayət, YAKINDU Statechart alətlərini quraşdıra bilərsiniz. Son addımları təkrarlayın, ancaq bu dəfə YAKINDU Statechart Tools Standard Edition seçin. Bir daha təlimatlara əməl edin. Yenidən başladıqdan sonra YAKINDU Statechart Tools -ı uğurla quraşdırdınız.
Addım 2: Code Composer Studio -da Dövlət Maşınlarına Başlayın
Dövlət maşınlarından istifadə etmək üçün normal olaraq davam edin və yeni bir CCS Layihəsi yaradın. Fayl sekmesini açın, Yeni'yi açın və CCS Layihəsini basın. Bir layihə adı təyin edin, mikro nəzarətçinizi seçin və boş bir main.c faylı olan boş bir layihə yaradın. MSP430G2553 istifadə etdim.
İndi dövlət maşınları ilə işə başlaya bilərsiniz!
Layihəni sağ vurun, Yeni'yi açın və Statechart Modelini seçin. Layihənizi seçə biləcəyiniz və statukartınızı adlandıra biləcəyiniz bir Sihirbaz açılacaq. Məsələn, blinkyStateMachine.sct adlandırın.
Finiş düyməsini basdıqdan sonra Statechart modeli layihə qovluğunda görünəcək. Perspektivi dəyişdirmək istənirsə Bəli düyməsini basın.
Addım 3: Blinky State Machine yaradın
İndi statekart yaratmağa başlaya bilərsiniz!
Sol tərəfdə, sözdə Tərif Bölməsini tapacaqsınız. Orada modelə mətn elementləri əlavə edə bilərsiniz, məsələn, dövlət maşınında çağırıla bilən əməliyyatlar.
Ondan hər şeyi silin və bu üç əməliyyat tərifini əlavə edin:
daxili:
əməliyyat init () əməliyyat redOn () əməliyyat redOff ()
Daha sonra statechart modelinə keçin və üç vəziyyət əlavə edin:
- Başlanğıc
- qırmızı LED yanır
- qırmızı LED sönür
Şəkildə göstərildiyi kimi vəziyyətləri birləşdirin və keçidləri və giriş hərəkətlərini əlavə edin. Onları yenidən təqdim olunan şəkildən tapa bilərsiniz.
Addım 4: Dövlət Maşını C Kodunu yaradın
İndi C-Kodu yaratmaq vaxtıdır. Bunun üçün bir generator modeli əlavə edilməlidir. Layihəni bir dəfə də sağ vurun və Yeni'yi açın və Kod Generator Modelini vurun. Sgen- faylı üçün bir ad seçin. Dövlət maşın adı ilə qalmaq yaxşı bir təcrübədir. Buna blinkyStateMachine.sgen deyin və Sonrakı düyməsini basın. Onay qutusuna tıklayarak istədiyiniz Dövlət Maşını seçin. YAKINDU SCT C Kod Generatorunu seçdiyinizə əmin olun (C-Kodu yaratmaq istədiyimiz kimi) və Finish düyməsini basın.
Adətən, C-Kod avtomatik olaraq yaradılacaq, amma yoxsa, sgen -file faylını sağ tıklayıp bunu etmək üçün Kod Arifaktları Yarat düyməsini vura bilərsiniz. Src və src-gen qovluqları layihənizdə görünməlidir. Bunlara statukartı redaktə edib saxladığınız zaman avtomatik olaraq yenilənəcək C-Kodu daxildir.
Bu cədvəl vaxta əsaslanan hadisələrdən istifadə etdiyi üçün bir taymer xidmətinin tətbiq edilməsi lazımdır. Bunu hazırlamaq üçün bu iki fayla ehtiyacınız var: sc_timer_service.c və sc_timer_service.h Onları GitHub -dan əldə edə və ya buradan yükləyə bilərsiniz. Onları src qovluğuna əlavə etməlisiniz.
Addım 5: Dövlət Maşını Kodunuzdan Çağırın
Nəhayət, dövlət maşını əsas funksiyanızda istifadə edilə bilər!
Əvvəlcə dövlət maşını və taymer xidmətini daxil etməlisiniz. Sonra dövlət maşını, taymer xidməti və taymer xidməti üçün tələb olunan funksiyalar elan edilməli və müəyyən edilməlidir. Əlavə olaraq qırmızı işığı yenidən açan və söndürən müəyyən əməliyyatlar həyata keçirilməlidir.
#daxil edin
#include "src-gen/BlinkyStateMachine.h" #include "src/sc_timer_service.h" BlinkyStateMachine blinky; #dexine MAX_TIMERS 4 statik sc_timer_t timer [MAX_TIMERS]; statik sc_timer_service_t timer_service; //! vaxt hadisələrinin qurulması üçün geri çağırma tətbiqi extern void blinkyStateMachine_setTimer (BlinkyStateMachine* sapı, const sc_eventid evid, const sc_integer time_ms, const sc_boolean periodik) {sc_timer_start (& timer_service, handle, evid, time_ms, periodik); } //! vaxt hadisələrini ləğv etmək üçün geri çağırma tətbiqi. extern void blinkyStateMachine_unsetTimer (BlinkyStateMachine* sapı, const sc_eventid evid) {sc_timer_cancel (& timer_service, evid); } //! əməliyyatları tanımaq extern void blinkyStateMachineInternal_init (const BlinkyStateMachine* sapı) {WDTCTL = WDT_MDLY_32; IE1 | = WDTIE; P1DIR | = BIT0; } extern void blinkyStateMachineInternal_redOn (const BlinkyStateMachine* sapı) {P1OUT | = BIT0; } xarici boşluq blinkyStateMachineInternal_redOff (const BlinkyStateMachine* sapı) {P1OUT & = ~ BIT0; }
Əsas funksiya iki hissədən ibarətdir:
Vəziyyət maşınının işə salınması və giriş funksiyası və taymerin işə salınması.
İkinci hissə sonsuz bir döngədir - while (1) loop. Bu döngədə dövlət maşınının işləmə dövrü funksiyası adlanır. Daha sonra, MSP430 Aşağı Güc Modu 0 -a daxil ediləcək və Ümumi Kəsmə Aktivləşdirmə biti qurulacaq. İndi mikrokontrolör yuxudadır və fasiləni gözləyir. WDT -nin kəsilməsindən sonra taymer davam edəcək. Bu o deməkdir ki, hər bir taymer yenilənir və keçən vaxt 32 ilə artırılır - WDT -nin hər kəsilməsindən sonra davam edən milisaniyələrdəki vaxt.
void main (void) {WDTCTL = WDTPW | WDTHOLD; // Gözətçi timerini dayandırın
// Zamanlayıcı və dövlət maşını sc_timer_service_init (& timer_service, timers, MAX_TIMERS, (sc_raise_time_event_fp) & blinkyStateMachine_raiseTimeEvent); blinkyStateMachine_init (& yanıb -sönən); blinkyStateMachine_enter (& yanıb -sönən);
vaxt (1)
{// hər 32 ms -də dövlət maşınına zəng edin blinkyStateMachine_runCycle (& yanıb -sönən); _bis_SR_register (LPM0_bits + GIE); sc_timer_service_proceed (& timer_service, 32); }}
// WDT ISR
#pragma vektoru = WDT_VECTOR _interrupt void watchdog_timer (void) {_bic_SR_register_on_exit (LPM0_bits + GIE); }
Addım 6: Layihəni işə salın
Budur - İndi proqramı qura və MSP430 -a yükləyə bilərsiniz!
Ümid edirik ki, bu təlimat MSP430 üçün uğurla bir layihə yaratmağınıza kömək etdi. İndi öz fikirlərinizi həyata keçirməyin vaxtıdır!
Kod yaratmaq üçün, Code Composer Studio -da Plugin olaraq YAKINDU Statechart Tools tələb olunur.
Yeniləmə saytını buradan əldə edə bilərsiniz! <
30 günlük sınaq versiyası ilə başlayır. Bundan sonra, qeyri-kommersiya məqsədləri üçün pulsuz bir lisenziya əldə edə bilərsiniz!
Tövsiyə:
Dövlət Maşını ilə Arduino Otto Robotu: 4 addım
Arduino Otto Robotu Dövlət Maşını ilə: Layihəyə Baxış Bu layihədə sizə Arduino əsaslı DIY robotu olan Otto Robotunu proqramlaşdırmanın bir yolunu göstərmək istəyirəm. YAKINDU Statechart Alətlərindən (qeyri-kommersiya üçün pulsuz) istifadə edərək davranışları qrafik olaraq modelləşdirmək üçün dövlət maşınlarından asanlıqla istifadə edə bilərik
Arduino -da Dövlət Maşını - Piyada Svetoforu: 6 addım (şəkillərlə)
Arduino -dakı Dövlət Maşını - Piyada Svetoforu: Salam, sizə YAKINDU Statechart Alətlərindən istifadə edərək sonlu dövlət maşını ilə Arduino üçün C ++ dilində bir piyada svetoforunu necə proqramlaşdıracağınızı göstərəcəyəm. Bu, dövlət maşınlarının gücünü nümayiş etdirəcək və sonrakı işlər üçün bir plan olaraq istifadə edilə bilər
Sonlu vəziyyət maşını istifadə edərək Arduino -da rəqəmsal saat: 6 addım
Arduino -da Sonlu Vəziyyət Maşını İstifadə edərək Rəqəmsal Saat: Hey, mən sizə rəqəmsal saatın YAKINDU Statechart Tools ilə necə yaradılacağını və LCD Keypad Shield istifadə edən bir Arduino ilə işləyəcəyini göstərəcəyəm. saat David Hareldən alınıb. Bu barədə bir məqalə nəşr etdi
Dövlət Maşını və SPU Genişləndiriciləri ilə Arduinoda Çox İş: 3 Addım
Dövlət Maşını və SPU Genişləndiriciləri ilə Arduinoda Çox İş: Keçən həftə bir arduino ilə atəşfəşanlıqların idarə edilməsi üçün bir sistem yaratmağı xahiş edirdim. Yanğınları idarə etmək üçün təxminən 64 çıxışa ehtiyac var idi. Bunun bir yolu IC genişləndiricilərindən istifadə etməkdir. Beləliklə, 2 həll yolu var:- bir I2C genişləndiricisi, ancaq işləyərkən inverterə ehtiyacı var
Arduino PLC 32 G/Ç+Dövlət Maşını+SCADA və ya HMI: 8 addım
Arduino PLC 32 G/Ç+Dövlət Maşını+SCADA və ya HMI: Arduino ilə sənaye sistemini proqramlaşdırmanın, idarə etmənin və nəzarət etmənin bir çox yolu