Мазмуну:

Arduino Hang Guardian - Arduino Watchdog Timer үйрөткүчү: 6 кадам
Arduino Hang Guardian - Arduino Watchdog Timer үйрөткүчү: 6 кадам

Video: Arduino Hang Guardian - Arduino Watchdog Timer үйрөткүчү: 6 кадам

Video: Arduino Hang Guardian - Arduino Watchdog Timer үйрөткүчү: 6 кадам
Video: The Arduino hang guardian - Arduino watchdog timer tutorial 2024, Июль
Anonim
Image
Image

Салам баарына, Ал бизге бардык болот. Сиз долбоорду куруп, бардык сенсорлорду шыктануу менен туташтырасыз, жана күтүлбөгөн жерден Arduino илинип турат жана эч кандай киргизүү иштетилбейт.

"Эмне болуп жатат?", Сиз сурап, кодуңузду казып баштайсыз, ошондо чексиз укурукка түшүп калганыңызды түшүнөсүз. Кудайга шүгүр, Arduino алыскы жерде эмес, сиздин отургучта болчу.

Бүгүн биз муну болтурбоо үчүн Arduinoдогу күзөт таймерин кантип колдонууну карап чыгабыз.

1 -кадам: Бул күзөтчү таймер деген эмне?

Күзөтчү таймерин кантип иштетсе болот?
Күзөтчү таймерин кантип иштетсе болот?

Arduino күзөтчү таймери, аты айтып тургандай, тактадагы негизги CPUдан өзүнчө иштеген таймер. Бул таймер тактанын абалын мезгил -мезгили менен текшерип туруу үчүн колдонулушу мүмкүн жана такта программалык камсыздоого илинип калганда же жабдуулардын иштебей калышына байланыштуу болгон учурда, күзөтчү таймери Arduino -ны баштапкы абалга келтирип, кайра башынан баштай алат.

Демейки боюнча, бул таймер бардык долбоорлордо өчүрүлгөн жана биз аны иштеткенде гана, биз такта күтүлгөндөй иштеп жатса, тактайыбызды баштапкы абалга келтирбөө үчүн мезгил -мезгили менен айтып туруубуз керек.

Күзөтчү таймерин колдоно алуу үчүн, адегенде Arduino эскизибизге avr/wdt.h файлын кошушубуз керек. Бул көзөмөлдөөчү иш -аракеттерди камтыган стандарттык китепкана.

2 -кадам: Watchdog таймерин кантип иштетсе болот?

Күзөтчү таймерин кантип иштетсе болот?
Күзөтчү таймерин кантип иштетсе болот?
Күзөтчү таймерин кантип иштетсе болот?
Күзөтчү таймерин кантип иштетсе болот?

Таймерди иштетүү үчүн, биз "wdt_enable" функциясын колдонобуз, анда биз тактаны баштапкы абалга келтире турган босоголук интервалда өтүшүбүз керек. Колдонуубузга жараша, бул 15 миллисекунддан 8 секундага чейин күзөтчү китепканасында камтылган алдын ала аныкталган жөндөөлөрдө болушу мүмкүн.

БЕШИК - ДАЙЫМ АТЫ

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 -кадам: Программаңызды иштетиңиз

Программаңызды үзгүлтүксүз иштетиңиз
Программаңызды үзгүлтүксүз иштетиңиз

Эми, таймер иштетилгенде, биздин Arduino'бузду баштапкы абалга келтирбеш үчүн, чектик интервал бүткөнгө чейин, күзөтчү таймерин баштапкы абалга келтирүү үчүн маал -маалы менен "wdt_reset" функциясын чакырып турушубуз керек.

Баштапкы абалга келтирүүнү тандоодо, маалыматтарды окуу же жөнөтүү же тышкы сенсорлорго туташуу сыяктуу узун операцияларды эске алуу өтө маанилүү. Кокусунан баштапкы абалга келтирбөө үчүн, баштапкы абалга келтирүү босогосу бул убакыттан кеминде бир жарым эсе жогору болушу керек.

4 -кадам: мисал колдонуу

Мисал Колдонуу
Мисал Колдонуу
Мисал Колдонуу
Мисал Колдонуу
Мисал Колдонуу
Мисал Колдонуу

Бул жерден жүктөп алсаңыз боло турган мисал программасында, биз адегенде кайтаруу аралыгы 4 секунд болгон күзөтчү таймерин орнотконбуз. Андан кийин, биз орнотуу функциясында экенибизди билүү үчүн, биз LEDди 3 эсе тез күйгүзөбүз, андан кийин негизги циклде таймерди баштапкы абалга келтиребиз, акырындык менен узунураак диодду күйгүзүп, анан өчүрөбүз. Кийинки цикл таймерди кайра күйгүзүү убактысы 4 секунддан узагыраак абалга келтирет.

Мындай болгондо, көзөмөлдөөчү таймер тактаны баштапкы абалга келтирет жана орнотуу кайра ишке ашырылат.

5 -кадам: Watchdog Timer маселелери

Ардуинонун жүктөгүчүнө жараша күзөтчү таймеринин мүмкүн болгон бир көйгөйү, эгерде күзөтчү таймеринин мааниси өтө төмөн болсо жана жүктөгүч жаңы кодду жүктөөдө таймерди баштапкы абалга келтирбесе, анда сиз Arduino тактаңызга зыян келтиришиңиз мүмкүн. ал дайыма жүктөө баскычында калат. Жүктөгүч баштоого аракет кылат, бирок таймер тактаны баштапкы абалга келтире берет жана эч качан анын туура башталышына жол бербейт. Мындай көйгөйлөрдү алдын алуу үчүн, ар дайым 2 секунд же андан көп босоголук интервалдарды колдонууну тактаңыз.

6 -кадам: ырахат алыңыз

Ырахат
Ырахат

Эгерде сизде реалдуу проектте күзөтчү таймерин кайда колдонгонуңуздун мисалы бар болсо, комментарийлерде мага билдириңиз, видеону жактырууну унутпаңыз жана жазылууну унутпаңыз.

Салам жана окуу/көрүү үчүн рахмат!

Сунушталууда: