watch dog คืออะไร ข้อควรระวังคืออะไรบ้าง

watch dog แปลตรงตัวว่า สุนัขเฝ้ายาม ก็คือ ตัวตรวจสอบ cpu นั้นเองว่า cpu ทำงานเป็นปกติหรือไม่อย่างไร
ก่อนที่จะใช้งาน watch dog นั้นจะต้องมีการเลือกว่าจะกระตุ้นทุกๆ เวลาเท่าไหร่ เช่น ทุกๆ 1 วินาที
เราะจะต้องเขียนโปรแกรมกระตุ้น watch dog ทุกเวลาที่เราได้ตั้งไว้ (หากใช้ watch dog ภายนอกด้วยชิพ
ds1232 ต้องส่งพัลล์ 1 ลูกทุกๆเวลาที่เราตั้งไว้ออกไปยังขากระตุ้นของชิพ ds1232 หากใช้ watchdog
ภายในตัว cpu จะต้องกระตุ้นที่ registor watchdog นั้นๆ)

หากภายในกำหนดยังไม่มีการกระตุ้น ตัว watch dog จะทำหน้าที่ reset cpu ทันที
ตัวโปรแกรมจะเริ่มต้นทำงานใหม่ ดังนั้นค่าบางค่าจะหายไปครับ!!!!!!

หากเป็นโปรแกรมประเภท counter ค่าการนับชิ้นงานจะหายไปด้วย ดังนั้นแนะนำว่างานประเภท counter
นับชิ้นงานน่าจะมีการใช้งาน nonvalentile ram ด้วย เมื่อนับเสร็จแล้วก็เก็บข้อมูลลง nonvalentile ram
ซะหนึ่งครั้ง เวลา hang ก็ทำการ load ค่าจาก nonvalentile ram มานับต่อเช่น ตัวอย่างนี้ครับ

counter นับงานได้ 30 ชิ้น บังเอิญ ไฟดับหมด แต่เนื่องจากได้มีการเขียนโปรแกรม load ค่ามานับต่อ
ดังนั้นจึงสามารถ เอาค่า 30 มาเริ่มนับ ตัวต่อไป 31 ได้ทันที

ยกตัวอย่างการเขียนโปรแกรมคร่าวๆ ให้ดูนะครับ

void main(void)

{

unsigned int counter;

counter=nvram();//เอาค่าจาก nv ram

if (counter>65534)

{

showlcd("full counter 16 bit","line1");

showlcd("press button clear","line2");

waitpressclear();

counter=0;}

tik_watchdog();

while(1)

{

tik_watchdog();

if (sensor)

{

while(!sensor);

counter++;

savenvram();

showlcd(counter,"line1");

showlcd("","line2");

tik_watchdog();

}

}

}

Comment



smilebig smileopen-mounthed smileconfused smilesad smileangry smiletonguequestionembarrassedsurprised smilewinkdouble winkcry

Tweet

เคยได้ยินเรื่องนี้อยู่เหมือนกานนะครับแต่ก็ยางไม่ค่อยเคลียร์เท่าไหร่
เพราะผมอาจจะไม่ได้จับด้านนี้มากก็ได้นะคร้าบquestion

#1 By !@!MaGGi_MaX!@! on 2008-08-28 21:38