Podobné dokumenty





David Matoušek, Bohumil Brtík PROGRAMOVÁNÍ MIKROKONTROLÉRÙ S JÁDREM 8051 V JAZYCE C Názoré pøíklady a fukèí programy pro AT89S52 Bez pøedchozího písem













Komerèní využití stavebních návodù je povoleno jen s písemným souhlasem autora a nakladatelství. Soubory na CD ROM mající pøímo vztah ke knize, které





)HULWRYpMiGUR 2VFLOiWRU 'HWHNWRU.ORSQêREYRG.RQFRYêþOHQ


PROGRAMOVÁNÍ V JAZYCE C V PŘÍKLADECH 11 Dynamické datové struktury 11.1 Spojové struktury Příklad PROG_



ALGORITMY ČÍSLICOVÉHO ZPRACOVÁNÍ SIGNÁLŮ

Kniha je urèena všem zájemcùm o teorii elektrických obvodù Poslouží jako pøíruèka pro praxi, ale i jako uèebnice pro studenty støedních a vysokých ško

APLIKACE ALGORITMŮ ČÍSLICOVÉHO ZPRACOVÁNÍ SIGNÁLŮ 1. DÍL

APLIKACE MIKROKONTROLÉRŮ PIC32MX


Roman Neruda a Tomáš Holan C++ BUILDER V PØÍKLADECH Bez pøedchozího písemného svolení nakladatelství nesmí být kterákoli èást kopírována nebo rozmnožo

V deší dobì stále více programátorù postupì pøechází z klasického psaí kódu v assembleru a itegrovaá vývojová prostøedí a bázi jazyka C. Neí se co div

David Matoušek ÈÍSLICOVÁ TECHNIKA základy konstruktérské praxe Bez pøedchozího písemného svolení nakladatelství nesmí být kterákoli èást kopírována ne

29 PØÍKLAD È. 11 VÝPIS ÈÍSLA POMOCÍ PRINTF NA MLCDGEN Nyí si ukážeme, jak upravit pøíklad è. 10 tak, abychom mohli používat fukci pritf pro výpis text







OBJEKTOVÉ PROGRAMOVÁNÍ V C++ V PŘÍKLADECH 8 Proudová knihovna 8.1 Hierarchie proudů Standardně zavedené proudy

MIKROPROCESOROVÁ TECHNIKA 9 Událostní systém 9.1 Události Síť ERN Časování událostí Filtrace



Výukový modul III.2 Inovace a zkvalitnění výuky prostřednictvím ICT



Maturitní témata - PRT 4M

Jan Humlhans NÁBOJOVÉ PUMPY funkce, pøehled a použití Bez pøedchozího písemného svolení nakladatelství nesmí být kterákoli èást kopírována nebo rozmno

Spojitost a limita funkcí jedné reálné proměnné


Monografie poskytuje v pøehledné a praktické formì znalosti a výpoèetní nástroje pro modelování šíøení rádiových vln v zástavbì, tedy vnì i uvnitø bud


Publikace prezentuje nìkteré poznatky z obsáhlé oblasti analogových soustav, které v poslední dobì prodìlávají rozvoj. Z toho dùvodu ani nemùže podat


MIKROKONTROLÉRY PIC PRO POKROČILÉ

Sedlové ventily (PN 6) VL 2 2cestný ventil, přírubový VL 3 3cestný ventil, přírubový

3. Sekvenční obvody. b) Minimalizujte budící funkce pomocí Karnaughovy mapy

Autor by chtìl podìkovat všem svým spolupracovníkùm a kolegùm, kteøí mu pomohli s pøípravou textu. K vydání knihy pøispìla firma Newport Electronics s





v aktuálních katalozích Porsche Tequipment nebo v našem online tel.: fax:


8.2.1 Aritmetická posloupnost

Sekvenční logické obvody(lso)

8.2.1 Aritmetická posloupnost I



Zvolíme-li R 1 = 10 kω, bude R 2 = 43 kω Z øady E48 vybereme ejbližší vyrábìou hodotu R 2 = 42,2 kω Po dosazeí do (44a) dostaeme 8 () = + = + + D 8 ()

MIKROKONTROLÉRY PIC BEZ PŘEDCHOZÍCH ZNALOSTÍ


Podìkování: Výsledkù publikovaných v této knize bylo dosaženo také za podpory projektù GAÈR 101/06/P108 Výzkum simulaèního a experimentálního modelová


PESexcl. PODPORA PRO VÝMÌNU DAT S APLIKACÍ MICROSOFT EXCEL s využitím DDE serveru PESdde

Mikrořadiče fy ATMEL


ELEKTRONICKÉ PRVKY 7 Výkonové a spínací aplikace tranzistorů 7.1 Ztrátový výkon a chlazení součástky První a druhý průraz bipolárního



USBASP AVR programovací modul Uživatelská příručka

Téma: 11) Dynamika stavebních konstrukcí

Obsah. Úvodní informace 2-3. Letové vlastnosti 4. Kompletace 5. Balení 5-9 PARACHUTES DE FRANCE SA


4 DIELEKTRICKÉ OBVODY ZÁKLADNÍ POJMY DIELEKTRICKÝCH OBVODŮ Základní veličiny a zákony Sériový a paralelní


displeje pro zadní projekci

8560MFP/8860MFP. Phaser. multifunkční zařízení. Návod k obsluze.

8.1.3 Rekurentní zadání posloupnosti I


Výukový modul III.2 Inovace a zkvalitnění výuky prostřednictvím ICT



MIKROPROCESOROVÁ TECHNIKA


Jan Hájek ELEKTRONICKÉ HLEDAÈE Bez pøedchozího písemného svolení nakladatelství nesmí být kterákoli èást kopírována nebo rozmnožována jakoukoli formou

Transkript:

Mikrokotroléry ATMEL AVR programováí v jazyce C Popis a práce ve vývojovém prostøedí CodeVisioAVR C Vladimír Váòa Praha 2003

Vladimír Váòa Mikrokotroléry ATMEL AVR Programováí v jazyce C Popis a práce ve vývojovém prostøedí CodeVisioAVR C Bez pøedchozího písemého svoleí akladatelství esmí být kterákoli èást kopírováa ebo rozmožováa jakoukoli formou (tisk, fotokopie, mikrofilm ebo jiý postup), zadáa do iformaèího systému ebo pøeášea v jié formì èi jiými prostøedky Autor a akladatelství epøejímají záruku za správost tištìých materiálù Pøedkládaé iformace jsou zveøejìy bez ohledu a pøípadé patety tøetích osob Nároky a odškodìí a základì zmì, chyb ebo vyecháí jsou zásadì vylouèey Všechy registrovaé ebo jié obchodí zámky použité v této kize jsou majetkem jejich vlastíkù Uvedeím ejsou zpochybìa z toho vyplývající vlastická práva Veškerá práva vyhrazea Vladimír Váòa, Praha 2003 Nakladatelství BEN techická literatura, Vìšíova 5, Praha 10 Vladimír Váòa: Mikrokotroléry ATMEL AVR Programováí v jazyce C BEN techická literatura, Praha 2003 1 vydáí ISBN 80-7300-102-0

OBSAH Co ajdete a doprovodém CD 7 1 Ještì ež zaètete 8 2 Popis CodeVisioAVR C 9 3 Vývojové prostøedí (IDE) CodeVisioAVR C 11 4 Refereèí mauál pøekladaèe C CodeVisioAVR 17 4 1 Direktivy preprocesoru a pragmy 17 4 1 1 Preprocesor 17 4 2 Kometáøe 23 4 3 Klíèová slova 24 4 4 Idetifikátory 24 4 5 Datové typy 24 4 6 Kostaty 24 4 7 Promìé 26 4 8 Uživatelem defiovaé datové typy 36 4 9 Typové koverze, pøetypováí 36 4 10 Operátory 38 A MIKROKONTROLÉRY ATMEL AVR PROGRAMOVÁNÍ V JAZYCE C 3

4 11 Fukce 40 4 12 Ukazatele 40 4 13 Pøístup k I/O registrùm 42 4 14 Pøístup k EEPROM 44 4 15 Použití pøerušeí 45 4 16 Využití SRAM 46 4 17 Použití exterího souboru STARTUP ASM 48 4 18 Využití assembleru ve zdrojovém kódu C jazyka 51 4 19 Voláí fukcí apsaých v assembleru 51 4 20 Využití debugeru AVR studia 53 4 21 Zbývající rysy pøekladaèe CodeVisioAVR C 54 5 Kihoví fukce jazyka C CodeVisioAVR 55 5 1 Zakové fukce 55 5 2 Stadardí I/O fukce 56 5 3 Fukce stadardí kihovy 59 5 4 Matematické fukce 60 5 5 Øetìzcové fukce 63 4 VLADIMÍR VÁÒA A

5 6 BCD koverzí fukce 68 5 7 Koverzí fukce Grayova kódu 68 5 8 Fukce pro pøístup k pamìti 69 5 9 Fukce pro LCD 69 5 10 Fukce sbìrice I2C 73 5 11 SPI fukce 77 5 12 Fukce pro úsporý režim (Power Maagemet Fuctios) 80 5 13 Fukce èasových prodlev, èasového zpoždìí 81 6 Vytváøeí kihove 83 6 1 Vytvoøeí vlastí kihovy 83 6 2 LCD displej a kihova pro jeho ovládáí z jazyka C 86 7 Pøíklady 93 7 1 Program 1 ovládáí LED diod, blikaè 93 7 2 Program 2 vysláí ápisu a LCD displej 101 7 3 Program 3 vysláí øetìzce zakù a RS232 104 7 4 Program 4 vstupy z tlaèítek 110 7 5 Program 5 maticová klávesice 112 A MIKROKONTROLÉRY ATMEL AVR PROGRAMOVÁNÍ V JAZYCE C 5

7 6 Program 6 klávesice PC 121 7 7 Program 7 voltmetr 137 7 8 Program 8 èítaè 139 7 8a Program 8 mìøièe kmitoètu 145 7 9 Program 9 hodiy 146 7 10 Program 10 sbìrice MicroWire 150 7 11 Program 11 I 2 C zápis 155 7 12 Program11 I 2 C èteí 159 7 13 Program 11 PLL sytezátor kmitoètu øízeý I 2 C 162 7 14 Program 12 SPI 170 7 14 Program 13 PWM 178 7 15 Program 14 USB 181 8 Závìreèá pozámka 197 9 Pøíloha programováí v AVR GCC 199 Literatura a odkazy a Iteretu 205 Kihy BEN techická literatura 206 6 VLADIMÍR VÁÒA A

CO NAJDETE NA DOPROVODNÉM CD-ROM Doprovodé CD-ROM obsahuje všechy iformace potøebé pro sadou práci s kihou Tyto iformace lze rozdìlit do logických celkù, které se acházejí v oddìleých adresáøích: adresáø BEN obsahuje off-lie verzi www stráek akladatelství BEN techická literatura (aktualizováo k poèátku léta 2003), jejichž souèástí je poèítaèová verze tištìého katalogu Edièího pláu jaro a léto 2003 a samostatého pøehledu aší produkce BEN 2003 adresáø DATASHEET obsahuje dokumetaci ve formátu PDF vybraých itegrovaých obvodù ATMEL, které jsou v kize používáy Pro úplost jsou zde i ìkteré další periferí obvody mající vztah ke zveøejìým pøíkladùm Najdete zde též samorozbalitelý archiv programu Adobe Acrobat Reader verze 5 0, který slouží k prohlížeí PDF souborù, adresáø NAPADY obsahuje skuteèé aplikace posbíraé a Iteretu, které mají sloužit jako ispirace, zejméa pro amatérské kostruktéry Viz též str 198, adresáø PRIKLADY obsahuje zdrojové i pøeložeé formy všech programù realizovaých v kize, adresáø SW obsahuje samostaté složky s volì šíøitelými verzemi ebo demoverzemi vývojového prostøedí urèeého pro procesory ATMEL AVR ATMEL obsahuje pøedevším více verzí vývojového prostøedí AVR Studio v3 20, v3 56 a v4 07 Všechy verze pracují pod operaèím systémem Widows Starší verze (3 xx) jsme uvedli proto, že pracují témìø a každém PC s prostøedím alespoò Widows 95 Navíc je a CD program WAVRASM v1 30, který rovìž umožòuje kompletí vývoj programù pro ATMEL AVR v assembleru Pro èteáøe bude jistì i užiteèý ovládací program pro programátor ATMEL AVR ISP 3 30, který je rovìž ve složce ATMEL BASCOM vývojové prostøedí vèetì pøekladaèe z jazyka, který se podobá zámému Visual Basicu 6 0 Je produktem firmy MCS Electroics Omezeí je a maximálì 2 kb výsledého kódu (HEX) Výhodou jsou speciálí pøíkazy podporující práci s LCD displeji, komuikaci I 2 C, 1WIRE atd CVAVR výborým kompilátorem C pro AVR, vèetì vývojového prostøedí, je CodeVisio AVR Rovìž teto pøekladaè C lze aistalovat jako souèást AVR Studia Zdarma je jeho školí verze (CodeVisioAVR C Compiler v1 23 5 Evaluatio), jejímž jediým omezeím je velikost výsledého kódu do 2 kb GNU_C Kompilátor C, který lze aistalovat jako souèást AVR Studia Na teto pøekladaè eí žádé èasové omezeí ebo omezeí velikosti kódu Je k dispozici zcela zdarma Pro jeho užití je pouze uté dodržet liceci GNU IAR obsahuje èasovì omezeá vývojová prostøedí firmy IAR Jedá se pøedevším o assembler a pøekladaè z jazyka C/C++ Kokrétì se jedá o IAR Embedded Workbech Evaluatio versio for Atmel AVR v2 27B a IAR Embedded Workbech Assembler Editio for Atmel AVR v1 50B Navíc je zde umístì i produkt IAR MakeApp for Atmel AVR v3 01 JAVA klasická Java, ke které jsou pøidáy kihovy JEPES dáské firmy Mjoler Iformatics Demoverze umožòuje programovat pouze AT90S8515 PASCAL ideálí prostøedek pro programováí, jedá se o školí verzi produktu (demo) ìmecké firmy E-LAB Computers Omezeí je a maximálì 4 kb výsledého kódu (HEX), což pro vìtšiu aplikací staèí V assembleru to pøedstavuje cca 6000 øádkù kódu A MIKROKONTROLÉRY ATMEL AVR PROGRAMOVÁNÍ V JAZYCE C 7

1 JEŠTÌ NEŽ SE ZAÈTETE Mikrokotroléry ATMEL AVR AT90S si získávají stále vìtší oblíbeost mezi profesioálími i amatérskými kostruktéry vestavìých (emebedded) zaøízeí Pøi vytváøeí zaøízeí s mikropoèítaèi èi mikrokotroléry je dùležitou èástí jejich vývoje a kostrukce tvorba jejich programového vybaveí K tomu je ovšem potøeba mít vhodé prostøedky ìjaké vývojové prostøedí zahrující mj pøekladaè z ìjakého jazyka do kódu procesoru mikrokotroléru Neméì dùležité je mít schopost s tìmito prostøedky pracovat Prvími programovacími jazyky byly assemblery U vìtších poèítaèù jako jsou osobí poèítaèe PC, pracoví staice èi maifraimy se již témìø epoužívají a tak jediým polem pùsobosti pro assemblery zùstaly pøedevším jedoèipové mikropoèítaèe a mikrokotroléry Pokud potøebujeme vytvoøit jedoduchý program pro takový jedoèipák je použití assembleru ještì úosé S rozvojem schopostí tìchto malých poèítaèù potøebují k jejich využití kostruktéøi vytváøet programy pomìrì rozsáhlé a složité a jejich tvorba v assembleru se stává již eúosá Proto byly pro jedoèipové mikrokotroléry a mikropoèítaèe vytvoøey pøekladaèe z vyšších programovacích jazykù Velké obliby dosáhl zejméa jazyk C, což je daé tím, že má ejeom vlastosti, které oèekáváme od vyšších programovacích jazykù, ale i vlastosti oèekávaé spíše u assemblerù Z vyšších programovacích jazykù má jazyk C ejblíže k hardwaru Proto se i u velkých poèítaèù používá pøi vytváøeí operaèích systémù Používáí vyšších programovacích jazykù respektují dokoce i tvùrci procesorù, když avrhují jejich jádro optimalizovaé pro práci s kompilátory ìjakého vyššího jazyka Pøíkladem mùže být apø procesor Chip švédské firmy Imsys optimalizovaý pro jazyk Java RISCový procesor mikrokotrolérù ATMEL AVR byl v orském vývojovém cetru Nordic VLSI v Trodheimu avrže tak, aby vyhovoval zejméa široce používaému jazyku C Programováím mikrokotrolérù ATMEL AVR v jazyce C se budeme zabývat v této publikaci Ta je urèea pøedevším zaèáteèíkùm, pøedpokládá se u ich alespoò základí zalost jazyka C, apø a úrovi støedoškolské uèebice jazyka C 8 VLADIMÍR VÁÒA A