ዝርዝር ሁኔታ:
- ደረጃ 1 ወደ ውስጥ ዘልለው ይግቡ
- ደረጃ 2 ኮድ ያሻሽሉ - ተግባር ያክሉ
- ደረጃ 3-ሥራ የሚበዛበት መዘግየት ያክሉ
- ደረጃ 4 - የ ARM አርክቴክቸር አሠራር የጥሪ ደረጃ (ኤኤፒሲኤስ)
- ደረጃ 5 ከፓራሜትር ጋር ተግባር - ጎጆ ተግባራት
- ደረጃ 6 GPIO ግቤት - መቀየሪያዎችን ያክሉ
ቪዲዮ: ክፍል 2 - የጂፒዮ አርም ጉባኤ - አርጂቢ - የሥራ ጥሪ - መቀያየሪያዎች - 6 ደረጃዎች
2024 ደራሲ ደራሲ: John Day | [email protected]. ለመጨረሻ ጊዜ የተሻሻለው: 2024-01-30 07:32
በክፍል 1 ፣ ከ C / C ++ ይልቅ ስብሰባን በመጠቀም በ MSP432 LaunchPad ልማት ቦርድ ላይ ከቴክሳስ መሣሪያዎች እንዴት አንድ ቀይ ቀይ LED ን መቀያየርን ተምረናል።
በዚህ መመሪያ ውስጥ እኛ ተመሳሳይ ነገር እናደርጋለን - በዚያው ሰሌዳ ላይ ያለውን የ RGB LED ን ይቆጣጠሩ።
በመንገድ ላይ ፣ ስለአርኤም ስብሰባ እውቀታችንን የበለጠ ለማሳደግ ተስፋ እናደርጋለን ፣ እና አንዳንድ ኤልኢዲዎችን በማብራት መዝናናት ብቻ አይደለም።
ደረጃ 1 ወደ ውስጥ ዘልለው ይግቡ
በእውነቱ ፣ የመጀመሪያው ቪዲዮ ሁሉንም ይናገራል። ለማከል ብዙ ተጨማሪ አይደለም።
የእሱ ዋና ነጥብ በ MSP432 ላይ ያለው እያንዳንዱ የ I/O ወደብ “መመዝገብ” አድራሻዎች ብሎክ ያቀፈውን ሀሳብ ወደ ቤት መንዳት ነው ፣ ይህም እያንዳንዳቸው በርካታ ቢት ያካተተ ነው።
በተጨማሪም ፣ ቁርጥራጮቹ በኦርጅናላዊ ሁኔታ ይመደባሉ። ያም ማለት ፣ እያንዳንዱ የመመዝገቢያ አድራሻ ቢት 0 ተመሳሳዩን የውጭ I/O ፒን ያመለክታል።
አንድ ቢት ወይም ፒን እንኳን አንድ ነገር ለማድረግ ለዚያ ወደብ በርካታ የመመዝገቢያ አድራሻዎችን ይወስዳል የሚለውን ሀሳብ ደገምነው።
ግን በዚህ ሁኔታ ፣ እኛ ከ RGB LED ጋር ስለምንገናኝ ፣ ለእያንዳንዱ የመመዝገቢያ አድራሻ ሶስት ቢት መቋቋም አለብን።
በርካታ መመዝገቢያዎች እንደሚያስፈልጉን አጠናክረናል -የ DIR መዝገብ ፣ የ SEL0 ምዝገባ ፣ የ SEL1 ምዝገባ እና የ OUTPUT መዝገብ። እና በእያንዳንዱ ጊዜ ሶስት ቢት።
ደረጃ 2 ኮድ ያሻሽሉ - ተግባር ያክሉ
ከላይ ባለው ደረጃ ላይ እንዳዩት ፣ ዋናው የፕሮግራም ዑደት ብዙ ተደጋጋሚ ኮድ ነበረው ፣ ማለትም ፣ ኤልኢዲዎችን ስናጠፋ።
ስለዚህ ለፕሮግራሙ አንድ ተግባር ማከል እንችላለን። ኤልኢዲዎቹን ማጥፋት በፈለግን ቁጥር ያንን ተግባር አሁንም መደወል አለብን ፣ ግን አንዳንድ ኮዶች ወደ አንድ መግለጫ እንዲወድሙ ያደርጋል።
የእኛ የ 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 ይቀይሩ)
የሚመከር:
ምስጢር ዓለምን እንዴት ማግኘት እንደሚቻል !!!!!! (አርም ሁናቴ): 3 ደረጃዎች
ምስጢር ዓለምን እንዴት ማግኘት እንደሚቻል !!!!!! (አርም ሁናቴ): በዚህ ትምህርት ውስጥ በማዕድን ውስጥ ወደ ሚስጥራዊ የዓለም ሁኔታ እንዲሄዱ አሳያችኋለሁ
HackerBox 0049: አርም: 8 ደረጃዎች
HackerBox 0049: አርም: በዓለም ዙሪያ ለጠለፋ ጠላፊዎች እንኳን ደስ አለዎት! ለ HackerBox 0049 ፣ እኛ በአርዱዲኖ አይዲ ውስጥ የ LOLIN32 ESP-32 WiFi ብሉቱዝ መድረክን በማዋቀር ፣ ዲጂታል ማይክሮ መቆጣጠሪያ ስርዓቶችን ለማረም እየሞከርን ነው ፣ FastLED Animation L
አርም ሮቦት ሜክሲኮ: 4 ደረጃዎች
የጦር መሣሪያ ሮቦት ሜክሲካኖ: - የ ARM ROBOT WELD: ገጽ
IOT123 - D1M BLOCK - GY521 ጉባኤ 8 ደረጃዎች
IOT123 - D1M BLOCK - GY521 ስብሰባ - D1M ብሎኮች ለታዋቂው ዌሞስ D1 Mini SOC/ጋሻዎች/ክሎኖች ንክኪ ጉዳዮችን ፣ መለያዎችን ፣ የዋልታ መመሪያዎችን እና መለያየቶችን ያክላሉ። ይህ የ D1M BLOCK በ Wemos D1 Mini እና በ GY-521 ሞዱል መካከል ቀላል ግንኙነትን ይሰጣል (አድራሻው እና ማቋረጫ ፒኖቹ ሊጣበቁ ይችላሉ
IOT123 - D1M BLOCK - ADXL345 ጉባኤ 8 ደረጃዎች
IOT123 - D1M BLOCK - ADXL345 ስብሰባ - D1M ብሎኮች ለታዋቂው ዌሞስ D1 Mini SOC/ጋሻዎች/ክሎኖች ንክኪ ጉዳዮችን ፣ መለያዎችን ፣ የዋልታ መመሪያዎችን እና መለያየቶችን ያክላሉ። ይህ የ D1M BLOCK በ Wemos D1 Mini እና በ ADXL345 Accelerometer ሞዱል መካከል ቀላል ግንኙነትን ይሰጣል። ለዴቨል የመጀመሪያ ተነሳሽነት