
English: 
If you're working on a more complex project based around the microcontroller like this alarm clock right here
Then you might have noticed that precisely timed events are mandatory
For example this second counter has to count up to exactly 60 seconds before increasing the minutes counter
Or the to builder date of the clock should blink every half seconds or the Led Matrix
Figure should move one step to the right every quarter seconds while the rows of the Led Matrix are
simultaneously multiplexed at a frequency of 82 Hertz
All of those tiny events and even generating a Pwm signal the variable frequency
in order to create an alarm sound
requires so-called timers, and it doesn't matter whether you use an
MSP430 Microcontroller or A
Pigman controller or the Admirer Predator 8 p microcontroller commonly found on the Arduino uno
They all feature timers

Indonesian: 
Jika Anda bekerja pada proyek yang lebih kompleks berbasiskan mikrokontroler seperti jam alarm ini di sini
Maka Anda mungkin telah memperhatikan bahwa peristiwa tepat waktu adalah wajib
Misalnya penghitung kedua ini harus menghitung hingga tepat 60 detik sebelum menambah penghitung menit
Atau tanggal pembuat jam harus berkedip setiap setengah detik atau Matriks Led
Gambar harus bergerak satu langkah ke kanan setiap seperempat detik sementara deretan Led Matrix berada
secara bersamaan multiplexing pada frekuensi 82 ​​Hertz
Semua peristiwa kecil itu dan bahkan menghasilkan sinyal PWM, frekuensi variabel
untuk membuat suara alarm
membutuhkan yang disebut timer, dan tidak masalah apakah Anda menggunakan
MSP430 Mikrokontroler atau A
Pengontrol Pigman atau mikrokontroler Admirer Predator 8 p yang biasa ditemukan di Arduino uno
Mereka semua fitur timer

Indonesian: 
begitu dalam video ini
Mari kita lebih dekat
lihat timer dari Onaga siap muncul mempelajari dasar-dasar cara membuat acara tepat waktu dan
akhirnya membuat sirkuit kecil yang mengeluarkan sinyal PWM dengan siklus tugas variabel dan
frekuensi yang naik hingga 8 Megahertz
Mari kita mulai
Pertama, mari kita lihat contoh sketsa Arduino yang sangat sederhana
Di sini kita tarik pin digital 3 hi, tunggu 1000 milidetik atau 1 detik untuk pin digital rendah
dan tunggu beberapa detik
Setelah mengunggah kode dan menghubungkan resistor di atas ke pin

English: 
so in this video
Let's have a closer
look at the timer's of the Onaga up ready to appear learn the basics of how to create precisely timed events and
ultimately create a small circuits that spits out a Pwm signal with variable duty cycle and
frequency which goes up to 8 Megahertz
Let's get started
First off, let's take a look at a very simple Arduino sketch example
Here we pull digital pin 3 hi wait for 1000 milliseconds or 1 seconds for the digital pin low
and wait for another seconds
After uploading the codes and connecting a led above resistor to the pin

Indonesian: 
Kita bisa melihat bahwa sebenarnya itu berkedip setiap detik yang pasti dianggap sebagai peristiwa waktu, tetapi ada dua masalah
pertama jika saya akan menekan tombol sebagai input ke sirkuit dan
Edit kode sehingga led tidak aktif jika saya menekan
Kita dapat melihat bahwa input sering diabaikan oleh mikrokontroler
alasan untuk itu adalah bahwa eksekusi perintah sebagian besar waktu terjebak di dalam fungsi penundaan dan
Jadi mengabaikan perintah input dan alasan kedua adalah mengapa fungsi da menjanjikan waktu tunggu 1 milidetik?
Kita dapat melihat bahwa dalam periode waktu yang lebih lama nilai ini hanyut oleh beberapa milidetik
jadi untuk mengatasi masalah itu kita bisa menggunakan salah satu dari tiga timer pengagum 3 - ap
Yang seperti yang bisa kita lihat dalam diagram blok mikrokontroler lebih seperti peripheral
Yang berarti eksekusi perintah mikrokontroler mengatur mereka hanya satu kali dan kemudian mereka melakukan pekerjaan mereka?
Terus menerus tanpa menyumbat loop kode utama sebagai contoh

English: 
We can see that in fact it blinks every seconds which definitely counts as a time events, but there are two problems
firstly if I would either push button as an inputs to the circuits and
Edit the code so that the led would stay off if I press
We can see that the input gets most of the time ignored by the microcontroller
the reason for that is that the command execution is most of the time stuck inside the delay function and
Thus ignores the input commands and the second reason is that why the da function promises a waiting time of 1 milliseconds?
We can see that over longer periods of time this value drifts off by a couple of milliseconds
so to solve those problems we can use one of the three timers of the admirer 3 - a p
Which as we can see in the block diagram of the microcontroller are more like peripherals
Which means the microcontrollers command execution sets them up only one time and then they do their job?
Continuously without clogging up the main code loop as an example

English: 
I will be using the 16-bit timer 1 which certainly offers a lot of useful features
But let's start with the basics the normal mode
To activate it. We have to set the
WGM 13 12 11 and 10 bits to 0
Which can be found in the TCC R1A and TCC R1B register?
so let's simply set all those bits to 0
But there's one the CS 10 bits
Which is responsible for the pre scalar which I will talk about in a second which we have to set to 1
now if I upload the code like this the TC and t 1 register
counts up one step each time the 16 megahertz clock completes the periods and
Since the counter is a 16-bit register. We can store
65,536 Steps which means the Maximum value is
65535

Indonesian: 
Saya akan menggunakan timer 16-bit 1 yang tentunya menawarkan banyak fitur berguna
Tapi mari kita mulai dengan dasar-dasar mode normal
Untuk mengaktifkannya. Kita harus mengatur
WGM 13 12 11 dan 10 bit ke 0
Yang dapat ditemukan di register TCC R1A dan TCC R1B?
jadi mari kita atur semua bit itu ke 0
Tapi ada satu bit CS 10
Yang bertanggung jawab atas skalar pra yang akan saya bicarakan dalam satu detik yang harus kita setel ke 1
sekarang jika saya mengunggah kode seperti ini, TC dan register t 1
menghitung satu langkah setiap kali jam 16 megahertz menyelesaikan periode dan
Karena penghitung adalah register 16-bit. Kita bisa menyimpan
65.536 Langkah yang berarti nilai maksimum adalah
65535

Indonesian: 
setelah mencapai nilai maksimum ini, counter D meluap
Mulai kembali pada 0 hitung lagi dan ulangi proses ini berulang-ulang
Tetapi fakta yang paling penting adalah bahwa ketika counter overflow ia menetapkan apa yang disebut flag overflow di ti
Daftar Fr1
Itu berarti bahwa dengan mengaktifkan overflow menginterupsi bit yang tidak dapat di omsk one register
Kita dapat membuat interupsi overflow, mari kita jalankan fungsi setiap kali penghitung meluap
dalam kasus kami V16 sinyal clock megahertz akan sama dengan 1 detik
Enthalpy Nilai register maksimum
65535 Kejahatan sekitar 4 milidetik yang juga dikonfirmasi oleh output monitor serial
Sekarang untuk menambah waktu sampai terjadi overflow. Kita dapat menggunakan skalar pra yang berbeda untuk Mengurangi durasi langkah 16 Megahertz

English: 
after reaching this maximum value D counter overflows
Starts back at 0 count up again and repeats this process over and over again
But the most important fact is that when the counter overflows it sets a so-called overflow flag in the ti
Fr1 register
That means that by activating the overflow interrupts unable bits in the omsk one register
We can create an overflow interrupt let's execute the function each time the counter overflows
in our case V16 megahertz clock signal would equal 1 seconds
Enthalpy Maximum register value of
65535 Evils around 4 milliseconds which was also confirmed by the output of the serial monitor
Now to increase the time until the overflow occurs. We can use different pre scalars to Decrease the 16 Megahertz step duration

English: 
For example if we set the Cs. 12 bit instead of the Cs. 10 bits. We use a prescaler of
256
Which means the new overflow time should be around one point zero four seconds or around?
1048 milliseconds as shown by the severe outputs
now this time the interrupt is definitely usable when it comes to blinking an led and
Certainly keeps the main loop responsive to other inputs, but we still didn't create a precise one second time event yet
To do that we could simply increase the start value of the counter register
So that it precisely needs one second to reach its maximum value
the formula to calculate the start value looks like this and
To no surprise it delivers us the required value to create a precise one-second interrupts
But let's say we need two interrupts one at 1/4 seconds and one at half a seconds

Indonesian: 
Misalnya jika kita mengatur Cs. 12 bit, bukan Cs. 10 bit. Kami menggunakan prescaler dari
256
Yang berarti waktu luapan baru harus sekitar satu titik nol empat detik atau sekitar?
1048 milidetik seperti yang ditunjukkan oleh output parah
sekarang kali ini interupsi sudah pasti dapat digunakan untuk berkedip sebuah led dan
Tentu saja membuat loop utama responsif terhadap input lain, tetapi kami masih belum membuat acara kedua kalinya yang tepat
Untuk melakukan itu kita cukup meningkatkan nilai awal dari register penghitung
Sehingga dibutuhkan satu detik untuk mencapai nilai maksimumnya
rumus untuk menghitung nilai awal terlihat seperti ini dan
Tidak mengherankan itu memberi kita nilai yang diperlukan untuk membuat interupsi satu detik yang tepat
Tetapi katakanlah kita membutuhkan dua interupsi satu per 1/4 detik dan satu per setengah detik

English: 
For that we could use the CTC modes aka clear timer on compare Match modes
Which we can activate by setting b. WGM twelve bits to 1
this time the counter t CNT1 still counts upwards like usual
But additionally we got to compare registers Oc O 1a and Oc R1b
Whose value get constantly compared to the counter value and if they match a compare match flag is triggered?
Which we can use in the codes to create two independent compare match interrupts
But of course only if we said the compare match interrupt enable bits before hands
It is also mentionable that the top value is not
65535 Anymore It is the Ocr one a value in stats
So by using the simple formula we can calculate a value of 30
1249 for the Ocr one a register to create the hop second interrupts and by using the same formula

Indonesian: 
Untuk itu kita bisa menggunakan mode CTC alias hapus timer pada mode Match Match
Yang dapat kita aktifkan dengan mengatur b. WGM dua belas bit menjadi 1
kali ini penghitung t CNT1 masih terhitung seperti biasa
Tetapi juga kita harus membandingkan register Oc O 1a dan Oc R1b
Nilai siapa yang terus-menerus dibandingkan dengan nilai penghitung dan jika mereka cocok dengan bendera pencocokan pembanding dipicu?
Yang dapat kita gunakan dalam kode untuk membuat dua interupsi pertandingan bandingkan yang independen
Tapi tentu saja hanya jika kita mengatakan interupsi match match memungkinkan bit di tangan
Juga disebutkan bahwa nilai tertinggi tidak
65535 Lagi Ini adalah salah satu nilai dalam statistik
Jadi dengan menggunakan rumus sederhana kita dapat menghitung nilai 30
1249 untuk Ocr satu register untuk membuat hop kedua menyela dan dengan menggunakan rumus yang sama

Indonesian: 
Kita dapat menentukan nilai lima belas ribu enam ratus dua puluh empat untuk ocr one b register untuk interupsi seperempat detik
Pada saat ini. Saya pikir membaca acara waktu yang tepat bukan masalah lagi
Jadi mari kita beralih ke mode Pwm cepat delapan bit dengan mengatur bit
WGM Twelve and Ten to one
Tahun tambahan kita harus mengatur Com1 A1 dan
com1 B1 ke biner satu juga untuk mengaktifkan output non-pembalik dari Oc satu a dan
Oc satu jauh di mana sesuai dengan pemetaan pin controller saya
sama dengan pin sembilan dan Sepuluh
Sekarang prinsip fungsional cukup dekat dengan mode CTC
Kecuali bahwa penghitung hanya naik ke nilai 8-bit saat ini
sangat maksimal
255 dan
pin output Oc 1 a dan Oc 1 ditarik output tinggi yang pernah membandingkan kecocokan dengan nilai register yang terjadi dan
mengumpul output rendah ketika konter meluap

English: 
We can determine a value of fifteen thousand six hundred twenty four for the ocr one b register for the quarter second interrupts
At this point. I think reading suitable time events is not a problem anymore
So let's move on to the eight bits fast Pwm modes by setting the bits
WGM Twelve and Ten to one
additional Year we have to set Com1 A1 and
com1 B1 to binary one as well to activate the non-inverting output of the Oc one a and
Oc one deep in which according to the pin mapping of the my controller
equals pin nine and Ten
Now the functional principle is pretty close to the CTC mode
Except that the counter only goes up to an 8-bit value this time
so maximum of
255 and the
output pin Oc 1 a and Oc 1 be pulled output high ever compare match with the register values occurs and
pooled output low when the counter overflows

Indonesian: 
Dengan cara ini kita dapat memvariasikan nilai register untuk membuat siklus tugas variabel
yang dapat kita lakukan dalam suatu rangkaian dengan menambahkan potensiometer dan
memanfaatkan fungsi peta dan
untuk mencapai frekuensi tertinggi dari 62 poin Five Kilo Hertz dari sinyal Pwm
Kita harus menggunakan prescaler terkecil dari satu
Sekarang sinyal PWM ini sudah cukup berguna untuk banyak aplikasi
Tetapi kita dapat melakukan lebih baik lagi dengan mengaktifkan mode Pwm cepat
Yang menggunakan ICr satu daftar sebagai nilai teratas?
register ini biasanya digunakan untuk menangkap input tetapi di sini kita dapat mengorbankannya untuk memvariasikan nilai teratas di antaranya
0 dan 255
Dengan menambahkan potensiometer kedua
variasikan frekuensinya hingga delapan Megahertz
Meskipun masih dapat menyesuaikan nilai ocr di area frekuensi yang lebih tinggi

English: 
This way we can vary the register value would to create a variable duty cycle
which we can do in a circuit by adding a potentiometer and
utilizing the map function and
to reach the highest possible frequency of 62 point Five Kilo Hertz of the Pwm signal
We have to utilize the smallest prescaler of one
Now this Pwm signal is already pretty useful for many applications
But we can do even better by activating a fast Pwm mode
Which uses the ICr one register as the top value?
this register is usually utilized for input capturing but here we can sacrifice it to vary the top value between
0 and 255
By adding a second potentiometer
vary the frequency up to eight Megahertz
While still being able to adjust the ocr one a value in the higher frequency areas

Indonesian: 
Dan dengan itu dikatakan Anda sekarang akrab dengan dasar-dasar timer
Tapi jangan ragu untuk membaca 100 halaman eddeet Mega 32 Ap edd
didedikasikan untuk timer untuk belajar lebih banyak
Selalu jangan lupa untuk suka berbagi dan berlangganan, tetap kreatif, dan saya akan melihat Anda lain kali

English: 
And with that being said you are now familiar with the basics of timers
But feel free to read the 100 pages of the edd Mega 32 Ap datasheet
dedicated to timers to learn even more as
Always don't forget to like share and subscribe stay creative, and I will see you next time
