ዝርዝር ሁኔታ:

ክፍል 3 GPIO: ARM Assembly: የመስመር ተከታይ: TI-RSLK: 6 ደረጃዎች
ክፍል 3 GPIO: ARM Assembly: የመስመር ተከታይ: TI-RSLK: 6 ደረጃዎች

ቪዲዮ: ክፍል 3 GPIO: ARM Assembly: የመስመር ተከታይ: TI-RSLK: 6 ደረጃዎች

ቪዲዮ: ክፍል 3 GPIO: ARM Assembly: የመስመር ተከታይ: TI-RSLK: 6 ደረጃዎች
ቪዲዮ: Lecture 6: GPIO Output: Lighting up a LED 2024, ሀምሌ
Anonim
Image
Image
ሃርድዌር
ሃርድዌር

ሰላም. ይህ የ ARM ስብሰባን (ከከፍተኛ ደረጃ ቋንቋ ይልቅ) የምንጠቀምበት ቀጣይ ክፍል ነው። ለዚህ አስተማሪነት መነሳሳት የቴክሳስ መሣሪያዎች ሮቦቶች ስርዓት መማሪያ ኪት ፣ ወይም TI-RSLK ላብ 6 ነው።

ማይክሮ መቆጣጠሪያውን ከኪቲው ፣ ከ MSP432 LaunchPad ልማት ቦርድ እንጠቀማለን ፣ ግን ምናልባት እርስዎ LaunchPad ን ባይጠቀሙም ፣ ወይም ቲአይውን ቢከተሉ እንኳን ከዚህ አስተማሪ ለማውጣት ጠቃሚ የሆነ ነገር ያገኛሉ። ሥርዓተ ትምህርት።

የ ARM ስብሰባን ፣ የእድገቱን አከባቢ እና ፕሮጀክት እንዴት እንደሚሰራ በማስተማር ማስተዋወቅ ጀመርን።

በ ARM ስብሰባ ላይ ቀጣዩ Instructable ከግብዓት/ውፅዓት (ጂፒኦ) ጋር እንዴት መስተጋብር እንደሚፈጠር አስተዋውቋል።

ከዚያ የእኛን ዕውቀት አስፋፍተናል ፣ እና ተግባሮችን አስተዋውቀናል ፣ ኤልኢዲዎችን እና መቀያየሪያዎችን ይቆጣጠራል።

አሁን በዚህ አስተማሪ ፣ እኛ የተማርነውን የበለጠ አስደሳች ፣ የበለጠ ጠቃሚ ነገር ለማድረግ አንድን መስመር ልንጠቀምበት እንችላለን።

የመስመር ተከታይ ሮቦት ስንሠራ ይህ በኋላ ላይ ሊረዳን ይችላል።

በስርዓተ ትምህርቱ ውስጥ ፣ አብዛኛው የፕሮግራም አወጣጥ የሚከናወነው በ C ወይም C ++ ውስጥ ነው ፣ ነገር ግን በከፍተኛ ደረጃ ቋንቋዎች እና በቤተመጽሐፍት ላይ በመመስረት ከመጀመራችን በፊት ከስብሰባ ጋር መተዋወቅ ጠቃሚ ነው።

ደረጃ 1 - ሃርድዌር

ሃርድዌር
ሃርድዌር
ሃርድዌር
ሃርድዌር
ሃርድዌር
ሃርድዌር

ቀደም ሲል ምንጮች ስላሉት ሃርድዌርን እንደገና ማደስ አልፈልግም ፣ ግን አስፈላጊ በሚሆንበት ጊዜ ማብራሪያዎችን እንጨምራለን።

እንደ TI-RSLK (የሮቦት ኪት) አካል ስለሆነ ለዚህ አስተማሪ ፣ ከፖሎሉ አንፀባራቂ ዳሳሽ አደርን እንጠቀማለን። እሱ በትምህርቱ ውስጥ ፣ እና በስርዓተ ትምህርቱ ላብራቶሪ 6 ውስጥ ያገለገለ ነው።

ያ ከሌለዎት ለመገኘቱ እና ላለመገኘት ዲጂታል ምልክት ፣ ከፍተኛ ወይም ዝቅተኛ ፣ የሚያወጣውን ማንኛውንም የ IR መመርመሪያ (ወይም የእነሱ ተከታታይ) መጠቀም ይችላሉ።

እኛ በመስመሩ መሃል ላይ መሆናችንን ወይም ወደ አንድ ወገን መሄዳችንን ለማወቅ ሊረዳ ስለሚችል የድርድር አነፍናፊው በጣም ጥሩ ነው። በተጨማሪም ፣ በኋላ እንደምናየው ፣ ከመስመሩ አንፃር የሮቦቱን አንግል ለመለየት ይረዳናል።

አንጸባራቂ ድርድር እርስ በእርስ በጣም ቅርብ የሆኑ መመርመሪያዎች አሉት። ያ ማለት በመስመሩ ውፍረት ላይ በመመስረት ብዙ የመለየት ምልክቶችን ማግኘት አለብን ማለት ነው።

እንደዚያ ከሆነ ፣ ሮቦቱ በቀጥታ ከመስመሩ ጋር የማይሰለፍ ከሆነ ፣ መስመሩ ከሚገባው በላይ ሰፊ የሆነ ውፅዓት መመለስ አለበት (ምክንያቱም እኛ አንግል ላይ ነን)።

ከላይ ላለው የተሻለ ማብራሪያ ፣ የላቦራቶሪ 6 ሰነዱን ይመልከቱ።

አነፍናፊውን ከ MSP432 LaunchPad ልማት ቦርድ ጋር ለማገናኘት / ለማገናኘት እገዛ ፣ አንዳንድ ጠቃሚ መመሪያዎች እዚህ አሉ።

እኔም ወደዚህ ደረጃ ተመሳሳይ (ተመሳሳይ?) የፒዲኤፍ መመሪያዎችን አክዬአለሁ።

የፖሎሉ ሰነዶችን በጥንቃቄ ካነበቡ ፣ ከ 5 ቮ ይልቅ 3.3 ቪ የሚጠቀሙ ከሆነ መዝለል እንደሚፈልጉ ለ “3.3V ማለፊያ” ምክንያቱን ያብራራሉ።

እኛ ሮቦትን ገና ስላልገነባን ይልቁንስ ስለ አርኤም ስብሰባ እና እንዲሁም ከሮቦቱ ቁርጥራጮች (ንዑስ ስርዓቶች) ጋር እንዴት እንደምንገናኝ እየተማርን ነው ፣ ከላይ ያሉትን መመሪያዎች ለደብዳቤው መከተል የለብንም።

ለአሁን ፣ የመስመር ዳሳሽ ድርድርን ማገናኘት ብቻ ይበቅላል/ወደሚከተለው ይቀንሳል።

  • 3.3V እና GND ን ከ MSP432 ቦርድ ወደ አነፍናፊ ድርድር ያገናኙ።
  • ወደብ ፒን (P5.3 እጠቁማለሁ) ከ MSP432 ወደ ኤልኢን በመስመር ዳሳሽ ድርድር ላይ ፒን ያገናኙ። በአነፍናፊው ላይ ያለው ፒን በ 3.3V እና GND መካከል ነው።
  • የአንድን ወደብ ሁሉንም ስምንት ፒን/ቢት (ከ P7.0 እስከ P7.7 እጠቁማለሁ) ከ “1” እስከ “8” ከተሰየመው የስሜት ድርድር ስምንት ፒኖች ጋር ያገናኙ። እነሱ በሚሰማቸው ላይ በመመስረት ወደ HIGH ወይም LOW የሚሄዱ መስመሮች ናቸው።

በዚህ ደረጃ ምስሎች እና በቪዲዮው ውስጥ እንደሚመለከቱት ፣ አነፍናፊውን ከሮቦት ሻሲው ጋር አላያያዝኩም ፣ ምክንያቱም የፕሮግራም ፣ የማረም ፣ የመፈተሽ ፣ የመማርን ቀላልነት እፈልግ ነበር።

ስለዚህ ከተገናኘው ሁሉ ጋር ወደ ሶፍትዌሩ ለመግባት ዝግጁ ነን።

ደረጃ 2 - መስመርን ይከተሉ

መስመር በመከተል ላይ
መስመር በመከተል ላይ
መስመር በመከተል ላይ
መስመር በመከተል ላይ

የአንፀባራቂ ድርድር አነፍናፊ ቢያንስ በሁለት መንገዶች ሊረዳ ስለሚችል በጣም ቆንጆ ነው።

  • ይወስኑ ሮቦቱ በመስመር ላይ ያተኮረ ወይም ወደ አንድ ጎን የሚንሸራተት።
  • ሮቦቱ በመስመሩ አቅጣጫ የተስተካከለ ነው ወይስ በአንድ ማዕዘን ላይ ነው።

እያንዳንዱ የድርድር መመርመሪያዎች በመሠረቱ አንድ ትንሽ መረጃ ፣ ከፍተኛ ወይም ዝቅተኛ ይሰጣሉ።

ሀሳቡ እነዚያን ሁሉ ቁርጥራጮች ወደ አንድ ቁጥር ወይም ነጠላ ቢት-ጥለት ማዋሃድ እና ውሳኔዎችን ለማድረግ (በትክክል ለመንቀሳቀስ) ያንን ንድፍ ይጠቀሙ።

ደረጃ 3: በእውነት ከመጀመራችን በፊት…

.. ስለ ARM ስብሰባ መርሃ ግብር አዲስ ነገር መማር አለብን። እና እኔ ሌላ መመሪያ ብቻ ማለቴ አይደለም። እነዚያ ጥቃቅን የመሆን አዝማሚያ አላቸው።

እስካሁን ድረስ በፕሮግራሞቻችን ውስጥ “ቁልል” ን አልተጠቀምንም።

እኛ አብዛኞቹን ዋና ዋና የሲፒዩ መዝገቦችን በተለያዩ ንዑስ መርሆዎች በመላው ዓለም በመጠቀም ላይ ተመርተናል።

እኛ ያደረግነው አንድ ነገር የ LR (የአገናኝ መመዝገቢያ) አድራሻን ለአንድ ተግባር ማዳን እና ወደነበረበት መመለስ ነበር - ሌሎች በርካታ ተግባራትን የጠራው። (እዚህ “ተግባር” እና “ንዑስ” ን በተለዋጭ እጠቀማለሁ)።

ስንሠራው የነበረው ጥሩ አይደለም። ሌሎች ተግባሮችን ጎጆ ብንፈልግስ? ከአንድ በላይ ደረጃ ጎጆ ቢኖረንስ?

በቀደሙት ምሳሌዎች ፣ የመመዝገቢያ R6 ን እንደ LR ወይም የመመለሻ አድራሻ ማከማቻ ለመጠቀም መርጠናል። ግን የበለጠ/ጥልቅ ጎጆ መሥራት ከፈለግን ፣ የ R6 እሴቱን መለወጥ መቀጠል አንችልም። ሌላ መዝገብ መምረጥ አለብን። እና ሌላ። እና ከዚያ የትኛውን ዋና ሲፒዩ ምዝገባ የትኛው LR ወደ የትኛው ተግባር እንደሚመለስ ለመከታተል ከባድ ይሆናል።

ስለዚህ አሁን “ቁልል” የሚለውን እንመለከታለን።

ደረጃ 4: ቁልል

ቁልል የሚያብራራ አንዳንድ የንባብ ቁሳቁስ እዚህ አለ።

እኔ የሁለት ሀሳቦች ትልቅ ደጋፊ ነኝ -

  • የሚፈለገውን ያህል ፅንሰ -ሀሳብ ብቻ ፣ ወደ ተግባራዊው በፍጥነት ይሂዱ
  • እንደአስፈላጊነቱ ይማሩ ፣ ዓላማ በሌላቸው መልመጃዎች ወይም ምሳሌዎች ላይ ብቻ ሳይሆን በእውነቱ አንድ ነገር በማድረግ ላይ ያተኩሩ።

ስለ ቁልል የሚያወሩ ብዙ ARM እና MSP432 ሰነዶች በመስመር ላይ አሉ ፣ ስለዚህ ያንን ሁሉ እንደገና ለማደስ አይደለም። እኔ እዚህ የቁልል አጠቃቀምን በትንሹ በትንሹ እጠብቃለሁ - የመመለሻ አድራሻውን (የአገናኝ መመዝገቢያውን) በማስቀመጥ።

በዋናነት ፣ መመሪያዎችን ብቻ ያስፈልገናል-

PUSH {የመዝገብ ዝርዝር}

POP {የመዝገብ ዝርዝር}

ወይም ፣ በእኛ ሁኔታ ፣ በተለይ -

ግፋ {LR}

ፖፕ {LR}

ስለዚህ ፣ የመሰብሰቢያ ተግባር/ንዑስ ክፍል እንደዚህ ይመስላል

funcLabel.asmfunc

PUSH {LR} ፤ ይህ ምናልባት በመግቢያው ላይ ካሉት የመጀመሪያ መመሪያዎች አንዱ ሊሆን ይችላል።; እዚህ ተጨማሪ ኮድ ያድርጉ..; ምናምን ምናምን ምናምን…; እሺ ፣ እኛ ወደ ተግባር ጥሪ POP {LR} ለመመለስ ዝግጁ ነን ፣ ተግባሩን ጨርሰናል ፣ ይህ ትክክለኛውን የመመለሻ አድራሻ ወደ ጥሪ ይመልሳል ፣ ተግባር። BX LR; ተመለስ.endasmfunc

ቪዲዮው በበርካታ ጎጆ ተግባራት የቀጥታ ምሳሌን ያልፋል።

ደረጃ 5 - ሶፍትዌሩ

“MSP432_Chapter…” የሚል የተለጠፈው የተያያዘው ፋይል ስለ MSP432 ወደቦች ብዙ ጥሩ መረጃ አለው ፣ እና ከዚያ ሰነድ የሚከተሉትን ወደቦች ፣ ምዝገባዎች ፣ አድራሻዎች ፣ ወዘተ እናገኛለን። ሆኖም ፣ ለፖርት 5 እና ከዚያ በላይ የተዘረዘሩትን ዝርዝር አድራሻዎች አላየሁም። (“ተለዋጭ ተግባራት” ብቻ)። ግን አሁንም ጠቃሚ ነው።

ሁለት ወደቦችን እንጠቀማለን። P5 ፣ P7 ፣ P1 እና P2።

P5.3 (አንድ ቢት) ውፅዓት በአነፍናፊው ላይ የ IR LED ን ማንቃት ለመቆጣጠር ይሆናል። P5.3 ን እየተጠቀምን ያለነው ልክ እንደ ሌሎች የ MSP432 ግንኙነቶች ወደ አነፍናፊ ድርድር በሚሄዱበት ተመሳሳይ ራስጌ ላይ የተጋለጠ ፒን ነው።

ከ P7.0 እስከ P7.7 ድረስ መረጃውን ከአነፍናፊው የሚሰበስቡት ስምንት ግብዓቶች ይሆናሉ ፤ እሱ “የሚያየው”።

P1.0 ነጠላ ቀይ LED ነው እና እኛ ያንን የውሂብ አመላካቾችን ሊሰጠን ይችላል።

P2.0 ፣ P2.1 ፣ P2.2 የ RGB LED ነው እና እኛ እንደዚሁም ፣ ከተለያዩ የቀለም አጋጣሚዎች ጋር ፣ የአነፍናፊ ውሂቡን አመላካች ሊሰጠን ይችላል።

ከዚህ ሁሉ ጋር የተዛመዱትን የቀድሞ አስተማሪዎችን ካለፉ ታዲያ ፕሮግራሙን እንዴት እንደሚያዋቅሩ ያውቃሉ።

ለወደብ እና ለቢቶች ፣ ወዘተ የማወቂያ ክፍል ብቻ ይኑርዎት።

“ዋና” ክፍል ይኖርዎታል።

ከ P7 ውሂቡን በተከታታይ የምናነብበት ፣ ያንን መረጃ የምንወስንበት እና ሁለቱን ኤልኢዲዎች በዚህ መሠረት የምናበራበት አንድ ሉፕ መኖር አለበት።

እንደገና የወደብ ምዝገባ አድራሻዎች እዚህ አሉ

  • GPIO P1: 0x4000 4C00 + 0 (አድራሻዎች እንኳን)
  • GPIO P2: 0x4000 4C00 + 1 (ያልተለመዱ አድራሻዎች)
  • GPIO P3: 0x4000 4C00 + 20 (አድራሻዎች እንኳን)
  • GPIO P4: 0x4000 4C00 + 21 (ያልተለመዱ አድራሻዎች)
  • GPIO P5: 0x4000 4C00 + 40 (አድራሻዎች እንኳን)
  • GPIO P6: 0x4000 4C00 + 41 (ያልተለመዱ አድራሻዎች)
  • GPIO P7: 0x4000 4C00 + 60 (አድራሻዎች እንኳን)
  • GPIO P8: 0x4000 4C00 + 61 (ያልተለመዱ አድራሻዎች)
  • GPIO P9: 0x4000 4C00 + 80 (አድራሻዎች እንኳን)
  • GPIO P10: 0x4000 4C00 + 81 (ያልተለመዱ አድራሻዎች)

ደፋር የሆነው ለዚህ አስተማሪ የምንጠቀምበትን ነው።

የ IR መመርመሪያዎችን ለማንበብ የፕሮግራም እርምጃዎች

የሚከተለው ፕሮግራሙን በ C ውስጥ ለመፃፍ psuedo-code ነው ፣ ግን አሁንም ጠቃሚ ነው ፣ እና በፕሮግራሙ የስብሰባ ስሪት ውስጥ በጣም በቅርብ እንከተለዋለን።

ዋና ፕሮግራም 0) (ወደ 1) {1) P5.3 ከፍታ (IR LED ን ያብሩ) 2) P7.0 ን ውፅዓት ያድርጉ እና ከፍ ያድርጉት (capacitor ን በመሙላት) 3) 10 እኛን ይጠብቁ ፣ Clock_Delay1us (10); 4) P7.0 ን ግብዓት ያድርጉ 5) ይህንን loop 10,000 ጊዜ ያሂዱ ሀ) P7.0 ን ያንብቡ (P7.0 ላይ ያለውን ቮልቴጅ ወደ ሁለትዮሽ ይለውጣል) ለ) የውጤት ሁለትዮሽ ወደ P1.0 (በእውነተኛ ጊዜ ውስጥ ሁለትዮሽ እንዲያዩ ያስችልዎታል) 6) P5.3 ዝቅተኛ ያዘጋጁ (IR LED ን ያጥፉ ፣ ኃይልን ይቆጥቡ) 7) 10 ms ፣ Clock_Delay1ms (10) ይጠብቁ ፤ } // ይድገሙ (ወደ ኋላ ())

ደረጃ 6 - ኮዱን እናሻሽል

የ Pololu IR LED ድርድር ዓላማ ወይም አጠቃቀም አንድ መስመርን ለመለየት እና ሮቦቱ (የወደፊቱ) በቀጥታ በመስመሩ ላይ ያተኮረ መሆኑን ወይም ወደ አንድ ወገን መሄዱን ማወቅ ነው። እንዲሁም ፣ መስመሩ የተወሰነ ውፍረት ስላለው ፣ የአነፍናፊው ድርድር በቀጥታ ከመስመሩ ቀጥ ያለ ከሆነ ፣ የኤን ዳሳሾች ብዛት ከሌላው የተለየ ንባብ ይኖራቸዋል ፣ ነገር ግን የ IR LED ድርድር በአንዳንድ ማእዘን ላይ ከሆነ (ቀጥ ያለ አይደለም) ፣ ከዚያ N+1 ወይም N+2 IR LED/detector ጥንዶች አሁን የተለየ ንባብ መስጠት አለባቸው።

ስለዚህ ፣ ምን ያህል ዳሳሾች የመስመር መገኘቱን እንደሚያመለክቱ ላይ በመመስረት ፣ እኛ ማእከል እንደሆንን ፣ እና አንግል ብንሆን ወይም እንዳልሆንን ማወቅ አለብን።

ለዚህ የመጨረሻ ሙከራ ፣ አነፍናፊ ድርድር ስለሚነግረን የበለጠ መረጃ እንዲሰጠን ፣ ቀዩን ኤልኢዲ እና አርጂቢ ኤል ዲ ማግኘት እንደምንችል እስቲ እንመልከት።

ቪዲዮው ወደ ሁሉም ዝርዝሮች ይሄዳል። የመጨረሻው ኮድ እንዲሁ ተያይ attachedል።

ይህ ከጂፒኦ ጋር የተዛመደውን የ ARM ስብሰባ ተከታታይን ያጠናቅቃል። ከጊዜ በኋላ በበለጠ የ ARM ስብሰባ እንደምንመለስ ተስፋ እናደርጋለን።

አመሰግናለሁ.

የሚመከር: