По традиции любой микроконтроллер следует начинать изучать со светодиодной мигалки. В данном блоге уже есть предыдущие две статьи по мигалке на ардуино и работе с SDK. Создание мигалки не в среде Ардуино можно считать следующим этапом изучения. Чтобы можно было загружать прошивку на ОС Linux, нужно добавить настройку в menuconfig. Переходим в корневую папку SDK, открываем терминал и запускаем menuconfig, командой
sudo make menuconfig
выбираем
Download Configuration
и вписываем такую строку ttyUSB0
после чего сохраняем под дефолтным названием и выходим (как в предыдущем уроке по W801). Теперь можно изменить код примера, превратив его в код мигалки, откомпилировать и загрузить в плату. Открываем main.c в папке app и теперь чтобы мигнуть светодиодом надо выбрать пин. На плате есть 7 встроенных светодиодов, например можно выбрать крайний PB5
Исходный код светодиодной мигалки будет выглядеть так:
чтобы сконфигурировать пин используется функция tls_gpio_cfg() первый параметр у неё это название пина (в данном случае PB5), второй это вход или выход (здесь настроен на выход)
и последний похоже на внутреннюю подтяжку или режим выхода, Чтобы вывести на пин единицу или ноль используется функция tls_gpio_write() первый параметр данной функции это название пина а второй это логический уровень на выходе. Встроенные на плату светодиоды зажигаются нулем а гаснут единицей. Вместо задержки будет цикл в котором пин будет конфигурироваться и управляться если сделать миллион итераций то светодиод будет мигать редко если сделать 100 000 то чаще. Мигание повторяется в цикле 100 раз и может быть запущено заново нажатием кнопки reset на плате. Если компиляция выполнилась успешно то можно подключиь плату к компьютеру и загрузить прошивку вписав, из корня SDK, команду
sudo tools/w800/wm_tool -c ttyUSB0 -rs rts -dl bin/w800/w800.fls
Нажимть кнопку reset не нужно, после успешной загрузки плата начнет мигать светодиодом. Посмотреть результат весь процесс в видео формате можно на видео:
Адрес биткоин кошелька для поддержки блога - bc1qlhrmmkh77x2lzhqe4lt9qwkglswj64tsqt2l5g