Учебный курс. Понятие прерывания. Подаем голос микроконтроллером.
Микроконтроллеры AVR имеют в своем составе целую тучу периферийных устройств (таймеры/счетчики, аналого-цифровой преобразователь, аналоговый компаратор, асинхронный приемопередатчик…и т.д). Мощь микроконтроллера в том, что все эти устройства могут работать параллельно и независимо друг от друга, а также параллельно выполняемой программе. Каждое периферийное устройство может вызывать прерывание по наступлению определенного события. Понятие прерывания мы сегодня и будем разбирать.
Учебный курс. Как работать с битами. Макроопределения
При программировании микроконтроллеров постоянно приходится работать с битами. Устанавливать их, сбрасывать, проверять их наличие в том или ином регистре. В AVR ассемблере для этих целей существует целый ряд команд. Во-первых, это группа команд операций с битами – они предназначены для установки или сброса битов в различных регистрах микроконтроллера, а во-вторых, группа команд передачи управления – они предназначены для организации ветвлений программ. В языке Си естественно нет подобных команд, поэтому у начинающих программистов часто возникает вопрос, а как в Си работать с битами. Эту тему мы сейчас и будем разбирать.
Учебный курс. Понятие переменной. Побитовый сдвиг влево. Побитовая инверсия. Оператор ветвления if...else.
Мы отдали дань уважения традициям, получили первое представление о программе на Си, познакомились с IARом. Сегодня мы углубим наши познания в Си. Наша следующая задача - написать программу бегущего светодиода.
AVR учебный курс. IAR AVR. Первая программа на Си
По сложившейся до меня традиции программирование микроконтроллеров начинается с программы управляющей светодиодом. И я в свое время наморгался светодиодами на старом добром AVRовском ките STK200. Это было несколько лет назад, и я до сих пор помню восторг от первых работающих программ, пускай и примитивно простых. Я начинал изучение микроконтроллеров с ассемблера и только спустя пару-тройку лет постепенно перешел на Си. К этому времени я уже хорошо знал всю периферию AVR микроконтроллеров, поэтому больших затруднений этот переход не вызвал.