เก่งมากครับ ทำเองจนสำเร็จได้ หวังว่าจะได้ความรู้มาแบ่งปันกันบ้างนะครับ
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
Show posts MenuQuote
และโปรแกรมแบบ state machine นี้ หากเกิด interrupt จะต้องระวังอะไรเป็นพิเศษ เหมือนพวก RTOS ไหมครับ ?
Quoteส่วนที่ใส่ delay ใน exti interupt นั้น ก็เพื่อแก้ปัญหา Switch Debouncing ครับ เพราะผมใช้สวิทช์ในการ start กับ stop ตัวเดียวกัน ผมลองดีบักดูแล้วก็ไม่มีปัญหาอะไรครับ (รวมทั้ง delay ที่เป็น loop ธรรมดาด้วย) แต่ก็อย่างว่า function interupt ไม่ควรเรียกใช้ function ย่อยอื่นมาก
Quote from: tha on June 27, 2014, 09:53:56 AMQuoteหากมีเวลาลองเชื่อมใช้กับ CooCox CoOS (http://www.coocox.org/CoOSGuide/CoOSUpdates.htm) ด้วยซิครับ จะได้สมบูรณ์มากขึ้น
น่าสนใจครับ ผมถูกโฉลกกับ Coocox ซะด้วย ถ้ามีเวลาว่างก็จะลองศึกษาดูเหมือนกัน แต่ก็ไม่มีพื้นฐานเกี่ยวกับ OS เลย เคยศึกษา chibios, freertos, rtx rtos พอไม่ค่อยได้ใช้กับใช้ไม่ค่อยเป็นก็ลืมหมด
Quoteเจอปัญหาเกี่ยวกับการใช้ systick ครับ ถ้าเราตั้ง NVIC_IRQChannelPreemptionPriority ของ EXTI = 0; DelaymS (systick) ในโปรแกรม interupt EXTI จะไม่ทำงานครับ คล้ายกับว่า priority มันเท่ากัน อันที่จริง systick_handler priority = -1 ซึ่งสูงกว่า 0 ไม่ใช่เหรอครับ แต่พอผมตั้ง NVIC_IRQChannelPreemptionPriority ของ EXTI0 = 1; DelaymS ในโปรแกรม interupt EXTI0 ถึงจะทำงานได้ งง! เอะผมเข้าใจอะไรผิดหรือป่าว? ท่านผู้รู้ช่วยตอบที