Atmel Studio stáhneme na stránkách Microchipu, který Atmel nedávno koupil:
https://www.microchip.com/en-us/development-tools-tools-and-software/microchip-studio-for-avr-and-sam-devices
Někde poměrně dole je link ke stažení:
Po úspěšné instalaci můžeme zkusit založit nový projekt. V menu File použijte New a v něm Project...
Vyberte typ GCC C Executable. Pojmenujte, nastavte vhodné místo pro vytvoření projektu.
Dále vyberte typ procesoru. To se velmi usnadní, pokud do vyhledávacího pole (1) napíšete kus jeho názvu, v našem případě 416. Pak vlevo (2) z již omezených možností vyberte ATtiny416. (pokud místo toho vyberete variantu s auto, bude to fungovat také, ale někdy nastanou nečekané komplikace)
Po založení projektu byste měli vidět cca toto:
Nyní lze zkusit program, který třeba bliká s LEDkou na modulu Xnano:
|
Co znamenají jednotlivé řádky?
#include avr/io... - V souboru io.h je popis našeho procesoru, aby překladač věděl, co má dělat když narazí třeba na PORTB.DIR.
#define F_CPU (20000000UL/6) - #define dělá jen to, že překladač první položku za ním nahrazuje druhou. V našme případě místo F_CPU dá číslo 20 milionů děleno šesti. To se mu bude hodit hned o řádek níž v souboru delay.h, kde se právě F_CPU vyskytuje a říká, jakou frekvenci procesoru má knihovna očekávat.
#include util/delay... - Knihovna delay obsahuje dvě funkce: _delay_ms, která čeká zadaný počet milisekund a _delay_us, která čeká zadaný počet mikrosekund.
int main(void) { - Začátek deklarace funkce jménem main, která se spustí při zapnutí, nebo resetu procesoru.
PORTB.DIR = 0b00100000; - Obsah registrů .DIR definuje, který vývod daného portu je vstupní (0), nebo výstupní (1). V našem případě je na třetím bitu od konce připojená LEDka, tak tam potřebujeme výstup.
while (1) { - Začátek cyklu while, který se opakuje, pokud je splněna podmínka v závorce. V našem případě máme místo podmínky 1, tak je "splněna" vždy a cyklus nekonečný. Na tomto místě mu říkáme hlavní smyčka programu.
PORTB.OUTTGL = 0b00100000; - Jedničky vložené do registru .OUTTGL (output toggle) vedou k inverzi odpovídajících bitů na výstupu daného portu. Protože 1 je na pozici kde máme LEDku, dojde k jejímu rozsvícení, nebo zhasnutí, pokud už svítila.
_delay_ms(200); - Čeká 200 milisekund, jinak nic nedělá.
|
Zde vidíme kousek schématu modulu ATtiny416 Xplained nano, který používáme:
|
Na bitu 5 portu B (PB5) je LEDka, jak už víme. Je zapojena směrem z napájení na port, takže svítí při 0 a nesvítí při 1. Toto "divné" uspořádání je reliktem z dob, kdy výstupy číslicových obvodů technologie TTL dokázaly dobře sepnout na GND a tím vyrobit 0, ale "kvalita" úrovně 1 byla výrazně horší. Dnes máme obvody CMOS, které mají výstupy symetrické.
Na bitu 4 portu B (PB4) je připojeno tlačítko, které ho při stisku zkratuje na GND, takže vznikne 0. Pro správnou činnost je potřeba připojit ještě odpor na napájení, aby při puštění tlačítka mohla vzniknout 1. Takovému odporu říkáme pull-up a v našem případě je součástí procesoru, jen ho musíme zapnout při konfiguraci portu.
|
(Celé schéma zde:
https://ww1.microchip.com/downloads/en/DeviceDoc/ATtiny416_Xplained_Nano_Schematics.pdf)
Jdeme na to! Zeleným tlačítkem "play", pardon "Start debugging" zahájíme proces, kdy je program přeložen, nahrán do připojeného procesoru a spuštěn:
Pokud je celý program přeložitelný, dojdeme k chybové hlášce na obrázku vpravo. Není nastaveno programovací zařízení.
Po "odklepnutí" OK se nám objeví záložka s nastavením projektu a v ní otevřená stránka "Tool". Tam vybereme programátor s mEDBG:
(Jestli položku s mEDBG nevidíte, možná není modul správně připojen k počítači)
A můžeme znovu spustit nahrávání programu. Pokud byl program nejen přeložitelný, ale i správně, měla by začít blikat LEDka. ... Nebo blikat jinak, pokud už předtím blikala. Pokud si nejste jisti, lze zkustit změnit dobu čekání, jestli se po novém nahrání programu rychlost změní.
Nyní zkusíme použít tlačítko. Po dobu jeho držení bude jiná rychlost blikání. Ale ještě předtím se naučíme nějaké drobnosti okolo:
Proč jsou některé části komentářů červeně podtržené? Není správně nastaven jazyk a nelíbí se anglické kontrole pravopisu.
Přes menu Tools se dostaneme k následujícím nastavením a máme-li české Widows, je vyhráno:
Jen je trochu otravné, že musíme celé Studio ukončit a znovu pustit, aby se tato změna projevila.
České kontrole pravopisu již české komentáře nevadí:
Nyní si dobře pročtěte komentáře a všimněte si rozdílu v programu oproti předchozímu screenshotu. Ten původní na tlačítko nereagoval.
Podrobnosti ohledně priorit operátorů:
https://docs.microsoft.com/cs-cz/cpp/c-lang...
A ještě nějaké povídání o operátorech:
http://kmlinux.fjfi.cvut.cz/~fabiadav/cecko/poz...
Aha tak pardon, s tou češtinou je to složitější:-)
Kontrola proběhne až po nějaké době a je pořád anglicky. Jen v tom nastavení přibyla možnost "Get additional languages". Ale obávám se, jestli by pak nebylo celé AS česky. A to by nebyl dobrý nápad, téměř všechny informace na internetu se týkají výchozí, anglické verze.
Ale kdo chcete, zkuste to a pak řekněte jak to dopadlo, zda je celé AS česky, nebo jen neprudí u českých textů.
A co když Xnano ještě nemám?
Nejde sice zjistit zda program funguje, ale jde zkusit, zda je napsán tak, aby mu rozuměl překladač. K tomu jsou dvě tlačítka s něčím jako šipkou do kyblíku s kamením:-) První je
Build project, to spustí překlad právě otevřeného projektu (totéž dělá dříve zmíněné zelené
Start debugging, to ale potom navíc spustí nahrávání programu a nakonec i připojení k debuggeru, abyste program mohli třeba zastavit a zkoumat co přesně dělá). Druhý "kyblík" je
Build solution, které spustí překlad všech projektů v aktuálním solutionu.
A takhle to dopadne, pokud v předchzím programu zapomenete na jeden středník:
Doubleclick na řádek ve výpisu chyb nás dovede na místo, kde si jí překladač všimnul.
Úlohy 1-5 ke stažení
Stáhněte si soubor
blikadla_1-5.rar. Archiv rozbalte nejlépe do
dokumenty\AtmelStudio\blikadla. Pokud Váš počítač neví co s ním, je potřeba nainstalovat
Winrar.
Celý solution otevřete prostřednictvím souboru
blikadla.atsln.
Úlohy 1-4 jsou vyešené, 5 je pouze založená a má komentář se zadáním. Cílem je, aby LEDka blikala rychle nebo pomalu, podle toho, zda jste tlačítko stiskli krátce, nebo dlouze.
Zde vidíme způsob, jak přepnout aktivní projekt v rámci jednoho solutionu: Na projekt klikneme pravou a vybereme "Set as startup project".
Pokud jsou ještě otevřené nějaké soubory z jiného projektu, je dobré je předem zavřít, jinak si v nich snadno uděláte zmatky.