lnwshop logo
นี่คือสิ่งจำเป็น ที่คุณอาจจะพลาดอยู่ ...

  


ArduinoAll รับประกันคุณภาพทุกชิ้น วันจันทร์-ศุกร์แจ้งชำระสินค้าก่อน 14.00 จัดส่งทันทีวันนี้ค่ะ

กรุงเทพ /ภาคกลาง 95% ได้พรุ่งนี้


*** สินค้าทุกชิ้น ถ้าสามารถทำรายการสั่งซื้อได้ แสดงว่ามีครบทุกรายการค่ะ *** 

  • ตอบกระทู้
  • ตั้งกระทู้ใหม่
QUOTE 

บอร์ด arduino mega 2560 ค้าง

suthiruk
suthiruk (Guest)
IP: 183.89.145.x
10 เดือนที่ผ่านมา

ปัญหาของผมก็ประมาณว่า
ผมใช้บอร์ด mega260 กับ enternet shields สั่งงานผ่านอินเทอเน็ตครับ

พอสั่งงานผ่านอินเทอเน็ตแล้ว อาการมันก็แบบว่าผีเข้าผีออก บางทีก็ค้าง บางทีก็ไม่ค้างง่ะครับ

เลยอยากสอบถามหน่อยครับ  ว่ามีโค้ดที่แบบว่าพอบอร์ดมันค้างแล้ว restart เริ่มการทำงานไหม่ เองได้ไหม

หรือยังใงก็ได้ครับ ช่วยแนะนำหน่อยครับ

QUOTE 
ความคิดเห็นที่ #1
เจ้าของร้าน
เจ้าของร้าน
10 เดือนที่ผ่านมา

มีครับ โคดที่เช็คว่าถ้าบอร์ดค้างแล้วให้รีเซตเอง 

เรียกว่า Watchdog

ยกตัวอย่างการทำงานและเช็คว่าเครื่องค้าง Arduino จะทำการเช็คว่า การทำงานในคำสั่งนี้ใช้เวลา 3 วินาที แต่ถ้าเกิน 5 วินาทีแล้วยังทำงานไม่เสร็จ แสดงว่าบอร์ดน่าจะค้างหรือทำงานผิดปกติ ก็จะสั่งให้ reset 

เพิ่มโคดไป 2 บรรทัด คือ

คำสั่งให้เริ่มจับเวลา wdt_enable(WDTO_4S);

เมื่อทำงานเสร็จก็ให้รีเซตเวลาจะได้เริ่มนับใหม่ wdt_reset();

ตัวอย่างการใช้งานดังนี้ครับ 

https://bigdanzblog.wordpress.com/2014/10/24/arduino-watchdog-timer-wdt-example-code/

QUOTE 
ความคิดเห็นที่ #2
Suthiruk
Suthiruk
IP: 183.89.101.x
10 เดือนที่ผ่านมา
ขอบคุณมากครับ คุณเจ้าของร้าน จะลองดูครับ
QUOTE 
ความคิดเห็นที่ #3
Suthiruk
Suthiruk
IP: 183.89.101.x
10 เดือนที่ผ่านมา
ใน loop ต้องอย่าให้เวลา เกิน 4sec ใช่หรือป่าวครับ แบบว่า void loop(){ wdt_enable(WDTO_4S); digitalWrite(LED_BUILTIN, HIGH); delay(2000); digitalWrite(LED_BUILTIN, LOW); delay(3000); wdt_reset(); } อันนี้เวลาเกิน 4sec มันจะรีเซ็ตเองใช่ใหมครับ และถ้าเป็นลักษณะนี้ void loop(){ wdt_enable(WDTO_4S); digitalWrite(LED_BUILTIN, HIGH); delay(1000); digitalWrite(LED_BUILTIN, LOW); delay(1000); wdt_reset(); } จะทำงานได้ปกติใช่ไหมครับ ผมเข้าใจถูกหรือป่าวครับ
QUOTE 
ความคิดเห็นที่ #4
Suthiruk
Suthiruk
IP: 183.89.101.x
10 เดือนที่ผ่านมา
แล้วใส่มากกว่า 4 sec ได้หรือป่าวตรับ
QUOTE 
ความคิดเห็นที่ #5
เจ้าของร้าน
เจ้าของร้าน
10 เดือนที่ผ่านมา

// enable the watchdog timer. There are a finite number of timeouts allowed (see wdt.h).

    // Notes I have seen say it is unwise to go below 250ms as you may get the WDT stuck in a

    // loop rebooting.

    // The timeouts I'm most likely to use are:

    // WDTO_1S

    // WDTO_2S

    // WDTO_4S

    // WDTO_8S

    wdt_enable(WDTO_4S);

ใช่ครับ เช็คได้สูงสุด 8 วินาที ถ้าต้องการนานกว่านั้น แนะนำให้แบ่งเช็คหลาย ๆ อันในแต่ละคำสั่งครับ

1
แสดงความคิดเห็นที่ 1-5 จากทั้งหมด 5 ความคิดเห็น
ข้อความ
ชื่อผู้โพส
ข้อมูลสำหรับการติดต่อกลับ (ไม่เปิดเผย เห็นเฉพาะเจ้าของร้าน)
อีเมล
เบอร์มือถือ
  • ตอบกระทู้

หมวดหมู่สินค้า

สมาชิก Arduino All

เข้าสู่ระบบด้วย
เข้าสู่ระบบ
สมัครสมาชิก

ยังไม่มีบัญชีเทพ สร้างบัญชีใหม่ ไม่เกิน 5 นาที
สมัครสมาชิก (ฟรี)

Arduino All ขายดี

รหัสสินค้า A015
270.00 บาท
  • สั่งซื้อ
รหัสสินค้า A233
5.00 บาท
  • สั่งซื้อ
รหัสสินค้า A454
160.00 บาท
  • สั่งซื้อ
รหัสสินค้า A115
10.00 บาท
  • สั่งซื้อ
รหัสสินค้า A097
4.00 บาท
  • สั่งซื้อ
รหัสสินค้า A474
7.00 บาท
  • สั่งซื้อ
รหัสสินค้า A238
4.00 บาท
  • สั่งซื้อ
รหัสสินค้า A014
100.00 บาท
  • สั่งซื้อ
รหัสสินค้า A237
4.00 บาท
  • สั่งซื้อ
Go to Top
พูดคุย-สอบถาม คลิก