POLITECHNIKA POZNAŃSKA WBMiZ Zakład Urządzeń Mechatronicznych STEROWNIKI URZĄDZEŃ MECHATRONICZNYCH LAB CMBiN p.209.

Slides:



Advertisements
Podobne prezentacje
Zerowanie mikroprocesorów Cel: wprowadzenie mikroprocesora w określony stan początkowy Zwykle realizowany poprzez: inicjalizację licznika rozkazów (PC)
Advertisements

Kurs języka C++ Paweł Rzechonek Instytut Informatyki
C++ Paweł Rzechonek Instytut Informatyki Uniwersytetu Wrocławskiego
Język ANSI C Funkcje Wykład: Programowanie komputerów
BUDOWA WEWNĘTRZNA KOMPUTERA
Wykład 4 Przetwornik Analogowo-Cyfrowy
Podstawowe składniki funkcjonalne procesora i ich rola.
Programowanie imperatywne i język C Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
Programowanie imperatywne i język C Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
Układy cyfrowe Irena Hoja Zespół Szkół Łączności
PODSTAWY INFORMATYKI Wykładowca: mgr Tadeusz Ziębakowski
Komputer, procesor, rozkaz.
Języki programowania C++
Język ANSI C Operacje we/wy
Architektura komputerów
INFORMATYKA II Wykładowca: mgr Tadeusz Ziębakowski
TECHNOLOGIE INFORMACYJNE
Mikroprocesory i mikrokontrolery
Pamięć wspólna Opis własnego rozwiązania Marcin Kamiński, Michał Kotra Wydział EAIiE Katedra Automatyki Kraków, 2008.
Procesory jednoukładowe
Autor: Piotr Wojtowicz Opiekun naukowy referatu: dr inż. Cezary Worek
Kod Graya.
Podstawy programowania
Podstawy programowania II Wykład 2: Biblioteka stdio.h Zachodniopomorska Szkoła Biznesu.
opracowanie: Agata Idczak
Podstawy układów logicznych
MCS51 - wykład 6.
Podstawy programowania w języku C i C++
POLITECHNIKA POZNAŃSKA
POLITECHNIKA POZNAŃSKA
Opracował : Przemysław Drzymała
Cyfrowe układy logiczne
Proces projektowania i uruchamiania sterowników mikroprocesorowych
Urządzenia wewnętrzne komputera
Podstawy programowania w języku C i C++
Mikroprocesory.
Przekazywanie parametrów do funkcji oraz zmienne globalne i lokalne
Budowa komputera ProProgramer.
Składnia pętli do … while do instrukcja while (wyrażenie); gdzie: instrukcja – instrukcja pojedyncza lub blok instrukcji wyrażenie – wyrażenie przyjmujące.
Złożone układy kombinacyjne
Jak komputer dane mieli
Zintegrowany sterownik przycisków. Informacje podstawowe Każdy przycisk jest podłączony do sterownika za pośrednictwem dwóch przewodów, oraz dwóch linii.
Programowanie strukturalne i obiektowe C++
URZĄDZENIA TECHNIKI KOMPUTEROWEJ
Przerzutniki Przerzutniki.
Układ sterowania modelu napędu dźwigowego na bazie programowalnych mikrokontrolerów Autor: Łukasz Gębarowski Opiekun: dr inż. Andrzej Ożadowicz
Struktura wewnętrzna mikrokontrolera zamkniętego
Zasady arytmetyki dwójkowej
Programowanie imperatywne i język C Copyright, 2007 © Jerzy R. Nawrocki Wstęp do.
TECHNIKA CIEPLNA (Z WYMIANĄ CIEPŁA) laboratoria Łukasz AMANOWICZ Karol BANDURSKI.
STM32F429I Discovery WARSZTATY DLA STUDENCKIEGO KOŁA NAUKOWEGO CHIP.
Przerwania timera i przerwania zewnętrzne
Stworzenie projektu w cubemx i kontunuacja w sw4stm32
Wstęp do programowania Wykład 2 Dane, instrukcje, program.
POLITECHNIKA POZNAŃSKA
POLITECHNIKA POZNAŃSKA WBMiZ Zakład Urządzeń Mechatronicznych STEROWNIKI URZĄDZEŃ MECHATRONICZNYCH
K URS JĘZYKA C++ – ORGANIZACJA ZAJĘĆ ( ) Paweł Rzechonek Instytut Informatyki Uniwersytetu Wrocławskiego.
POLITECHNIKA POZNAŃSKA WBMiZ Zakład Urządzeń Mechatronicznych STEROWNIKI URZĄDZEŃ MECHATRONICZNYCH
C++ mgr inż. Tomasz Turba Politechnika Opolska 2016.
Akademia ETI 2016 PREZENTACJA - MIKROKONTROLERY. Czym jest mikrokontroler Mikrokontroler to wyspecjalizowany układ scalony, zawierający jednostkę centralną.
Grzegorz Cygan Wstęp do programowania mikrosterowników w języku C
Sterowane ramię robota
POLITECHNIKA POZNAŃSKA
Kurs języka C++ – organizacja zajęć ( )
Zajęcia 1 – Zasady współpracy i zaliczenia
Wstęp do Informatyki - Wykład 6
Mikrokontrolery System przerwań
Zajęcia 1 – Zasady współpracy i zaliczenia
Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska
SSA SEMESTR LETNI 2018/2019.
Zapis prezentacji:

POLITECHNIKA POZNAŃSKA WBMiZ Zakład Urządzeń Mechatronicznych STEROWNIKI URZĄDZEŃ MECHATRONICZNYCH LAB CMBiN p.209

Urządzenia mechatroniczne Mechanika  Elektronika ??

Co nimi steruje?

Co to jest mikrokontroler?

Co to jest mikroprocesor? ? ?

Mikroprocesor przetwarza sygnały wejścia na sygnały wyjścia według wcześniej zdefiniowanego programu Sam mikroprocesor jest zdolny jedynie do cyfrowych operacji logicznych, nie jest on zdolny do sterowania maszynami mechanicznymi ani nie cyfrowymi układami elektronicznymi Aby mikroprocesor mógł sterować maszyną należy doposażyć go w tzw. peryferia Mikroprocesor + peryferia = mikrokontroler

Standardowe peryferia wewnętrzne mikrokontrerów Zegar wewnętrzny (generator RC) GPIO TIMER/COUNTER INT (zwane także EXTI) ADC PWM Pamięć RAM Pamięć Flash Pamięć EEPROM Interface’y komunikacyjne (SPI, UART, USART, I 2 C, CAN) Watchdog DAC I inne…

Harmonogram Laboratorium 0) Zajęcia organizacyjne 1)GPIO 2)INT (EXTI) 3)TIM/CNT 4)PWM(sprawozdanie z ćw. 1-3) 5)ADC 6)Kolokwium/odróbki/poprawki (sprawozdanie z ćw. 4-5) Instrukcje:

Ocena Wejściówki: – mogą pojawić się na każdym ćwiczeniu w formie ustnej bądź pisemnej – Osoba, która z uwagi na nieobecność nie pisała wejściówki jest zobligowana do napisania jej w terminie późniejszym – Osoba, która odrobiła zajęcia z inną grupą u innego prowadzącego zobligowana jest do napisania wejściówki u swojego oryginalnie prowadzącego zajęcia wykładowcy. Sprawozdania: – Są składane indywidualnie – Są składane na zajęciach: nr 4 z ćwiczenia 1,2 i 3 nr 6 z ćwiczenia 5 i 6 – Sprawozdanie jest przyjmowane, na „+”, na „-” bądź na „0”. Plusy – za aktywność oraz za samodzielność podczas ćwiczeń – Za wykonanie ostatniego ćwiczenia lab. na każdych zajęciach – Dodatkowy bonus dla pierwszej osoby która wykona ostatnie ćwiczenie lab. na danych zajęciach Ocena końcowa wystawiana na podstawie średniej oceny z wejściówek zmodyfikowana o +/- zdobyte na zajęciach Kolokwium końcowe dla chętnych z całości materiału poznanego na lab. celem poprawienia proponowanej wcześniej oceny końcowej

Ocena c.d. Nie możliwe jest ocenienie działania software’u bez wiedzy o działaniu hardware’u. Dlatego też prawidłowa odpowiedź na wejściówce bądź kolokwium musi zawierać pełne informacje o obu sferach aplikacji. Na zajęciach obowiązuje podstawowa znajomość języka C (a ściślej ANSI C), która zostanie sprawdzona. Na zajęciach programujemy w języku GCC.

Na zajęciach student zobowiązany jest posiadać: Nośnik pamięci (penddrive) zawierający: Instrukcję.pdf do aktualnego ćwiczenia Pliki przykładowych programów dołączonych do instrukcji aktualnego ćwiczenia Notę katalogową do MPU AtMega128 (.pdf) Opis zestawu dydaktycznego (.pdf) Swoje poprzednie programy Instrukcję LAB0-wprowadzenie.pdf Instrukcję SUM - opis zestawu dydaktycznego.pdf

Literatura: Wydawnictwo BTC: „Mikrokontrolery AVR ATmega w praktyce” „Mikrokontrolery AVR w praktyce” „Mikrokontrolery AVR - niezbędnik programisty” „Mikrokontrolery dla początkujących” „Sztuka programowania mikrokontrolerów AVR – podstawy” „Sztuka programowania mikrokontrolerów AVR – przykłady”

MCU na zajęciach 8 bit Producent MCU: ATMEL Rodzina MCU: AVR Podrodzina MCU: ATmega Model MCU: ATmega128 Środowisko IDE: – AVR studio (freeware) – WinAVR : AVR-GCC for Windows (freeware) Nota katalogowa – google:„ATmega128.pdf” – pobrać:„doc2467.pdf” (ENG, 386str.)

Pytania odnośnie zaliczenia bądź formy prowadzenia zajęć?

GPIO General Purpose Input / Output GPIO w mikrokontrolerze podzielone są na grupy logiczne zwane PORT Pojedynczą nóżkę GPIO nazywamy PIN Porty znakowane są literami np.: PORTA, PORTB, itd… Piny są numerowane od 0 do 7 (dla MCU 8 bit) Aby zaadresować GPIO podaje się port i pin np.: PORTA, pin1 lub prościej PA1 (czyli druga nóżka portu A) GPIO może przyjąć jedynie 2 stany logiczne 0 lub 1 Dla stanu 0 potencjał na danej nóżce wynosi 0[V], a dla stanu 1 potencjał wynosi 5[V] (wg. standardu TTL)

GPIO Aby sterować GPIO ustawia się tzw. rejestry konfiguracyjne Rejestry konfiguracyjne dla 8 bitowych MCU są 8 bitowymi zmiennymi (unsigned char) W języku GCC zapis rejestru wygląda następująco: – Binarnie: REJESTR=0b ; – Decymalnie: REJESTR=10; – Heksadecymalnie: REJESTR=0x10;

DDRx: Rejestr kierunkowy 0 na danej pozycji rejestru oznacza, że odpowiadający pin jest traktowany jako WEJŚCIE 1 na danej pozycji rejestru oznacza, że odpowiadający pin jest traktowany jako WYJŚCIE DDRC=0b ; software:

PORTx – rejestr WYJŚCIA 0 na danej pozycji rejestru oznacza, że odpowiadający pin ustawiony w stan logicznego 0 (potencjał 0[V]) 1 na danej pozycji rejestru oznacza, że odpowiadający pin ustawiony w stan logicznego 1 (potencjał 5[V]) software:

PINx – rejestr WEJŚCIA Uwaga! Nazwa rejestru PINx może być mylona ze słowem „pin” opisującego potocznie „nóżkę” układu scalonego w j. ang. Jest to rejestr tylko do odczytu. 0 na danej pozycji rejestru oznacza, że przez odpowiadający pin nie płynie prąd. 1 na danej pozycji rejestru oznacza, że przez odpowiadający pin płynie prąd. software:

Podłączenie WYJŚCIA Maksymalna obciążalność prądowa GPIO dla ATmega128 wynosi 40mA Suma wszystkich prądów mikrokontrolera ATmaga128 nie może przekroczyć 200mA hardware: PA1 PA2 GND +5V R R PORTA=0b ; PORTA=0b ; PORTA=0b ; PORTA=0b ; D1 D2

Maksymalna obciążalność prądowa GPIO dla ATmega128 wynosi 40mA Pin należy podłączyć tak aby prąd przepływał bądź aby był uziemiony Istnieje kilka możliwych rozwiązań – Pull-up zewnętrzny – Pull-up wewnętrzny – Pull-down zewnętrzny – Pull-down wewnętrzny – Floating Na potrzeby zajęć będziemy używać jedynie podłączenia „pull-up zewnętrzny” hardware: Podłączenie WEJŚCIA PA3 R +5V GND

PA3 R +5V GND PA3 R +5V GND R wew. R≈0

Przykład: przycisk + LED Hardware: PA2 GND R D1 PB3 R +5V GND Software: void main(void) { DDRA=0b ; DDRB=0; PORTA=0b ; PORTB=0b ; while(1) { if(PINB!=0) PORTA=0b ; else PORTA=0b ; } SW1

Maski bitowe &iloczyn bitowy |suma bitowa ~negacja ^XOR >>przesuwanie bitowe w prawo <<przesuwanie bitowe w lewo

& (iloczyn) Bitowo: X & Y = Z X Y Z dec 10dec 2dec Bitowo: 18 & 10 = 2 Logicznie: 18 && 10 = 1 (prawda i prawda = prawda)

| (suma) Bitowo: X | Y = Z X Y Z dec 9dec 25dec Bitowo: 17 | 9 = 25 Logicznie: 17 || 9 = 1 (prawda lub prawda = prawda)

~ (negacja) Bitowo: ~X X ~X dec 238dec Bitowo: ~17=238 Logicznie: !17 =0 (nie prawda = fałsz)

^ (XOR) Bitowo: X ^ Y = Z X Y Z dec 9dec 12dec Bitowo: 17 ^ 9 = 12 Logicznie: brak odpowiednika w języku ANSI C

> Bitowo: X<<Y = Z X Y Z dec 2dec 68dec Bitowo: 145<<2=145*4=580=68 (przepełnienie unsigned char)

Dostęp bitowy PORTA=0b ;//ustawia cały port PORTA=(1<<3);//ustawia cały port PORTA=PORTA|(1<<3);//ustawia jeden pin PORTA|=(1<<3);//prościej PORTA&=(1<<3); PORTA&=~(1<<3);dobrze//kasuje pin PORTA^=0xFF;//neguje cały port PORTA^=0b ;//neguje 4 piny źle//nie kasuje pinu

Przykład 2 Hardware: PA1 GND R D1 PA0 R +5V GND Software: void main(void) { DDRA=0b ; //we/wy PORTA=0b ; //stan pocz. while(1) { //pętla główna if(PINA&0b ==1) //warunek we. { //jeśli prawda PORTA|=(1<<1); //ustaw 1 na poz. 1 PORTA&=~(1<<2); //ustaw 0 na poz 2 } else { //jeśli fałsz PORTA&=~(1<<1); //ustaw 0 na poz. 1 PORTA|=(1<<2); //ustaw 1 na poz. 2 } SW1 PA2 GND R D2

ułatwienie Zapis „PINA&0b ” można zastąpić w języku GCC komendą: bit_is_set(REJESTR,POZYCJA) Np.. If(bit_is_set(PINA,0)) {…} Dostępna jest też komenda bit_is_clear(REJESTR,POZYCJA) Komendy te znajdują się w bibliotece #include

Przykład 2 Hardware: PA1 GND R D1 PA0 R +5V GND Software: #include void main(void) { DDRA=0b ; //we/wy PORTA=0b ; //stan pocz. while(1) { //pętla główna if(bit_is_set(PINA,0)) //warunek we. { //jeśli prawda PORTA|=(1<<1); //ustaw 1 na poz. 1 PORTA&=~(1<<2); //ustaw 0 na poz 2 } else { //jeśli fałsz PORTA&=~(1<<1); //ustaw 0 na poz. 1 PORTA|=(1<<2); //ustaw 1 na poz. 2 } SW1 PA2 GND R D2

programowanie Program *.c biblioteki *.h Kod maszynowy *.hex kompilacja PC USB Programator JTAG lub ISP MCU Interface JTAG lub ISP PCB Pamięć FLASH

Pytania?

dziękuję Proszę o sporządzenie listy osób wg poniższego przykładu w formacie.txt Nazwisko proszę podawać jako pierwsze (przed imieniem) Przedmiot:SUM – lab Grupa:MCHxx Dzień, Godzina:Piątek, 21:30 TydzieńParzysty (nad kreską) Mail do starosty bądź osoby NAZWISKOIMIĘ KowalskiJan Itd…