Author Topic: Arduino MEGA328P  (Read 3719 times)

Offline tha

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 824
    • View Profile
Re: Arduino MEGA328P
« Reply #88 on: October 20, 2017, 04:23:13 am »
13.12.2. Clock Prescaler Register



Bit 7 – CLKPCE: Clock Prescaler Change Enable
The CLKPCE bi tต้องถูกเขียนให้เป็นลอจิก 1 เพื่อเปิดใช้งานการเปลี่ยนของ the CLKPS bits. The CLKPCE bit ถูกอัฟเดทได้เพียงเมื่อบิทอื่นๆใน CLKPR ถูกเขียนเป็น 0 พร้อมกัน. CLKPCE ถูกเคลียร์โดยฮาร์ดแวร์ four cycles หลังจากที่มันถูกเขียนหรือเมื่อ CLKPS bits ถูกเขียน. การเขียน the CLKPCE bit ซ้ำภายใน time-out period นี้ จะไม่ยืด the time-out period, หรือจะไม่เคลียร์ the CLKPCE bit.

Bits 3:0 – CLKPSn: Clock Prescaler Select n [n = 3:0]
บิทเหล่านี้กำหนดแฟคเตอร์การหาร(the division factor) ระหว่าง the selected clock source และ the internal system clock. บิทเหล่านี้สามารถถูกเขียนขณะเวลารันเพื่อเปลี่ยน the clock frequency ให้เหมาะสมกับ the application requirements. ดังที่ตัวหารจะหาร the master clock ที่ส่งเข้าไปยัง the MCU, ความเร็วของ synchronous peripherals ทั้งหมดถูกลดลงเมื่อ a division factor ถูกใช้. The division factors ถูกให้ไว้ในตารางข้างล่างนี้.

The CKDIV8 Fuse กำหนดค่าเริ่มต้นของ the CLKPS bits. ถ้า CKDIV8 ไม่ได้ถูกโปรแกรม, the CLKPS bits จะถูกรีเซทเป็น “0000”. ถ้า CKDIV8 ถูกโปรแกรม, CLKPS bits จะถูกรีเซทเป็น “0011”, ให้ a division factor เป็น 8 ที่ start up. ควรใช้คุณลักษณะนี้หาก if the selected clock source มีค่าความถี่สูงกว่า the maximum frequency ของ the device ที่ the present operating conditions. โปรดทราบไว้ว่าค่าใด ๆสามารถเขียนลงใน the CLKPS bits โดยไม่ต้องคำนึงถึงการเซท the CKDIV8 Fuse. The Application software ต้องแน่ใจว่า a sufficient division factor ถูกเลือกถ้า the selected clock source มีค่าความถี่สูงกว่า the maximum frequency ของ the device ที่ the present operating conditions. The device ถูกส่งออกมาขายด้วยการโปรแกรม the CKDIV8 Fuse แล้ว.




Offline tha

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 824
    • View Profile
Re: Arduino MEGA328P
« Reply #89 on: October 20, 2017, 04:42:52 am »
มีพรายกระซิบให้ลองเปลี่ยน clock speed ดู  ;D
ดูใน TECH SPECS https://store.arduino.cc/usa/arduino-leonardo-with-headers
เขาบอกว่า clock speed = 16 MHz เลยลองเปลี่ยนค่า prescaler ตามข้อมูลนี้
http://www.avrfreaks.net/forum/atmega48-how-set-system-clock-prescaler

ดูไฟกระพริบและ delay ที่หาร clock ด้วย 8 แล้วหาร clock ด้วย 1 สลับกัน หารด้วย 8 ก็จะช้าลง
http://www.mediafire.com/file/2g221q658rptcvm/blink1_clock.ino

Offline tha

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 824
    • View Profile
Re: Arduino MEGA328P
« Reply #90 on: October 20, 2017, 05:01:39 am »
ถ้าดูที่ไฟล์ iom32u4.h ใน C:\Program Files\Arduino\hardware\tools\avr\avr\include\avr
CLKPCE มีค่าเท่ากับ 7 ในโปรแกรมเขียนอย่างนี้ก็หมายความว่าให้บิทที่ 7 ของรีจีสเตอร์ CLKPR เป็น 1 เพื่อ enable การเปลี่ยนค่าของ clock prescaler

Quote
CLKPR = (1 << CLKPCE); // enable a change to CLKPR

Offline tha

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 824
    • View Profile
Re: Arduino MEGA328P
« Reply #91 on: October 22, 2017, 07:37:08 am »
ตอนนี้สั่งซื้อตัวโปรแกรม http://www.ett.co.th/prod2010/ET-AVR/ET-AVR%20ISP%20mkII%20.html ตัวนี้อยู่ จะมาดูสิว่าเราจะกำหนดเลือก clock source อย่างไร กำหนดที่ fuse bits ใช่หรือป่าว? ลองอ่านคู่มือดูก็ยังไม่เคลียร์ ต้องให้ได้ของจริงมาดูก่อน ใช้กับ avr studio 4.xx หรือใช้กับ arduino IDE ก็ได้มั๊ง?เห็นมีตัวเลือกอยู่

ตัวโปรแกรมนี้คงเหมาะสำหรับใครที่คิดจะทำบอร์ดเอง สามารถจะเลือกใส่ว่าจะให้มี clock เท่าไหร่ ตั้งแหล่ง clock source โปรแกรม bootloader ได้มั๊ย? เดี๋ยวได้ของมาก่อน จะได้มาลองว่าทำอะไรได้บ้างกัน

Offline tha

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 824
    • View Profile
Re: Arduino MEGA328P
« Reply #92 on: October 22, 2017, 08:11:55 am »
ท่านใดมีไอเดียจะทำอะไรหรือจะจ้างให้ผมทำก็ได้นะครับ ที่ es มี mcu avr เยอะแยะเลย แล้วแต่จะเลือกใช้
https://www.es.co.th/tabs.asp?keyword=avr&catc=

คนจัดทำแผงวงจร pcb ก็มีแล้ว ใครมีไอเดียจะทำอะไร บอกมา  ;)


Offline wlasoi

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 756
    • View Profile
Re: Arduino MEGA328P
« Reply #94 on: October 22, 2017, 01:31:51 pm »
อยากได้ 2 เล่มนี้มาอ่าน จะได้แน่นๆ

http://www.appsofttech.com/store/product/view/%E0%B8%AB%E0%B8%99%E0%B8%B1%E0%B8%87%E0%B8%AA%E0%B8%B7%E0%B8%AD%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B9%80%E0%B8%82%E0%B8%B5%E0%B8%A2%E0%B8%99%E0%B9%82%E0%B8%9B%E0%B8%A3%E0%B9%81%E0%B8%81%E0%B8%A3%E0%B8%A1%E0%B8%84%E0%B8%A7%E0%B8%9A%E0%B8%84%E0%B8%B8%E0%B8%A1%E0%B9%84%E0%B8%A1%E0%B9%82%E0%B8%84%E0%B8%A3%E0%B8%AF_AVR_%E0%B8%94%E0%B9%89%E0%B8%A7%E0%B8%A2%E0%B8%A0%E0%B8%B2%E0%B8%A9%E0%B8%B2_C_%E0%B9%80%E0%B8%A5%E0%B9%88%E0%B8%A1_1-19590643-th.html

http://www.appsofttech.com/store/product/view/%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%9B%E0%B8%A3%E0%B8%B0%E0%B8%A2%E0%B8%B8%E0%B8%81%E0%B8%95%E0%B9%8C%E0%B9%83%E0%B8%8A%E0%B9%89%E0%B8%87%E0%B8%B2%E0%B8%99%E0%B8%A0%E0%B8%B2%E0%B8%A9%E0%B8%B2_C_%E0%B8%81%E0%B8%B1%E0%B8%9A%E0%B9%84%E0%B8%A1%E0%B9%82%E0%B8%84%E0%B8%A3%E0%B8%84%E0%B8%AD%E0%B8%99%E0%B9%82%E0%B8%97%E0%B8%A3%E0%B8%A5%E0%B9%80%E0%B8%A5%E0%B8%AD%E0%B8%A3%E0%B9%8C_AVR_%E0%B9%80%E0%B8%A5%E0%B9%88%E0%B8%A1_2-19590698-th.html


http://www.nongnu.org/avr-libc/ 

ไม่จำเป็นก็ได้ ครับ! .. แนะนำ หาวิธีอ่าน/ศึกษา ตัวนี้ ครับ! นี่เป็น Core AVR อย่างแท้ จริง ทั้งหมดทั้งมวลคือ AVR libc นี่แหละ .. แรกๆ จะค่อนข้าง งง งวยๆพอสมควร ถ้าเข้าใจแล้สจะ โปร่ง โล่ง สบาย ครับ ที่จริงไม่ใช่เรื่องวไหลตัวหรือ พิสดารอะไร มันอยู่ใน Folder AVR Gcc นั่นแหละ! มันมาด้วยกันตั้งแต่แรก แต่ไม่ค่อยมีคนสนใจ


Offline tha

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 824
    • View Profile
Re: Arduino MEGA328P
« Reply #95 on: October 23, 2017, 07:31:29 am »
Quote
http://www.nongnu.org/avr-libc/ 

ไม่จำเป็นก็ได้ ครับ! .. แนะนำ หาวิธีอ่าน/ศึกษา ตัวนี้ ครับ! นี่เป็น Core AVR อย่างแท้ จริง ทั้งหมดทั้งมวลคือ AVR libc นี่แหละ .. แรกๆ จะค่อนข้าง งง งวยๆพอสมควร ถ้าเข้าใจแล้สจะ โปร่ง โล่ง สบาย ครับ ที่จริงไม่ใช่เรื่องวไหลตัวหรือ พิสดารอะไร มันอยู่ใน Folder AVR Gcc นั่นแหละ! มันมาด้วยกันตั้งแต่แรก แต่ไม่ค่อยมีคนสนใจ

ขอบคุณคุณ wlasoi ครับสำหรับข้อมูล เดี๋ยวคงจะได้อ่านกัน ใครมีอะไรดีๆ คิดว่าเป็นประโยชน์ก็เอามาลงไว้นะครับ จะได้แน่น ผมก็ใหม่สำหรับ avr ก็ได้แต่แปลไปรู้ไป  ถ้ามีหนังสือภาษาไทยก็คงจะเร็วดี กันเหนียว:)