Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:lab:lab2-2023 [2026/03/06 12:23]
irina.bradu [3. Exerciții]
pm:lab:lab2-2023 [2026/03/09 10:53] (current)
jan.vaduva [2.4. Lucrul cu Timer-ul]
Line 371: Line 371:
 { {
   TIMSK1 |= (1 << OCIE1A);   TIMSK1 |= (1 << OCIE1A);
 +  // ...
 } }
 int main() int main()
 { {
-  sei(); ​         // activăm primirea întreruperilor 
   init_timer1(); ​ // apelăm funcția de inițializare   init_timer1(); ​ // apelăm funcția de inițializare
 +  sei(); ​         // activăm primirea întreruperilor
   // ...   // ...
 } }
Line 450: Line 451:
 Configurați ​ **pin change interrupt** pentru butonul BTN1 (PB2). Configurați ​ **pin change interrupt** pentru butonul BTN1 (PB2).
  
-Implementați rutina de tratare a întreruperii ''​ISR(PCINT0_vect)''​. In ISR setați un flag atunci când butonul este apăsat. In ''​main()''​ detectați flag-ul și transmiteți pe USART mesajul: "​**PRESS**"​.+Implementați rutina de tratare a întreruperii ''​ISR(PCINT<​n>​_vect)''​. In ISR setați un flag atunci când butonul este apăsat. In ''​main()''​ detectați flag-ul și transmiteți pe USART mesajul: "​**PRESS**"​.
  
 **Task 2.2 Debouncing (1p)** **Task 2.2 Debouncing (1p)**
Line 472: Line 473:
 Folosiți funcția ''​uptime_ms()''​ pentru a implementa un mini-scheduler cooperativ care execută mai multe taskuri periodice. Implementați în bucla principală un mecanism care verifică periodic momentul curent (''​now = uptime_ms()''​) și execută următoarele taskuri: Folosiți funcția ''​uptime_ms()''​ pentru a implementa un mini-scheduler cooperativ care execută mai multe taskuri periodice. Implementați în bucla principală un mecanism care verifică periodic momentul curent (''​now = uptime_ms()''​) și execută următoarele taskuri:
  
-  *  T1 – Heartbeat (periodă ​100 ms) - Comută starea LED-ului albastru.+  *  T1 – Heartbeat (periodă ​1000 ms) - Comută starea LED-ului albastru.
   *  T2 – Logger (periodă 500 ms) - Transmite pe USART mesajul: **t=<​uptime_ms>​ ms**   *  T2 – Logger (periodă 500 ms) - Transmite pe USART mesajul: **t=<​uptime_ms>​ ms**
-  *  T3 – Status (periodă ​1000 ms) - Comută starea LED-ului roșu.+  *  T3 – Status (periodă ​3000 ms) - Comută starea LED-ului roșu.
pm/lab/lab2-2023.1772792583.txt.gz · Last modified: 2026/03/06 12:23 by irina.bradu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0