Differences

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

Link to this comparison view

pm:lab:lab1 [2020/02/29 12:17]
ana.constantinescu
pm:lab:lab1 [2020/03/03 14:31] (current)
daniel.berbece [5. Resurse]
Line 26: Line 26:
 Transmisia asincronă de date se face la nivel de **cadre**(frames),​ fiecare cadru fiind format din mai mulți biți, având formatul descris în figură. Transmisia asincronă de date se face la nivel de **cadre**(frames),​ fiecare cadru fiind format din mai mulți biți, având formatul descris în figură.
  
- {{ .:lab1:seriala.png | Transmisia serială }} + {{ .:lab1:uart_ctranca.png | Transmisia serială }} 
  
  
Line 101: Line 101:
 ''​UBRRn''​ este registrul care selectează **baud rate**-ul. Are 12 biți. Primii 4 se află în ''​UBRRnH'',​ ceilalți 8 în ''​UBRRnL''​. Valoarea pe care o scriem în ''​UBRRn''​ depinde de frecvența procesorului și de baud rate-ul dorit. În tabelul următor găsiți valorile pentru frecvența de 16 Mhz. ''​UBRRn''​ este registrul care selectează **baud rate**-ul. Are 12 biți. Primii 4 se află în ''​UBRRnH'',​ ceilalți 8 în ''​UBRRnL''​. Valoarea pe care o scriem în ''​UBRRn''​ depinde de frecvența procesorului și de baud rate-ul dorit. În tabelul următor găsiți valorile pentru frecvența de 16 Mhz.
  
-{{ .:lab1:baud_rate.png?nolink |}}+<note tip> 
 +Pentru valorile UBRR pentru 12MHz cautati valorile in acest {{https://​cache.amobbs.com/​bbs_upload782111/​files_22/​ourdev_508497.html | link}} 
 +</​note>​ 
 +{{ pm:lab:lab1:pm-lab01-baudrate.png?nolink |}}
  
 ==== 2.2 Exemplu de utilizare ==== ==== 2.2 Exemplu de utilizare ====
Line 107: Line 110:
 void USART0_init(unsigned int baud) { void USART0_init(unsigned int baud) {
     /* setează baud rate */     /* setează baud rate */
-    ​UBRR0H ​(unsigned char)(baud>>​8);​ +    ​UBRR0 = baud; 
-    UBRR0L = (unsigned char)baud; +    /* UBRR0 este un registru pe 16 biți, la nivel de compilator se vor face doua scrieri de 8 biti */
-    /* UBRR0 este un registru pe 16 biți +
-    Alternativ se poate scrie UBRR0 = baudpentru că la nivel de compilator ​ +
-    ​se vor face două scrieri de 8 biți */+
  
     /* pornește transmițătorul */     /* pornește transmițătorul */
Line 342: Line 342:
       * secțiunea 19.11 este referința pentru registrele I/O       * secțiunea 19.11 este referința pentru registrele I/O
  
-** Task 0  **(1.5p)+** Task 0  **(1p)
 Rulați exemplul pentru USART. Pentru configurările serialei, vedeți fisierul usart.c din schelet. Rulați exemplul pentru USART. Pentru configurările serialei, vedeți fisierul usart.c din schelet.
  
 **Task 1 **(3p) **Task 1 **(3p)
-Configurați USART0 cu următorii parametri: baud rate 19200, 8 biți de date, bit de stop, paritate ​pară. Transmiteți către PC câte un mesaj pentru fiecare eveniment de apăsare/​lăsare a unui buton (ex: se apasă PD6, se transmite “PD6 apăsat”, se lasă PD6, se transmite “PD6 lăsat”, câte o singură dată pe apăsare).+Configurați USART0 cu următorii parametri: baud rate 19200, 8 biți de date, bit de stop, fara paritate. Transmiteți către PC câte un mesaj pentru fiecare eveniment de apăsare/​lăsare a unui buton (ex: se apasă PD6, se transmite “PD6 apăsat”, se lasă PD6, se transmite “PD6 lăsat”, câte o singură dată pe apăsare).
  
-**Task 2 **(2.5p)+**Task 2 **(2p)
 Comandați prin serială generarea in cod Morse a numelui vostru, folosind buzzer-ul. ​ Comandați prin serială generarea in cod Morse a numelui vostru, folosind buzzer-ul. ​
 <​note>​ <​note>​
Line 354: Line 354:
 </​note>​ </​note>​
  
-**Task 3 **(1.5p+**Task 3 **(1p
 Rulați exemplul pentru LCD. Rulați exemplul pentru LCD.
  
-**Task 4** (2.5p+**Task 4** (3p
 Implementați funcțiile din bibliotecă:​ Implementați funcțiile din bibliotecă:​
   * LCD_putCharAt ​   * LCD_putCharAt ​
Line 363: Line 363:
 Puteți folosi funcțiile LCD_writeInstr și LCD_writeData. Puteți folosi funcțiile LCD_writeInstr și LCD_writeData.
   - Utilizați funcțiile implementate pentru a afișa un mesaj pe prima linie a LCD-ului. ​   - Utilizați funcțiile implementate pentru a afișa un mesaj pe prima linie a LCD-ului. ​
 +  - Folositi implementarea anterioara pentru a afisa un mesaj trimis pe USART.
 <note > <note >
 Mesajul trebuie să poată fi deplasat la stânga cu butonul PB2 și la dreapta cu butonul PD6. Limitați deplasarea mesajului astfel încât acesta să nu iasă de pe ecran. Mesajul trebuie să poată fi deplasat la stânga cu butonul PB2 și la dreapta cu butonul PD6. Limitați deplasarea mesajului astfel încât acesta să nu iasă de pe ecran.
 </​note>​ </​note>​
-  - Folositi implementarea anterioara pentru a afisa un mesaj trimis pe USART. 
  
 <note tip> <note tip>
Line 373: Line 373:
  
  
-**Task ​3: **Bonus USART (1p)+**Task ​5: **Bonus USART (1p)
 Configurați printf astfel încât să printeze direct pe USART0. Refaceți exercițiul 1 folosind printf. Configurați printf astfel încât să printeze direct pe USART0. Refaceți exercițiul 1 folosind printf.
  
Line 413: Line 413:
 ===== 5. Resurse ===== ===== 5. Resurse =====
  
-  * {{.:lab1:lab1_skel.zip | Schelet laborator}}+  * {{:pm:lab:​lab1_skel2020.zip | Schelet laborator}}
 <​hidden> ​ * {{.:​lab1:​lcd_schema.zip| Schemă simulare}} ({{.:​lab1:​lcd_schema_2012.zip| varianta 2012}}, cu ATmega16, pentru versiunile de Proteus vechi)</​hidden>​ <​hidden> ​ * {{.:​lab1:​lcd_schema.zip| Schemă simulare}} ({{.:​lab1:​lcd_schema_2012.zip| varianta 2012}}, cu ATmega16, pentru versiunile de Proteus vechi)</​hidden>​
   * {{.:​lab1:​hd44780_datasheet.pdf| Datasheet Hitachi 44780}}   * {{.:​lab1:​hd44780_datasheet.pdf| Datasheet Hitachi 44780}}
   * {{:​pm:​doc8272.pdf | Datasheet ATmega324}}   * {{:​pm:​doc8272.pdf | Datasheet ATmega324}}
 +  * {{https://​cache.amobbs.com/​bbs_upload782111/​files_22/​ourdev_508497.html | AVR Baud Rate Tables}}
 <​hidden> ​ * <​html><​a class="​media mediafile mf_pdf"​ href="/​wiki/​pm/​lab/​lab1?​do=export_pdf">​PDF laborator</​a></​html></​hidden>​ <​hidden> ​ * <​html><​a class="​media mediafile mf_pdf"​ href="/​wiki/​pm/​lab/​lab1?​do=export_pdf">​PDF laborator</​a></​html></​hidden>​
   * Responsabili:​ [[dorin_marian.ionita@cs.pub.ro | Dorin Ionita]] [[ Ana Dragan ]]   * Responsabili:​ [[dorin_marian.ionita@cs.pub.ro | Dorin Ionita]] [[ Ana Dragan ]]
  
pm/lab/lab1.1582971449.txt.gz · Last modified: 2020/02/29 12:17 by ana.constantinescu
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