Pro mnohé připomínky ze strany čtenářů, jsem se rozhodl pro změnu stylu, jakým budu psát tento seriál. Především ubyde teorie. Budu se odkazovat na externí zdroje, případně vysvětlení teorie bude probíhat pouze v nutné míře. Tento a další dily budou tedy orientovany čistě prakticky.
Co máme za sebou
Vminulém díle jsme si ukázali, jak použít PonyProg pro programování mikrokontrolérů Atmel AVR. Přepokládám, že znalosti z minulého dílu jste si osvojili, a proto pro vás již bude hračkou nahrát jakýkoliv pozdější projekt do procesoru. Proces nahráváni procesoru proramem PonyProg tedy uzavřeme. Výjimkou bude vysvětlení LockBitů v některém z pozdějších dílů.
Program pro minulé cvičení byl vytvořen a zkompilován v AVR Studiu. Postup pro jeho obsluhu jsme si již vysvětlili v jednom z prvních dílů. Byl napsán v assembleru. Tento jazyk (jazyk symbolických adres) jsem zvolil proto, že umožňuje programátorovi „doslova vidět“, jak procesor pracuje. Každou instrukci, kterou napíšete, procesor jednotlivě zpracuje. Instrukce se už nedělí na jiné podčásti. Je pouze přeložena na číslo, a to je zpracováno ALU (aritmeticko-logická jednotka). Je to prakticky nejnižší úroveň, na které můžete s procesorem pracovat.
Směrem vzhůru
Jak už jsme si ale řekli na začátku našeho seriálu, procesor patří mezi tzv. RISCové procesory, což jsou procesory s redukovanou instrukční sadou. To umožňuje mimo jiné jejich efektivní nasazení s programy napsanými ve vyšším programovacím jazyce. My se budeme v dalších dílech setkávat pouze s jedním z nich. A tím je jazyk C.
Abychom však mohli programy vytvářet, potřebujeme, stejně jako v případě assemleru, nějaký kompilátor. Pro assembler využíváme AVR studio. Pro C máme mnoho možností, jak začít. Někeré najdete v mém článku Vývojové nástoroje pro Elektroniku. My si vybereme kompilátor pro Windows, a to velmi oblíbený, CodeVision AVR. Jedná se o komerční produkt, jenž je však do 2k výsledného kódu zdarma. Omezením je také nemožnosti použítí některých knihoven. Pro profesoinální využítí, lze takoupil licence Light a Standard na webu HW.cz (3.000,- Kč, 500,- Kč).
Instalace
Instalační program je ke stažení z CodeVision.be. Stahujte pouze verzi Evaluation. Tedy pokud nemáte zakoupenou nebo jinak opatřenou licenci pro placené verze. Program nainstalujte.
Jde se na věc
Při spuštění programu postupujte následovně. V menu File → New vyberte Project…
Program se vás zeptá, zda chcete využít CodeVizardAVR. Prozatím zvolte No.
K tomu se dostaneme později. Čeká vás několik nutných uložení, kde si zvolíte adresář a jméno projektu a jiných pomocných souboru. Následuje okno, kde si nastavíte druh procesoru a nastavení kompilátoru. Nastavte dle obrázku.
Po nastavení projektu se můžeme směle pustit do práce. Přidejte soubor zdrojového kódu:
#include <mega16.h>
unsigned int cek1 = 0;
void main (void)
{
PORTC=0x01;
DDRC=0x01;
PORTD=0x40;
DDRD=0x00;
while (1)
{
if ((PIND & 0x40) == 0)
PORTC |= 0x01;
else PORTC &=0xFE;
};
}
Program zkompilujte stisknutím F9. Hlášení o průběhu kompilace se vám zobrazí na obrazovce. Chyby můžete vidět na panelu pod zdrojovým kódem. Pokud kompilace proběhla v pořádku, stiskněte Shift-F9. Tentokrát se celý projekt „polepí dohromady“ a vytvoří se ROM soubor, který můžeme nahrát do procesoru PonyProgem, ale ještě lépe integrovaným programátorem v CodeVisionAVR.
Chip Blaster AVR
Chip Blaster AVR. Tak se jmenuje integrovaný programátor vývojového prostředí CodeVision AVR. Z vlastní zkušenosti mohu říct, že se jedná o velmi přehledný a spolehlivý nástroj. Je možné ho zakoupit jako zvláštní program a nebo zakoupit či stáhnout jako součást aplikace. My si ukážeme, jak s ním pracovat.
Programátor je neprve potřeba nastavit pomocí Settings → Programmer. Spustit jej můžete pomocí Tools → Programmer. Myslím, že již podle obrázku je jasné, že práce s ním je velice intuitivní… Jako vstupní soubory můžete použít .hex, .rom soubory, ale i jiné. Stejně jako v PonyProgu je možné číst stavy lock a fuse bitů a měnit jejich nastavení. Opět i zde platí, že v případě fuse bitů, zaškrtnutý checkbox znamená zvolenou pojistku (tedy nula).
Pokud tedy máte procesor nastavený již z minula, pouze nahrajte program. A to tak, že otevřete vygenerovaný soubor s příponou .rom (File → Load flash) a pomocí Program → Flash jej nahrajte do procesoru. Nezapomeňte ale nejdříve programovou paměť smazat (Program → Erase chip).
Pokud se vám vše podařilo, stačí jen uzemňovat pin PD6, například tlačítkem. Pokud je pin uzemněn, LED svítí, v opačném případě je zhasnuta…