Популярная отладочная плата с микроконтроллером w801 имеет достаточно много пинов ввода вывода общего назначения (GPIO). Пины общего назначения могут работать как выходы или как входны. Напр. можно выбрать нин PB8.
Пин PB8 не имеет альтернативных функций поэтому его можно использовать как GPIO не боясь упустить какую либо интересную функцию имеющуюся у данного микроконтроллера помимо GPIO. Также ряддом с ним располагаются пины питания для организации подтяжки и собственно подключения самой кнопки.
рассмотрим код:
Для настройки какого либо пина общего назначения, используется функция
tls_gpio_cfg();
чтобы настроить данный пин на вход, надо передать константу WM_GPIO_DIR_INPUT вторым параметром в данную функцию. Первым параметром передается константа с номером пина. Последним параметром передается тип подтяжки (если я правильно понял). Читается состояние пина функцией
ret = tls_gpio_read(WM_IO_PB_08);
у которой только один параметр это номер пина и которая возвращает его состояние. Если на пине лог. 0 то функция возвратит 0. Далее на основе этого имеется ветвление. Если на пине лог. 0 то светодиод будет мигать. Если нет то не будет. Для компиляции кода, нужно запустить из корня проекта команду
sudo make
для загрузки рошивки в плату, команду
sudo tools/w800/wm_tool -c ttyUSB0 -rs rts -dl bin/w800/w800.fls
Если загрузка продет удачно то светодиод будет мигать если кнопка не нажата. Если нажато то мигание должно не работать.
Адрес биткоин кошелька для поддержки блога - bc1qlhrmmkh77x2lzhqe4lt9qwkglswj64tsqt2l5g