Języki programowania II (Java+AVR-GCC) http://abm.p.lodz.pl dr inż. Michał Ludwicki Literatura Materiały Mikrokontrolery AVR Język C Podstawy programowania Mirosław Kardaś, Atnel, Szczecin, 2011. Specyfikacja mikrokontrolera Atmega32 http://www.atmel.com/ dowolna inna książka dot. mikrokontrolerów AVR. Internet Kurs języka C dla mikrokontrolerów AVR http://kursc.forbot.pl/ http://www.avrfreaks.net/forums/microcontrollers Materiały ze strony przedmiotu http://abm.p.lodz.pl/ Politechnika Łódzka Wydział Mechaniczny Mechatronika 2014/2015 2 1
Oprogramowanie Oprogramowanie (1) 1. JDK 6 lub 7 Java Development Kit http://www.oracle.com/ 2. środowisko programistyczne Eclipse IDE for Java Developers http://www.eclipse.org/ 3. WinAvr(AVR-GCC Toolchain) http://winavr.sourceforge.net/ 4. plus wtyczka AVR Eclipse plugin http://avr-eclipse.sourceforge.net/ 3 4 2
Oprogramowanie (2) Instalacja kompilatora (3) WinAVR WinAVR-20100110-install.exe http://winavr.sourceforge.net/ 5 6 3
Instalacja wtyczki AVR Eclipse Plugin(4a) Help Install new software http://avr-eclipse.sourceforge.net/updatesite Powiązanie kompilatora z wtyczką (4b) Automatycznie po instalacji. Jeśli nie trzeba ręcznie wybrać foldery. 7 8 4
Powiązanie kompilatora z wtyczką (4c) Dodanie nowej konfiguracji programatora Powiązanie kompilatora z wtyczką (4d) nazwa dowolna typ: USBasp 9 10 5
Środowisko programistyczne Kompilacja :100000000C942A000C9434000C9434000C943400AA :100010000C9434000C9434000C9434000C94340090 :100020000C9434000C9434000C9434000C94340080 :100030000C9434000C9434000C9434000C94340070 :100040000C9434000C9434000C9434000C94340060 :100050000C94340011241FBECFE5D8E0DEBFCDBF25 :100060000E9436000C9439000C94000080E090E06F :060070000895F894FFCF93 :00000001FF 11 http://www.mikroe.com/ 12 6
Przesył programu do mikrokontrolera Porty przez port LPT [równolegle] komputera (najprościej) przez port RS-232 [szeregowo] przez port USB [szeregowo] (specjalnym programatorem) Język programowania C (nie C++!) Kompilator AVR-GCC 33 polecenia: Sposób programowania na wydzielonym układzie na układzie działającym (port ISP In System Programming) http://www.mikroe.com/ 13 http://www.mikroe.com/ 14 7
lista poleceń C++ (84) Język programowania C (nie C++!) alignas alignof and and_eq asm auto bitand bitor bool break case catch char char16_t char32_t class compl const constexpr const_cast continue decltype default delete do double dynamic_cast else enum explicit export extern false float for friend goto if inline int long mutable namespace new noexcept not not_eq nullptr operator or or_eq private protected public register reinterpret_cast return short signed sizeof static static_assert static_cast struct switch template this thread_local throw true try typedef typeid typename union unsigned using virtual void volatile wchar_t while xor xor_eq 15 http://www.mikroe.com/ 16 8
typy danych C++ Mikrokontrolery tzw. mikrokomputery jednoukładowe (z ang. microcontroller unit, μc) zintegrowany układ: mikroprocesor + pamięć + interfejsy we/wy (z ang. I/O) pierwsze powstały już w 1971 r. (np. TMS 1000(firmy Texas Instruments z 1971 r.), 300kHz, 8 μm PMOS, 4-bitowy) http://kursc.forbot.pl/ 17 http://www.mikroe.com/ 18 9
Laboratorium Atmega32A Mikrokontroler Atmel Atmega32 8 bitowy, do 16 MHz 32 Kb - nieulotna pamięć programowa Flash 1024 bajty nieulotna pamięć danych EEPROM (Electrically-ErasableProgrammableRead-OnlyMemory) 2 Kb - ulotnej pamięć podręczna SRAM (Static Random Access Memory) Zestaw ewaluacyjny Atnel ATB 1.04 wbudowany programator sprzętowy wyświetlacze: LCD, 7-segm oraz diody LED, dioda IR komunikacja: USB / RS232 / RS485 / Bluetooth sterowniki: mostki H (L293D), ULN2803 układy: RTC (real time clock), EEPROM, RS485 czujniki elektroniczne: DS18B20 (temp.), TFMS (IR) karta pamięci MMC/SD mikro-przełączniki, buzzer http://atnel.pl/instrukcja-atb-rev-1-04.html 19 Specyfikacja Atmel Atmega32 20 10
Atmega32 specyfikacja Przykładowy schemat połączeń Specyfikacja Atmel Atmega32 http://kursc.forbot.pl/ 21 22 11
Alternatywa PORTY Mikrokontrolery PIC firmy Microchip PORT B wy/we cyfrowe z rezystorem podciągającym do VCC PORT A wejście A/D z rezystorem podciągającymdo VCC PORT D wy/we cyfrowe z rezystorem podciągającym do VCC PORT C wy/we cyfrowe z rezystorem podciągającym do VCC złącze interfejsu JTAG do testowania i programowania 23 24 12
REJESTRY Na przykład port A: DDR Data Direction wybór kierunku portu (wejście/wyjście/wysoka impedancji) PORT Data Register stan portu na wyjściu PIN Port Input Pin odczyt stanu wejścia tzw. rezystor podciągający (pull-up resistor) 25 26 13
Rejestry w zastosowaniu and or xor not Język C operacje bitowe iloczyn suma różnica symetryczna negacja 27 shift przesunięcie bitowe 28 14
Język C przesunięcie bitowe w lewo: << w prawo: >> Ćwiczenia PORTC = (1<<3) (1<<5) (1<<7); PORTC = 0b00001111 PORTC &= 0b11110000 PORTC = 0b00001111 PORTC = 0b11110000 PORTC &= (PORTC<<1) (PORTC<<2) y << x x * 2 y 29 30 15
Przykłady programów Przykłady programów Zadania: 1. Zastosuj operatory bitowe do uproszczenia programu obok. 2. Zmodyfikuj program, żeby dioda zamiast się zapalać, gasła. 31 32 16
Przykłady programów 33 17