🗊Презентация Как зажечь светодиод

Категория: Технология
Нажмите для полного просмотра!
Как зажечь светодиод, слайд №1Как зажечь светодиод, слайд №2Как зажечь светодиод, слайд №3Как зажечь светодиод, слайд №4Как зажечь светодиод, слайд №5Как зажечь светодиод, слайд №6Как зажечь светодиод, слайд №7Как зажечь светодиод, слайд №8Как зажечь светодиод, слайд №9Как зажечь светодиод, слайд №10Как зажечь светодиод, слайд №11Как зажечь светодиод, слайд №12Как зажечь светодиод, слайд №13Как зажечь светодиод, слайд №14Как зажечь светодиод, слайд №15Как зажечь светодиод, слайд №16Как зажечь светодиод, слайд №17Как зажечь светодиод, слайд №18Как зажечь светодиод, слайд №19Как зажечь светодиод, слайд №20Как зажечь светодиод, слайд №21Как зажечь светодиод, слайд №22Как зажечь светодиод, слайд №23Как зажечь светодиод, слайд №24Как зажечь светодиод, слайд №25

Содержание

Вы можете ознакомиться и скачать презентацию на тему Как зажечь светодиод. Доклад-сообщение содержит 25 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Есть ли у вас вопросы?
Описание слайда:
Есть ли у вас вопросы?

Слайд 2





Предупреждение
Все электрические схемы, представленные здесь и далее, являются условными! 
В них могут отсутствовать важные компоненты!
Описание слайда:
Предупреждение Все электрические схемы, представленные здесь и далее, являются условными! В них могут отсутствовать важные компоненты!

Слайд 3





Цели на сегодня:
Зажечь светодиод
Погасить светодиод
Помигать светодиодом
Помигать по нажатию кнопки (bonus level)
Описание слайда:
Цели на сегодня: Зажечь светодиод Погасить светодиод Помигать светодиодом Помигать по нажатию кнопки (bonus level)

Слайд 4





Как зажечь светодиод?
Это зависит от того, как он подключен.
Описание слайда:
Как зажечь светодиод? Это зависит от того, как он подключен.

Слайд 5





Как зажечь светодиод?
Описание слайда:
Как зажечь светодиод?

Слайд 6





Как зажечь светодиод?
Описание слайда:
Как зажечь светодиод?

Слайд 7





Как узнать, нажата ли кнопка?
Описание слайда:
Как узнать, нажата ли кнопка?

Слайд 8





Как правильно подключать кнопку
Описание слайда:
Как правильно подключать кнопку

Слайд 9





Но можно и наоборот
Описание слайда:
Но можно и наоборот

Слайд 10





Логические уровни
Для stm32f103:
Для других устройств уровни могут быть другими; кодирование может быть инверсным и т.д.
Описание слайда:
Логические уровни Для stm32f103: Для других устройств уровни могут быть другими; кодирование может быть инверсным и т.д.

Слайд 11





Контакты микроконтроллера
(они же «пины», «ноги», «выводы»)
Описание слайда:
Контакты микроконтроллера (они же «пины», «ноги», «выводы»)

Слайд 12





Работа с периферийными устройствами
Специальные команды ассемблера
Ввод/вывод, отображенный на память (memory mapped IO) – регистры доступны по фиксированным адресам.
В последнем случае у каждого периферийного устройства есть набор регистров (не путать с регистрами ЦПУ).
Каждый регистр настраивает определенную функциональность.
Каждый бит в регистре что-то означает.
Описание слайда:
Работа с периферийными устройствами Специальные команды ассемблера Ввод/вывод, отображенный на память (memory mapped IO) – регистры доступны по фиксированным адресам. В последнем случае у каждого периферийного устройства есть набор регистров (не путать с регистрами ЦПУ). Каждый регистр настраивает определенную функциональность. Каждый бит в регистре что-то означает.

Слайд 13





Что из этого нам сегодня нужно?
Чтобы зажечь светодиод на плате discovery, нам нужна ножка в режиме комплементарного выхода (output push-pull).
Чтобы считать состояние кнопки – вход без подтяжки (input floating).
Описание слайда:
Что из этого нам сегодня нужно? Чтобы зажечь светодиод на плате discovery, нам нужна ножка в режиме комплементарного выхода (output push-pull). Чтобы считать состояние кнопки – вход без подтяжки (input floating).

Слайд 14





Как же всем этим управлять?
Нужно как-то выбирать все эти режимы и состояния для каждого контакта! Как? Как должен выглядеть API?
С помощью специальных функций, которые кто-то уже написал за нас? 
Но что делают эти функции?
Описание слайда:
Как же всем этим управлять? Нужно как-то выбирать все эти режимы и состояния для каждого контакта! Как? Как должен выглядеть API? С помощью специальных функций, которые кто-то уже написал за нас? Но что делают эти функции?

Слайд 15





Работа с GPIO
Контакты МК логически объединяются в группы – «порты».
В stm32f10x в каждом порту 16 контактов.
Порты обозначаются буквами – PORTA, PORTB, PORTC...
Контакты обозначаются числами от 0 до 15:
PC.12 – 12-й контакт в порту С.
Количество доступных контактов зависит от корпуса МК; некоторые порты могут отсутствовать целиком или частично.
Описание слайда:
Работа с GPIO Контакты МК логически объединяются в группы – «порты». В stm32f10x в каждом порту 16 контактов. Порты обозначаются буквами – PORTA, PORTB, PORTC... Контакты обозначаются числами от 0 до 15: PC.12 – 12-й контакт в порту С. Количество доступных контактов зависит от корпуса МК; некоторые порты могут отсутствовать целиком или частично.

Слайд 16





STM32f103RBT6
На плате discovery не доступны:
PA13, PA14, PA15;    PB3,PB4;    PC14, PC15;    PD0, PD1
Описание слайда:
STM32f103RBT6 На плате discovery не доступны: PA13, PA14, PA15; PB3,PB4; PC14, PC15; PD0, PD1

Слайд 17





STM32 VL Discovery
Два светодиода, подключенные к земле и МК:
PC.8
PC.9
Две кнопки:
Черная – это reset
Синяя – PA.0 – просто кнопка с внешней подтяжкой к питанию
Описание слайда:
STM32 VL Discovery Два светодиода, подключенные к земле и МК: PC.8 PC.9 Две кнопки: Черная – это reset Синяя – PA.0 – просто кнопка с внешней подтяжкой к питанию

Слайд 18





Регистры GPIO
Регистр CRL (control low) – режим работы пинов с 0 по 7.
Регистр CRH (control high) – режим работы пинов с 8 по 15.
Регистр IDR (input data register) – чтение состояния входов.
Регистр ODR (output data register) – чтение и запись состояния выходов.
И еще несколько.
У каждого порта есть такой набор регистров.
Где про них читать? reference manual, глава 9.2 (стр. 166)
Описание слайда:
Регистры GPIO Регистр CRL (control low) – режим работы пинов с 0 по 7. Регистр CRH (control high) – режим работы пинов с 8 по 15. Регистр IDR (input data register) – чтение состояния входов. Регистр ODR (output data register) – чтение и запись состояния выходов. И еще несколько. У каждого порта есть такой набор регистров. Где про них читать? reference manual, глава 9.2 (стр. 166)

Слайд 19





Доступ к регистрам периферии в языке С
Через указатели на «волшебные» структуры:
GPIOA->ODR – доступ к регистру ODR порта А, словно это обычная глобальная переменная.
(в других МК бывают «волшебные» указатели сразу на регистры, без структур)
Описание слайда:
Доступ к регистрам периферии в языке С Через указатели на «волшебные» структуры: GPIOA->ODR – доступ к регистру ODR порта А, словно это обычная глобальная переменная. (в других МК бывают «волшебные» указатели сразу на регистры, без структур)

Слайд 20





Почему ничего не работает?!
Практически всю периферию в МК нужно сначала включить (подать питание и тактирование).
Это нужно сделать через регистры подсистемы тактирования. Все GPIO включаются через регистр RCC->APB2ENR (ref. man. стр. 142)
Описание слайда:
Почему ничего не работает?! Практически всю периферию в МК нужно сначала включить (подать питание и тактирование). Это нужно сделать через регистры подсистемы тактирования. Все GPIO включаются через регистр RCC->APB2ENR (ref. man. стр. 142)

Слайд 21





Как же зажечь светодиод
Подать питание на нужный порт
регистр RCC->AP2ENR
Настроить режим нужного контакта в нужном порту (нужен режим output push pull)
регистр GPIOx->CRH или CRL
Вывести на контакт высокий уровень
регистр GPIOx->ODR
Описание слайда:
Как же зажечь светодиод Подать питание на нужный порт регистр RCC->AP2ENR Настроить режим нужного контакта в нужном порту (нужен режим output push pull) регистр GPIOx->CRH или CRL Вывести на контакт высокий уровень регистр GPIOx->ODR

Слайд 22





Битовые манипуляции
Установка одного бита:
a |= 1<<7; // установить седьмой бит
Сброс одного бита:
a &= ~(1<<3); // сбросить третий бит
Инверсия одного бита:
a ^= 1<<5; // инверсия пятого бита
Описание слайда:
Битовые манипуляции Установка одного бита: a |= 1<<7; // установить седьмой бит Сброс одного бита: a &= ~(1<<3); // сбросить третий бит Инверсия одного бита: a ^= 1<<5; // инверсия пятого бита

Слайд 23





Доступ к регистрам, отображенным на память
Допустим, адрес нужного мне регистра - 0x4001 0800.
И регистр этот размером в 4 байта.
Как мне в него что-нибудь записать, если я пишу на С?
Например, можно создать указатель:
uint32_t * ptr = 0x40010800;
Но указателю нельзя присвоить число, будет ошибка компиляции.
Нужно сделать приведение типа:
uint32_t * ptr = (uint32_t *)0x40010800;
Теперь почти все ок, можно записать число по нужному адресу:
*ptr = 1;
Описание слайда:
Доступ к регистрам, отображенным на память Допустим, адрес нужного мне регистра - 0x4001 0800. И регистр этот размером в 4 байта. Как мне в него что-нибудь записать, если я пишу на С? Например, можно создать указатель: uint32_t * ptr = 0x40010800; Но указателю нельзя присвоить число, будет ошибка компиляции. Нужно сделать приведение типа: uint32_t * ptr = (uint32_t *)0x40010800; Теперь почти все ок, можно записать число по нужному адресу: *ptr = 1;

Слайд 24





Доступ к регистрам, отображенным на память
А как сделать то же самое, не создавая указатель?
Описание слайда:
Доступ к регистрам, отображенным на память А как сделать то же самое, не создавая указатель?

Слайд 25





Доступ к регистрам, отображенным на память
В последние годы, дефайнить каждый регистр – это уже не модно.
Теперь модно объявить структуру из нескольких регистров, относящихся к одному периферийному устройству.
А потом задефайнить адрес с приведением типа к этой структуре.
Тогда доступ к регистрам выглядит как доступ к глобальному указателю на структуру:

GPIOC->ODR = 1;
Описание слайда:
Доступ к регистрам, отображенным на память В последние годы, дефайнить каждый регистр – это уже не модно. Теперь модно объявить структуру из нескольких регистров, относящихся к одному периферийному устройству. А потом задефайнить адрес с приведением типа к этой структуре. Тогда доступ к регистрам выглядит как доступ к глобальному указателю на структуру: GPIOC->ODR = 1;



Похожие презентации
Mypresentation.ru
Загрузить презентацию