Základy programování AVR mikročipu

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ů!

Leave a Reply

Your email address will not be published. Required fields are marked *