Содержание
- 2. Запись одного бита Установка одного бита: a |= 1 Сброс одного бита: a &= ~(1 Инверсия
- 3. Чтение одного бита if( a & (1 Писать if( a & (1 Скобки лучше ставить. Серьезно.
- 4. Запись нескольких бит Объединение через ИЛИ: a |= (1 Три волшебных числа: a |= 0x3 a
- 5. Чтение нескольких бит (аналогично) Объединение через ИЛИ: a & (1 Три волшебных числа: a & (3
- 6. Как помигать светодиодом? Что такое мигание? Это когда какое-то время светодиод горит, а потом какое-то время
- 7. Как подождать? С помощью функции delay? Но как она работает? Самый простой способ – пустой цикл
- 8. А можно ли чуть попроще помигать? Можно: Подождать Инвертировать состояние ножки Повторить 1-2
- 9. Краткое содержание этой серии Как на микроконтроллере измерять время Что такое прерывания и зачем они нужны
- 10. Как измерять время? Вопрос на засыпку: что значит «измерять время»? Измерять, сколько времени прошло между событиями
- 11. Как измерять время? И как же это сделать? Использовать процессорные такты как «тики» - например, с
- 12. Микропроцессор и его ядро
- 13. Ядро Cortex M3 Что общего у микроконтроллеров на таком ядре? Система команд и время их выполнения
- 14. Так как же измерять время? Мы хотим: Измерять время между событиями Отмерять интервалы времени
- 15. Так как же измерять время? Допустим, у нас есть ЧАСЫ. Как с их помощью отмерить интервал?
- 16. А как не пропустить момент? Периодически посматривать на часы!
- 17. «Основные свойства часов» Значение часов изменяется каждую секунду на фиксированную величину. Когда часы досчитывают до 23:59:59,
- 18. Таймер SysTick Простейший таймер, периферия ядра Cortex M3 (поэтому его описание нужно искать в документе Cortex
- 19. Таймер SysTick — особенности Счетчик 24-битный (макс. 16 777 216) Частота тиков не регулируется и всегда
- 20. Таймер SysTick — использование Настройка производиться через структуру SysTick. В ней есть четыре регистра: CTRL –
- 21. Таймер SysTick — использование SysTick->LOAD = 1000 – 1; Задаем начало отсчета, таймер сделает 1000 тиков.
- 22. Таймер SysTick — использование Почему поллинг регистра SysTick->VAL работает не всегда? Потому что счетчик меняется с
- 23. Таймер SysTick — использование Для настройки таймера SysTick фирма ARM предоставляет библиотечную функцию SysTick_Config. Она принимает
- 24. Таймер SysTick — правильное использование Магическая строчка __disable_irq(); - запрет прерываний Вызов SysTick_Config — задание reload
- 25. Как вычислить нужный reload? Текущая частота ядра хранится в переменной SystemCoreClock (в герцах). Я хочу, чтобы
- 26. А что же такое прерывание? Как засечь интервал времени с помощью часов? Постоянно смотреть на часы,
- 27. А что же такое прерывание? Прерывание (interrupt) — это аппаратный вызов функции по какому-то событию. Такая
- 28. Прерывания Как вы думаете, какие бывают прерывания? Прерывания по исключительным ситуациям (исключения, exceptions) – например, деление
- 29. Прерывания В чем основное отличие функции-обработчика прерывания от обычной функции? Ее вызов происходит аппаратно, в заранее
- 30. Прерывания А что, если запретить все прерывания (вызвать __disable_irq())? Прерывания не будут происходить. А что, если
- 31. Как использовать прерывания? Написать функцию-обработчик (в Keil это функция с заранее определенным именем, например SysTick_Handler) Запретить
- 33. Скачать презентацию