Systemy wbudowane. Wprowadzenie. Struktura. Mikrokontrolery AVR. Wprowadzenie do programowania w C



Podobne dokumenty
Mikrokontrolery AVR Wprowadzenie

Instytut Teleinformatyki

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

Inż. Kamil Kujawski Inż. Krzysztof Krefta. Wykład w ramach zajęć Akademia ETI

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

Programowanie mikrokontrolerów AVR

Laboratorium Systemów wbudowanych Wyższa Szkoła Zarządzania i Bankowości, Informatyka studia inżynierskie

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

micro Programator ISP mikrokontrolerów AVR zgodny z STK500v2 Opis Obs³ugiwane mikrokontrolery Wspó³praca z programami Podstawowe w³aœciwoœci - 1 -

2. Architektura mikrokontrolerów PIC16F8x... 13

KOMUNIKACJA Z OTOCZENIEM MIKROKONTROLERA

Instytut Teleinformatyki

Poradnik programowania procesorów AVR na przykładzie ATMEGA8

Techniki mikroprocesorowe i systemy wbudowane

Wprowadzenie do podstaw programowania AVR (na przykładzie mikrokontrolera ATmega 16 / 32)

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

AVR DRAGON. INSTRUKCJA OBSŁUGI (wersja 1.0)

Mikroprocesory i mikrosterowniki

Mikroprocesory i Mikrosterowniki

Programator STK500v2 USB


Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Programator procesorów rodziny AVR AVR-T910

Elementy składoweµc - przypomnienie

PODSUMOWANIE DOŚWIADCZEŃ NAUCZANIA PROGRAMOWANIA MIKROKONTROLERÓW 8-BITOWYCH AVR W ŚRODOWISKU AVRSTUDIO

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

Zestaw uruchomieniowy z mikrokontrolerem LPC1114 i wbudowanym programatorem ISP

Mikrokontrolery w mechatronice. Wykład 4

Instrukcja obsługi. PROGRAMATOR dualavr. redflu Tarnów

dokument DOK wersja 1.0

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

USB AVR JTAG. Instrukcja obsługi rev.1.0. Copyright 2011 SIBIT

Schemat blokowy architektury AVR

Mikroprocesory i Mikrosterowniki

Programowanie mikrokontrolerów AVR z rodziny ATmega.

Szkolenia specjalistyczne

Programator ZL2PRG jest uniwersalnym programatorem ISP dla mikrokontrolerów, o budowie zbliżonej do STK200/300 (produkowany przez firmę Kanda).

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Wstęp Architektura... 13

Mikrokontroler ATmega32. Język symboliczny

SigmaDSP - zestaw uruchomieniowy dla procesora ADAU1701. SigmaDSP - zestaw uruchomieniowy dla procesora ADAU1701.

Instytut Teleinformatyki

Zestaw Startowy EvB. Więcej informacji na stronie:

Jak rozpocząć pracę z mikrokontrolerami?

1.1 Co to jest USBasp? Parametry techniczne Obsługiwane procesory Zawartość zestawu... 4

E-TRONIX Sterownik Uniwersalny SU 1.2

Zaliczenie Termin zaliczenia: Sala IE 415 Termin poprawkowy: > (informacja na stronie:

Użycie AVR Studio do kompilacji AVRUB

LITEcompLPC1114. Zestaw ewaluacyjny z mikrokontrolerem LPC1114 (Cortex-M0) Sponsorzy:

Wykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik

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

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

Akademia Górniczo-Hutnicza w Krakowie Katedra Elektroniki

Wykład 4. Środowisko programistyczne

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

SYSTEMY CZASU RZECZYWISTEGO (SCR)

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

MultiTool instrukcja użytkownika 2010 SFAR

Akademia Górniczo-Hutnicza w Krakowie Katedra Elektroniki

ZL9ARM płytka bazowa dla modułów diparm z mikrokontrolerami LPC213x/214x

Niektóre piny mogą pełnić różne role, zależnie od aktualnej wartości sygnałów sterujących.

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

Politechnika Białostocka

Płyta uruchomieniowa EBX51

MikloBit ul. Cyprysowa 7/ Jaworzno. JTAG + ISP dla AVR. rev

Warsztaty AVR. Instalacja i konfiguracja środowiska Eclipse dla mikrokontrolerów AVR. Dariusz Wika

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)

Programator mikrokontrolerów AVR

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.

INSTRUKCJA OBSŁUGI.

Programator AVR USBasp

High Speed USB 2.0 Development Board

Vinculum scalony host USB

Programowanie mikrokontrolerów AVR z rodziny ATmega.

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

Instrukcja obsługi programatora AVR Prog USB v2

ISP ADAPTER. Instrukcja obsługi rev.1.1. Copyright 2009 SIBIT

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

ZL8AVR. Płyta bazowa dla modułów dipavr

AVR Asembler: Podstawy posługiwania się AVR Studio 4.

LABORATORIUM MIKROKONTROLERY I MIKROSYSTEMY

XMEGA. Warsztaty CHIP Rok akademicki 2014/2015

2. Code Composer Studio v4 zintegrowane środowisko projektowe... 41

LABORATORIUM - ELEKTRONIKA Układy mikroprocesorowe cz.2

Ćwiczenie 5 Zegar czasu rzeczywistego na mikrokontrolerze AT90S8515

BF30 OCDLINK/USBASP ARM-JTAG/AVR-ISP Programmer-debugger Instrukcja obsługi

Instrukcja obsługi programatora AVR Prog USB v2

Technika Mikroprocesorowa

Mikrokontroler ATmega32. System przerwań Porty wejścia-wyjścia Układy czasowo-licznikowe

Instrukcja obsługi programatora AVR Prog USB v2

Instrukcja obsługi programatora AVR Prog USB v2

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

Programowanie niskopoziomowe. dr inż. Paweł Pełczyński

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

Komunikacja w mikrokontrolerach. Podstawy programowania. Wydział Elektroniki Mikrosystemów i Fotoniki dr inż. Piotr Markowski

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

Opis efektów kształcenia dla modułu zajęć

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

Dariusz Kozak ZESTAW URUCHOMIENIOWY MIKROKOMPUTERÓW JEDNOUKŁADOWYCH MCS-51 ZUX51. Loader LX51 INSTRUKCJA OBSŁUGI DK Wszystkie prawa zastrzeżone

Instytut Teleinformatyki

Transkrypt:

Systemy wbudowane Mikrokontrolery AVR Wprowadzenie do programowania w C dr inż. Maciej Piechowiak Wprowadzenie język C jest językiem strukturalnym wysokiego poziomu, jednak działającym blisko sprzętu i generującym kod zbliżony do kodu tworzonego w asemblerze, optymalizacja kodu pozwala na uzyskanie zwartego kodu wynikowego, można dopisywać krytyczne fragmenty kodu w czystym asemblerze, przenośność kodu (funkcje nie związane ze sprzętem, np.: algorytmy, funkcje konwertujące), szeroka dostępność bibliotek, popularnych kodów itp., darmowe narzędzia deweloperskie (avr-gcc), wersje kompilatora (porty) na różne mikrokontrolery. Struktura /bin zestaw bezpośrednio używanych programów narzędziowych avr-gcc i avr-binutils, /avr/include pliki nagłówkowe (headers) biblioteki avr-libc, glównie pliki z definicjami zasobów poszczególnych mikrokontrolerów, /avr/lib/ldscripts skrypty sterujące pracą linkera, opisują wielkości poszczególnych obszarów pamięci, podział na sekcje, adresy początkowe i końcowe, /lib/gcc/avr/3.4.2/include ogólne pliki nagłówkowe gcc (nie powiązane z mikrokontrolerami), /doc/avr-libc/avr-libc-user-manual pliki pomocy. 1

Kompilacja preprocesor realizuje zmiany w kodzie określone przez dyrektywy: dodatkowe pliki z dyrektyw #include, definicje i makroinstrukcje z #define, dyrektywy kompilacji warunkowej #if, #else, #endif, kompilacja z przeprowadzeniem optymalizacji (automatyczne uproszczenie i skrócenie kodu) wynik: instrukcje asemblera (.s), asemblacja (przetworzenie na kod maszynowy) pliki relokowalne (.o), adresy zmiennych i funkcji nie są jeszcze ustalone, Kompilacja linkowanie i konsolidacja (ulokowanie fragmentów kodu w obszarze pamięci programu i wyliczenie adresów), dołączenie funkcji bibliotecznych oraz plików kodu inicjującego dla danego mikrokontrolera, plik obiektowy (.elf) zawiera kod wynikowy, informacje dla debuggera, wykaz symboli, rozmiary sekcji kodu (z informacji tych można korzystać poprzez zbiór narzędzi binutils), W rezultacie tworzone są pliki wykonywalne (obrazy pamięci) Flash (.hex) lub EEPROM (.eep) Środowisko uruchomieniowe Kompilacja programu odbywa się w środowisku AVR Studio. Domyślnie środowisko pozwala na pisanie programu w asemblerze oraz jego symulację. Wcześniejsze zainstalowanie kompilatora avr-gcc (WinAVR) umożliwia kompilowanie kodów źródłowych programów w C poprzez AVR Studio. 2

Środowisko uruchomieniowe Programowanie technologia Flash ISP pozwala na przeprogramowywanie pamięci w systemie poprzez szeregowy interfejs ISP z wykorzystaniem konwencjonalnych programatorów, magistralę JTAG oraz przez program bootujący pracujący w samym układzie, program bootujący może wykorzystywać dowolny rodzaj interfejsu, aby załadować właściwy program do pamięci aplikacji, program z sekcji bootującej kontynuuje swoją pracę podczas programowania części aplikacyjnej, na co pozwala technika Write-While-Read. Programatory /STK500 Microsense/ programator zgodny z AVR STK500v2 na USB, w systemie Windows XP działa w trybie COM, w systemach Windows 7 oraz Windows Vista zarówno 32 i 64 bitowych pracuje w trybie HID. 3

Programatory /STK500 Microsense/ Programatory /STK500 Microsense/ instalacja sterowników (USB AVR ISP II FT STK500v2), przypisanie urządzenia do wolnego portu COM w systemie (Menedżer urządzeń -> Właściwości), Connect -> Zmniejszenie częstotliwości: ISP frequency. Programatory /KamPROG Kamami/ Prosta instalacja oprogramowania wraz z plugin-em do AVRStudio: http://www.kamami.com/dl/kamprogavr_en.pdf 4

Programatory /KamPROG Kamami/ Programowanie /STK 200 LPT/ aplikacja PonyProg2000 jest przeznaczona do programowania układów z pamięcią Flash lub EEPROM, które mogą być programowane szeregowo, obsługuje przy tym różne standardy szeregowej transmisji takie jak magistrala I2C, microwire i SPI, za pomocą aplikacji można zaprogramować większość popularnych mikrokontrolerów jednoukładowych AVR wyposażonych w interfejs SPI (ang. Serial Peripherial Interface), niektóre z mikrokontrolerów ATMEL z serii AT89S, mikrokontrolery PIC serii PIC16X84 oraz pamięci szeregowe EEPROM. Programowanie /STK 200 LPT/ 5

Programowanie /STK 200 LPT/ Porty mikrokontrolera układy peryferyjne mikrokontrolera AVR można dołączać do czterech portów poprzez rejestry we/wy 8-bitowe rejestry we/wy znajdują się w przestrzeni adresowej pamięci danych, możliwe jest zapisywanie do portów/rejestrów we/wy lub odczytywanie z nich podobnie jak z pamięci danych, w zbiorze instrukcji języka maszynowego mikrokontrolera AVR istnieją też specjalne rozkazy służące do odczytu i zapisu zawartości rejestrów we/wy oraz rozkazy do manipulowania pojedynczymi bitami rejestrów, Porty mikrokontrolera z każdym z równoległych portów we/wy: A, B, C i D powiązane są po trzy rejestry I/O, o nazwach: DDRx, PORTx, PINx, (gdzie x oznacza port A, B, C lub D, stan poszczególnych bitów rejestrów DDRx (ang. Port Data Direction Register) decyduje czy odpowiadające im linie są wejściami czy wyjściami (0-wejście, 1-wyjście), jeżeli dana linia we/wy pracuje jako wyjście, wtedy ustawiając na wartość 1 odpowiadający tej linii bit w rejestrze PORTx (ang. Port Data Register) na wyprowadzeniu wymuszany jest stan wysoki, a ustawiając wartość bitu na 0 stan niski, 6

Porty mikrokontrolera jeżeli linia portu została skonfigurowana jako wejście, poziom logiczny na wyprowadzeniu sprawdza się odczytując wartość odpowiadającego tej linii bitu w rejestrze PINx (ang. Port Input Pins Address), dodatkowo, gdy linia jest wejściem i odpowiadający tej linii bit w rejestrze PORTx ma wartość 1, wtedy wyprowadzenie jest wewnętrznie podciągnięte do napięcia zasilania, dla dowolnego pinu jednego z portów konfiguracja przedstawia się następująco: Ustawiając wszystkie linie portu B jako wyjścia należy do rejestru DDRB wpisać wartość 0xff. DDRx.n PORTx.n Px.n 0 0 wejście 0 1 wejście podciągnięte do Vcc 1 0 lub 1 wyjście Asembler vs. C.INCLUDE "m32def.inc".org 0x0000 rjmp Reset Reset: ldi R16, 0xff out DDRA, R16 Petla: ldi R16, 0b10101010 out PORTA, R16 rjmp Petla #define F_CPU 16000000UL #include <avr/io.h> int main(void) { } DDRA = 0xFF; PORTA = 0x05; while (1) { } Porty mikrokontrolera Pętle opóźniające są dobrze skalibrowane tylko przy włączonej optymalizacji: Project -> GCC / WinAVR flags -> Optimization -> Level 2 7

Porty mikrokontrolera DDRB = _BV(7) _BV(6) _BV(5) _BV(4) DDRB = 0xF0 Porty mikrokontrolera 8