User Tools

Site Tools


pb171:vyuka

PB171

  • Taught in english/czech
  • 2+1 credits (colloquium) - home preparation supposed
  • Attendance - up to one unjustified absence
  • Defence - practical tasks + consultations
  • Contact: Zdeněk Matěj, xmatej@fi.muni.cz, B401

Content

  • Architecture of 8-bit controllers (PIC12 family).
  • Assembly language for target platform.
  • General purpose I/O.
  • Timers and interrupt handling.
  • EEPROM handling.
  • Applications of the analog-digital converter.
  • C language compiler for 8-bit platforms.
  • Using C language for target platform-
  • Controlling shift register.
  • Bus drivers: UART, SPI, I2C.
  • Advanced peripherals.
  • Semestral project.

Dokumentace

1. lecture

2. lecture

  • MPLAB + XC8
  • Příklad programu v C

3. lecture

  • Ex. 1 - rozblikejte LED diodu pomocí blokujícího přerušení s NOP
  • Ex. 2 - pomocí tlačítka řeště přepínání LEDek mezi dvěma stavy (použijte debouncing)

4. lecture

  • Ex. 1 - rozblikejte LED0 pomocí Timer0 a LED1 pomocí Timer1 bez použití přerušení
  • Ex. 2 - příklad Ex. 1 upravte na blikání LED pomocí přerušení
  • Obsluha přerušení

5. lecture

  • Ex. 1 - pomocí tlačítka (včetně ošetření) přepínejte LED mezi sebou (vždy svítí jen jedna)
  • Ex. 2 - upravte příklad 1 - uložte si aktuální stav, aby po resetu napájení zůstala svítít stejná LED
  • EX. 3 - pomocí funkce Watchdog zajistěte reset procesoru, pokud se tlačítko nestiskne alespoň jednou za sekundu

6. lecture

  • Dokončete cvičení z předcházející hodiny
  • Ex. 1 - pomocí Timerů vytvořte efekt postupně pohasínající a opět stmívající se LED diody

7. lecture

  • Ex.1 - pomocí potenciometru ovládejte svit LED diod
  • Seznámení s kitem YuniPIC - YuniPIC 1.1 - schéma
  • Konfigurace

8. lecture

  • UART (na kitu YuniPIC - UART2 připojen pomocí FTDI 232 na USB)
  • Ex.1 - Pomocí čísla zaslaného po UART rozhraní rozsviťte odpovídající počet LED diod (LED0-LED5).
  • Ex.2 - Zasílejte do terminálu dobu stisku a označení tlačítka.
  • Konfigurace
  • Odeslání znaku
  • Příjem znaku

9. lecture

  • Funkce printf() a scanf()…

XC8

Překladač XC8 poskytuje následující funkce pro obsluhu standardního vstupu a výstupu.

char getch (void);
char getche (void); 
int getchar (void);
char * gets (char * s);

void putch (char c);
int putchar (int c);
int puts (const char * s);
int printf (const char * fmt, ...);

Funkce putch() a getch()/getche(), které představují základní rozhraní pro zápis a čtení znaku, ale nejsou v knihovně implementovány a jejich definice je ponechána na programátorovi. Pokud tyto funkce v konkrétním projektu zavedeme a definujeme například tak, že budou realizovat čtení a zápis na sériový port, sériový port se tím stává standardním rozhraním a funkce jako gets() a printf() budou funkční právě s tímto rozhraním.

  • Ex.1 - Implementujte funkce putch() a getch() a otestujte funkcionalitu na funkci printf() a scanf()
  • Ex.2 - Implementujte kruhový buffer pro čtení a zápis znaků z rozhraní UART (pro příjem a odeslání využijte přerušení)

10. lecture

  • Ovládání displeje Hitachi HD44780 - Display driver
  • Ex.1 - Write “Hello word!” on both line of display.
  • dog_lcd.c
  • dog_lcd.h
  • simdelay.c
  • simdelay.h

—-

Odkazy:

pb171/vyuka.txt · Last modified: 2017/05/11 10:49 by veskrna