Main Menu
Menu

Show posts

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 Menu

Messages - TaoTao

#233
โหะๆ  เริ่มเข้าใจละ

ขอบคุณทั้งสองคนมากมาย ก๊าบบบบ ครับ  ^^!
#234
ย่านที่ มันบอกว่า Float เก็บได้ คือ

E min  -126
E max  127
N min   2 กำลัง -126
N max  2 กำลัง 128

งงตรงนี้แหล่ะครับ

คือว่า
อย่างเช่น ถ้าต้องการ
หลังทศนิยม 2 ตำแหน่งในฐานสิบ

ค่าก่อนหน้าทศนิยมนี่ มันจะเก็บได้เท่าไหร่น่ะครับ

ใครพอกระชับ ความเข้าใจตรงนี้ได้บ้างน่ะครับ
อ่านไปอ่านมา งง   @_@!
#235
Quote from: p_chusak on April 12, 2013, 03:56:57 PM
แนะนำด้วยคน ใช้ XC ของ ไมโครชิพ ไม่ต้อง crack ใดๆ เลย ใช้แบบนั้นแหละ ยิ่ง XC16 โปรแกรมผมเขียนออกมา lite กับ pro ต่างกันแค่ 1-2% flash ส่วนแรม แทบจะเท่ากัน ส่วน xc8 ต้องทำใจหน่อย ต่างกันพอสมควร แต่ก็ฟรี ไม่มี ดราม่า
โหะๆ xc8 ห่างกับ pro มากเลยหรือนิ
ใช้กับ pic18f อยู่ด้วย

ตอน build จริง คงต้องลองแบบโปรซะละ
ขอบคุณที่ให้ข้อมูลนะก๊าบบบบ
#236
แวะมาอ่าน
ผมใช้ mplab xc ครับ
#237
อ้อ...  เข้าใจละ
ขอบคุณมากๆ เลยก๊าบบบ
#238
ลองศึกษา และใช้ interrupt ซิครับ

สามารถ Code ให้ออกความถี่ใดก็ได้
จะเหมือน หรือต่างความถี่กัน ก็ได้
และสามารถสร้างได้จำนวนไม่จำกัด เลย อิสสระ 1-2 call

ถ้า สร้างด้วย ฟังชั่น สำเร็จภายใน
ผมว่า มันได้ จำนวน น้อยไปนิด
และ แต่ละเบอร์ ก็อาจแตกต่างกันไป
สู้ interrupt และ Code เองไม่ได้เลย

แต่ หากเรา Code เอง
หลักๆ ก็ interrupt timing
ก็จะได้ทุกอย่างที่ต้องการครับ

ดู ดาต้าชีท ดีๆ
มันจะบอก cycle แต่ละคำสั่งอย่างละเอียด

หากเราดูอย่างละเอียด เวลาจะแม่นยำมากขึ้นน่ะครับ
นั่นหมายถึง ความถี่ที่ได้ ก้แม่นยำขึ้นมากตาม
แต่ก็ ขึ้นกับ ซัพพลาย และ อุณภูมิทำงานด้วยน่ะครับ

หลายๆ เบอ ประมาณหน้า 300 กว่าๆ มั๊ง ที่มันจะพูดถึง machine cycle ของคำสั่งต่างๆ

ใช้ interrupt timing ครับ
มันคือคำตอบสุดท้าย
#239
ปัจจุบัน ผมใช้ ล์ pic18F เห็น ES มีเยอะดี
เขียนด้วย MPLAB_X คอมไพด้วย XC8 ครับ

หลังจากผม Code เสร็จ ก็จะ Debug ด้วย Stimulus
ทุกฟังช์ชั่น ก็ผ่าน และเห็น Machine Cycle

แต่ ฟังช์ชั่น Analog to Digital อย่างใน pic18F45k20

เท่าที่ส่องๆ ดู เล่นๆ ดู ใน Stimulus ยังหาไม่เจอว่า จะป้อน ip analog ยังไง
เลยไม่รู้จะ simulate มันได้ยังไง
งานผม สนใจเรื่อง machine cycle มาก เพราะต้องอยู่ในกรอบของ เวลา

งานเสร็จเร็ว ยิ่งดี แต่ pic มันช้า ตัวที่ใช้ แค่ 16MIPs
ตระกูล 24H ได้ 40 แต่เจือกไม่มี EEPROM ขี้เกียจเพิ่ม Memory IC น่ะครับ

ทีนี้ได้ลอง 2 Code นี้

if(flag_timing ==1){

   flag_timing =0;
   ADCON0bits.GODONE =1;
   Sum_ADRES = (ADRESH <<8) + (ADRESL);
   LED1 = 1;
}

กับอีก Code คือ :

if(flag_timing ==1){

   flag_timing =0;
   while (ADCON0bits.GODONE == 1){};
   Sum_ADRES = (ADRESH <<8) + (ADRESL);
   LED1 = 1;
}


หลังจากทดลองบนบอร์ดจริงๆ
โดยให้มันรับ ค่า จาก Potenchometer
เมื่อ ทดลองบิดลูกบิดไปมา
ผลลัพจากการต่อวงจรจริง
LED ติดสว่างตามตำแหน่งที่มือหมุนไปทั้ง 2 Code เลย

Code จริงๆส่วน นี้  ยาวกว่านี้มากครับ
LED ที่ติดสว่าง ซึ่งมีหลายดวง
ผมให้มัน ติด ตามตำแหน่ง ของลูกบิด ที่มือหมุนไป

Code ที่ผมตั้งใจจะเอามาใช้งานจริง
คือ Code ล่างครับ

แต่คำถาม คือ
หาก มันกำลังคำนวน while (ADCON0bits.GODONE ==1 )
ซึ่ง ผมคำนวณเวลาตาม ดาต้าชีท ได้ ร้อยกว่า Machine_Cycle แหน่ะ

คำถาม คือ หาก Loop while ยังไม่เสร็จ แล้วมี interrupt โผล่มา
หลังจาก interrupt เสร็จ จะเป็นอย่างไรน่ะครับ

1. มันมาคิด while loop ต่อจากเดิม ให้เสร็จ หรือ
2. คำนวน ADCON ใหม่เลย หรือ
3. ข้ามไปเลย ไปทำงานอื่นๆ

เขียนมาตั้งยาว ถามสั้นๆ แต่สงสัยจริงๆน่ะครับ
เพราะตอนนี้ Stimulus มันไม่ได้ ไม่รู้จะรู้ Machine_Cycle แท้จริงได้อย่างไง

หรือ ใครมีวิธี Stimulus ADCON ได้
รบกวนด้วยน่ะครับ
ขอบคุณล่วงหน้าครับ