1
ทำไม AVR ของฉันรีเซ็ตเมื่อฉันโทร wdt_disable () เพื่อลองปิดตัวจับเวลาจ้องจับผิด?
ฉันมีปัญหาในการใช้งานตัวควบคุม watchdog ใน AVR ATtiny84A ที่กำลังรีเซ็ตชิปแม้ว่าตัวจับเวลาควรมีเวลาเหลืออีกมาก สิ่งนี้เกิดขึ้นอย่างไม่สอดคล้องกันและเมื่อใช้รหัสเดียวกันในหลายส่วนทางกายภาพ บางรีเซ็ตทุกครั้งบางรีเซ็ตบางครั้งและบางคนไม่เคย เพื่อแสดงให้เห็นถึงปัญหาฉันได้เขียนโปรแกรมง่าย ๆ ที่ ... เปิดใช้งานการจ้องจับผิดด้วยการหมดเวลา 1 วินาที รีเซ็ตสุนัขเฝ้าบ้าน กะพริบไฟ LED สีขาวเป็นเวลา 0.1 วินาที กะพริบไฟ LED สีขาวเป็นเวลา 0.1 วินาที ปิดใช้งานการจ้องจับผิด เวลารวมระหว่างการเปิดใช้งานและปิดใช้งานการเฝ้าระวังน้อยกว่า 0.3 วินาที แต่บางครั้งการเฝ้าระวังการตั้งค่าจะเกิดขึ้นเมื่อดำเนินการตามลำดับการปิดใช้งาน นี่คือรหัส: #define F_CPU 1000000 // Name used by delay.h. We are running 1Mhz (default fuses) #include <avr/io.h> #include <util/delay.h> …