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.


Topics - tha

Pages: [1] 2 3 ... 9
1
จะขึ้นเรื่อง TC0 แล้วนะ แต่ก็ชักจะลืมแล้วเรื่อง timer/counter ต้องอ่านหนังสือ AVR ภาษาไทยกอนสักหน่อย ซื้อมาไว้แล้ว ให้รู้ภาพกว้างๆไว้ก่อน ก่อนที่จะไปแปลภาษาอังกฤษจะได้ง่ายขึ้น เดาทางได้ ถ้าไปอ่านคู่มือภาษาอังกฤษเลยก็กลัวจะมีมั่ว   :)
         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

2
ท่านใดมีแล้วไม่ได้ใช้ อย่างใดอย่างหนึ่งก็ได้ ขอซื้อหน่อย จะเอามาเล่น ARM ต่อครับ

3
AVR and Arduino / Atmega328P Datasheet 18. I/O Ports 1
« on: August 25, 2019, 09:42:42 am »
18. I/O-Ports

18.1. Overview(ภาพรวม)

ทุก AVR ports มีฟังก์ชัน Read-Modify-Write ที่แท้จริง เมื่อใช้เป็น general digital I/O ports. นี้หมายความว่าทิศทางของขาหนึ่งของ port สามารถถูกเปลี่ยน โดยปราศจากการเปลี่ยนทิศทางของขาอื่น ๆโดยไม่ได้ตั้งใจ ด้วยคำสั่ง SBI(set bit) และ CBI(clear bit). เช่นเดียวกันกับเมื่อเปลี่ยน drive value (ถ้ากำหนดเป็น output) หรือการเปิด/ปิดการใช้งานของ pull-up resistors (ถ้ากำหนดเป็น input). แต่ละ output buffer แต่ละตัวมีลักษณะของการไดรฟ์แบบสมมาตรกัน ด้วยมีทั้งความสามารถในการดึงลงกราวน์(sink)และเป็นแหล่งจ่ายไฟ(source)ที่สูง. pin driver นี้มีความแข็งแรงเพียงพอที่จะไดรฟ์ LED displays ได้โดยตรง. ทุกพิน (port pins) มี pull-up resistors ที่เลือกได้เป็นรายขาไป ด้วยแหล่งจ่ายไฟที่มีความต้านทานที่คงที่. ทุกพิน(I/O pins) มี protection diodes ทั้ง VCC and Ground ดังแสดงในรูปต่อไปนี้.



รีจีสเตอร์และบิททั้งหมดที่อ้างอิงในบทนี้ถูกเขียนในรูปแบบทั่วไป. ตัวพิมพ์เล็ก “x” หมายถึงตัวอักษรสำหรับ port นั้นๆ, และตัวพิมพ์เล็ก "n" หมายถึง bit number นั้นๆ อย่างไรก็ตามเมื่อใช้ register หรือ bit กำหนดลงใน program, รูปแบบที่แน่นอนต้องถูกใช้ ตัวอย่างเช่น PORTB3 สำหรับ bit no. 3 ในเอกสารนี้โดยทั่วไปอ้างเป็น PORTxn.

I/O memory address locations ถูกจัดสรรสำหรับแต่ละ port หนึ่งแห่งสำหรับ Data Register – PORTx, Data Direction Register – DDRx, และ Port Input Pins – PINx. Port Input Pins I/O location สามารถอ่านได้เพียงอย่างเดียว ขณะที่ Data Register และ  Data Direction Register ทั้งอ่าน/เขียนได้. อย่างไรก็ตามการเขียน '1' ไปยังบิตหนึ่งใน PINx Register จะทำให้เกิดการสลับ(toggle)ในบิทที่ตรงกันใน Data Register. นอกจากนี้บิท Pull-up Disable – PUD bit ใน MCUCR จะปิดการใช้งานฟังชั่น pull-up ของทุกพินในทุก ports เมื่อเซทบิทนี้ให้เป็น"1".

การใช้ I/O port เป็น Digital I/O ทั่วไป ถูกอธิบายในส่วนถัดไปนี้ "Ports as General Digital I/O"  พิน(port pins)โดยมากแล้วใช้ร่วมกันกับหน้าที่ทางเลือกอื่น (alternate functions อย่าง usart, spi i2c) สำหรับอุปกรณ์ต่อพ่วงต่างๆ บน mcu นี้. แต่ละ alternate function เกี่ยวข้องกับพิน(port pin)อย่างไร ถูกอธิบายใน Alternate Port Functions section ในบทนี้.  โปรดดูในบทเป็นรายโมดูลไป(usart, spi i2c) สำหรับการคำอธิบายที่ครอบคลุมทั้งหมดของ alternate functions

การเปิดใช้งาน alternate function ของบางพิน( port pins) ไม่มีผลกระทบต่อการใช้งานพินอื่นๆใน port นี้ที่ใช้เป็น general digital I/O.

ปล. จำไม่ได้แล้ว เลยเริ่มใหม่เลย แน่นดี หมู่นี้ครึ้มฟ้าครึ้มฝน ถึงไม่มีแอร์ก็พอจะไปได้

4
AVR and Arduino / Atmega328P Datasheet 17. External Interrupt
« on: August 09, 2019, 01:36:22 pm »
17. EXINT - External Interrupts
The External Interrupts ถูกทริกโดย INT pins หรือพินใดพินหนึ่งของ PCINT pins. สังเกตได้ว่าถ้า enable แล้ว interrupts จะถูกทริก ถึงแม้ว่า INT หรือ PCINT pins ถูกกำหนดให้เป็น outputs ก็ตาม คุณสมบัติอย่างนี้จัดให้มีวิธีการสร้าง software interrupt

The Pin Change Interrupt Request 2 (PCI2) จะถูกทริก ถ้าพินใดพินหนึ่งใน PCINT[23:16] pin ที่ถูก enable มีการ toggles,  Pin Change Interrupt Request 1 (PCI1) จะถูกทริก ถ้าพินใดพินหนึ่งใน PCINT[14:8] pin ที่ถูก enable มีการ toggles,  Pin Change Interrupt Request 0 (PCI0) จะถูกทริก ถ้าพินใดพินหนึ่งใน PCINT[7:0] pin ที่ถูก enable มีการ toggles รีจีสเตอร์ PCMSK2, PCMSK1 และ PCMSK0 Registers ควบคุมว่าพินไหนบ้างที่ถูกทำให้เป็น pin change interrupts. Pin change interrupts บน PCINT ถูกตรวจจับแบบไมประสานเวลา(asynchronously) นี้หมายความว่า interrupts เหล่านี้สามารถใช้สำหรับปลุก(waking) sleep modes อื่นๆได้นอกเหนือจาก Idle mode
(ก็จะปลุก sleep mode แบบ power-down mode, power-save mode, standby mode ที่หยุด IO clock(CLKio) ด้วย ได้ด้วย ซึ่งทำให้ตรวจจับระดับสัญญานเป็น "0" ได้เท่านั้น (asynchronously) ไม่สามารถตรวจจับ ขอบขาขึ้น ขอบขาลง ที่ต้องใช้ IO clock ได้)

ปล. ดูตาราง sleep mode ร่วมด้วยนะ ว่า sleep mode แบบไหนหยุด IO clock(CLKio) บ้าง
ผมไม่ได้อยู่แอร์นะ วันนี้ครึ้มฟ้าครึ้มฝนอยู่ ก็ได้นิดหน่อยนะ พอดีช่วงเช้าไปธุระด้วย เลยได้แค่นี้  :D

5
AVR and Arduino / Atmega328P Datasheet 16. Interrupt
« on: August 06, 2019, 09:54:04 am »
16. Interrupt
ในบทนี้อธิบายลักษณะเฉพาะของ interrupt handling ของ ATmega328p สำหรับคำอธิบายทั่วไปของ AVR interrupt handling, จัดอยู่ในกลุ่มคำอธิบายของ Reset and Interrupt Handling.
     • แต่ละ Interrupt Vector จะใช้ 2 instruction words .
     • Reset Vector ถูกย้ายได้โดย BOOTRST fuse, และ Interrupt Vector start address ถูกย้ายได้โดยบิท IVSEL ใน MCUCR




    Note:
     1. เมื่อ BOOTRST Fuse ถูกโปรแกรม, mcu นี้จะกระโดดไปยัง Boot Loader ตำแหน่งที่ reset, ดู ”Boot Loader Support –
     Read-While-Write Self-Programming”
     2. เมื่อบิท IVSEL ใน MCUCR ถูกเซท, Interrupt Vectors จะถูกย้ายไปยังจุดเริ่มต้นของ Boot Flash Section. ตำแหน่งของแต่ละ
     Interrupt Vector นั้นก็จะเป็นตำแหน่งในตารางนี้บวกด้วยตำแหน่งเริ่มต้นของ Boot Flash Section.

6
15. SCRST - System Control and Reset

15.1. Resetting the AVR
ในระหว่าง reset, I/O Registers ทั้งหมดถูกเซทไปยังค่าเริ่มต้นของมัน, และ the program สตาร์ทการปฏิบัติงานจาก the Reset Vector. คำสั่งที่วางที่ the Reset Vector ต้องเป็นคำสั่ง an Absolute Jump instruction (JMP) ไปยัง the reset handling routine สำหรับ. ถ้า the program ไม่เปิดการใช้งาน an interrupt source, the Interrupt Vectors จะไม่ถูกใช้, และ program code ปกติสามารถถูกวางที่ตำแหน่งนี้. นี่ก็เป็นกรณีถ้า the Reset Vector อยู่ในส่วนแอ็พพลิเคชันในขณะที่ the Interrupt Vectors อยู่ในส่วนบูตหรือในทางกลับกัน. The circuit diagram ใน the next section แสดง the reset logic.

The I/O ports ของ the AVR จะถูกรีเซ็ตเป็นสถานะเริ่มต้นทันทีเมื่อแหล่งสัญญาณรีเซ็ตแหล่งหนึ่ง active. นี้ไม่ต้องการใช้แหล่งสัญญาณนาฬิกาใด ๆรันให้

หลังจาก reset sources ทั้งหมดหายไป, a delay counter ถูกปลุกขึ้น, ยืดเวลา the internal reset ออกไป. นี้ยอมให้ the power ไปถึงระดับที่มั่นคงก่อนที่การทำงานปกติจะสตาร์ท. The time-out period ของ the delay counter ถูกกำหนดโดย the user ผ่านทาง the SUT and CKSEL Fuses. ทางเลือกที่แตกต่างกันสำหรับ the delay period ถูกแสดงใน the System Clock and Clock Options chapter.

ปล. program address 0x00(เริ่มต้น) เป็น reset vector ใช่หรือเปล่า เป็นคำสั่ง jump ให้ข้าม interrupt vector ไปยัง main program ใช่มัํย ชักลืมแล้ว
http://web.csulb.edu/~hill/ee346/Lectures/10%20ATmega328P%20Interrupts.pdf

7
อยากได้หนังสือ ปฏิบัติการไมโครคอนโทรลเลอร์ ARM Cortext-M3 กับ STM32 กลับคืนมาครับ นึกว่าจะไม่ได้เล่น mcu แล้วเลยขายไป ตอนนี้กลับมาเล่น mcu ใหม่ เลยอยากได้กลับมา ท่านใดไม่ได้เล่นแล้วต้องการขายติดต่อมาครับ หรือเมล์ thamanoon0996@gmail.com

http://www.electoday.com/index.php/topic,15733.0.html

8
AVR and Arduino / Atmega328P Datasheet 18. I/O-Ports
« on: November 06, 2017, 03:17:08 pm »
ข้ามไปก่อนก็แล้วกัน เอาบทง่ายๆที่ใช้งานบ่อยขึ้นก่อนก็แล้วกัน ดาต้าชีตผมว่าไม่ค่อยจะเรียงลำดับสักเท่าไหร่ วันนี้อากาศเย็นเลยแปลตอนกลางวันได้ เลยไปได้เรื่อยๆก็เพลินดีมีงานอดิเรกทำ

18. I/O-Ports

18.1. Overview(ภาพรวม)

AVR ports ทั้งหมดมีฟังก์ชัน Read-Modify-Write ที่แท้จริง เมื่อใช้เป็น general digital I/O ports. นี้หมายความว่าทิศทางของขาพอร์ตหนึ่งสามารถถูกเปลี่ยนได้โดยปราศจากการเปลี่ยนที่ไม่ตั้งใจของทิศทางของขาอื่น ๆ ด้วยคำสั่ง SBI และ CBI. เช่นเดียวกันกับเมื่อเปลี่ยน drive value (ถ้ากำหนดเป็น output) หรือ enabling/disabling of pull-up resistors (ถ้ากำหนดเป็น input). Each output buffer แต่ละตัวมีลักษณะของการไดรฟ์แบบสมมาตรกันโดยมีทั้งความสามารถในการดึงลงกราวน์(sink)และเป็นแหล่งจ่ายไฟ(source)สูง. The pin driver มีความแข็งแรงเพียงพอที่จะไดรฟ์ LED displays ได้โดยตรง. port pins ทั้งหมดมี pull-up resistors ที่เลือกได้เฉพาะของแต่ละตัวด้วย a supply-voltage ที่มีความต้านทานที่คงที่. I/O pins ทั้งหมดมี protection diodes ทั้ง VCC and Ground ดังแสดงในรูปต่อไปนี้.



registers และ bit ทั้งหมดที่อ้างอิงใน section นี้ถูกเขียนในรูปแบบทั่วไป. ตัวพิมพ์เล็ก “x” หมายถึงหมายเลขตัวอักษรสำหรับ the port นั้นๆ, และตัวพิมพ์เล็ก "n" หมายถึง bit number นั้นๆ อย่างไรก็ตามเมื่อใช้ the register หรือ bit กำหนดลงใน a program, รูปแบบที่ถูกต้องต้องถูกใช้ ตัวอย่างเช่น, PORTB3 สำหรับ bit no. 3 ในเอกสารนี้โดยทั่วไปอ้างเป็น PORTxn.

I/O memory address locations ถูกจัดแบ่งสำหรับแต่ละ port, แต่ละพอร์ตสำหรับ the Data Register – PORTx, Data Direction Register – DDRx, and the Port Input Pins – PINx. The Port Input Pins I/O location ถูกอ่านได้เพียงอย่างเดียว ขณะที่ the Data Register และ the Data Direction Register ถูกอ่าน/เขียนได้. อย่างไรก็ตามการเขียน '1' ไปยังบิตหนึ่งใน PINx Register จะทำให้เกิดการสลับในบิทที่ตรงกันใน the Data Register. นอกจากนี้, การปิดการใช้งาน the Pull-up Disable – PUD bit ใน MCUCR จะปิดการใช้งาน the pull-up function สำหรับทุก pins ใน
ทุก ports เมื่อเซท.

การใช้ the I/O port เป็น General Digital I/O ถูกอธิบายในส่วนถัดไปนี้  port pins โดยมากแล้วใช้ร่วมกันกับหน้าที่ทางเลือกอื่น (alternate functions) สำหรับอุปกรณ์ต่อพ่วงต่างๆ บน the device. วิธีที่แต่ละ alternate function ยุ่งเกี่ยวกับ the port pin ถูกอธิบายใน Alternate Port Functions section ในบทนี้.  โปรดดูที่ the individual module sections สำหรับการคำอธิบายแบบเต็มของ the alternate functions

การเปิดใช้งาน the alternate function ของบาง the port pins ไม่มีผลกระทบต่อการใช้ pins อื่นๆใน the port ที่ใช้เป็น general digital I/O.

Pages: [1] 2 3 ... 9