MIKROKONTROLERY AVR JĘZYK C WYDAWNICTWO ATNEL PODSTAWY PROGRAMOWANIA. Miros aw Kardaś. Szczecin 2013. Mojej Żonie Kasi



Podobne dokumenty
Szkolenia specjalistyczne

Symfonia C++ standard : programowanie w języku C++ orientowane obiektowo. T. 1 / Jerzy Grębosz. Wyd. 3 C - popr. Kraków, 2015.

ISBN Copyright by Wydawnictwo BTC Legionowo 2008

2. Architektura mikrokontrolerów PIC16F8x... 13

1. Wstęp Różnice pomiędzy mikrokontrolerami ST7 a ST7LITE Rdzeń mikrokontrolerów ST7FLITE... 15

ISBN. Copyright by Wydawnictwo BTC Legionowo 2010

1. Wprowadzenie Programowanie mikrokontrolerów Sprzęt i oprogramowanie... 33

Opus Magnum C++11 : programowanie w języku C++. Tom 1 / Jerzy Grębosz. Gliwice, cop Spis treści

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Poradnik programowania procesorów AVR na przykładzie ATMEGA8

Programowanie strukturalne i obiektowe : podręcznik do nauki zawodu technik informatyk / Adam Majczak. Gliwice, cop

Wstęp Architektura... 13

Spis treści WSTĘP CZĘŚĆ I. PASCAL WPROWADZENIE DO PROGRAMOWANIA STRUKTURALNEGO. Rozdział 1. Wybór i instalacja kompilatora języka Pascal

Szkoła programisty PLC : sterowniki przemysłowe / Gilewski Tomasz. Gliwice, cop Spis treści

Programowanie strukturalne i obiektowe

Język C dla mikrokontrolerów AVR. Od podstaw do zaawansowanych aplikacji. Wydanie II

Kurs Elektroniki. Część 5 - Mikrokontrolery. 1/26

1.2. Architektura rdzenia ARM Cortex-M3...16

Materiały. Języki programowania II (Java+AVR-GCC) Literatura

Grzegorz Cygan. Wstęp do programowania mikrosterowników w języku C

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe

o Instalacja środowiska programistycznego (18) o Blink (18) o Zasilanie (21) o Złącza zasilania (22) o Wejścia analogowe (22) o Złącza cyfrowe (22)

Arduino dla początkujących. Kolejny krok Autor: Simon Monk. Spis treści

1.1. Wymogi bezpieczeństwa Pomoc techniczna TIA Portal V13 instalacja i konfiguracja pakietu...18

Wykład 4. Przegląd mikrokontrolerów 16-bit: - PIC24 - dspic - MSP430

Systemy Wbudowane. Arduino, AVR. Arduino. Arduino. Arduino. Oprogramowanie. Mikrokontroler. Mikrokontroler Platforma Arduino. Arduino IDE: Arduino C:

Wykład 2. Przegląd mikrokontrolerów 8-bit: -AVR -PIC

Mikroprocesory i mikrosterowniki

AVREVB1. Zestaw uruchomieniowy dla mikrokontrolerów AVR. Zestawy uruchomieniowe

Podstawy programowania sterowników SIMATIC S w języku LAD / Tomasz Gilewski. Legionowo, cop Spis treści

Szkolenie C. Programowanie mikrokontrolerów w języku C na przykładzie STM32F103ZE z rdzeniem Cortex-M3. Broszura informacyjna Wersja 1.

Podstawy programowania. Wykład: 5. Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Język C. Wykład 9: Mikrokontrolery cz.2. Łukasz Gaweł Chemia C pokój 307

O autorze... 9 Wprowadzenie... 11

Mikrokontroler ATmega32. Język symboliczny

Podstawy programowania skrót z wykładów:

Spis treœci. 0 Proszê nie czytaæ tego! Startujemy! Pierwszy program Drugi program Æwiczenia...19

Cwiczenie nr 1 Pierwszy program w języku C na mikrokontroler AVR

Język C - podstawowe informacje

Centrum Szkoleo w Sochaczewie. Grzegorz Domaoski. grzegorz.domanski@wszim-sochaczew.edu.pl. MS Access 2010

Kurs SIMATIC S7-300/400 i TIA Portal - Zaawansowany. Spis treści. Dzień 1

Mikroprocesory i Mikrosterowniki

Charakterystyka mikrokontrolerów. Przygotowali: Łukasz Glapiński, Mateusz Kocur, Adam Kokot,

Część 4 życie programu

Spis treści. Dzień 1. I Rozpoczęcie pracy ze sterownikiem (wersja 1707) II Bloki danych (wersja 1707) ZAAWANSOWANY TIA DLA S7-300/400

asix4 Podręcznik użytkownika CtMus04 - drajwer do wymiany danych z urządzeniami sterującymi MUS-04 firmy ELEKTORMETAL S.A.

Programowanie mikrokontrolerów AVR

Przedmowa Wstęp Pierwsze kroki... 17

Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi. nie ponoszą również żadnej odpowiedzialności za ewentualne szkody wynikłe

MIKROKONTROLERY I MIKROPROCESORY

Mikroprocesory i Mikrosterowniki

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta Strona 1 z 26. Powrót. Full Screen. Zamknij.

Niniejszy ebook jest własnością prywatną. Został zakupiony legalnie w serwisie Netpress.pl, będącym oficjalnym Partnerem Wydawcy.

STM32Butterfly2. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

Sprawozdanie z projektu MARM. Część druga Specyfikacja końcowa. Prowadzący: dr. Mariusz Suchenek. Autor: Dawid Kołcz. Data: r.

ROZDZIAŁ 2. Operatory

PROGRAMOWANIE w C prolog

ISBN Copyright by Wydawnictwo BTC Warszawa Redaktor techniczny: Delfina Korabiewska Redaktor merytoryczny: mgr Anna Kubacka

/* dołączenie pliku nagłówkowego zawierającego deklaracje symboli dla wykorzystywanego mikrokontrolera */ #include <aduc834.h>

LABORATORIUM - ELEKTRONIKA Układy mikroprocesorowe cz.2

Zastosowanie procesorów AVR firmy ATMEL w cyfrowych pomiarach częstotliwości

Język C : programowanie dla początkujących : przewodnik dla adeptów programowania / Greg Perry, Dean Miller. Gliwice, cop

Ćwiczenie 5 Zegar czasu rzeczywistego na mikrokontrolerze AT90S8515

Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem.

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

XMEGA. Warsztaty CHIP Rok akademicki 2014/2015

2 Przygotował: mgr inż. Maciej Lasota

Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli.

Centrum Szkoleo w Sochaczewie. Grzegorz Domaoski. MS Access 2010

Wbudowane układy peryferyjne cz. 1 Wykład 7

Programowanie mikrokontrolerów AVR z rodziny ATmega.

Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli.

Schemat blokowy architektury AVR

ZL15AVR. Zestaw uruchomieniowy dla mikrokontrolerów ATmega32

Programowanie obiektowe

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska


Mikrokontroler AVR ATmega32 - wykład 9

asix4 Podręcznik użytkownika MUPASZ - drajwer protokołu sterownika MUPASZ Podręcznik użytkownika

STM32 Butterfly. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli.

Kurs programowania mikrokontrolerów ARM z rodziny Cortex-M3

ZL29ARM. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

Podstawy programowania w języku C

Copyright by Wydawnictwo Atnel Szczecin 2011

asix4 Podręcznik użytkownika Drajwer protokołu ADAM Podręcznik użytkownika

I - Microsoft Visual Studio C++

1 Podstawy c++ w pigułce.

asix4 Podręcznik użytkownika DSC - drajwer protokołu sterownika DSC Podręcznik użytkownika

asix4 Podręcznik użytkownika AS511 - drajwer protokołu AS511 dla SIMATIC Podręcznik użytkownika

Rok akademicki: 2013/2014 Kod: JFT s Punkty ECTS: 5. Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

Płytka uruchomieniowa AVR oparta o układ ATMega16/ATMega32. Instrukcja Obsługi. SKN Chip Kacper Cyrocki Page 1

MCAR Robot mobilny z procesorem AVR Atmega32

Centrum Szkoleo w Sochaczewie. Grzegorz Domaoski. MS Access 2010

ZL9AVR. Płyta bazowa dla modułów ZL7AVR (ATmega128) i ZL1ETH (RTL8019)

High Speed USB 2.0 Development Board

Wykład 1

ZL16AVR. Zestaw uruchomieniowy dla mikrokontrolerów ATmega8/48/88/168

Systemy wbudowane. Paweł Pełczyński

Transkrypt:

WYDAWNICTWO ATNEL MIKROKONTROLERY AVR JĘZYK C PODSTAWY PROGRAMOWANIA Miros aw Kardaś Szczecin 2013 Mojej Żonie Kasi

Książka przeznaczona jest dla elektroników i hobbystów, którzy chcą szybko, opierając się na interesujących przykładach, poznać język C przeznaczony dla mikrokontrolerów AVR i nauczyć się pisać dla nich programy. Jest to język wysokiego poziomu o nieograniczonych możliwościach, pozwala również łatwo i wygodnie dokonywać połączeń z językiem maszynowym asembler. W sposób przystępny opisana została także architektura oraz możliwości samych mikrokontrolerów AVR wchodzących w skład dwóch rodzin: ATmega i ATtiny. Prezentowany materiał podzielony jest na trzy części: zagadnienia związane z budową mikrokontrolerów, wykład na temat podstaw samego języka, ćwiczenia z kodami źródłowymi, komentarzami i opisami. Opracowanie graficzne: Mirosław Kardaś Projekt okładki: Karolina Kardaś Korekta wydania II: Krystyna Pawlikowska Wydawnictwo Atnel 70-777 Szczecin ul. Jasna 15/33 tel. 91 463 56 83 fax 91 882 10 99 e-mail: biuro@atnel.pl www.atnel.pl Wydanie II poprawione i uzupełnione ISBN 978-83-931797-2-5 Copyright by Wydawnictwo Atnel Szczecin 2013 Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli. Autor oraz wydawnictwo Atnel dołożyli wszelkich starań, by publikowane tu informacje były kompletne i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane z tym ewentualne naruszenie praw patentowych lub autorskich. Autor oraz wydawnictwo Atnel nie ponoszą także żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych w książce. Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentów niniejszej publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii całości lub fragmentów książki bądź dołączonej płyty DVD metodą kserograficzną lub fotograficzną, a także kopiowanie książki lub płyty DVD na nośnikach filmowych, magnetycznych, elektronicznych lub na nieautoryzowanych stronach internetowych powoduje naruszenie praw autorskich niniejszej publikacji.

Spis treści Przedmowa 7 Wstęp 8 1. Zaczynamy 9 1.1. Pierwszy, pusty program w C 9 1.2. Od programu do procesora 11 1.2.1. Kompilacja 11 1.2.2. Środowisko 13 1.2.3. Programator sprzętowy 14 1.2.4. Programowanie procesora 15 1.2.5. Platforma sprzętowa 17 2. Procesory AVR 19 2.1. Informacje ogólne 19 2.2. Programowanie ISP 22 2.3. Sposoby taktowania procesorów 24 2.3.1. Wewnętrzny oscylator 25 2.3.2. Zewnętrzny rezonator kwarcowy 26 2.3.3. Zewnętrzny oscylator RC 26 2.3.4. Zewnętrzny generator 27 2.4. Zagadnienia związane z zasilaniem 27 2.5. Układ resetu mikrokontrolera AVR 29 2.6. Wewnętrzne moduły procesorów AVR 29 2.6.1. Pamięć FLASH, RAM, EEPROM 30 2.6.2. Przerwania 34 2.6.3. Timery sprzętowe 37 2.6.3.1. Podstawowe tryby pracy timerów 39 2.6.3.1.1. Tryb zwykłego licznika 39 2.6.3.1.2. Tryb CTC 41 2.6.3.1.3. Tryb PWM 43 2.6.4. Przetwornik ADC 46 2.6.5. Moduł komparatora analogowego 48 2.6.6. Moduł UART/USART (czyli RS232) 49 2.6.7. Moduł SPI 50 2.6.8. Moduł TWI (czyli I2C) 51 2.6.9. Watchdog 52 2.6.10. Tryby oszczędzania energii 52 2.6.11. FUSE BITS (ustawienia konfiguracji AVR) 53 2.6.12. LOCK BITS (zabezpieczenia AVR) 54 2.6.13. Bootloader niesamowite możliwości 55

4 3. Podstawy języka C 57 3.1. Zagadnienia ogólne 57 3.1.1. Komentarze 57 3.1.2. Definicja a deklaracja 58 3.1.3. Wyrażenia logiczne (warunki) 59 3.2. Najważniejsze instrukcje 60 3.2.1. Instrukcja warunkowa if, else 60 3.2.2. Pętla while 63 3.2.3. Pętla do while 64 3.2.4. Pętla for 64 3.2.5. Instrukcja break 66 3.2.6. Instrukcja switch 67 3.2.7. Instrukcja continue 69 3.2.8. Nawiasy klamrowe 70 3.2.9. Instrukcja goto 71 3.3. Typy 71 3.3.1. Systematyka typów języka C 73 3.3.1.1. Typy złożone 76 3.3.1.2. Zakres widoczności zmiennych 77 3.3.1.3. Typ void 79 3.3.1.4. Specyfikator const 80 3.3.1.5. Specyfikator volatile 81 3.3.1.6. Specyfikator register 82 3.3.1.7. Instrukcja typedef 82 3.3.1.8. Typy wyliczeniowe enum 84 3.3.2. Stałe w języku C 87 3.3.2.1. Stałe jako liczby całkowite 87 3.3.2.2. Stałe jako liczby zmiennoprzecinkowe 88 3.3.2.3. Stałe znakowe 88 3.3.2.4. Stałe tekstowe, stringi 90 3.4. Operatory 91 3.4.1. Arytmetyczne 91 3.4.1.1. Modulo, czyli % 91 3.4.1.2. Inkrementacja i dekrementacja ++ 93 3.4.1.3. Operator przypisania = 94 3.4.2. Operatory logiczne 95 3.4.2.1. Operatory relacji 95 3.4.2.2. Suma oraz iloczyn && logiczny 96 3.4.2.3. Negacja wykrzyknik! 97 3.4.2.4. Operatory bitowe 97 3.4.3. Pozostałe operatory przypisania 104 3.4.4. Operator pobierania adresu & 105 3.4.5. Wyrażenie warunkowe? : 105 3.4.6. Operator sizeof( ) 106 3.4.7. Priorytety operatorów 107

3.4.8. Operatory rzutowania 108 3.5. Funkcje*** 109 3.5.1. Wynik działania funkcji jak to działa? 113 3.5.2. Stos ujarzmianie potwora 115 3.5.3. Przekazywanie argumentów przez wartość 116 3.5.4. Funkcje typu inline 119 3.5.5. Zakresy widoczności nazw 125 3.5.5.1. Zakres globalny 125 3.5.5.2. Zakres lokalny i zmienne automatyczne 126 3.5.5.3. Zmienne i funkcje statyczne 127 3.5.6. Funkcje w różnych plikach projektu 129 3.6. Preprocesor 135 3.6.1. Dyrektywa #define 136 3.6.2. Makrodefinicje 138 3.6.3. Dyrektywa #undef 139 3.6.4. Operator ## sklejanie nazw 139 3.6.5. Operator zamiany na string # 140 3.6.6. Dyrektywy kompilacji warunkowej 141 3.6.7. Dyrektywy #ifdef oraz #ifndef 143 3.6.8. Dyrektywy #error i pozostałe 144 3.6.9. Dyrektywa #include 144 3.7. Tablice 145 3.7.1. Tablice wielowymiarowe 149 3.7.2. Tablica jako argument funkcji 149 3.7.3. Tablice znakowe 151 3.8. Wskaźniki 156 3.9. Struktury, unie, pola bitowe 168 3.9.1. Struktury 168 3.9.2. Unie 171 3.9.3. Połączenie struktury z unią 173 3.9.4. Pola bitowe 175 4. Warsztaty zajęcia praktyczne 177 4.1. Piny, porty ustawienie kierunków 177 4.2. Przygotowanie procesora do pracy 182 4.3. Migocząca dioda LED 184 4.4. Obsługa klawiszy typu micro-switch 187 4.5. Multipleksowanie LED przerwania 192 4.6. Wyświetlacz LCD (hd44780) 213 4.7. Sterowanie PWM (kolorowa dioda RGB) 236 4.8. Pomiar napięcia za pomocą ADC 250 4.8.1. Klawiatura analogowa 261 4.8.2. Różnicowy pomiar napięcia amperomierz 262 4.9. Komunikacja RS232/ RS485 274 4.9.1. Inicjalizacja, kalibracja 275 5

4.9.2. UART, przerwania, bufor cykliczny 284 4.10. Odczyt zapis magistrali I2C (RTC, EEPROM) 296 4.10.1. RTC sprzętowa obsługa I2C 297 4.10.2. Programowa implementacja I2C 305 4.10.3. EEPROM I2C 309 4.11. Moduł SPI 311 4.11.1. Sprzętowa obsługa SPI 312 4.11.2. Programowa obsługa SPI 318 4.12. Magistrala 1Wire 320 4.13. Odbiór kodów RC5 w podczerwieni 329 4.14. Sterowanie silnikami DC 340 4.15. Silnik krokowy unipolarny 345 4.16. Silnik krokowy bipolarny 352 4.17. Odczyt/zapis kart pamięci SD (FAT) 357 4.17.1. FatFS 359 4.17.2. PetitFS 376 5. Fusebity MkAvrCalculator 386 5.1. Fusebity, Lockbity 386 5.2. MkAvrCalculator 391 6. Bootloader 400 7. Projekty 403 7.1. Pilot na podczerwień 403 7.2. Moduł Bluetooth (BTM-112/222) 411 7.3. Ściemniacz płynna regulacja mocy 230 V 418 7.4. Wstęp do systemów czasu rzeczywistego 431 7.5. Obsługa stosu AVR TCP/IP 455 7.5.1. Karta sieciowa Ethernet ENC28J60 458 7.5.2. Serwer HTTP 461 7.5.3. Sterownik urządzeń protokół UDP 470 7.6. Programator USBASP 497 8. Środowisko Eclipse 499 Aneks 1. Nowe zasady w Atmel Toolchain 508 Aneks 2. Jeszcze kilka porad 511