ዝርዝር ሁኔታ:

ክፍል 2 - የጂፒዮ አርም ጉባኤ - አርጂቢ - የሥራ ጥሪ - መቀያየሪያዎች - 6 ደረጃዎች
ክፍል 2 - የጂፒዮ አርም ጉባኤ - አርጂቢ - የሥራ ጥሪ - መቀያየሪያዎች - 6 ደረጃዎች

ቪዲዮ: ክፍል 2 - የጂፒዮ አርም ጉባኤ - አርጂቢ - የሥራ ጥሪ - መቀያየሪያዎች - 6 ደረጃዎች

ቪዲዮ: ክፍል 2 - የጂፒዮ አርም ጉባኤ - አርጂቢ - የሥራ ጥሪ - መቀያየሪያዎች - 6 ደረጃዎች
ቪዲዮ: ክፍል 2 2024, ህዳር
Anonim
ክፍል 2 - የጂፒዮ የጦር መሣሪያ ጉባኤ - አርጂቢ - የሥራ ጥሪዎች - መቀያየሪያዎች
ክፍል 2 - የጂፒዮ የጦር መሣሪያ ጉባኤ - አርጂቢ - የሥራ ጥሪዎች - መቀያየሪያዎች

በክፍል 1 ፣ ከ C / C ++ ይልቅ ስብሰባን በመጠቀም በ MSP432 LaunchPad ልማት ቦርድ ላይ ከቴክሳስ መሣሪያዎች እንዴት አንድ ቀይ ቀይ LED ን መቀያየርን ተምረናል።

በዚህ መመሪያ ውስጥ እኛ ተመሳሳይ ነገር እናደርጋለን - በዚያው ሰሌዳ ላይ ያለውን የ RGB LED ን ይቆጣጠሩ።

በመንገድ ላይ ፣ ስለአርኤም ስብሰባ እውቀታችንን የበለጠ ለማሳደግ ተስፋ እናደርጋለን ፣ እና አንዳንድ ኤልኢዲዎችን በማብራት መዝናናት ብቻ አይደለም።

ደረጃ 1 ወደ ውስጥ ዘልለው ይግቡ

በእውነቱ ፣ የመጀመሪያው ቪዲዮ ሁሉንም ይናገራል። ለማከል ብዙ ተጨማሪ አይደለም።

የእሱ ዋና ነጥብ በ MSP432 ላይ ያለው እያንዳንዱ የ I/O ወደብ “መመዝገብ” አድራሻዎች ብሎክ ያቀፈውን ሀሳብ ወደ ቤት መንዳት ነው ፣ ይህም እያንዳንዳቸው በርካታ ቢት ያካተተ ነው።

በተጨማሪም ፣ ቁርጥራጮቹ በኦርጅናላዊ ሁኔታ ይመደባሉ። ያም ማለት ፣ እያንዳንዱ የመመዝገቢያ አድራሻ ቢት 0 ተመሳሳዩን የውጭ I/O ፒን ያመለክታል።

አንድ ቢት ወይም ፒን እንኳን አንድ ነገር ለማድረግ ለዚያ ወደብ በርካታ የመመዝገቢያ አድራሻዎችን ይወስዳል የሚለውን ሀሳብ ደገምነው።

ግን በዚህ ሁኔታ ፣ እኛ ከ RGB LED ጋር ስለምንገናኝ ፣ ለእያንዳንዱ የመመዝገቢያ አድራሻ ሶስት ቢት መቋቋም አለብን።

በርካታ መመዝገቢያዎች እንደሚያስፈልጉን አጠናክረናል -የ DIR መዝገብ ፣ የ SEL0 ምዝገባ ፣ የ SEL1 ምዝገባ እና የ OUTPUT መዝገብ። እና በእያንዳንዱ ጊዜ ሶስት ቢት።

ደረጃ 2 ኮድ ያሻሽሉ - ተግባር ያክሉ

Image
Image

ከላይ ባለው ደረጃ ላይ እንዳዩት ፣ ዋናው የፕሮግራም ዑደት ብዙ ተደጋጋሚ ኮድ ነበረው ፣ ማለትም ፣ ኤልኢዲዎችን ስናጠፋ።

ስለዚህ ለፕሮግራሙ አንድ ተግባር ማከል እንችላለን። ኤልኢዲዎቹን ማጥፋት በፈለግን ቁጥር ያንን ተግባር አሁንም መደወል አለብን ፣ ግን አንዳንድ ኮዶች ወደ አንድ መግለጫ እንዲወድሙ ያደርጋል።

የእኛ የ LED ማጥፊያ ኮድ ከብዙ ተጨማሪ መመሪያዎች ጋር የበለጠ የተሳተፈ ቢሆን ኖሮ ይህ እውነተኛ ማህደረ ትውስታ ቆጣቢ በሆነ ነበር።

የተከተተ የፕሮግራም እና የጥቃቅን ተቆጣጣሪዎች አካል የፕሮግራም መጠንን የበለጠ እያወቁ ነው።

ቪዲዮው ያብራራል።

በዋናነት ፣ በዋናው ኮዳችን ላይ የቅርንጫፍ መግለጫን እንጨምራለን ፣ እና እኛ የምንሰራበት ተግባር የሆነ ሌላ የኮድ ማገጃ አለን። እናም አንዴ ከጨረስን ፣ ወይም በተግባሩ መጨረሻ ላይ ፣ በዋናው ፕሮግራም ውስጥ ወደሚቀጥለው መግለጫ እንመልሳለን።

ደረጃ 3-ሥራ የሚበዛበት መዘግየት ያክሉ

በኮዱ መግለጫዎች ክፍል ውስጥ ፣ ለሚፈለገው ጊዜ ማቋረጥ ቀላል ለማድረግ የማያቋርጥ ይጨምሩ።

; ከፊል-ኮሎን በኋላ ማንኛውም ቃላት (';') አስተያየት ይጀምራል።

; በዚህ ክፍል ውስጥ ያለው ኮድ ለአንድ እሴት ስም ይመድባል።; እንዲሁም '.qu' ን መጠቀም ይችሉ ነበር ፣ ግን እነሱ ትንሽ የተለያዩ ናቸው።; '.qu' (እኔ እንደማስበው) ሊለወጥ አይችልም ፣ '.set' ማለት ይችላሉ ፣ ከፈለጉ በኮዱ ውስጥ የ «DLYCNT» ን ዋጋ ይለውጡ።; 'DLYCNT' በመዘግየቱ ንዑስ ክፍል ውስጥ እንደ ቆጠራ እሴት ሆኖ ያገለግላል። DLYCNT.set 0x30000

አዲስ የመዘግየት ተግባር ያክሉ ፦

መዘግየት.asmfunc; የ ‹መዘግየት› ንዑስ ክፍል ወይም ተግባር መጀመሪያ።

MOV R5 ፣ #DLYCNT; ጫን ኮር ሲፒዩ ይመዝገቡ R5 ለ ‹DLYCNT› ከተመደበው እሴት ጋር። dlyloop; ይህ የመዘግየት ዑደት መጀመሩን ያሳያል። ሰብሳቢ አድራሻን ይወስናል። SUB R5 ፣ #0x1; በዋናው ሲፒዩ መዝገብ R5 ውስጥ ከአሁኑ እሴት 1 ን ይቀንሱ። CMP R5 ፣ #0x0; የአሁኑን እሴት በ R5 ከ 0. BGT dlyloop ጋር ያወዳድሩ። በ R5 ውስጥ ያለው እሴት 0 ከሆነ ፣ ቅርንጫፍ (አድራሻ) ‹dlyloop› ብሎ ለመሰየም። BX LR; እዚህ ከደረስን ፣ ማለት R5 እሴት ከንዑስ ክፍል ውስጥ መመለስ 0. ነበር ማለት ነው።.endasmfunc; subroutine መጨረሻን ያመለክታል።

ከዚያ በዋናው አካል ውስጥ ፣ በዋናው ዑደት ውስጥ ፣ ያንን የመዘግየት ተግባር ይደውሉ ወይም ይደውሉ-

; ይህ የኮድ ቁርጥራጭ ፣ የዋና አካል ወይም ዋና ተግባር (ፋይል ‹main.asm› ን ይመልከቱ)።

; ይህ በ ‹ዋና› ውስጥ loop ነው ፣ እና ያንን አዲሱን ‹መዘግየት› ተግባር እንዴት እንደምንጠራው ወይም እንደምንጠቀምበት ያሳያል።; '#REDON' እና '#GRNON' እንዲሁ መግለጫዎች (ቋሚዎች) ናቸው ('main.asm' ን ከላይ ይመልከቱ)።; እነሱ የ RGB LED ን የተወሰነ ቀለም ለማቀናበር ቀላል መንገድ ብቻ ናቸው። loop MOV R0 ፣ #REDON; ቀይ - ለ ‹REDON› ከተመደበው እሴት ጋር ዋና የሲፒዩ መመዝገቢያ R0 ን ያዘጋጁ። STRB R0 ፣ [R4] ፤ ዋና መመዝገቢያ R4 ቀደም ሲል በጂፒኦ ውፅዓት አድራሻ ተዘጋጅቷል። በ R4 በተጠቀሰው አድራሻ በ R0 ውስጥ ያለውን ይጻፉ። BL መዘግየት ፣ ቅርንጫፍ ወደ አዲሱ ‹መዘግየት› ተግባር። BL ledsoff; ቅርንጫፍ ወደ ቀደመው የ “ledsoff” ተግባር። BL መዘግየት ፣ ditto MOV R0 ፣ #GRNON ፤ አረንጓዴ - ditto STRB R0 ፣ [R4]; እናም ይቀጥላል. BL መዘግየት BL ledsoff BL መዘግየት

ቪዲዮው በዝርዝር ይብራራል።

ደረጃ 4 - የ ARM አርክቴክቸር አሠራር የጥሪ ደረጃ (ኤኤፒሲኤስ)

ምናልባት አንድ ነገር ለማስተዋወቅ ጥሩ ጊዜ ሊሆን ይችላል። በስብሰባ ቋንቋ የሚካሄድ ስብሰባ ነው። ለ ARM አርክቴክቸር የአሠራር ጥሪ ደረጃ ተብሎም ይጠራል።

ለዚህ ብዙ ነገር አለ ፣ ግን እሱ መደበኛ ብቻ ነው። እኛ የምንማራቸው አንዳንድ ፅንሰ ሀሳቦች ሲመቸን እኛ የስብሰባ ፕሮግራምን ከመማር አያግደንም ፣ እና እኛ በምንሄድበት ጊዜ እኛ ያንን ደረጃ ቁርጥራጮችን መቀበል እንችላለን።

ያለበለዚያ እኛ ከአንድ ትልቅ የውሃ ቱቦ እንደምንጠጣ ሊሰማን ይችላል። በጣም ብዙ መረጃ።

ዋና መመዝገቢያዎች

ከ MSP432 ዋና መመዝገቢያዎች ጋር ስለምናውቅ ፣ አሁን ከእነዚህ መመዘኛዎች ውስጥ አንዳንዶቹን ለመቀበል እንሞክር። የሚቀጥለውን ተግባር (LED ን አብራ / አጥፋ) ስንጽፍ ከዚህ ጋር እንጣጣማለን።

1) እኛ R0 ን እንደ ተግባር ልኬት ልንጠቀምበት ይገባል። አንድ እሴት ወደ ተግባር (ንዑስ ክፍል) ለማስተላለፍ ከፈለግን ፣ ይህንን ለማድረግ R0 ን መጠቀም አለብን።

2) የአገናኝ መዝገቡን ለታለመለት ዓላማ እንጠቀምበታለን - ንዑስ ክፍል ከተጠናቀቀ በኋላ ወደ የት እንደሚመለስ የሚያመለክት አድራሻ ይይዛል።

እነዚህን እንዴት ተግባራዊ እንደምናደርግ ያያሉ።

ደረጃ 5 ከፓራሜትር ጋር ተግባር - ጎጆ ተግባራት

ተደጋጋሚ ክፍሎችን ወደ አንድ ተግባር በማዋሃድ የእኛን ኮድ ማጽዳት እና የሚይዘውን የማስታወስ መጠን መቀነስ እንችላለን። በዋናው የሉፕ አካል ውስጥ ያለው ብቸኛው ልዩነት እኛ የ RGB LED ን ማየት የምንፈልጋቸውን የተለያዩ የተለያዩ ቀለሞችን ማለፍ እንድንችል ግቤትን መፈለጋችን ነው።

ለዝርዝሩ ቪዲዮውን ይመልከቱ። (ስለ ርዝመቱ ይቅርታ)

ደረጃ 6 GPIO ግቤት - መቀየሪያዎችን ያክሉ

የበለጠ ሳቢ እናድርገው። በስብሰባ ፕሮግራማችን ላይ አንዳንድ የመቀየሪያ መቆጣጠሪያን ለማከል ጊዜው አሁን ነው።

ይህ አስተማሪ ሁለቱ የቦርድ መቀያየሪያዎች ከ MSP432 ጋር እንዴት እንደተገናኙ የሚያሳዩ ምስሎች አሉት።

በዋናነት: ቀይር 1 (SW1 ወይም S1) ከ P1.1 ጋር ተገናኝቷል ፣ እና ቀይር 2 (SW2 ወይም S2) ከ P1.4 ጋር ተገናኝቷል።

ይህ ከውጤቶች ይልቅ ግብዓቶችን ስለምናስተናግድ ብቻ ሳይሆን እነዚህ ሁለቱ መቀያየሪያዎች ልክ እንደ አንድ ቀይ ኤልኢዲ ውፅዓት አንድ ተመሳሳይ የመመዝገቢያ አድራሻ እገዳ ስለሚይዙ ወይም ስለሚወስዱ ነው።

በዚህ አስተማሪ ውስጥ አንድ ነጠላ ቀይ LED ን መቀያየርን ተገናኘን ፣ ስለዚህ መቀያየሪያዎቹን ለማስተናገድ ኮድ ማከል ብቻ ያስፈልገናል።

ወደብ 1 የመመዝገቢያ አድራሻ አግድ

ያስታውሱ እነዚህን በቀደመው አስተማሪ ውስጥ እንደሸፈንነው ፣ ግን አዲስ ማካተት አለብን -

  • ወደብ 1 የግብዓት ምዝገባ አድራሻ = 0x40004C00
  • ወደብ 1 የውጤት መመዝገቢያ አድራሻ = 0x40004C02
  • ወደብ 1 አቅጣጫ መመዝገቢያ አድራሻ = 0x40004C04
  • ወደብ 1 Resistor የመመዝገቢያ አድራሻ = 0x40004C06 ን ያንቁ
  • ወደብ 1 ይምረጡ 0 ይመዝገቡ አድራሻ = 0x40004C0A
  • ወደብ 1 ይምረጡ 1 ይመዝገቡ አድራሻ = 0x40004C0C

ወደቦችን እንደ ግብዓቶች ሲጠቀሙ ፣ የ MSP432 ን ውስጣዊ መጎተት ወይም መጎተት ተቃዋሚዎች መጠቀም ጥሩ ነው።

የ Launchpad ልማት ቦርድ ሁለቱን መቀያየሪያዎች ወደ መሬት (ሲጫኑ ዝቅተኛ) ስላለው ፣ ይህ ማለት እነሱ በማይጫኑበት ጊዜ ጠንካራ HIGH እንዳለን ለማረጋገጥ የ UP UP resistors ን መጠቀም አለብን ማለት ነው።

ወደላይ መጎተት / መጎተት

እነዚያ የመቀየሪያ ግብዓቶችን ወደ መጎተቻ ተከላካዮች ለማሰር ሁለት የተለያዩ ወደብ 1 የመመዝገቢያ አድራሻዎችን ይወስዳል።

1) ተቃዋሚዎች (ለእነዚያ ሁለት ቢት) እንደሚፈልጉ ለማመልከት ወደብ 1 Resistor-Enable register (0x40004C06) ይጠቀሙ ፣

2) እና ከዚያ የወደብ 1 የውጤት መመዝገቢያ (0x40004C02) ን ይጠቀሙ ተቃዋሚዎችን እንደ መጎተት ወይም መጎተት-ግብዓቶች ላይ የውጤት መመዝገቢያ መጠቀማችን ግራ የሚያጋባ ሊመስል ይችላል። የውጤት መመዝገቢያው እንደ ባለሁለት ዓላማ ማለት ይቻላል።

ስለዚህ ፣ በሌላ መንገድ እንደገና ለመናገር ፣ የውጤት መመዝገቢያው ከፍተኛ ወይም ዝቅተኛ ወደ ውፅዓት (እንደ ነጠላ ቀይ ኤልኢዲ) መላክ ይችላል ፣ እና / ወይም ለግብዓቶች መጎተት ወይም መጎተት ተቃዋሚዎች ለማቀናበር ያገለግላል። ፣ ግን ያ ባህሪ በ Resistor-Enable መዝገብ በኩል ከነቃ ብቻ።

ከላይ ባለው አስፈላጊ-LOW ወይም HIGH ን ወደ ማንኛውም የውጤት ቢት ሲላኩ/ሲያቀናብሩ ፣ የግብዓት ቢቶቹን የመጎተት/የመጎተት ሁኔታ በአንድ ጊዜ ማቆየት ያስፈልግዎታል።

(ቪዲዮው ለማብራራት ይሞክራል)

የወደብ ግቤት ቢት ንባብ

  • ለ GPIO ተግባር SEL0 / SEL1 ን ያዘጋጁ
  • የ DIR ምዝገባን እንደ ማብሪያ ቢቶች ግብዓት አድርገው ያዘጋጁ ፣ ግን እንደ LED ውፅዓት (በተመሳሳይ ባይት በተመሳሳይ)
  • ተከላካዮችን ያንቁ
  • እንደ መጎተት መከላከያዎች ያዘጋጁዋቸው
  • ወደቡን ያንብቡ
  • የሚፈልጉትን ቁርጥራጮች ብቻ ለመለየት የተነበበውን እሴት ለማጣራት ይፈልጉ ይሆናል (1 እና 2 ይቀይሩ)

የሚመከር: