This shows you the differences between two versions of the page.
|
pm:lab:lab1-2021 [2021/03/17 21:56] alexandru.predescu [2.4. Lucrul cu Timer-ul] |
pm:lab:lab1-2021 [2021/03/18 14:39] (current) alexandru.predescu [4. Resurse] |
||
|---|---|---|---|
| Line 67: | Line 67: | ||
| <file c> | <file c> | ||
| // exemplu de configurare pentru Timer 1 în mod CTC, care va genera întreruperi cu frecvența de 2Hz | // exemplu de configurare pentru Timer 1 în mod CTC, care va genera întreruperi cu frecvența de 2Hz | ||
| - | OCR1A = 31250; // compare match register 16MHz/256/2Hz | + | OCR1A = 31249; // compare match register 16MHz/256/2Hz-1 |
| TCCR1B |= (1 << WGM12); // CTC mode | TCCR1B |= (1 << WGM12); // CTC mode | ||
| TCCR1B |= (1 << CS12); // 256 prescaler | TCCR1B |= (1 << CS12); // 256 prescaler | ||
| - | TIMSK1 |= (1 << OCIE1A); // enable timer compare interrupt | ||
| </file> | </file> | ||
| | | ||
| Line 218: | Line 217: | ||
| void configure_timer1() { | void configure_timer1() { | ||
| - | // exemplu de configurare pentru Timer 1 în mod CTC, care va genera întreruperi cu frecvența de 2Hz | + | // exemplu de configurare pentru Timer 1 în mod CTC |
| + | // care va genera întreruperi cu frecvența de 2Hz | ||
| OCR1A = 31249; // compare match register 16MHz/256/2Hz-1 | OCR1A = 31249; // compare match register 16MHz/256/2Hz-1 | ||
| TCCR1B |= (1 << WGM12); // CTC mode | TCCR1B |= (1 << WGM12); // CTC mode | ||
| TCCR1B |= (1 << CS12); // 256 prescaler | TCCR1B |= (1 << CS12); // 256 prescaler | ||
| - | TIMSK1 |= (1 << OCIE1A); // enable timer compare interrupt | ||
| } | } | ||
| void init_timer1() { | void init_timer1() { | ||
| - | TIMSK1 |= (1 << OCIE1A); | + | TIMSK1 |= (1 << OCIE1A); // enable timer compare interrupt |
| } | } | ||
| Line 346: | Line 345: | ||
| {{:pm:lab:lab1:manage_libraries.jpeg?300|}} | {{:pm:lab:lab1:manage_libraries.jpeg?300|}} | ||
| - | **Task 3** Configurați un Timer folosind biblioteca Arduino [[http://example.com|TimerOne]] astfel încât să aprindeți un LED o dată pe secundă | + | **Task 3** Configurați un Timer folosind biblioteca Arduino [[https://www.arduino.cc/reference/en/libraries/timerone/|TimerOne]] astfel încât să aprindeți un LED o dată pe secundă |
| <note important>Biblioteca ''TimerOne'' nu vine preinstalată cu Arduino. Urmăriți modul de instalare a bibliotecilor externe.</note> | <note important>Biblioteca ''TimerOne'' nu vine preinstalată cu Arduino. Urmăriți modul de instalare a bibliotecilor externe.</note> | ||
| Line 383: | Line 382: | ||
| * {{:pm:atmel-7810-automotive-microcontrollers-atmega328p_datasheet.pdf|Datasheet Atmega 328p}} | * {{:pm:atmel-7810-automotive-microcontrollers-atmega328p_datasheet.pdf|Datasheet Atmega 328p}} | ||
| + | * Arduino UNO pinout | ||
| + | * {{:pm:lab:uno.jpg?200|pinout Arduino UNO}} | ||
| * Responsabili: [[Adrian.Mocanu@gmail.com | Adrian Mocanu]] | * Responsabili: [[Adrian.Mocanu@gmail.com | Adrian Mocanu]] | ||
| ===== 5. Linkuri utile ===== | ===== 5. Linkuri utile ===== | ||