Konečně se dostávám k článku v němž si ukážeme základní věci ohledně AVR mikročipů.
Co budeme potřebovat?
- Atmel Studio 6
- WinAVR
WinAVR
Tento balík slouží k nainstalování avrdude, což je program, jenž se spouští přes CMD. Pomocí něho se nahrává program na mikročip. Příklad nahrání:
avrdude.exe -F -v -p atmega328p -c arduino -P COM6 -b 57600 -D -U flash:w:main.hex // pro arduino nano z číny
avrdude.exe -F -v -p atmega328p -c arduino -P COM6 -D -U flash:w:main.hex // pro arduino uno ať už z číny nebo ne
Flagy:
- -F – přepsání invalidních signatur
- -v – výstup
- -p – mikročip
- -c – programátor
- -P – seriový port
- -b – baud rate
- -D – vypne auto erase pro flash paměť
- -U – paměťová operace, v příkladu zapisujeme soubor main.hex na mikročip
Základy
https://pastebin.com/rreSWQb3
- F_CPU
- Vždy definujte, jestli-že jej nedefinujete a nebude váš oscilátor odpovídat defaultnímu F_CPU tak se kód bude chovat buď pomale nebo rychle, také vám TIMER a delay funkce nebudou fungovat správně.
- DDRx
- Kontroluje I/O status PORT pinů
- 1 – výstup
- 0 – vstup
- PORTx
- Kontroluje výstupní status pinů
- PINx
- Čte vstupní statusy pinů
- Interrupt
- Interrupt je přerušení kódu v případě, že se stane nějaká událost, při které se to spustí
- Př. 1: Nastavíme TIMER, že co 1 sekundu se zavolá, ukončí se kód a přepne do ISR funkce
- Př. 2: Nastavíme RX UART, v tomto případě pokud nám něco příjde UARTem tak se provede ISR funkce
- UART – seriová komunikace
- Oscilátor
- Oscilátor kmitá na nějaké frekvenci, 1MHz, 4MHz, 8MHz, 16MHz, 20MHz, … tím nám určuje jak rychlý bude čip, čim větší kmit, tím je čip rychlejší
A teď už nějaký příklad z praxe! Tento kód nám bude co 100ms zapínat a vypínat LED diodu
https://pastebin.com/kLAkNhwG
Hodně štěstí a úspěchů při programování AVR mikročipů!