Atmega328P Datasheet 15. SCRST - System Control and Reset

  • 12 Replies
  • 1802 Views
*

Offline tha

  • *****
  • 886
    • View Profile
Re: Atmega328P Datasheet 15. SCRST - System Control and Reset
« Reply #8 on: January 12, 2018, 09:26:10 am »

*

Offline tha

  • *****
  • 886
    • View Profile
Re: Atmega328P Datasheet 15. SCRST - System Control and Reset
« Reply #9 on: January 16, 2018, 10:44:11 am »
ใน Interrupt mode, the WDT ให้ an interrupt เมื่อ the timer หมดเวลาลง. interrupt สามารถถูกใช้เพื่อปลุก the device จาก sleep-modes, และเป็นดัง a general system timer ได้อีกด้วย. ตัวอย่างหนึ่งคือเพื่อจำกัดเวลาสูงสุดที่ยอมได้สำหรับการดำเนินงานบางอย่าง, ให้ an interrupt เมื่อการทำงานได้รันยาวนานกว่าที่คาดไว้. In System Reset mode, the WDT ให้ a reset เมื่อ the timer หมดเวลาลง.  โดยปกติจะใช้เพื่อป้องกันไม่ให้ system hang-up(วางลง,แฮ๊ง) ในกรณีของ runaway code. โหมดที่สาม, Interrupt and System Reset mode, รวมสองโหมดก่อนหน้าโดยอันดับแรกให้ an interrupt และจากนั้นจึงสวิทช์ไปยัง System Reset mode. โหมดนี้จะช่วยให้สามารถปิดระบบได้อย่างปลอดภัยโดยการบันทึกพารามิเตอร์ที่สำคัญก่อนที่จะรีเซ็ตระบบ

*

Offline tha

  • *****
  • 886
    • View Profile
Re: Atmega328P Datasheet 15. SCRST - System Control and Reset
« Reply #10 on: January 17, 2018, 09:42:49 am »
The Watchdog always on (WDTON) fuse, ถ้าโปรแกรม, จะฟอร์ซให้ the Watchdog Timer เป็น System Reset mode. ด้วย the fuse ที่โปรแกรม the System Reset mode bit (WDE) and Interrupt mode bit (WDIE) ถูกล็อคเป็น 1 และ 0 ตามลำดับ. เพื่อให้มั่นใจถึงความปลอดภัยของโปรแกรมยิ่งขึ้น, การปรับเปลี่ยนการตั้งค่า the Watchdog  ต้องเป็นไปตามลำดับเวลาที่กำหนด ลำดับสำหรับการเคลียร์ WDE และการเปลี่ยนการกำหนดค่าหมดเวลาเป็นดังต่อไปนี้ :

1. ในการดำเนินการเดียวกัน, เขียนลอจิก "1" ไปยัง the Watchdog change enable bit (WDCE) และ Watchdog System Reset Enable (WDE) ใน Watchdog Timer Control Register (WDTCSR.WDCE และ WDTCSR.WDE). ลอจิก "1" ต้องถูกเขียนไปยัง WDTCSR.WDE โดยไม่คำนึงถึงค่าก่อนหน้าของ the WDTCSR.WDE
2. ภายใน 4 clock cycles ถัดไป, เขียน the WDTCSR.WDE และกลุ่ม Watchdog prescaler bits group (WDTCSR.WDP) ตามที่ต้องการ, แต่ the
WDTCSR.WDCE ถูกเคลียร์ด้วย. นี้ต้องถูกทำใน one operation.

ปล. ยังไม่แน่ใจตรง but with the WDTCSR.WDCE cleared หมายถึงถูกเคลียร์โดยอัตโนมัติไปด้วยใช่หรือไม่

*

Offline tha

  • *****
  • 886
    • View Profile
Re: Atmega328P Datasheet 15. SCRST - System Control and Reset
« Reply #11 on: January 19, 2018, 09:43:14 am »
ตัวอย่างต่อไปนี้แสดงฟังก์ชันสำหรับการปิด the Watchdog Timer. ตัวอย่างทึกทักเอาว่า interrupts ถูกควบคุม (เช่นโดยการปิดใช้งาน interrupts globally(โดยรวม)) ดังนั้นไม่มี interrupts จะเกิดขึ้นในระหว่างการปฏิบัติของฟังชั่นเหล่านี้.



หมายเหตุ: หาก Watchdog เปิดการใช้งานโดยไม่ตั้งใจตัวอย่างเช่นโดย a runaway pointer หรือ brown-out condition, the device จะถูกรีเซทและ the Watchdog Timer จะยังคง enabled. หาก the code ไม่ได้ set up ให้รับมือกับ the Watchdog, นี้อาจนำมาซึ่งการวนลูปอย่างไม่รู้จบของ timeout resets. เพื่อหลีกเลี่ยงปัญหานี้ ซอฟต์แวร์แอ็พพลิเคชันควรเคลียร์ the Watchdog System Reset Flag (WDRF) และ the WDE control bit ในการเริ่มต้นงานประจำแม้ว่า Watchdog ไม่ได้ใช้งาน

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการเปลี่ยนค่าการหมดเวลาของ the Watchdog Timer.



หมายเหตุ: The Watchdog Timer ควรถูกรีเซ็ทก่อนการเปลี่ยนของ the WDTCSR.WDP bits, เนื่องจากการเปลี่ยนแปลงใน the WDTCSR.WDP bits สามารถเป็นผลใน a time-out เมื่อสวิทช์ไปใช้ระยะเวลาการหมดเวลาที่สั้นลง (a shorter time-out period)

*

Offline tha

  • *****
  • 886
    • View Profile
Re: Atmega328P Datasheet 15. SCRST - System Control and Reset
« Reply #12 on: February 02, 2018, 10:57:45 am »
15.9.1. MCU Status Register
ในการใช้ประโยชน์ the Reset Flags เพื่อระบุ a reset condition, ผู้ใช้ควรอ่านและจากนั้นรีเซ็ท the MCUSR ให้เร็วที่สุดเท่าที่จะเป็นไปได้ในโปรแกรม ถ้ารีจิสเตอร์ถูกเคลียร์ก่อนการรีเซ็ตอื่นเกิดขึ้น แหล่งรีเซ็ตสามารถถูกตรวจพบโดยการตรวจสอบ the Reset Flags.
เมื่อระบุที่อยู่ I/O Registers ราวกับเป็น data space โดยใช้ LD and ST instructions, การจัดให้มีระยะชดเชยต้องถูกใช้ เมื่อใช้ the I/O specific commands IN and OUT, ระยะ the offset ถูกลดลงไป 0x20, เป็นผลให้ an I/O address offset อยูภายใน 0x00 - 0x3F.



Bit 3 – WDRF: Watchdog System Reset Flag
บิทนี้ถูกเซ็ทถ้า a Watchdog System Reset เกิดขึ้น. บิทนี้ถูกรีเซ็ทโดย a Power-on Reset, หรือโดยการเขียน '0'ไปยังมัน.

Bit 2 – BORF: Brown-out Reset Flag
บิทนี้ถูกเซ็ทถ้า a Brown-out Reset เกิดขึ้น. บิทนี้ถูกรีเซ็ทโดย a Power-on Reset, หรือโดยการเขียน '0'ไปยังมัน.

Bit 1 – EXTRF: External Reset Flag
บิทนี้ถูกเซ็ทถ้า an External Reset เกิดขึ้น. บิทนี้ถูกรีเซ็ทโดย a Power-on Reset, หรือโดยการเขียน '0'ไปยังมัน.

Bit 0 – PORF: Power-on Reset Flag
บิทนี้ถูกเซ็ทถ้า a Power-onl Reset เกิดขึ้น. บิทนี้ถูกรีเซ็ทโดยการเขียน '0'ไปยังมันเพียงอย่างเดียวเท่านั้น.

ปล. หมู่นี้ตาไม่ค่อยดี ตาขวาพร่า ไปลอกตาก็ไม่ได้ ติดเป็นเบาหวาน เลยไม่ค่อยจะได้แปล