ዝርዝር ሁኔታ:

የ Arduino Hang Guardian - Arduino Watchdog Timer Tutorial: 6 ደረጃዎች
የ Arduino Hang Guardian - Arduino Watchdog Timer Tutorial: 6 ደረጃዎች

ቪዲዮ: የ Arduino Hang Guardian - Arduino Watchdog Timer Tutorial: 6 ደረጃዎች

ቪዲዮ: የ Arduino Hang Guardian - Arduino Watchdog Timer Tutorial: 6 ደረጃዎች
ቪዲዮ: The Arduino hang guardian - Arduino watchdog timer tutorial 2024, ሀምሌ
Anonim
Image
Image

ሰላም ሁላችሁም ፣

በሁላችንም ላይ ይደርሳል። እርስዎ ፕሮጀክት ይገነባሉ ፣ ሁሉንም ዳሳሾች በጋለ ስሜት ያገናኙ ፣ እና በድንገት አርዱዲኖ ተንጠልጥሎ ምንም ግብዓት አልተሰራም።

“ምን እየሆነ ነው?” ፣ እርስዎ ማለቂያ በሌለው ሉፕ ውስጥ እንደተጣበቁ ለመገንዘብ ብቻ በኮድዎ ውስጥ መቆፈር ይጀምራሉ። እግዚአብሔር ይመስገን አርዱዲኖ በቤንችዎ ላይ ነበር እና በርቀት ቦታ አልነበረም።

ዛሬ ፣ ይህ እንዳይከሰት በአርዲኖ ላይ የሰዓት ጠባቂውን ሰዓት እንዴት መጠቀም እንደምንችል እንመለከታለን።

ደረጃ 1 - ይህ ጠባቂ ሰዓት ቆጣሪ ምንድነው?

የ watchdog ሰዓት ቆጣሪን እንዴት ማንቃት?
የ watchdog ሰዓት ቆጣሪን እንዴት ማንቃት?

ስሙ እንደሚያመለክተው የአርዱዲኖ ጠባቂ ሰዓት ቆጣሪ በቦርዱ ላይ ካለው ዋና ሲፒዩ ተለይቶ የሚሄድ ሰዓት ቆጣሪ ነው። ይህ የሰዓት ቆጣሪ የቦርዱን ሁኔታ በየጊዜው ለመፈተሽ እና በቦርዱ በሶፍትዌር ዑደት ውስጥ ተጣብቆ ወይም በሃርድዌር ውድቀት ምክንያት ተጣብቆ በነበረበት ሁኔታ ፣ ጠባቂው ሰዓት ቆጣሪ አርዱinoኖን እንደገና ማስጀመር እና እንደገና እንዲጀምር ማድረግ ይችላል።

በነባሪነት ይህ ሰዓት ቆጣሪ በሁሉም ፕሮጀክቶች ላይ ተሰናክሏል እና እሱን ስናነቃው አሁንም እንደተጠበቀው እየሰራ ከሆነ ሰሌዳችንን ዳግም እንዳያስጀምር በየጊዜው መንገር አለብን።

የክትትል ጠባቂውን ሰዓት ቆጣሪ ለመጠቀም ፣ በመጀመሪያ የ avr/wdt.h ፋይልን በአርዱዲኖ ንድፍ ውስጥ ማካተት አለብን። ይህ የጥበቃ እርምጃዎችን የሚይዝ መደበኛ ቤተ -መጽሐፍት ነው።

ደረጃ 2 - የጠባቂ ሰዓት ቆጣሪን እንዴት ማንቃት?

የ watchdog ሰዓት ቆጣሪን እንዴት ማንቃት?
የ watchdog ሰዓት ቆጣሪን እንዴት ማንቃት?
የ watchdog ሰዓት ቆጣሪን እንዴት ማንቃት?
የ watchdog ሰዓት ቆጣሪን እንዴት ማንቃት?

ሰዓት ቆጣሪውን ለማንቃት ፣ ቦርዱ ዳግም በሚጀመርበት የመድረሻ ክፍተት ውስጥ ማለፍ ያለብንን “wdt_enable” የሚለውን ተግባር እንጠቀማለን። በእኛ የአጠቃቀም ጉዳይ ላይ በመመስረት ይህ በጠባቂ ቤተመጽሐፍት ውስጥ በተካተቱ ቅድመ-ቅንብሮች ውስጥ ከ 15 ሚሊሰከንዶች እስከ 8 ሰከንዶች ሊደርስ ይችላል።

THRESHOLD - ቋሚ ስም

15 ms WDTO_15MS 30 ms WDTO_30MS 60 ms WDTO_60MS 120 ms WDTO_120MS 250 ms WDTO_250MS 500 ms WDTO_500MS 1s WDTO_1S 2s WDTO_2S 4s WDTO_4S 8s WDTO_8S

ደረጃ 3 - ፕሮግራምዎ እንዲሠራ ይቀጥሉ

ፕሮግራማችሁ እየሰራ መሆኑን ይቀጥሉ
ፕሮግራማችሁ እየሰራ መሆኑን ይቀጥሉ

አሁን ፣ የሰዓት ቆጣሪው ከነቃ ፣ የእኛን አርዱዲኖን ዳግም እንዳያስጀምር ለመከላከል ፣ የመድረክ ክፍተቱ ከማለቁ በፊት የጠባቂውን ሰዓት ቆጣሪ እንደገና ለማቀናበር በየጊዜው የ “wdt_reset” ተግባርን መደወል አለብን።

የመልሶ ማግኛ ክፍተትን በምንመርጥበት ጊዜ ማንኛውንም መረጃ እንደ ማንበብ ወይም መላክ ወይም ከውጭ ዳሳሾች ጋር መገናኘት ያሉ ማንኛውንም ረጅም ቀዶ ጥገና ግምት ውስጥ ማስገባት አስፈላጊ ነው። ማንኛውም ዳግም ማስጀመር እንዳይከሰት ለመከላከል የዳግም አስጀማሪው ገደብ ቢያንስ ከእነዚህ ተኩል ጊዜ በላይ መሆን አለበት።

ደረጃ 4 - ምሳሌ አጠቃቀም

ምሳሌ አጠቃቀም
ምሳሌ አጠቃቀም
ምሳሌ አጠቃቀም
ምሳሌ አጠቃቀም
ምሳሌ አጠቃቀም
ምሳሌ አጠቃቀም

እዚህ ሊያወርዱት በሚችሉት የምሳሌ መርሃ ግብር ውስጥ በመጀመሪያ በ 4 ሰከንዶች ውስጥ የመልሶ ማግኛ ጊዜን የጠባቂ ሰዓት ቆጣሪን እናዘጋጃለን። ከዚያ እኛ በማዋቀሩ ተግባር ውስጥ እንደሆንን ለማወቅ ለ 3 ጊዜ በፍጥነት ኤልኢዲ እናበራለን እና ከዚያ በዋናው ሉፕ ውስጥ መጀመሪያ ጊዜ ቆጣሪውን እንደገና እናስጀምራለን ፣ ቀስ በቀስ ረዘም ባሉ ክፍተቶች አንድ LED ን ያብሩ እና ከዚያ እናጠፋዋለን። የመብራት ጊዜ ከ 4 ሰከንዶች እስኪረዝም ድረስ ቀጣዩ ዑደት የሰዓት ቆጣሪውን እንደገና ያስጀምረዋል።

ይህ በሚሆንበት ጊዜ የጠባቂው ሰዓት ቆጣሪ ሰሌዳውን እንደገና ያስጀምራል እና ማዋቀሩ እንደገና ይፈጸማል።

ደረጃ 5 - የእይታ ጠባቂ ሰዓት ቆጣሪ ጉዳዮች

በአርዱኖዎ የማስነሻ ጫኝ ላይ በመመሥረት ከጠባቂ ሰዓት ቆጣሪ ጋር አንድ ችግር ሊሆን የሚችለው የ watchdog የሰዓት ቆጣሪ እሴቱ በጣም ዝቅተኛ ከሆነ እና የማስነሻ ጫ newው አዲስ ኮድ በሚሰቅሉበት ጊዜ ሰዓት ቆጣሪውን ዳግም ባያስጀምረው የአርዱዲኖ ቦርድዎን በሚጎዳ መንገድ ሊጎዱ ይችላሉ። እሱ ሁልጊዜ በመነሻ ደረጃ ውስጥ ተጣብቋል። የማስነሻ ጫloadው ለመጀመር ይሞክራል ፣ ግን ሰዓት ቆጣሪው ሰሌዳውን እንደገና ማቀናበሩን ይቀጥላል ፣ በትክክል እንዲጀምር በጭራሽ አይፈቅድም። እንደዚህ ያሉ ጉዳዮችን ለመከላከል ሁል ጊዜ የ 2 ሰከንዶች ወይም ከዚያ በላይ የመድረሻ ክፍተቶችን መጠቀሙን ያረጋግጡ።

ደረጃ 6: ይደሰቱ

ይደሰቱ
ይደሰቱ

በእውነተኛ ፕሮጀክት ውስጥ የክትትል ሰዓት ቆጣሪን የት እንደተጠቀሙ የሚያሳይ ምሳሌ ካለዎት በአስተያየቶቹ ውስጥ ያሳውቁኝ ፣ ቪዲዮውን መውደዱን ያረጋግጡ እና መመዝገብዎን አይርሱ።

ስላነበቡ/ስላዩ እናመሰግናለን እና እናመሰግናለን!

የሚመከር: