POLITECHNIKA POZNAŃSKA

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

C++ Paweł Rzechonek Instytut Informatyki Uniwersytetu Wrocławskiego
Język ANSI C Funkcje Wykład: Programowanie komputerów
Wykład 4 Przetwornik Analogowo-Cyfrowy
Programowanie imperatywne i język C Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
Programowanie imperatywne i język C
Programowanie imperatywne i język C Copyright, 2005 © Jerzy R. Nawrocki Wstęp.
Programowanie imperatywne i język C Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
Układy cyfrowe Irena Hoja Zespół Szkół Łączności
Język ANSI C Operacje we/wy
Architektura komputerów
Aneks do WSO W roku szkolnym 2013/2014 na lekcjach chemii uczniowie będą oceniani w oparciu o system średniej ważonej.
INFORMATYKA II Wykładowca: mgr Tadeusz Ziębakowski
Mikroprocesory i mikrokontrolery
Procesory jednoukładowe
Autor: Piotr Wojtowicz Opiekun naukowy referatu: dr inż. Cezary Worek
Programowanie imperatywne i język C Copyright, 2006 © Jerzy R. Nawrocki Wstęp do.
Podstawy programowania
Podstawy programowania II Wykład 2: Biblioteka stdio.h Zachodniopomorska Szkoła Biznesu.
MCS51 - wykład 2.
Podstawy układów logicznych
MCS51 - wykład 6.
Podstawy programowania w języku C i C++
Układy rejestrów cyfrowych
Licznik dwójkowy i dziesiętny Licznik dwójkowy i dziesiętny
POLITECHNIKA POZNAŃSKA
Cyfrowe układy logiczne
Proces projektowania i uruchamiania sterowników mikroprocesorowych
Sekwencyjne bloki funkcjonalne
TECHNIKA CIEPLNA (Z WYMIANĄ CIEPŁA) laboratoria
Mikroprocesory.
Programowanie obiektowe – zastosowanie języka Java SE
Prowadzący: AiNM - projekt Prowadzący:
Przekazywanie parametrów do funkcji oraz zmienne globalne i lokalne
Składnia pętli do … while do instrukcja while (wyrażenie); gdzie: instrukcja – instrukcja pojedyncza lub blok instrukcji wyrażenie – wyrażenie przyjmujące.
TECHNIKA CIEPLNA (Z WYMIANĄ CIEPŁA) laboratoria Łukasz AMANOWICZ Karol BANDURSKI.
Złożone układy kombinacyjne
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.
URZĄDZENIA TECHNIKI KOMPUTEROWEJ
PRACA MAGISTERSKA Wykorzystanie środowiska LABVIEW jako platformy do sterowania procesem wymuszenia w badaniach zmęczeniowych Grzegorz Sus Wydział Mechaniczny.
Konstrukcja i oprogramowanie
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
ATXMEGA128A4U 128 kB pamięci Flash Zasilanie 1.6V-3.6V Maksymalne taktowanie 32 MHz 34 Programowalne WE-WY System zdarzeń (Event System) 4 kanały DMA.
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.
POLITECHNIKA POZNAŃSKA WBMiZ Zakład Urządzeń Mechatronicznych STEROWNIKI URZĄDZEŃ MECHATRONICZNYCH LAB CMBiN p.209.
STM32F429I Discovery WARSZTATY DLA STUDENCKIEGO KOŁA NAUKOWEGO CHIP.
Przerwania timera i przerwania zewnętrzne
Wstęp do programowania Wykład 2 Dane, instrukcje, program.
1 Opisy funkcji Adres strony WWW : html (należy odszukać hyperlink Function Index) (
Sumator i półsumator.
POLITECHNIKA POZNAŃSKA
POLITECHNIKA POZNAŃSKA WBMiZ Zakład Urządzeń Mechatronicznych STEROWNIKI URZĄDZEŃ MECHATRONICZNYCH
POLITECHNIKA POZNAŃSKA WBMiZ Zakład Urządzeń Mechatronicznych STEROWNIKI URZĄDZEŃ MECHATRONICZNYCH
C++ mgr inż. Tomasz Turba Politechnika Opolska 2016.
POLITECHNIKA POZNAŃSKA WBMiZ Zakład Urządzeń Mechatronicznych STEROWNIKI URZĄDZEŃ MECHATRONICZNYCH
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
Zajęcia 1 – Zasady współpracy i zaliczenia
Wstęp do Informatyki - Wykład 6
Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska
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 GRZEGORZ.PITTNER@PUT.POZNAN.PL

Urządzenia mechatroniczne Mechanika Elektronika ?

Co nimi steruje?

Co to jest mikrokontroler?

Co to jest mikroprocesor? 1 ? 1 ?

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, I2C, CAN) Watchdog DAC I inne…

Harmonogram Laboratorium Zajęcia organizacyjne (plus wstęp o GPIO) GPIO INT (EXTI) TIM/CNT PWM ADC Kolokwium Zajęcia odbywają się z podziałem na 5 grup (max po 3 osoby w grupie)

Ocena Wejściówki: Sprawozdania: 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 Sprawozdania: jedno sprawozdanie na grupę Każdy musi oddać minimum 1 sprawozdanie Sprawozdanie jest przyjmowane na „+” bądź na „-” Plusy za aktywność oraz za samodzielność podczas ćwiczeń Kolokwium końcowe z całości materiału poznanego na lab. Ocena końcowa to średnia ważona ocen z wejściówek z wagą 1 oraz oceny z kolokwium z wagą 2 Zebrane plusy bądź minusy mogą zmodyfikować ocenę końcową maksymalnie o jeden stopień w górę bądź w dół.

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)

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=0b00000010; Decymalnie: REJESTR=10; Heksadecymalnie: REJESTR=0x10;

DDRx: Rejestr kierunkowy software: 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=0b00011000;

PORTx – rejestr WYJŚCIA 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])

PINx – rejestr WEJŚCIA Uwaga! Nazwa PINx może być myląca software: PINx – rejestr WEJŚCIA Uwaga! Nazwa PINx może być myląca 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

hardware: Podłączenie WYJŚCIA Maksymalna obciążalność prądowa GPIO dla ATmega128 wynosi 20mA Suma wszystkich prądów mikrokontrolera ATmaga128 nie może przekroczyć 200mA dla wejścia i 150mA dla wyjścia PORTA=0b00000010; PORTA=0b00000100; PORTA=0b00000000; PORTA=0b00000110; ? +5V R PA1 D1 R PA2 D2 GND

hardware: Podłączenie WEJŚCIA Maksymalna obciążalność prądowa GPIO dla ATmega128 wynosi 20mA 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” PA3 R +5V GND

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

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

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

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

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

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

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

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

Dostęp bitowy PORTA=0b000001000; //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^=0b00001111; //neguje 4 piny źle //nie kasuje pinu

Przykład 2 Software: Hardware: PA0 R +5V GND SW1 PA1 GND R D1 PA2 GND void main(void) { DDRA=0b00000110; //we/wy PORTA=0b00000000; //stan pocz. while(1) { //pętla główna if(PINA&0b00000001==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 PA1 GND R D1 PA2 GND R D2

ułatwienie Zapis „PINA&0b00000001” 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 <avr/io.h>

Przykład 2 Software: Hardware: PA0 R +5V GND SW1 PA1 GND R D1 PA2 GND void main(void) { DDRA=0b00000110; //we/wy PORTA=0b00000000; //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 PA1 GND R D1 PA2 GND R D2

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

Pytania? www.zum.put.poznan.pl

dziękuję I proszę o sporządzenie listy osób wg poniższego przykładu Przedmiot: SUM - lab Grupa: MCH2 Dzień, Godzina: Piątek, 19:30 Mail do starosty bądź osoby kontaktowej ktoś@gov.pl NAZWISKO IMIĘ Kowalski Jan Itd…