กันยายน 21, 2018, 02:18:54 am *
ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน
ส่งอีเมล์ยืนยันการใช้งาน?

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น
   หน้าแรก   ช่วยเหลือ เข้าสู่ระบบ สมัครสมาชิก  
หน้า: [1]   ลงล่าง
  พิมพ์  
ผู้เขียน หัวข้อ: ใน ISR ใช้ Delay ?  (อ่าน 3513 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
Bird
Newbie
*
ออฟไลน์ ออฟไลน์

กระทู้: 8


| |
« เมื่อ: กุมภาพันธ์ 07, 2015, 05:24:16 pm »

พี่ครับ ใน ISR เราใช้คำสั่ง Delay ได้ใหมครับ
ถ้าไม่ได้เพราะอะไรครับ หรือได้แล้วมีผลอะไรใหมครับ  angel
บันทึกการเข้า
ShadowMan
Administrator
Hero Member
*****
ออฟไลน์ ออฟไลน์

เพศ: ชาย
กระทู้: 8272


ShadowWares


| |
« ตอบ #1 เมื่อ: กุมภาพันธ์ 07, 2015, 07:45:26 pm »

อ้างถึง
พี่ครับ ใน ISR เราใช้คำสั่ง Delay ได้ใหมครับ
ได้ครับ

อ้างถึง
ได้แล้วมีผลอะไรใหมครับ
Interrupt ถูกกำหนดให้มีความสำคัญ (Priority) สูงกว่าโปรแกรมในส่วนอื่น (main function/program) ถ้า delay นานเกินไปโปรแกรมส่วนอื่นก็จะไม่ได้ทำงาน (CPU จะไม่ไปประมวลผล) อีกทั้ง Interrupt อื่นๆ ที่มีลำดับความสำคัญเท่ากันและต่ำกว่าจะไม่สามารถทำงานได้

นอกจากนี้หากมีสัญญาณ Interrupt ของ Interrupt นี้เกิดขึ้นในช่วงเวลา delay ดังกล่าว CPU ก็ไม่สามารถตอบสนองกับการ Interrupt นั้นได้
ยกตัวอย่างเช่น กำลัง delay อยู่ใน Interrupt ที่ชื่อ ExInt0 พอมีสัญญาณที่ก่อให้เกิด ExInt0 ก็จะไม่มีการตอบสนองใดๆ (Interrupt flag จะ set หาก ณ จังหวะนั้นถูก reset ไปแล้ว (กรณีที่เป็นแบบ Manual reset))
บันทึกการเข้า

By SDW: Do No Wrong Is Do Nothing
          If you want to increase your success rate, double your failure rate
Bird
Newbie
*
ออฟไลน์ ออฟไลน์

กระทู้: 8


| |
« ตอบ #2 เมื่อ: กุมภาพันธ์ 07, 2015, 10:11:46 pm »

ขอบคุณครับพี่ ShadowMan  cheesy
บันทึกการเข้า
Bird
Newbie
*
ออฟไลน์ ออฟไลน์

กระทู้: 8


| |
« ตอบ #3 เมื่อ: กุมภาพันธ์ 08, 2015, 08:23:45 am »

แล้วพอจะมีวิธีอื่นใหมครับที่จะ on-off ตามช่วงเวลาที่ต้องการ โดยที่ cpu ยังทำงานส่วนอื่นได้
แล้ว RTOS ช่วยแก้ปัญหาจุดนี้ได้ใหมครับ
บันทึกการเข้า
ShadowMan
Administrator
Hero Member
*****
ออฟไลน์ ออฟไลน์

เพศ: ชาย
กระทู้: 8272


ShadowWares


| |
« ตอบ #4 เมื่อ: กุมภาพันธ์ 08, 2015, 09:19:56 am »

อ้างถึง
แล้วพอจะมีวิธีอื่นใหมครับที่จะ on-off ตามช่วงเวลาที่ต้องการ โดยที่ cpu ยังทำงานส่วนอื่นได้
ON/OFF ตามระยะเวลาใดๆที่ต้องการสามารถทำได้โดยการใช้ Timer หรือใช้เทคนิคการเขียนโปรแกรมอื่นๆ เข้ามาช่วย

RTOS ช่วยแก้ปัญหาจุดนี้ได้ใหมครับ
ได้ครับ RTOS ถูกออกแบบมาให้จัดการกับโปรแกรมที่ซับซ้อนได้อย่างสะดวกและง่ายดาย
การจัดการเกี่ยวกับเวลา หรือ Interrupts ก็เป็นความสามารถหลักของ RTOS อยู่แล้วเช่นกัน
บันทึกการเข้า

By SDW: Do No Wrong Is Do Nothing
          If you want to increase your success rate, double your failure rate
Bird
Newbie
*
ออฟไลน์ ออฟไลน์

กระทู้: 8


| |
« ตอบ #5 เมื่อ: กุมภาพันธ์ 08, 2015, 11:37:42 am »

rtos เป็นเรื่องใหม่มากสำหรับผม คือว่าผมมีบอร์ด uno32 ของ chip kit ใช้ mpide complier พี่พอจะมี rtos ที่ผมจะใช้ได้ใหมครับ
หรือว่าพี่พอจะเป็นอาจารย์สอนให้ผมทางอินเตอร์เน็ต ผมยินดีจ่ายค่าเทอม  rolleyes
บันทึกการเข้า
ShadowMan
Administrator
Hero Member
*****
ออฟไลน์ ออฟไลน์

เพศ: ชาย
กระทู้: 8272


ShadowWares


| |
« ตอบ #6 เมื่อ: กุมภาพันธ์ 09, 2015, 04:33:53 pm »

uno32 นี่หมายหนึ่งหนึ่งใน Arduino หรือเปล่า?
ถ้าใช่ลองค้นหาคำว่า RTOS for Arduino ครับ เช่นดัวนี้ (ต้องตรวจสอบว่ารองรับ MCU ตัวที่ใช้อยู่หรือไม่)
แต่ถ้าไม่หวังพึ่ง Library ของ Arduino ใช้ FreeRTOS ก็ได้ครับ
บันทึกการเข้า

By SDW: Do No Wrong Is Do Nothing
          If you want to increase your success rate, double your failure rate
Bird
Newbie
*
ออฟไลน์ ออฟไลน์

กระทู้: 8


| |
« ตอบ #7 เมื่อ: กุมภาพันธ์ 13, 2015, 07:44:46 am »

Thank you  wink
บันทึกการเข้า
Einnuouh
Newbie
*
ออฟไลน์ ออฟไลน์

กระทู้: 1


| |
« ตอบ #8 เมื่อ: กันยายน 10, 2018, 03:20:07 pm »

ดีคร้าาา  cheesy
บันทึกการเข้า

เกมส์ผ่อนคลายแก้เหงา sbobet หรือ แทงบอลออนไลน์
หน้า: [1]   ขึ้นบน
  พิมพ์  
 
กระโดดไป: