Pages: [1]   Go Down
Print
Author Topic: สอบถามเรื่อง real time กับ pic basic pro หน่อยครับ  (Read 8183 times)
0 Members and 1 Guest are viewing this topic.
mr_ratchata
มาใหม่
*
Offline Offline

Posts: 4


Email
« on: May 16, 2011, 05:24:37 PM »

มีความรู้พื้นฐานด้านอิเล็กพอประมาณครับ แต่ยอมรับว่าไม่เก่งเรื่อง Micro ครับ
พอดีได้ MCU เบอร์ pic16f72 กับ pic16f73 มาเกือบๆ ร้อยตัว
ก็เลยอยากเอามาทำประโยชน์ใช้งานครับ ก็เลยมองหาวิธีการเขียนโปรแกรม
ก็เลยใช้ Pic basic pro ครับคิดว่าง่ายที่สุดแล้ว ไม่รู้เรื่องภาษา C หรือ อื่นๆครับ
อาศัยหาข้อมูลแล้วอ่านๆๆๆ และ อ่าน แล้วก็ ทดลองๆๆๆ แล้วก็ ทดลอง ซ้ำๆๆๆ ครับ จะได้เข้าใจ
ก็เลยนึกอยากทำนาฬิกา แสดง วินาที/นาที/ชั่วโมง/วันที/เดือน  ใช้ 7seg ทั้งหมด 10 digit
หลักการของผม ก็คือ เขียนโปรแกรมสร้างฐานเวลาขึ้นมาแล้วให้มันเดินไปเรื่อยๆ
แล้วสแกนแสดงผลออกทาง 7 seg ครับ โดยใช้ MCU เพียงตัวเดียวครับ
เพื่อประหยัดที่สุด อุปกรณ์น้อยที่สุด ให้มีแค่ 7seg,MCU,R,C,cystal เท่านั้น
ประมาณว่าให้เหมือน นาฬิกา ดิจิตอลที่ขายตามห้างทั่วไปอะครับ
ผลการทำโปรเจคนี้ทำงานได้ครับทุกอย่างตามต้องการที่คิดไว้ครับ
แต่มีผลเรื่อง เวลาคลาดเคลื่อนครับ เช่น เวลาจริงเดินไป 24 ชั่วโมง
แต่เจ้านาฬิกาผมมัน จะเคลื่อน สักประมาณ 2 นาที แก้ใขเรื่องเวลา
ของโปรแกรมที่เขียนแล้ว จะได้ เวลาเคลื่อน มากกว่า หรือ น้อยกว่า
ไม่ตรงครับ การทดสอบใช้เวลา 24 ชม เลยนะครับ ยังเคลื่อนถ้าเวลา
มากกว่านี้เวลาจะเคลื่อนไปมากพอสมควร
เลยอยากถามว่า
1.กระบวนการทำงานของ MCU(การทำงานวนลูป)มีผลทำให้เวลาเคลื่อน
  หรือช้าลงใช่หรือเปล่าครับ
2.MCU เพียงตัวเดียวสามารถสร้างนาฬิกา ที่เป็น Real time ได้หรือเปล่า
  ถ้าได้ใช้หลักการยังไงครับ
3.ต้องใช้ IC Real time clock ช่วยหรือปล่าวครับ

:ช่วยตอบหน่อยครับ ไม่รู้จริงๆๆๆๆครับ ไกด์แนวทางหน่อยครับ


Logged
gundam
Global Moderator
Hero Member
*****
Offline Offline

Posts: 292



« Reply #1 on: May 18, 2011, 04:47:44 PM »

วันหยุดยาวทีมงานไปเที่ยวกันหมด ฮิฮิ
จากข้อมูลที่คุณ mr_ratchata ให้มานับว่าฝีมือไปได้ไกลแล้ว

ตามปกติแล้วการการใช้ MCU วนลูปเพื่อสร้างฐานเวลามักจะใช้กับพวกตั้งเวลา ที่ไม่ละเอียดนัก
เช่นตั้งเวลาพัดลม, ตั้งเวลาประกอบอาหาร ส่วนเรื่องมาทำนาฬิกามักจะไม่ใช้กัน เพราะค่าเวลาจะผิดพลาด
ซึงอาจเกิดมาจาก MCU ไปทำงานอืนด้วย เช่นวนลูปเพื่อรับคีย์ สำหรับโปรแกรมเวลา, การกำเนิดเสียง เป็นต้น

- การแก้ไขก็คือใช้ Timer Interrupt แทน (ดูตัวอย่าง) โดยการคำนวนหาค่าเริ่มต้นนับให้กับ Timer ซึ่งก็อาจจะคำนวนหาค่าที่เหมาะสมไม่ได้
คือค่า error ยังไม่เป็น 0 อาจต้องเปลี่ยน XTAL เพื่อที่จะหารได้ลงตัว
- การใช้ RTC อย่างเช่น DS1307 มาช่วยนับว่าเหมาะสมครับ เพราะจะได้ฐานเวลาที่แม่นยำและการเขียนโค๊ดสะดวกกว่ามาก



« Last Edit: May 18, 2011, 04:50:02 PM by gundam » Logged
mr_ratchata
มาใหม่
*
Offline Offline

Posts: 4


Email
« Reply #2 on: May 19, 2011, 11:55:07 AM »

ไปเที่ยวหรอครับ ใจหายหมดเลย เห็นเงียบหลายวันครับ
ขอบคุณมากครับ ที่ให้คำตอบ เป็นอย่างที่ผมคิดไว้
จะได้ไม่ต้องงม คิดว่า เป็นที่โปรแกรม
ไช้ real time clock ช่วยน่าจะดีแม่นยำและง่ายที่สุด
thaimicrotron จงเจริญครับ ฮิ้ว
Logged
Pages: [1]   Go Up
Print
 
Jump to: