Мазмұны:
- 1 -қадам: Бұл күзетші таймер дегеніміз не?
- 2 -қадам: Watchdog таймерін қалай қосуға болады?
- 3 -қадам: Бағдарламаны іске қосыңыз
- 4 -қадам: Қолдану мысалы
- 5 -қадам: Watchdog таймерінің мәселелері
- 6 -қадам: ләззат алыңыз
Бейне: Arduino Hang Guardian - Arduino Watchdog Timer оқулығы: 6 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:24
Бәріне сәлем, Бұл бәрімізде болады. Сіз жоба жасайсыз, сенсорлардың барлығын ынтамен байланыстырасыз, кенеттен Arduino өшіп қалады және ешқандай кіріс өңделмейді.
«Не болып жатыр?», Сіз өзіңіздің кодты тексере бастайсыз, сонда сіз шексіз циклде қалғаныңызды түсінесіз. Құдайға шүкір, Arduino сіздің орындықта емес, алыс жерде болды.
Бүгін біз бұған жол бермеу үшін Arduino -дегі қарауыл таймерін қалай қолдануға болатынын қарастырамыз.
1 -қадам: Бұл күзетші таймер дегеніміз не?
Arduino күзетші таймері - бұл тақтадағы негізгі процессордан бөлек жұмыс істейтін таймер. Бұл таймерді тақтаның күйін мезгіл -мезгіл тексеру үшін пайдалануға болады, ал тақта бағдарламалық қамтамасыз ету циклінде тұрып қалса немесе аппараттық құралдың істен шығуына байланысты тұрып қалса, күзетші таймері Arduino -ны қалпына келтіре алады және оны қайтадан бастайды.
Әдепкі бойынша, бұл таймер барлық жобаларда өшіріледі және біз оны қосқан кезде ғана, егер ол әлі де күткендей жұмыс істеп тұрса, біздің тақтаны қалпына келтірмеуді мезгіл -мезгіл айтуымыз керек.
Күзетші таймерін қолдану үшін алдымен avr/wdt.h файлын Arduino эскизіне қосу керек. Бұл қарауылдың әрекеттерін сақтайтын стандартты кітапхана.
2 -қадам: Watchdog таймерін қалай қосуға болады?
Таймерді қосу үшін біз «wdt_enable» функциясын қолданамыз, онда біз тақтаны қалпына келтіретін шекті аралықта өтуіміз керек. Қолдану жағдайына байланысты, бұл күзетші кітапханасында бар алдын ала анықталған параметрлерде 15 миллисекундтан 8 секундқа дейін болуы мүмкін.
ШЕК - Тұрақты АТЫ
15 мс WDTO_15MS 30 мс WDTO_30MS 60 мс WDTO_60MS 120 мс WDTO_120MS 250 мс WDTO_250MS 500 мс WDTO_500MS 1с WDTO_1S 2s WDTO_2S 4с WDTO_4S 8с WDTO_8S
3 -қадам: Бағдарламаны іске қосыңыз
Енді, таймер қосылған кезде, біздің Arduino -ны қалпына келтіруге жол бермеу үшін, шектік уақыт аяқталмай тұрып, күзетші таймерін қалпына келтіру үшін мезгіл -мезгіл «wdt_reset» функциясын шақыру керек.
Қалпына келтіру аралығын таңдағанда, деректерді оқу немесе жіберу немесе сыртқы сенсорларға қосылу сияқты кез келген ұзақ операцияны ескеру маңызды. Кез келген кездейсоқ қалпына келтіруді болдырмау үшін қалпына келтіру шегі осы уақыттардан кемінде бір жарым есе көп болуы керек.
4 -қадам: Қолдану мысалы
Мұнда жүктеуге болатын мысал бағдарламасында біз алдымен күзетші таймерін қалпына келтіру аралығы 4 секундпен орнатамыз. Содан кейін біз орнату функциясында екенімізді білу үшін жарықдиодты 3 рет тез жыпылықтаймыз, содан кейін негізгі циклде алдымен таймерді қалпына келтіреміз, біртіндеп ұзағырақ интервалмен жарық диодты жағамыз, содан кейін оны өшіреміз. Келесі цикл таймерді жарықтандыру уақыты 4 секундтан ұзақ болғанша қайтадан ысырады.
Бұл орын алғанда, күзетші таймері тақтаны қалпына келтіреді және орнату қайтадан орындалады.
5 -қадам: Watchdog таймерінің мәселелері
Arduino жүктеушіге байланысты күзетші таймерінің мүмкін болатын бір мәселесі: егер күзетші таймерінің мәні тым төмен болса және жүктеуші жаңа кодты жүктеу кезінде таймерді қалпына келтірмесе, сіз Arduino тақтасын зақымдай аласыз. ол әрқашан жүктеу сатысында қалады. Жүктеуші жүктеуге тырысады, бірақ таймер оның дұрыс басталуына ешқашан мүмкіндік берместен тақтаны қалпына келтіруді жалғастырады. Мұндай мәселелердің алдын алу үшін 2 секунд немесе одан да көп уақыт аралығын қолданыңыз.
6 -қадам: ләззат алыңыз
Егер сізде күзетші таймерін нақты жобада қайда қолданғаныңыз туралы мысал болса, түсініктемелерде маған хабарлаңыз, бейне ұнайды және жазылуды ұмытпаңыз.
Қуаныш және оқығаныңызға/қарағаныңызға рахмет!
Ұсынылған:
Raspberry Pi - TMD26721 инфрақызыл сандық жақындық детекторы Java оқулығы: 4 қадам
Raspberry Pi-TMD26721 инфрақызыл сандық жақындық детекторы Java оқулығы: TMD26721-инфрақызыл цифрлық жақындық детекторы, ол жақындықты анықтаудың толық жүйесін және бір 8 істікшелі беттік монтаждық модульде цифрлық интерфейс логикасын қамтамасыз етеді. дәлдік. Кәсіби
AVR Assembler оқулығы 2: 4 қадам
AVR Assembler Tutorial 2: Бұл оқу құралы " AVR Assembler Tutorial 1 " Егер сіз 1 -оқулықтан өтпеген болсаңыз, онда сіз қазір тоқтап, алдымен сол әрекетті орындауыңыз керек. Бұл оқулықта біз atmega328p ассемблерлік бағдарламалауды зерттеуді жалғастырамыз
AVR Assembler оқулығы 6: 3 қадам
AVR Assembler 6 -оқулығы: 6 -оқулыққа қош келдіңіз! Бүгінгі оқу құралы қысқа болады, онда біз оларды байланыстыратын екі портты қолдана отырып, бір atmega328p мен екіншісі арасында деректерді жеткізудің қарапайым әдісін әзірлейміз. Содан кейін біз 4 -ші оқулықтан және тіркеуден сүйек ролигін аламыз
AVR Assembler оқулығы 8: 4 қадам
AVR Assembler 8 -оқулығы: 8 -оқулыққа қош келдіңіз! Бұл қысқаша оқулықта біз прототиптеу компоненттерін бөлек " басылған " тізбек тақтасы
AVR Assembler оқулығы 11: 5 қадам
AVR Assembler Tutorial 11: 11 -Оқулыққа қош келдіңіз! Бұл қысқаша оқулықта біз ақырғы жобамыздың бірінші бөлігін құрмақпыз, біріншіден, бұл оқулықтың соңғы сатысына өтіп, бейнені қарау керек. Содан кейін осында қайтыңыз. [сіз тоқтап тұрсыз