ዝርዝር ሁኔታ:
- ደረጃ 1 ማስተዋል
- ደረጃ 2 ወደብ ማስጀመር
- ደረጃ 3: እጅግ በጣም ዝቅተኛ ኃይል
- ደረጃ 4 ፦ ሰዓት ቆጣሪ
- ደረጃ 5 ዝቅተኛ የኃይል ሁኔታ
- ደረጃ 6-ISR- ቆጣሪ
- ደረጃ 7 የሃርድዌር መቋረጥ
- ደረጃ 8- ISR- ዳግም አስጀምር/ የግፋ አዝራር
- ደረጃ 9 ፦ ኮድ
- ደረጃ 10 የማጣቀሻ ኮድ
ቪዲዮ: MSP430 ሰከንዶች ቆጣሪ 10 ደረጃዎች
2024 ደራሲ ደራሲ: John Day | [email protected]. ለመጨረሻ ጊዜ የተሻሻለው: 2024-01-30 07:32
እንኳን ደህና መጣህ! የሰከንዶች ቆጣሪ ማድረግ - ለፕሮጀክቱ CCStudio 8 እና MSP430F5529 ን መጠቀም።
የማይክሮ መቆጣጠሪያውን ኮድ ለማድረግ C ቋንቋ። ዝቅተኛ የኃይል ሁነታዎች ፣ ሰዓት ቆጣሪዎች እና ማቋረጦች መተግበር።ውጤቱ በ 7 ክፍል በኩል ይታያል።
ደረጃ 1 ማስተዋል
እንጀምር!
ለጠባቂው ሰዓት ቆጣሪ አስፈላጊውን የይለፍ ቃል በመጠቀም የጠባቂ ሰዓት ቆጣሪውን ወደ ማጥፋት ሁኔታ ያስጀምሩ (የሂደቱን ደህንነት ለመጠበቅ ማለቂያ የሌላቸውን ቀለበቶች ለመፈተሽ ይረዳል)።
#ያካትቱ
/** * main.c */
int main (ባዶ)
{
WDTCTL = WDTPW | WDTHOLD; // የእይታ ጠባቂ ሰዓት ቆጣሪን ያቁሙ
መመለስ 0;
}
ደረጃ 2 ወደብ ማስጀመር
{
P3DIR = 0xFF; // P3DIR = 0x00;
P6DIR = 0xFF;
P4DIR | = 0x00;
P4REN | = 0xFF;
P4OUT | = 0xFF;
}
P3DIR | = 0x00 ሁሉም PORT-3 ግብዓቶችን ለመውሰድ መጀመሩን ይነግረናል።
P3DIR | = 0xFF እንደሚገልፀው መላው PORT-3 ለውጦችን ለመስጠት መጀመሩን ይነግረናል።
P3DIR | = 0x01 በ PORT-3 ውስጥ ለመውጣት ፒን P3.0 ብቻ ተጀምሯል። ይህ የሄክሳዴሲማል ወደብ ካርታ ይከተላል።
P4REN | = 0xFF ፣ ይህ የሚያመለክተው የ PORT-4 ፒኖች መወጣጫ/ወደታች መከላከያዎች የነቁ መሆናቸውን ነው።
በ Pull Up ወይም Pull DOWN መካከል ለመምረጥ ፣ P $ OUT | = 0xFF የተሰጠው መመሪያ ጥቅም ላይ ይውላል።
0xFF ጥቅም ላይ ከዋለ እነሱ እንደ Pull UP resistors ያዋቅራሉ እና 0x00 እነሱ እንደ Pull DOWN ካዋቀሩ።
ደረጃ 3: እጅግ በጣም ዝቅተኛ ኃይል
MSP430F5529 የኃይል ማቀነባበሪያውን ከአቀነባባሪው ለመቀነስ ያስችለናል። ይህ በገለልተኛ መተግበሪያዎች ውስጥ ጠቃሚ ነው።
ይህ የሁሉም ፒን ወይም ወደቦች ወደ ውጤት እንዲገለፅ ይጠይቃል።
{
P7DIR | = 0xFF;
P6DIR | = 0xFF;
P5DIR | = 0xFF;
P4DIR | = 0xFF;
P3DIR | = 0xFF;
P2DIR | = 0xFF;
P1DIR | = 0xFF;
}
ደረጃ 4 ፦ ሰዓት ቆጣሪ
ለአንድ ሰከንድ መዘግየት ትውልድ የሰዓት ቆጣሪ አጠቃቀም። ይህ የ 1 ሜኸዝ SMCLK ን ይጠቀማል ፣ እንዲሁም ሰዓት ቆጣሪ በዝቅተኛ የኃይል ሁኔታ ውስጥ ይሠራል (በሚቀጥለው ደረጃ ፣ ከ LPM ከተቋረጠ በኋላ)። ይህ ሂደት በአቀነባባሪው ላይ ኃይልን እና ሸክምን ይቆጥባል
TA0CCTL0 = CCIE;
TA0CCR0 = 999;
TA0CTL = TASSEL_2 + MC_1;
በሰዓት ቆጣሪ መመዝገቢያ ውስጥ ወደ ዜሮ ለመመለስ አንድ ተጨማሪ ቆጠራ ስለሚወስድ እሴቶች 999 ናቸው።
ደረጃ 5 ዝቅተኛ የኃይል ሁኔታ
_BIS_SR (LPM0_bits+GIE);
ይህ አጠቃላይ ማቋረጥን አንቃ (ጂአይኤ) ን ያነቃቃል ፣ እና ሲፒዩውን የሚደግፈው ኤም.ሲ.ኤል ጠፍቶ ባለበት LPM0 ፣ እና ሰዓት ቆጣሪው እንዲሠራ SMCLK እና ACLK እንዲሮጥ ያስችለዋል። ስለዚህ ኃይልን በማስቀመጥ ሲፒዩ ጠፍቶ ማየት እንችላለን።
ደረጃ 6-ISR- ቆጣሪ
#ፕራግማ ቬክተር = TIMER0_A0_VECTOR
_ ማቋረጫ ባዶ የጊዜ ቆጣሪ_አ (ባዶ)
{
z ++;
ከሆነ (z> መዘግየት)
{
P3OUT = ኮድ [x];
P6OUT = code1 [y];
x ++;
ከሆነ (x == 10)
{
x = 0;
y ++;
}
ከሆነ (y == 6)
y = 0;
z = 0;
}
}
ፕራግማ ቬክተር በሲ ኤስ ኤም ውስጥ ለ ISR ውክልና ነው።
ኮድ [x] እና code1 [y] 60 ሰከንዶች ቆጣሪ ለማሳየት ለሁለቱ ሰባት ክፍሎች የውጤት እሴቶችን የያዙ ድርድሮች ናቸው።
ደረጃ 7 የሃርድዌር መቋረጥ
P2DIR = 0x00;
P2REN = 0x02;
P2OUT = 0x02;
P2IE | = BIT1;
P2IES | = BIT1;
P2IFG & = ~ BIT1;
እዚህ P2.1 እንደ ሃርድዌር መቋረጥ ታወጀ ፣ አዝራሩ ከተጫነ ፣ ቆጣሪው ወደ እሴቱ ዳግም ይጀመራል።
የተቀረው ፕሮግራም በዚህ መቋረጥ በ ISR ውስጥ ተጽ writtenል።
ደረጃ 8- ISR- ዳግም አስጀምር/ የግፋ አዝራር
#ፕራግማ ቬክተር = PORT2_VECTOR
_ ማቋረጫ ባዶ ባዶ ወደብ_2 (ባዶ)
{
P2IFG & = ~ BIT1;
x = 0; y = 0;
P3OUT = ኮድ [x];
P6OUT = code1 [y];
v ++;
ለ (i = 0; i
{
P1OUT | = BIT0; //P1.0 = መቀያየር
_ መዘግየት_ሳይክሎች (1048576);
P1OUT & = ~ BIT0; // P1.0 = መቀያየር
_ መዘግየት_ሳይክሎች (1048576);
}
ይህ ISR ቆጣሪውን እንደገና ያስጀምራል ፣ እና ቀሪው ስንት ጊዜ እንደተጫነ ይቆጥራል።
(እዚህ ማሳያ በሊድ መቀየሪያ በኩል የተሰራ ነው ፣ እነዚያን እሴቶች በ 7 ክፍል ውስጥ እንደ ውጤት ለማሳየት ሌላ ድርድር እና ሰዓት ቆጣሪን መጠቀም ይችላል)።
ደረጃ 9 ፦ ኮድ
#ያካትቱ
#መለየት መዘግየት 1000
የቻርድ ኮድ = {0xFC ፣ 0x60 ፣ 0xDA ፣ 0xF2 ፣ 0x66 ፣ 0xB6 ፣ 0xBE ፣ 0xE0 ፣ 0xFE ፣ 0xE6};
ቻር ኮድ 1 = {0x7E ፣ 0x30 ፣ 0x6D ፣ 0x79 ፣ 0x33 ፣ 0x5B};
ተለዋዋጭ ያልተፈረመ int x = 0, y = 0, z = 0;
ተለዋዋጭ ያልተፈረመ int v = 0 ፣ i = 0;
ባዶ ባዶ ()
{
WDTCTL = WDTPW | WDTHOLD; // የእይታ ጠባቂ ሰዓት ቆጣሪን ያቁሙ
P7DIR | = 0xFF;
P7OUT | = 0x00;
P8DIR | = 0xFF;
P8OUT | = 0x00;
P4DIR | = 0xFF;
P4OUT | = 0x00;
P5DIR | = 0xFF;
P5OUT | = 0x00;
P1DIR = 0xFF;
P3DIR = 0xFF;
P6DIR = 0xFF;
P2DIR = 0x00;
P2REN = 0x02;
P2OUT = 0x02;
P2IE | = BIT1;
P2IES | = BIT1;
P2IFG & = ~ BIT1;
TA0CCTL0 = CCIE;
TA0CCR0 = 999;
TA0CTL = TASSEL_2 + MC_1;
_BIS_SR (LPM0_bits+GIE);
}
// ሰዓት ቆጣሪ A0 የአገልግሎት አሰራሩን ያቋርጣል
#ፕራግማ ቬክተር = TIMER0_A0_VECTOR
_ ማቋረጫ ባዶ የጊዜ ቆጣሪ_አ (ባዶ)
{
z ++;
ከሆነ (z> መዘግየት)
{
P3OUT = ኮድ [x];
P6OUT = code1 [y];
x ++;
ከሆነ (x == 10)
{
x = 0;
y ++;
}
ከሆነ (y == 6)
y = 0;
z = 0;
}
}
// የሃርድዌር አገልግሎት የዕለት ተዕለት እንቅስቃሴን ያቋርጣል
#ፕራግማ ቬክተር = PORT2_VECTOR
_ ማቋረጫ ባዶ ባዶ ወደብ_2 (ባዶ)
{
P2IFG & = ~ BIT1;
x = 0;
y = 0;
P3OUT = ኮድ [x];
P6OUT = code1 [y];
v ++;
ለ (i = 0; i
{P1OUT | = BIT0; // P1.0 = መቀያየር
_ መዘግየት_ሳይክሎች (1048576);
P1OUT & = ~ BIT0; // P1.0 = መቀያየር
_ መዘግየት_ሳይክሎች (1048576);
}
}
ደረጃ 10 የማጣቀሻ ኮድ
GitHub ማከማቻ
የሚመከር:
DIY Arduino 30 ሰከንዶች የመታጠቢያ ሰዓት ቆጣሪን እንዴት መሥራት እንደሚቻል ፣ የኮቪ ስርጭት መስፋፋቱን ያቁሙ - 8 ደረጃዎች
DIY Arduino 30 ሰከንዶች ማጠቢያ ሰዓት ቆጣሪን እንዴት ማድረግ እንደሚቻል ፣ የኮቪድ መስፋፋትን አቁሙ - ሰላም
ቆጣሪ ቆጣሪ: 4 ደረጃዎች
የመቁጠሪያ ሰዓት ቆጣሪ - በዚህ አስተማሪዎች ውስጥ ፣ በዕለት ተዕለት ሕይወትዎ ውስጥ የጊዜ አያያዝዎን ለመቆጣጠር የሚያግዝ የቁጥር ቆጣሪ እንዴት እንደሚሠሩ አስተምራችኋለሁ። ዋናው አነሳሽነት የመጣው ከዚህ አገናኝ ነው። ይህ ቆጠራ ሰዓት ቆጣሪ በመሠረቱ አራት አሃዝ ሰባት ክፍል ይሆናል
ለማስታወቂያ አርዱዲኖ ቆጣሪ ቆጣሪ -5 ደረጃዎች
ለማስታወቂያ አርዱዲኖ ቆጣሪ ቆጣሪ - ይህ አርዱዲኖ UNO እና ኤልሲዲ ማሳያ በመጠቀም የሚጠቀም ቆጣሪ ሰዓት ቆጣሪ ነው። ይህንን ፕሮጀክት የሠራሁበት ምክንያት በት / ቤታችን (ኬሲአይኤስ) ውስጥ ፣ በየሳምንቱ ረቡዕ ከምሽቱ 9 30 በመስመር ላይ ምሳ መያዝ አለብን። ሆኖም ፣ በጣም ዝነኛ እና በ g ውስጥ ያለው ምግብ
የ GLCD ጋሻን በመጠቀም ቆጣሪ ቆጣሪ -8 ደረጃዎች (ከስዕሎች ጋር)
የ GLCD ጋሻን በመጠቀም ቆጣሪ ቆጣሪ - በዚህ ፕሮጀክት ውስጥ በ 1 eldልድ GLCD ጋሻ ላይ ቆጣሪ ቆጣሪን እሳለሁ ፣ የዚህ ፕሮጀክት ተጠቃሚ በ GLCD ላይ የተሳለውን አዝራር በመጠቀም የሰዓት ቆጣሪውን የጊዜ ርዝመት ይወስናል ፣ ሰዓት ቆጣሪው 0 ሲደርስ የድምፅ ማወዛወዝ እና ንዝረት ይኖራል።
በ 5 ሰከንዶች ወይም ባነሰ ጊዜ ውስጥ በሲዲ/ዲቪዲ ላይ ሁሉንም መረጃዎች ይገድሉ። 3 ደረጃዎች
በሲዲ/ዲቪዲ ላይ ሁሉንም መረጃዎች በ 5 ሰከንዶች ወይም ባነሰ ጊዜ ውስጥ ይገድሉ። በሲዲ/ዲቪዲ ላይ ሁሉንም መረጃዎች በ 5 ሰከንዶች ወይም ባነሰ ጊዜ ውስጥ ይገድሉ። ይህንን ለማድረግ ለምን ይፈልጋሉ? ++ የጥቂት ዓመታት የድሮ መጠባበቂያዎችን አጥፉ ++ ያስታውሱዎታል ልዩ የመኝታ ጊዜውን ወደ ዲቪዲ አቃጠለ ++ የእርስዎ Ex የሲዲ/ዲቪዲውን ጀርባ ይፈልጋል። ++ AOL DISK ጋር ይዝናኑ !!!! ሎልየን