Advanced Arduino: direct use of ATmega counter/timersWhat are the coun การแปล - Advanced Arduino: direct use of ATmega counter/timersWhat are the coun ไทย วิธีการพูด

Advanced Arduino: direct use of ATm

Advanced Arduino: direct use of ATmega counter/timers

What are the counter/timers

The Arduino platform consists of a set of software libraries that run on a group of micro-controller chips. Currently the supported micro-controllers are the AVR ATmega168, ATmega328, and the more featureful ATmega1280 and ATmega2560 used in the Arduino Mega. Also smaller chips like the ATtiny are useable if you are prepared to do some more homework.

Currently the Arduino platform uses the ATmega series but the software is not strongly tied to any one architecture (in principle).

These notes are, however, firmly tied to the ATmega architecture and the ATmega168 and ATmega328 chips of the standard Arduinos. The ATmega1280 and 2560 are very similar however (but with more counter/timers).

Where to find things out

All things Arduino can be found at or from the Arduino wesbite. Google naturally is very useful for locating more resources. The chip datasheets can be located in numerous places but Atmel's website has them at their ATmega328p doc page.

Existing use/support of counter/timers in Arduino libraries

The millis() and micros() functions use timer0 to keep track of the time since last reset.
The Tone library uses whichever timer(s) are needed for the pin(s) involved - see the pin/timer map below.
analogWrite() function uses whichever timer is needed for the pin involved.
The Servo library uses timer1 to provide interrupt-driven servo-signal generation.
The standard Arduino has 3 timers, timer0 is 8 bit and used for the millis() and micros() functions. Timer1 is 16 bit and not used by default, timer2 is another 8 bit timer like timer0 but not used by default.

timer bits channel Arduino pin Mega pin
timer0 8 A 6 13
timer0 8 B 5 4
timer1 16 A 9 11
timer1 16 B 10 12
timer2 8 A 11 10
timer2 8 B 3 9
timer3 16 A - 5
timer3 16 B - 2
timer3 16 C - 3
timer4 16 A - 6
timer4 16 B - 7
timer4 16 C - 8
timer5 16 A - 44
timer5 16 B - 45
timer5 16 C - 46
At restart the Arduino bootloader sets up the timers ready for analogWrite() PWM use. The timer/counters are set to phase-correct 8-bit PWM mode and with clock prescaled to system clock divided by 64. However timer0 is set to fast PWM mode for use with the millis()/micros() code.

For standard Arduinos the system clock is 16MHz so that the timers are clocking at 250kHz by default. Phase correct 8-bit PWM mode takes 510 clocks to cycle and fast 8-bit PWM mode takes 256. This means a frequency of 490Hz for pins 5 and 6 and 977Hz for pins 3, 9, 10, 11 when used with analogWrite(). It is possible to change the clock prescaling to change these default PWM frequencies.

ATmega counter-timer basics

The counter/timer hardware modules are very flexible and consist of a set of registers to control the behaviour as well as the counter/timer register itself. 16 bit timers have mainly 16-bit registers (although the control registers are 2 separate 8-bit ones in all timers).

In the following description I shall use timer1's register names, but the naming is systematic and replacing the '1' by another number you get the corresponding names. TCCR1A and TCCR1B are the two 8-bit control registers. These set up the clock prescale ratio, set the mode for the counter/timer and set the output control for the PWM pins. TCNT1 is the 16 bit (for timer1) counter value itself. At the assembly language level this register has to be written or read as two 8-bit half-registers and in a certain order. The GCC AVR compiler used by the Arduino software automatically generates the two accesses as if this was a single 16 bit transfer. However if you have an interrupt handler that also accesses 16 bit registers in the same timer you must protect accesses by disabling interrupts across the access.

Each timer has 2 or 3 channels which control a dedicated pin if the relevant output mode is set and that pin is enabled as an output. The OCR1A and OCR1B are the 16 bit Output Compare Registers that apply to the two channels (A and B) that timer1 has. The Mega has timers 3 4 and 5 that each have 3 channels, A, B and C. The same considerations about 16 bit transfers as for the TCNT1 register of course.

The Input Capture Register ICR1 is a 16 bit register used to record the value of TCNT1 when an external event happens - typically a change on the ICP1 pin (Arduino pin 8). Only 16 bit timers have input capture.

The basic operation of the unit, common to most modes is for the counter register TCNT1 to count up and/or down between values BOTTOM (which is zero) and TOP. In some modes TOP is provided by a register such as OCR1A or ICR1, in other modes it is fixed at 0xFF or 0x1FF or 0x3FF or 0xFFFF (MAX). Many modes compare the OCR1A and OCR1B values to the TCNT1 at each clock and may change the output pins for those channels. In phase-correct PWM mode the counter reverses direction when getting to BOTTOM or TOP thus ramping both up and down. In other modes the counter just counts up and resets to BOTTOM (usually zero) upon reach
0/5000
จาก: -
เป็น: -
ผลลัพธ์ (ไทย) 1: [สำเนา]
คัดลอก!
ขั้นสูง Arduino: ตรงใช้ ATmega ตัวนับ/จับเวลาเคาน์เตอร์ตัวจับเวลาตัวใดบ้างแพลตฟอร์ม Arduino ประกอบด้วยชุดของไลบรารีของซอฟต์แวร์ที่รันบนกลุ่มของไมโครคอนโทรลเลอร์ชิ ไมโครคอนโทรลเลอร์รองรับอยู่ AVR ATmega168, ATmega328 และ ATmega1280 featureful มาก และ ATmega2560 ใช้ในเม Arduino ยัง ชิเล็กเช่น ATtiny จะใช้งานได้ถ้าคุณกำลังเตรียมที่จะทำการบ้านบางเพิ่มเติมปัจจุบันแพลตฟอร์ม Arduino ใช้ชุด ATmega แต่ซอฟต์แวร์ขอผูกใดสถาปัตยกรรมหนึ่ง (เป็นหลัก)หมายเหตุอย่างไรก็ตาม แน่น ผูกติดสถาปัตยกรรม ATmega และชิ ATmega168 และ ATmega328 ของ Arduinos มาตรฐาน ATmega1280 การและ 2560 จะคล้ายอย่างไรก็ตาม (แต่ มีตัวจับและตัวนับเวลามากขึ้น)การหาสิ่งทุกสิ่งอย่าง Arduino สามารถพบได้ที่ หรือ จาก Arduino wesbite Google ตามธรรมชาติมีประโยชน์มากสำหรับการค้นหาทรัพยากรเพิ่มเติม แผ่นชิสามารถมีอยู่ในสถานมากมาย แต่เว็บไซต์ของ Atmel มีเขาที่หน้าอกของ ATmega328pใช้อยู่ฝ่ายสนับสนุนการนับ/จับใน Arduino ไลบรารีฟังก์ชัน millis() และ micros() ใช้ timer0 เพื่อติดตามเวลาตั้งแต่ตั้งครั้งสุดท้ายใช้ไลบรารีโทน timer(s) ใดจำเป็นสำหรับ pin(s) เกี่ยวข้อง - ดูหมุด/จับเวลาที่แผนที่ด้านล่างฟังก์ชัน analogWrite() ใช้เวลาใดต้องการ pin ที่เกี่ยวข้องไลบรารีเซอร์โวใช้ timer 1 จะให้ขัดจังหวะการขับเคลื่อนสัญญาณเซอร์โวรุ่นArduino มาตรฐานมี 3 จับ timer0 เป็น 8 บิต และใช้ฟังก์ชัน millis() และ micros() Timer 1 เป็น 16 บิต และไม่ใช้ค่าเริ่มต้น timer2 เป็นตัวจับเวลา 8 บิตอีกเช่น timer0 แต่ไม่ใช้ค่าเริ่มต้นเวลาบิตช่อง Arduino ขาร็อคขาtimer0 8 A 6 13timer0 8 B 5 4timer 1 16 A 9 11timer 1 16 B 10 12timer2 8 A 11 10timer2 8 B 3 9timer3 16 A - 5timer3 16 B - 2timer3 16 C - 3timer4 16 A - 6timer4 16 B - 7timer4 16 C - 8timer5 16 A - 44timer5 16 B - 45timer5 16 C - 46ที่สตาร์ Arduino bootloader ตั้งค่าเวลาที่พร้อมสำหรับใช้ PWM analogWrite() ตัวตั้งเวลาตัวนับถูกตั้งค่าโหมด PWM 8 บิตแก้ไขขั้นตอน และนาฬิกา prescaled นาฬิการะบบหาร 64 อย่างไรก็ตาม timer0 ถูกตั้งค่าเป็นโหมด PWM ที่รวดเร็วสำหรับการใช้งานด้วยรหัส millis()/micros()สำหรับมาตรฐาน Arduinos นาฬิการะบบเป็น 16MHz ดังนั้นเวลาที่ตอกบัตรเข้าที่ 250kHz โดยค่าเริ่มต้น โหมด PWM 8 บิตถูกต้องระยะเวลานาฬิกา 510 เพื่อวน และโหมด PWM เร็ว 8 บิตใช้ 256 ซึ่งหมายความว่าความถี่ของ 490Hz สำหรับหมุด 5 และ 6 และ 977 Hz สำหรับขา 3, 9, 10, 11 เมื่อใช้กับ analogWrite() สามารถเปลี่ยนนาฬิกา prescaling การเปลี่ยนความถี่ PWM ค่าเริ่มต้นเหล่านี้ได้พื้นฐานไทเมอร์เคาน์เตอร์ ATmegaโมฮาร์ดแวร์เคาน์เตอร์/ไทม์เมอร์มีความยืดหยุ่นมาก และประกอบด้วยชุดของการลงทะเบียนในการควบคุมพฤติกรรมเป็นนับจับเวลาลงทะเบียนตัวเอง จับ 16 บิตมีทะเบียน 16 บิตส่วนใหญ่ (แม้ว่าการลงทะเบียนควบคุมถูก 2 แยก 8 บิตในตัวจับเวลาทั้งหมด)ในคำอธิบายต่อไปนี้จะใช้ ของ timer 1 ตัวลงทะเบียนชื่อ แต่การตั้งชื่อคือระบบ และแทนที่ '1' หมายเลขอื่นที่คุณได้รับชื่อสอดคล้องกัน มีทะเบียนควบคุม 8 บิตสอง TCCR1A และ TCCR1B เหล่านี้ตั้งค่านาฬิกา prescale อัตราส่วน โหมดสำหรับเคาน์เตอร์ตัวจับเวลา และตั้งค่าการควบคุมผลลัพธ์สำหรับขา PWM TCNT1 เป็นตัวนับค่า 16 บิต (สำหรับ timer1) ตัวเอง ระดับภาษาแอสเซมบลี ทะเบียนนี้มีการเขียน หรืออ่าน เป็น 8 บิตสองครึ่งทะเบียน และ ในใบสั่ง คอมไพเลอร์ GCC AVR ใช้ Arduino ซอฟต์แวร์โดยอัตโนมัติสร้างการเข้าถึงที่สองว่านี้เป็นการถ่ายโอนเดียว 16 บิต อย่างไรก็ตาม ถ้าคุณมีตัวจัดการการขัดจังหวะที่ยัง เข้าถึงลงทะเบียน 16 บิตในเวลาเดียวกัน คุณต้องปกป้องการเข้าถึง โดยจังหวะในการเข้าถึงจับเวลาแต่ละช่องที่ 2 หรือ 3 ซึ่งควบคุม pin โดยเฉพาะถ้ามีการตั้งค่าโหมดการแสดงผลที่เกี่ยวข้อง และถูกเปิดใช้งานการแสดงผล ได้ OCR1A และ OCR1B มีการ 16 บิตผลลัพธ์เปรียบเทียบลงทะเบียนที่ช่องสอง (A และ B) ใช้ timer 1 ตัวที่ มี เมมีจับเวลา 3 4 และ 5 ที่มี 3 ช่อง A, B และ c การพิจารณาเดียวกัน 16 บิตโอนสำหรับ TCNT1 การลงทะเบียนหลักสูตรป้อนข้อมูลบันทึกลงทะเบียน ICR1 มีทะเบียน 16 บิตที่ใช้ในการบันทึกค่าของ TCNT1 เมื่อเหตุการณ์ภายนอกเกิด - โดยทั่วไปการเปลี่ยนแปลงบนแท่น ICP1 หมุด (หมุด Arduino 8) จับเวลาเพียง 16 บิตมีป้อนจับการดำเนินการพื้นฐานของหน่วย ทั่วถึงมากที่สุดสำหรับการลงทะเบียนเคาน์เตอร์ TCNT1 การนับขึ้น หรือลงระหว่างค่าล่าง (ซึ่งเป็นศูนย์) และด้านบนได้ ในบางโหมดด้านบนมีทะเบียนเช่น OCR1A หรือ ICR1 ในโหมดอื่นๆ ก็จะคงที่ที่ 0xFF หรือ 0x1FF หรือ 0x3FF หรือ 0xFFFF (สูงสุด) เปรียบเทียบค่า OCR1A และ OCR1B เพื่อ TCNT1 ที่นาฬิกาแต่ละ และอาจเปลี่ยนหมุดการแสดงผลช่องเหล่าหลายโหมด ในแก้ไขเฟส PWM โหมดตัวนับย้อนกลับทิศทางเมื่อได้รับไปด้านล่างหรือด้านบนจึง กระโจนทั้งขึ้นและลง ในโหมดอื่นๆ การนับเพียงจำนวนค่า และตั้งค่าใหม่ลงล่าง (ปกติศูนย์) เมื่อถึง
การแปล กรุณารอสักครู่..
ผลลัพธ์ (ไทย) 2:[สำเนา]
คัดลอก!
ขั้นสูง Arduino: ใช้โดยตรงของ ATMEGA เคาน์เตอร์ / ตัวจับเวลาอะไรคือเคาน์เตอร์ / ตัวจับเวลาแพลตฟอร์ม Arduino ประกอบด้วยชุดของห้องสมุดซอฟต์แวร์ที่ทำงานบนกลุ่มของชิปไมโครคอนโทรลเลอร์ ขณะนี้ได้รับการสนับสนุนไมโครคอนโทรลเลอร์เป็น AVR ATmega168, ATmega328 และ featureful เพิ่มเติม ATmega1280 และ ATmega2560 ใช้ใน Arduino เมกะ นอกจากนี้ยังมีชิปที่มีขนาดเล็กเช่น ATtiny เป็นใช้ได้ถ้าคุณกำลังเตรียมที่จะทำบางบ้านมากขึ้น. ปัจจุบันแพลตฟอร์ม Arduino ใช้ชุด ATMEGA แต่ซอฟต์แวร์ที่ไม่ได้เชื่อมโยงอย่างยิ่งกับคนใดคนหนึ่งสถาปัตยกรรม (ในหลักการ). บันทึกเหล่านี้มี แต่ผูกให้แน่น สถาปัตยกรรม ATMEGA และ ATmega168 และ ATmega328 ชิปของ Arduinos มาตรฐาน ATmega1280 และ 2560 จะคล้ายกันมาก แต่ ( แต่กับเคาน์เตอร์มากขึ้น / ตัวจับเวลา). การที่จะหาสิ่งที่ออกทุกสิ่ง Arduino สามารถพบได้ที่หรือจาก wesbite Arduino Google ธรรมชาติเป็นประโยชน์อย่างมากสำหรับตำแหน่งทรัพยากรมากขึ้น เอกสารข้อมูลทางเทคนิคชิปสามารถตั้งอยู่ในสถานที่ต่าง ๆ นานา แต่เว็บไซต์ Atmel มีพวกเขาในหน้าเอกสารของพวกเขา ATmega328p. ที่มีอยู่ใช้งาน / การสนับสนุนของเคาน์เตอร์ / ตัวจับเวลาใน Arduino ห้องสมุดมิลลิวินาที () และไมโคร () ฟังก์ชั่นใช้ timer0 ในการติดตามของเวลาตั้งแต่เดือน . รีเซ็ตรายงานการใช้ห้องสมุดโทนแล้วแต่จำนวนใดจับเวลา (s) มีความจำเป็นสำหรับขา (s) มีส่วนร่วม -. ดูแผนที่ Pin / จับเวลาดังต่อไปนี้. analogWrite () ฟังก์ชันใช้แล้วแต่จำนวนใดจับเวลาเป็นสิ่งจำเป็นสำหรับขาที่เกี่ยวข้องกับห้องสมุด Servo ใช้ Timer1 เพื่อให้ ขัดขวางการขับเคลื่อนเซอร์โวรุ่นสัญญาณ. มาตรฐาน Arduino มี 3 ตัวนับ timer0 คือ 8 บิตและใช้สำหรับมิลลิวินาที () และไมโคร () ฟังก์ชั่น Timer1 คือ 16 บิตและไม่ได้ใช้โดยค่าเริ่มต้น timer2 เป็นอีกหนึ่งจับเวลา 8 บิตเช่น timer0 แต่ไม่ใช้โดยเริ่มต้น. จับเวลาบิตช่อง Arduino ขาร็อคขาtimer0 8 6 13 timer0 8 B 5 4 Timer1 16 9 11 Timer1 16 B 10 12 timer2 8 11 10 timer2 8 B 3 9 timer3 16 - 5 timer3 16 B - 2 timer3 16 C - 3 timer4 16 - 6 timer4 16 B - 7 timer4 16 C - 8 timer5 16 - 44 timer5 16 B - 45 timer5 16 C - 46 ในการรีสตาร์ท bootloader Arduino ตั้งค่าตัวจับเวลาพร้อมสำหรับ analogWrite () ใช้ PWM จับเวลา / เคาน์เตอร์มีการกำหนดให้เฟสที่ถูกต้องโหมด PWM 8 บิตและมีนาฬิกา prescaled นาฬิการะบบหารด้วย 64 แต่ timer0 จะทำงานในโหมด PWM ได้อย่างรวดเร็วสำหรับการใช้งานกับมิลลิวินาที () / Micros () รหัส. สำหรับ Arduinos มาตรฐาน นาฬิการะบบคือ 16MHz เพื่อให้ตัวนับที่มีการตอกบัตรที่ 250kHz โดยค่าเริ่มต้น ขั้นตอนที่ถูกต้องโหมด PWM 8 บิตจะใช้เวลา 510 นาฬิกาเพื่อวงจรและรวดเร็วโหมด PWM 8 บิตจะใช้เวลา 256 ซึ่งหมายความว่าความถี่ของ 490Hz พินที่ 5 และ 6 และ 977Hz พิน 3, 9, 10, 11 เมื่อใช้กับ analogWrite () . มันเป็นไปได้ที่จะเปลี่ยนนาฬิกา prescaling การเปลี่ยนแปลงเหล่านี้ความถี่ PWM เริ่มต้น. ATMEGA พื้นฐานเคาน์เตอร์จับเวลาโมดูลฮาร์ดแวร์เคาน์เตอร์ / จับเวลาที่มีความยืดหยุ่นมากและประกอบด้วยชุดของการลงทะเบียนเพื่อควบคุมพฤติกรรมเช่นเดียวกับเคาน์เตอร์ / จับเวลาลงทะเบียนตัวเอง 16 bit จับเวลามีส่วนใหญ่ลงทะเบียน 16 บิต (แม้ว่าการลงทะเบียนควบคุม 2 แยกต่างหาก 8 บิตคนในตัวนับทั้งหมด). ในรายละเอียดต่อไปนี้ฉันจะต้องใช้ Timer1 ของชื่อลงทะเบียน แต่การตั้งชื่อเป็นระบบและเปลี่ยน '1' อีก หมายเลขที่คุณได้รับชื่อที่สอดคล้องกัน TCCR1A และ TCCR1B เป็นสอง 8 บิตลงทะเบียนควบคุม เหล่านี้ตั้งค่าอัตราส่วนนาฬิกา prescale ตั้งโหมดสำหรับเคาน์เตอร์ / จับเวลาและการตั้งค่าการควบคุมการส่งออกสำหรับหมุด PWM TCNT1 เป็น 16 บิต (สำหรับ Timer1) ค่าตัวนับตัวเอง ในระดับภาษาประกอบการลงทะเบียนนี้จะต้องมีการเขียนหรืออ่านเป็นสอง 8 บิตครึ่งลงทะเบียนและในลำดับที่แน่นอน คอมไพเลอร์ GCC AVR ใช้โดยซอฟต์แวร์ Arduino สร้างโดยอัตโนมัติทั้งสองเข้าถึงราวกับว่านี่คือการถ่ายโอน 16 บิตเดียว แต่ถ้าคุณมีการจัดการการขัดจังหวะที่ยังเข้าถึง 16 ลงทะเบียนบิตในการตั้งเวลาเดียวกับที่คุณจะต้องปกป้องการเข้าถึงโดยการปิดการขัดจังหวะทั่วเข้าถึง. จับเวลาแต่ละคนมี 2 หรือ 3 ช่องที่ควบคุมขาโดยเฉพาะถ้าอยู่ในโหมดการส่งออกที่เกี่ยวข้องมีการตั้งค่าและขาที่ ถูกเปิดใช้งานในขณะที่การส่งออก OCR1A และ OCR1B เป็น 16 bit เอาท์พุทรีจีเปรียบเทียบที่นำไปใช้ทั้งสองช่อง (A และ B) Timer1 ที่มี เมกะมีตัวจับเวลา 3 4 และ 5 ที่แต่ละคนมี 3 ช่อง, A, B และ C คำนึงเดียวกันเกี่ยวกับการถ่ายโอน 16 บิตเป็นสำหรับการลงทะเบียน TCNT1 แน่นอน. อินพุตจับสมัครสมาชิก ICR1 เป็น 16 bit ลงทะเบียนใช้ในการบันทึกค่า ของ TCNT1 เมื่อมีเหตุการณ์เกิดขึ้นภายนอก - โดยปกติจะมีการเปลี่ยนแปลงในขา ICP1 ที่ (Arduino ขา 8) เพียง 16 บิตจับเวลามีการจับภาพการป้อนข้อมูล. พื้นฐานการทำงานของหน่วยร่วมกันมากที่สุดคือโหมดสำหรับเคาน์เตอร์ลงทะเบียน TCNT1 นับขึ้นและ / หรือลงระหว่างค่า BOTTOM (ซึ่งเป็นศูนย์) และ TOP ในบางโหมด TOP ให้บริการโดยการลงทะเบียนเช่น OCR1A หรือ ICR1 ในโหมดอื่น ๆ มันเป็นแบบคงที่หรือ 0xFF 0x1FF หรือ 0x3FF หรือ 0xFFFF (สูงสุด) โหมดหลายเปรียบเทียบ OCR1A และ OCR1B ค่ากับ TCNT1 ในแต่ละนาฬิกาและอาจมีการเปลี่ยนแปลงหมุดผลลัพธ์สำหรับช่องทางเหล่านั้น ในโหมด PWM ขั้นตอนที่ถูกต้องเคาน์เตอร์ฝืนทิศทางเมื่อได้รับไปที่ด้านล่างหรือด้านบนจึงกระโจนทั้งขึ้นและลง ในโหมดอื่น ๆ ที่เคาน์เตอร์เพียงนับขึ้นและรีเซ็ตไปที่ด้านล่าง (มักจะเป็นศูนย์) เมื่อเข้าถึง



















































การแปล กรุณารอสักครู่..
 
ภาษาอื่น ๆ
การสนับสนุนเครื่องมือแปลภาษา: กรีก, กันนาดา, กาลิเชียน, คลิงออน, คอร์สิกา, คาซัค, คาตาลัน, คินยารวันดา, คีร์กิซ, คุชราต, จอร์เจีย, จีน, จีนดั้งเดิม, ชวา, ชิเชวา, ซามัว, ซีบัวโน, ซุนดา, ซูลู, ญี่ปุ่น, ดัตช์, ตรวจหาภาษา, ตุรกี, ทมิฬ, ทาจิก, ทาทาร์, นอร์เวย์, บอสเนีย, บัลแกเรีย, บาสก์, ปัญจาป, ฝรั่งเศส, พาชตู, ฟริเชียน, ฟินแลนด์, ฟิลิปปินส์, ภาษาอินโดนีเซี, มองโกเลีย, มัลทีส, มาซีโดเนีย, มาราฐี, มาลากาซี, มาลายาลัม, มาเลย์, ม้ง, ยิดดิช, ยูเครน, รัสเซีย, ละติน, ลักเซมเบิร์ก, ลัตเวีย, ลาว, ลิทัวเนีย, สวาฮิลี, สวีเดน, สิงหล, สินธี, สเปน, สโลวัก, สโลวีเนีย, อังกฤษ, อัมฮาริก, อาร์เซอร์ไบจัน, อาร์เมเนีย, อาหรับ, อิกโบ, อิตาลี, อุยกูร์, อุสเบกิสถาน, อูรดู, ฮังการี, ฮัวซา, ฮาวาย, ฮินดี, ฮีบรู, เกลิกสกอต, เกาหลี, เขมร, เคิร์ด, เช็ก, เซอร์เบียน, เซโซโท, เดนมาร์ก, เตลูกู, เติร์กเมน, เนปาล, เบงกอล, เบลารุส, เปอร์เซีย, เมารี, เมียนมา (พม่า), เยอรมัน, เวลส์, เวียดนาม, เอสเปอแรนโต, เอสโทเนีย, เฮติครีโอล, แอฟริกา, แอลเบเนีย, โคซา, โครเอเชีย, โชนา, โซมาลี, โปรตุเกส, โปแลนด์, โยรูบา, โรมาเนีย, โอเดีย (โอริยา), ไทย, ไอซ์แลนด์, ไอร์แลนด์, การแปลภาษา.

Copyright ©2024 I Love Translation. All reserved.

E-mail: