вторник, 7 января 2025 г.

W801 кнопка

Популярная отладочная плата с микроконтроллером w801 имеет достаточно много пинов ввода вывода общего назначения (GPIO). Пины общего назначения могут работать как выходы или как входны. Напр. можно выбрать нин PB8.

Рисунок 1 - Подключение кнопки к плате с микроконтроллером W801

Пин 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