Мазмуну:
- Жабдуулар
- 1 -кадам: YAKINDU Statechart куралдарын Code Composer Studioго плагин катары орнотуу
- 2 -кадам: Code Composer Studioдогу мамлекеттик машиналарды баштоо
- 3 -кадам: Blinky State Machine түзүңүз
- 4 -кадам: Мамлекеттик машина C кодун түзүү
- 5 -кадам: Сиздин коддон мамлекеттик машинага чалуу
- 6 -кадам: Долбоорду иштетүү
Video: MSP430дагы акыркы мамлекеттик машина: 6 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:40
Мен сизге MSP430G2 Launchpad программасын кантип чектелүүчү мамлекеттик машиналар (FSM) менен YAKINDU Statechart Tools аркылуу Texas Instruments Code Composer Studioдо түз программалоону көрсөтөм.
Бул окуу куралы алты кадамды камтыйт:
- YAKINDU Statechart куралдарын Code Composer Studioго плагин катары орнотуу
- Code Composer Studioдо State Machines менен иштөөнү баштоо
- Blinky State Machine түзүңүз
- State Machine C кодун түзүү
- Сиздин коддон Мамлекеттик машинага чалуу
- Долбоорду иштет!
Бул долбоор каалаган MPS430 же MSP432 үчүн план катары колдонулушу мүмкүн!
Жабдуулар
Программалык камсыздоо:
- YAKINDU Statechart Tools
- Code Composer Studio (CCS) Integrated Development Environment (IDE)
Аппараттык:
MSP430G2 LaunchPad өнүктүрүү комплект
1 -кадам: YAKINDU Statechart куралдарын Code Composer Studioго плагин катары орнотуу
Биринчиден, сиз TI Code Composer Studio орнотушуңуз керек. Мен CCSтин 9.2 жана андан улуу версиясы менен орнотууну ийгиликтүү сынап көрдүм. Жүктөө шилтемесин бул жерден таба аласыз:
CCS жүктөп алыңыз
Жүктөө үчүн чыкылдатыңыз жана орнотуп жатканда жок дегенде MSP430 өтө аз кубаттуу MCU'ларды тандап алдыңыз. Ошол эле учурда, сиз YAKINDU Statechart Tools үчүн жаңыртуу сайтын кармап алсаңыз болот. Баруу:
YAKINDU Statechart куралдарын жүктөп алыңыз
Бул сайтта, Азыр жүктөө дегенди басыңыз жана көрсөтмөлөрдү аткарыңыз. Сүрөттө көрүнүп тургандай: Бул коммерциялык эмес колдонуу үчүн бекер. Катталгандан кийин, сиз жүктөө параметрлерине сереп аласыз. СТАНДАРТТЫК ЖҮКТӨӨ САЙТЫН басыңыз жана ЖАҢЫРТУУ САЙТЫНАН ОРНОТУУ дегенди басыңыз. Ал жерде сиз туруктуу релиздер астында шилтемени аласыз. Бул шилтемени кармап, сактап коюңуз же алмашуу буферине коюңуз.
YAKINDU Statechart куралдарын Code Composer Studioго орнотуу, сиз колдонуп жаткан Code Composer Studio версиясына жараша, бир аз татаал болушу мүмкүн. Балким, бул кадамдар эскирип калгандыр - бирок: эгер сизге жардам керек болсо, комментарийлерде суроодон тартынбаңыз.
Бул менин кадамдарым:
CCSти тутумуңузга ийгиликтүү орноткондон кийин, Жардам өтмөгүн ачыңыз жана Жаңы Программаны Орнотууну чыкылдатыңыз … Бул устада Кошуу… баскычы аркылуу төмөнкү жаңыртуу сайтын кошуңуз:
download.eclipse.org/releases/2018-09/
Эч нерсе кошпоңуз, аны жөн гана чечүү керек. Сиз муну сүрөттө көрө аласыз.
Андан кийин, кадамдарды кайталап, Кошуу… баскычын чыкылдатыңыз. YAKINDU Statechart Tools жаңыртуу сайтын киргизиңиз, сиз аны сактап калдыңыз. Андан кийин, YAKINDU License Management белгилөө кутучасын тандап, кийинки баскычты басыңыз. Көрсөтмөлөрдү аткарыңыз. Сиздин IDE бир жолу кайра башталышы мүмкүн.
Акыр -аягы, сиз YAKINDU Statechart куралдарын орното аласыз. Акыркы кадамдарды кайталаңыз, бирок бул жолу YAKINDU Statechart Tools Standard Edition тандаңыз. Дагы бир жолу көрсөтмөлөрдү аткарыңыз. Кайра жүктөөдөн кийин YAKINDU Statechart Tools ийгиликтүү орнотулду.
2 -кадам: Code Composer Studioдогу мамлекеттик машиналарды баштоо
Мамлекеттик машиналарды колдонуу кадимкидей уланат жана жаңы CCS долбоорун түзөт. Файл өтмөгүн ачыңыз, Жаңы ачыңыз жана CCS долбоорун чыкылдатыңыз. Долбоордун атын аныктаңыз, микроконтроллериңизди тандап, бош main.c файлын камтыган бош долбоорду түзүңүз. Мен MSP430G2553 колдондум.
Эми сиз мамлекеттик машиналар менен иштей баштасаңыз болот!
Долбоорду оң баскыч менен чыкылдатыңыз, Жаңы дегенди ачыңыз жана Statechart моделин тандаңыз. Долбооруңузду тандап, статистикалык схемаңызга ат бере турган уста ачылат. Мисалы, аны blinkyStateMachine.sct деп атаңыз.
Statechart модели Finish баскандан кийин проект папкасында пайда болот. Көз карашты өзгөртүү суралса, Ооба дегенди басыңыз.
3 -кадам: Blinky State Machine түзүңүз
Эми сиз статистикалык картаны түзүүнү баштасаңыз болот!
Сол жактагы сиз Аныктоо бөлүмүн таба аласыз. Ал жерде моделге тексттик элементтерди кошууга болот, мисалы, мамлекеттик машинада чакырылышы мүмкүн болгон операциялар.
Андан баарын өчүрүп, ушул үч операция аныктамасын кошуңуз:
ички:
операция init () операция redOn () операция redOff ()
Андан кийин, статехарт моделине өтүп, үч абалды кошуңуз:
- Баштоо
- кызыл LED күйгүзүлгөн
- кызыл LED өчүрүлгөн
Сүрөттө көрсөтүлгөндөй штаттарды туташтырыңыз жана өтүүлөрдү жана жазуу аракеттерин кошуңуз. Аларды кайра киргизилген сүрөттөн таба аласыз.
4 -кадам: Мамлекеттик машина C кодун түзүү
Эми C-кодун түзүү убактысы келди. Бул үчүн генератордун моделин кошуу керек. Долбоорду дагы бир жолу оң баскыч менен чыкылдатып, Жаңы ачыңыз жана Код Генераторунун моделин чыкылдатыңыз. Sgen- файлына ат тандаңыз. Мамлекеттик машина аты менен калуу жакшы практика. Аны blinkyStateMachine.sgen деп атап, Кийинкини басыңыз. Белгилөө кутучасын чыкылдатуу менен керектүү мамлекеттик машинаны тандаңыз. YAKINDU SCT C коду генераторун тандаганыңызды текшериңиз (биз C-кодду түзгүбүз келет) жана Finish баскычын басыңыз.
Адатта, C-код автоматтык түрдө түзүлөт, бирок андай болбосо, sgen -file файлын оң баскыч менен чыкылдатып, код артефакттарын түзүү үчүн чыкылдатыңыз. Src жана src-gen папкалары сиздин долбоордо көрүнүшү керек. Алар түзүлгөн C-кодун камтыйт, алар статехартты түзөтүп жана сактаганда автоматтык түрдө жаңыртылып турат.
Бул статистикалык график убакытка негизделген окуяларды колдонгондуктан, таймер кызматы ишке ашырылышы керек. Муну даярдоо үчүн сизге бул эки файл керек: sc_timer_service.c жана sc_timer_service.h Сиз аларды GitHubдан ала аласыз же бул жерден жүктөп алсаңыз болот. Сиз аларды src папкасына кошушуңуз керек.
5 -кадам: Сиздин коддон мамлекеттик машинага чалуу
Акыр -аягы, мамлекеттик машина сиздин негизги функцияңызда колдонулушу мүмкүн!
Биринчиден, сиз мамлекеттик машинаны жана таймер кызматын кошушуңуз керек. Андан кийин мамлекеттик машина, таймер кызматы жана таймер кызматы үчүн керектүү функциялар жарыяланууга жана аныкталууга тийиш. Кошумча катары, кызыл чыракты кайра күйгүзүп жана өчүрүп жаткан аныкталган операциялар аткарылышы керек.
#кошуу
#include "src-gen/BlinkyStateMachine.h" #include "src/sc_timer_service.h" BlinkyStateMachine blinky; #dexine 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 мезгилдүү) {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* туткасы) операцияларын аныктоо {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 коюлат жана General Interrupt Enable bit орнотулат. Азыр микроконтроллер уктап жатат жана үзүлүүнү күтөт. WDT үзгүлтүккө учурагандан кийин, таймер иштей берет. Бул ар бир таймер жаңыртылып, өткөн убакыт 32ге көбөйөт дегенди билдирет - убакыт WDTдин ар бир үзүлүшүнөн кийин улана турган миллисекундтарда.
void main (void) {WDTCTL = WDTPW | WDTHOLD; // Watchdog таймерин токтотуу
// Init таймер жана мамлекеттик машина sc_timer_service_init (& timer_service, таймерлер, MAX_TIMERS, (sc_raise_time_event_fp) & blinkyStateMachine_raiseTimeEvent); blinkyStateMachine_init (& blinky); blinkyStateMachine_enter (& blinky);
учурда (1)
{// мамлекеттик машинаны ар 32 мс сайын чакыруу blinkyStateMachine_runCycle (& blinky); _bis_SR_register (LPM0_bits + GIE); sc_timer_service_proceed (& timer_service, 32); }}
// WDT ISR
#pragma vector = WDT_VECTOR _interrupt void watchdog_timer (void) {_bic_SR_register_on_exit (LPM0_bits + GIE); }
6 -кадам: Долбоорду иштетүү
Болду - Эми сиз программаны MSP430го куруп, жүктөй аласыз!
Бул окуу куралы MSP430 үчүн ийгиликтүү долбоор түзүүгө жардам берди деп үмүттөнөбүз. Эми өзүңүздүн идеяларыңызды ишке ашырууга убакыт келди!
Код түзүү үчүн YAKINDU Statechart Tools сиздин Code Composer Studioдо плагин катары талап кылынат.
Жаңыртуу сайтын бул жерден ала аласыз! <
Ал 30 күндүк сыноо версиясы менен башталат. Андан кийин, сиз коммерциялык эмес колдонуу үчүн бекер лицензия ала аласыз!
Сунушталууда:
Ардуино Отто робот мамлекеттик машина менен: 4 кадам
Ардуино Отто роботу мамлекеттик машина менен: Долбоорго сереп YAKINDU Statechart куралдарын колдонуу (коммерциялык эмес үчүн акысыз), биз мамлекеттик машиналарды оңой эле графикалык моделдөө үчүн колдоно алабыз
Мамлекеттик машина Arduino - жөө светофор: 6 кадам (сүрөттөр менен)
Ардуинодогу мамлекеттик машина - жөө светофор: Эй, мен сага Arduino үчүн C ++ тилинде жөө светофорду чектүү мамлекеттик машина менен YAKINDU Statechart Tools аркылуу кантип программалоону көрсөтөм. Бул мамлекеттик машиналардын күчүн көрсөтөт жана мындан аркы план катары колдонулушу мүмкүн
Arduino HMI мамлекеттик машиналарды колдонуу: 9 кадам
Мамлекеттик машиналарды колдонуу Arduino HMI: Бул Нускамада, мен сизге YAKINDU Statechart куралдарын кантип колдонуу керектигин көрсөтөм, Arduino үчүн 16x2 ЖК тергич калканчын колдонуу менен жөнөкөй жана кеңейтилүүчү HMIди ишке ашыруу үчүн. татаал адам машинасы
Мамлекеттик машина жана SPU кеңейтүүчүлөрү менен Arduino боюнча көп тапшырмалар: 3 кадам
Мамлекеттик машина жана SPU кеңейтүүчүлөрү менен Arduino боюнча көп тапшырма: Өткөн жумада мен ардуино менен фейерверктерди сыноо системасын түзүүнү сурандым. Өрттү көзөмөлдөө үчүн болжол менен 64 жыйынтык керек болчу. Мунун бир жолу - IC кеңейтүүчүлөрдү колдонуу. Ошентип, 2 чечим бар:- I2C экспансери, бирок ал качан инверторго муктаж
Arduino PLC 32 I/O+Мамлекеттик машина+SCADA же HMI: 8 кадам
Arduino PLC 32 I/O+Мамлекеттик машина+SCADA же HMI: arduino менен өнөр жай системасын программалоонун, башкаруунун жана көзөмөлдөөнүн көптөгөн жолдору