ዝርዝር ሁኔታ:

በ MSP430: 6 ደረጃዎች ላይ የፊንቴስ ግዛት ማሽን
በ MSP430: 6 ደረጃዎች ላይ የፊንቴስ ግዛት ማሽን

ቪዲዮ: በ MSP430: 6 ደረጃዎች ላይ የፊንቴስ ግዛት ማሽን

ቪዲዮ: በ MSP430: 6 ደረጃዎች ላይ የፊንቴስ ግዛት ማሽን
ቪዲዮ: PRO-BOT: gear change + line follower controlled by neural network 2024, ህዳር
Anonim
በ MSP430 ላይ የፊንጢጣ ግዛት ማሽን
በ MSP430 ላይ የፊንጢጣ ግዛት ማሽን
በ MSP430 ላይ የፊንጢጣ ግዛት ማሽን
በ MSP430 ላይ የፊንጢጣ ግዛት ማሽን

YAKINDU Statechart Tools ን በቀጥታ በቴክሳስ የመሣሪያዎች ኮድ አቀናባሪ ስቱዲዮ በመጠቀም MSP430G2 Launchpad ን ከ Finite State Machines (FSM) ጋር እንዴት እንደሚያዘጋጁት አሳያችኋለሁ።

ይህ ትምህርት ስድስት ደረጃዎችን ይ containsል

  1. የ YAKINDU Statechart መሳሪያዎችን ለኮድ አቀናባሪ ስቱዲዮ እንደ ፕለጊን መጫን
  2. በኮድ አቀናባሪ ስቱዲዮ ውስጥ በመንግስት ማሽኖች መጀመር
  3. ብሊንክኪ ስቴት ማሽን ይፍጠሩ
  4. የስቴት ማሽን ሲ ኮድ ይፍጠሩ
  5. የስቴት ማሽንን ከኮድዎ መደወል
  6. ፕሮጀክቱን ያካሂዱ!

ይህ ፕሮጀክት ለማንኛውም MPS430 ወይም MSP432 እንደ ንድፍ ሆኖ ሊያገለግል ይችላል!

አቅርቦቶች

ሶፍትዌር

  • የያኪንዱ ግዛት ገበታ መሣሪያዎች
  • የኮድ አቀናባሪ ስቱዲዮ (ሲሲኤስ) የተቀናጀ ልማት አከባቢ (አይዲኢ)

ሃርድዌር

MSP430G2 LaunchPad Development kit

ደረጃ 1 - የ YAKINDU ስቴት ቻርት መሳሪያዎችን እንደ ተሰኪ ለኮድ አቀናባሪ ስቱዲዮ መጫን

የ YAKINDU የስቴት ገበታ መሣሪያዎችን ለኮድ አቀናባሪ ስቱዲዮ እንደ ፕለጊን መጫን
የ YAKINDU የስቴት ገበታ መሣሪያዎችን ለኮድ አቀናባሪ ስቱዲዮ እንደ ፕለጊን መጫን
የ YAKINDU የስቴት ገበታ መሣሪያዎችን ለኮድ አቀናባሪ ስቱዲዮ እንደ ፕለጊን መጫን
የ YAKINDU የስቴት ገበታ መሣሪያዎችን ለኮድ አቀናባሪ ስቱዲዮ እንደ ፕለጊን መጫን
የ YAKINDU የስቴት ገበታ መሣሪያዎችን ለኮድ አቀናባሪ ስቱዲዮ እንደ ፕለጊን መጫን
የ YAKINDU የስቴት ገበታ መሣሪያዎችን ለኮድ አቀናባሪ ስቱዲዮ እንደ ፕለጊን መጫን

በመጀመሪያ ፣ የቲኦ ኮድ አቀናባሪ ስቱዲዮን መጫን ያስፈልግዎታል። እኔ በ CCS ስሪት 9.2 እና ከዚያ በላይ በሆነ ጊዜ ቅንብሩን በተሳካ ሁኔታ ሞክሬያለሁ። የማውረጃ አገናኝ እዚህ ማግኘት ይችላሉ-

CCS ን ያውርዱ

ለማውረድ ጠቅ ያድርጉ እና በሚጫኑበት ጊዜ ቢያንስ MSP430 እጅግ በጣም ዝቅተኛ ኃይል MCU ን መርጠዋል። ይህ በእንዲህ እንዳለ ፣ ለ YAKINDU Statechart መሣሪያዎች የዝማኔ ጣቢያውን መያዝ ይችላሉ። መሄድ:

የ YAKINDU ግዛት ገበታ መሣሪያዎችን ያውርዱ

በዚህ ጣቢያ ላይ አሁን አውርድ የሚለውን ጠቅ ያድርጉ እና መመሪያዎቹን ይከተሉ። በፎቶው ላይ እንደሚመለከቱት-ለንግድ ላልሆነ አገልግሎት ነፃ ነው። ከምዝገባው በኋላ የማውረድ አማራጮችን አጠቃላይ እይታ ያገኛሉ። STANDARD DOWNLOAD SITE ላይ ጠቅ ያድርጉ እና ከዘመነ ጣቢያ ይጫኑ የሚለውን ጠቅ ያድርጉ። እዚያ በተረጋጋ ልቀቶች ስር አገናኝ ያገኛሉ። ይህንን አገናኝ ይያዙ እና ያስቀምጡ ወይም በቅንጥብ ሰሌዳዎ ውስጥ ያድርጉት።

እርስዎ በሚጠቀሙበት የኮድ አቀናባሪ ስቱዲዮ ስሪት ላይ በመመስረት የ YAKINDU ግዛት ገበታ መሣሪያዎችን ወደ ኮድ አቀናባሪ ስቱዲዮ መጫን ትንሽ አስቸጋሪ ሊሆን ይችላል። ምናልባት እነዚህ እርምጃዎች እስከዚያ ድረስ ጊዜ ያለፈባቸው ሊሆኑ ይችላሉ - ሆኖም - ማንኛውም እገዛ ከፈለጉ በአስተያየቶቹ ውስጥ እኔን ለመጠየቅ አያመንቱ።

እነዚህ የእኔ እርምጃዎች ናቸው

ሲሲኤስን በስርዓትዎ በተሳካ ሁኔታ ከጫኑ በኋላ የእገዛ ትርን ይክፈቱ እና አዲስ ሶፍትዌር ጫን ላይ ጠቅ ያድርጉ… በዚህ አዋቂ ውስጥ የሚከተለውን የማዘመኛ ጣቢያ በአክል… አዝራር በኩል ያክሉ።

download.eclipse.org/releases/2018-09/

ምንም ነገር አይጨምሩ ፣ እሱ ብቻ መፍታት አለበት። በሥዕሉ ላይ ማየት ይችላሉ።

ከዚህ በኋላ ደረጃዎቹን ይድገሙ እና አክል… ላይ ጠቅ ያድርጉ። እርስዎ ተስፋ ያደረጉትን የ YAKINDU Statechart Tools ዝመና ጣቢያ ያስገቡ። ከዚያ የ YAKINDU ፈቃድ አስተዳደር አመልካች ሳጥኑን ይምረጡ እና ቀጣይን ጠቅ ያድርጉ። መመሪያዎቹን ይከተሉ። የእርስዎ አይዲኢ አንድ ጊዜ እንደገና ሊጀምር ይችላል።

በመጨረሻም ፣ የ YAKINDU Statechart መሣሪያዎችን መጫን ይችላሉ። የመጨረሻዎቹን ደረጃዎች ይድገሙ ፣ ግን በዚህ ጊዜ የ YAKINDU ስቴት ቻርት መሳሪያዎችን መደበኛ እትም ይምረጡ። አሁንም መመሪያዎቹን ይከተሉ። እንደገና ከጀመሩ በኋላ የ YAKINDU ግዛት ገበታ መሣሪያዎችን በተሳካ ሁኔታ ጭነዋል።

ደረጃ 2 በኮድ አቀናባሪ ስቱዲዮ ውስጥ ከመንግስት ማሽኖች ጋር መጀመር

በኮድ አቀናባሪ ስቱዲዮ ውስጥ ከመንግስት ማሽኖች ጋር መጀመር
በኮድ አቀናባሪ ስቱዲዮ ውስጥ ከመንግስት ማሽኖች ጋር መጀመር
በኮድ አቀናባሪ ስቱዲዮ ውስጥ ከመንግስት ማሽኖች ጋር መጀመር
በኮድ አቀናባሪ ስቱዲዮ ውስጥ ከመንግስት ማሽኖች ጋር መጀመር

የስቴት ማሽኖችን ለመጠቀም እንደተለመደው ይቀጥሉ እና አዲስ የ CCS ፕሮጀክት ይፍጠሩ። የፋይል ትርን ይክፈቱ ፣ አዲስ ይክፈቱ እና በ CCS ፕሮጀክት ላይ ጠቅ ያድርጉ። የፕሮጀክት ስም ይግለጹ ፣ የማይክሮ መቆጣጠሪያዎን ይምረጡ እና ባዶ ዋና ዋና ፋይልን የያዘ ባዶ ፕሮጀክት ይፍጠሩ። MSP430G2553 ን እጠቀም ነበር።

አሁን ከስቴት ማሽኖች ጋር መስራት መጀመር ይችላሉ!

ፕሮጀክቱን በቀኝ ጠቅ ያድርጉ ፣ አዲስ ይክፈቱ እና የስቴት ገበታ ሞዴልን ይምረጡ። ፕሮጀክትዎን የሚመርጡበት እና የግዛት ዝርዝርዎን የሚጠሩበት አዋቂ ይከፈታል። ለምሳሌ ፣ blinkyStateMachine.sct ብለው ይደውሉለት።

ጨርስን ጠቅ ካደረጉ በኋላ የ Statechart ሞዴል በፕሮጀክቱ አቃፊ ውስጥ ይታያል። እይታውን እንዲለውጡ ከተጠየቁ አዎ ላይ ጠቅ ያድርጉ።

ደረጃ 3: ብሊንክኪ ስቴት ማሽን ይፍጠሩ

ብሊንክኪ ስቴት ማሽንን ይፍጠሩ
ብሊንክኪ ስቴት ማሽንን ይፍጠሩ

አሁን የግዛት ገበታውን መፍጠር መጀመር ይችላሉ!

በግራ በኩል ፣ ትርጓሜ ክፍል የሚባለውን ያገኛሉ። እዚያም በአምሳያው ላይ የጽሑፍ አባሎችን ማከል ይችላሉ ፣ ለምሳሌ ፣ በስቴቱ ማሽን ውስጥ ሊጠሩ የሚችሉ ሥራዎች።

ሁሉንም ነገር ከእሱ ሰርዝ እና በቀላሉ እነዚህን ሶስት የአሠራር ትርጓሜዎች አክል

ውስጣዊ:

ክወና init () ክወና redOn () ክወና redOff ()

ከዚያ በኋላ ወደ የመንግስት ገበታ ሞዴል ይቀይሩ እና ሶስት ግዛቶችን ያክሉ

  • ተነሳሽነት
  • ቀይ LED በርቷል
  • ቀይ LED ጠፍቷል

በስዕሉ ላይ እንደሚታየው ግዛቶችን ያገናኙ እና ሽግግሮችን እና የመግቢያ እርምጃዎችን ያክሉ። በተካተተው ስዕል ላይ እንደገና ሊያገ canቸው ይችላሉ።

ደረጃ 4 የስቴቱ ማሽን ሲ ኮድ ይፍጠሩ

የስቴት ማሽን ሲ ኮድ ይፍጠሩ
የስቴት ማሽን ሲ ኮድ ይፍጠሩ

ሲ-ኮዱን ለማመንጨት ጊዜው አሁን ነው። ይህንን ለማድረግ የጄነሬተር ሞዴል መታከል አለበት። ፕሮጀክቱን እንደገና በቀኝ ጠቅ ያድርጉ እና አዲስ ይክፈቱ እና በኮድ ጄኔሬተር ሞዴል ላይ ጠቅ ያድርጉ። ለ sgen- ፋይል ስም ይምረጡ። ከስቴቱ ማሽን ስም ጋር መቆየት ጥሩ ልምምድ ነው። BlinkyStateMachine.sgen ብለው ይደውሉ እና ቀጣይ የሚለውን ጠቅ ያድርጉ። አመልካች ሳጥኑ ላይ ጠቅ በማድረግ የተፈለገውን የስቴት ማሽን ይምረጡ። የ YAKINDU SCT C ኮድ ጄኔሬተር (ሲ-ኮድን ለማመንጨት እንደምንፈልግ) መምረጥዎን ያረጋግጡ እና ጨርስን ጠቅ ያድርጉ።

ብዙውን ጊዜ ፣ ሲ-ኮዱ በራስ-ሰር ይፈጠራል ፣ ካልሆነ ግን በ sgen -file ላይ በቀኝ ጠቅ ማድረግ እና ይህንን ለማድረግ የኮድ ቅርሶችን መፍጠር ላይ ጠቅ ማድረግ ይችላሉ። አቃፊዎቹ src እና src-gen በፕሮጀክትዎ ውስጥ መታየት አለባቸው። እነሱ የመነጨውን ሲ-ኮድ ያካትታሉ ፣ ይህም የግዛት ገበታውን ሲያርትዑ እና ሲያስቀምጡ በራስ-ሰር ይዘምናል።

ይህ የግዛት ገበታ በጊዜ ላይ የተመሰረቱ ክስተቶችን ስለሚጠቀም የሰዓት ቆጣሪ አገልግሎት ተግባራዊ መሆን አለበት። ይህንን ለማዘጋጀት እነዚህ ሁለት ፋይሎች ያስፈልግዎታል sc_timer_service.c እና sc_timer_service.h ከ GitHub ሊያገ orቸው ወይም እዚህ ማውረድ ይችላሉ። እነሱን ወደ src አቃፊ ማከል አለብዎት።

ደረጃ 5 ከስቴቱ ማሽን ከእርስዎ ኮድ መደወል

በመጨረሻም የስቴቱ ማሽን በዋና ተግባርዎ ውስጥ ሊያገለግል ይችላል!

በመጀመሪያ የስቴቱን ማሽን እና የሰዓት ቆጣሪ አገልግሎትን ማካተት አለብዎት። ከዚያ የስቴቱ ማሽን ፣ የሰዓት ቆጣሪ አገልግሎቱ እና ለጊዜ ቆጣቢው አገልግሎት የሚያስፈልጉ ተግባራት መገለጽ እና መገለጽ አለባቸው። በተጨማሪም ፣ ቀዩን መሪን የሚያበሩ እና እንደገና የሚያጠፉ የተገለጹ ሥራዎች መተግበር አለባቸው።

#ያካትቱ

#"src-gen/BlinkyStateMachine.h" # #ያካትቱ "src/sc_timer_service.h" BlinkyStateMachine blinky; #MAX_TIMERS 4 የማይለዋወጥ የ sc_timer_t ሰዓት ቆጣሪዎች [MAX_TIMERS]; የማይንቀሳቀስ sc_timer_service_t timer_service; //! የጊዜ ዝግጅቶችን ለማቀናበር የመልሶ ማግኛ ትግበራ የውጭ ባዶነት 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); } //! የጊዜ ክስተቶችን ለመሰረዝ የጥሪ መልሶ ማግኛ ትግበራ። ውጫዊ ባዶነት blinkyStateMachine_unsetTimer (BlinkyStateMachine* እጀታ ፣ const sc_eventid evid) {sc_timer_cancel (& timer_service, evid); } //! ኦፕሬሽኖችን extern ባዶ ባዶ blinkyStateMachineInternal_init (const BlinkyStateMachine* handle) {WDTCTL = WDT_MDLY_32; IE1 | = WDTIE; P1DIR | = BIT0; } የውጭ ባዶነት blinkyStateMachineInternal_redOn (const BlinkyStateMachine* handle) {P1OUT | = BIT0; } የውጭ ባዶነት blinkyStateMachineInternal_redOff (const BlinkyStateMachine* handle) {P1OUT & = ~ BIT0; }

ዋናው ተግባር ሁለት ክፍሎች አሉት

የስቴቱ ማሽኑ አጀማመር እና የመግቢያ ተግባር እና የሰዓት ቆጣሪውን ማስጀመር።

ሁለተኛው ክፍል ማለቂያ የሌለው loop ነው - የ (1) loop። በዚህ ሉፕ ውስጥ የስቴቱ ማሽን የሩጫ ዑደት ተግባር ይባላል። ከዚያ በኋላ ፣ MSP430 በዝቅተኛ የኃይል ሁኔታ 0 ውስጥ ይቀመጣል እና አጠቃላይ ማቋረጫ አንቃ ቢት ይዘጋጃል። አሁን የማይክሮ መቆጣጠሪያው ተኝቶ ማቋረጡን ይጠብቃል። ከ WDT መቋረጥ በኋላ ሰዓት ቆጣሪው ይቀጥላል። ይህ ማለት እያንዳንዱ ሰዓት ቆጣሪ ይሻሻላል እና ያለፈው ጊዜ በ 32 ይጨምራል - በሚሊሰከንዶች ውስጥ ያለው ጊዜ ፣ ይህም ከእያንዳንዱ WDT መቋረጥ በኋላ የሚቀጥል ነው።

ባዶ ባዶ (ባዶ) {WDTCTL = WDTPW | WDTHOLD; // የእይታ ጠባቂ ሰዓት ቆጣሪን ያቁሙ

// የግቤት ሰዓት ቆጣሪ እና የስቴት ማሽን sc_timer_service_init (& የጊዜ ቆጣሪ_አገልግሎት ፣ ሰዓት ቆጣሪዎች ፣ MAX_TIMERS ፣ (sc_raise_time_event_fp) & blinkyStateMachine_raiseTimeEvent); blinkyStateMachine_init (& ብልጭ ድርግም); blinkyStateMachine_enter (& ብልጭ ድርግም);

ሳለ (1)

{// በየ 32 ሚ.ሜ blinkyStateMachine_runCycle (& ብልጭ ድርግም)) የስቴት ማሽን ይደውሉ; _bis_SR_register (LPM0_bits + GIE); sc_timer_service_process (& timer_service, 32); }}

// WDT ISR

#pragma vector = WDT_VECTOR _ የማቋረጫ ባዶ ጠባቂ ጠባቂ_ቲመር (ባዶ) {_bic_SR_register_on_exit (LPM0_bits + GIE); }

ደረጃ 6 ፕሮጀክቱን ያሂዱ

ያ ብቻ ነው - አሁን ፕሮግራሙን ወደ የእርስዎ MSP430 መገንባት እና መስቀል ይችላሉ!

ተስፋ እናደርጋለን ፣ ይህ መማሪያ ለ MSP430 ፕሮጀክትዎን በተሳካ ሁኔታ ለመፍጠር ይረዳዎታል። የራስዎን ሀሳቦች ለመተግበር ጊዜው አሁን ነው!

ለኮድ ማመንጨት ፣ የ YAKINDU ስቴት ቻርት መሣሪያዎች በእርስዎ ኮድ አቀናባሪ ስቱዲዮ ውስጥ እንደ ፕለጊን ያስፈልጋል።

የዝማኔ ጣቢያውን እዚህ ማግኘት ይችላሉ! <

በ 30 ቀናት የሙከራ ስሪት ይጀምራል። ከዚያ በኋላ ፣ ለንግድ ላልሆነ አገልግሎት ነፃ ፈቃድ ማግኘት ይችላሉ!

የሚመከር: