Итак, программатор с последней прошивкой у нас есть.Теперь нам нужен компилятор и приложение для редактирования кода. Здесь рассказываю про версию для Windous. Компилятор будем использовать SDCC. Редактор кода VS Code.
Отсюда скачиваем дистрибутив VS Code для Windous.Отсюда архив, где расположено все остальное необходимое для работы.
Распаковываем, в папке у нас дистрибутив: sdcc-4.2.0-x64-setup. Последовательно устанавливаем программы SDCC и VSCode . Помимо дистрибутивов, в архиве есть папка «padauk-sdcc-vsode-starter-master». Папка содержит программу для записи кода в микроконтроллеры Padauk, список поддерживаемых ниже:
PMS150C PMS152 PFS154 PMS154B PMS154C
PMS171B (В этой версии решен вопрос PMS171B)
PFS172 PFS173
PMS15A
PFS154 PFS172 PFS173
После установки программ, открываем папку: правая кнопка мыши – «открыть с помощью Code»
Соглашаемся с предупреждением, жмем «Yes». Создаем чистый файл с помощью иконки
Даем ему имя ххх.С . Например Mayak-7.C Копипастим код :
#define PFS154
#define F_CPU 1000000
#define TARGET_VDD_MV 3000
#define TARGET_VDD 3.0
#include <pdk/device.h>
#include "auto_sysclock.h"
#include "delay.h"
#define BTN_L()!(PA & (1 << 0))// левую кнопку навешиваем на PA0
#define BTN_R()!(PB & (1 << 0))// правую кнопку навешиваем на PB0
// Main program
void main() {
PAC=0b11111110; // Enable Button as digital input
PAPH=0b00000001; // подключаем подтягивающие на порт PA,включая вывод кнопоки
PBC=0b11111110; // выводы PB определяем на выход кроме PB0
PBPH=0b00000001; // подключаем подтягивающий на порт PB0, вывод кнопоки
int i = 0;
PB=0;
_delay_ms(300);
if (BTN_R()) { // при нажатии верхней кнопки
i=7;
while (i>=0) {
PB=PB | (1 << i);
_delay_ms(50);
i=i-1;
}
}
else if (BTN_L()) { //при нажатии нижней кнопки
i=0;
while (i<=7) {
PB=PB | (1 << i);
_delay_ms(50);
i=i+1;
}
}
else {
PB=255; // мерцание, если кнопки не нажаты
_delay_ms(200);
}
}
// Startup code - Setup/calibrate system clock
unsigned char _sdcc_external_startup(void) {
AUTO_INIT_SYSCLOCK();
AUTO_CALIBRATE_SYSCLOCK(TARGET_VDD_MV);
return 0; // Return 0 to inform SDCC to continue with normal initialization.
}
Команда для компиляции нашего кода «Cntr+Shift+B». В выпадающем окне выбираем разрядность нашего микроконтроллера. В нашем случае для PFS154 это 14. Сразу начинается компиляция. Если ошибок нет, выводится такой текст. Главное в отчете внизу — это «Done».
Этим кодом будем прошивать макетную плату, сердце которой микроконтроллер PFS154-14.
На плате есть три светодиода и кнопка. Плата рассчитана так, что ее легко можно монтировать в разъем программатора. Возможности ее несколько шире, есть возможность дополнить второй кнопкой, микроконтроллером PFS154 16-ногим . Кнопки подключены к выводам “INT0”, “INT1”.
Ниже еще пара команд, которые нам понадобятся. Вставляем макетку в программатор
Для проверки подключенного программатора и/или микроконтроллера горячие клавиши «Cntr+P», в выпадающем окне вписываем «task+пробел» выбираем «Probe MC». Получаем результат
Для прошивки микроконтроллера горячие клавиши » Cntr+P», в выпадающем окне вписываем «task+пробел» выбираем «Write to MC». В выпадающем окне выбираем наш микроконтроллер. Получаем такой результат на экране
Прошиваем код в МК , вытаскиваем макетку из программатора, подаем питание. При включении питания, светодиоды начинают мерцать, при нажатии на кнопку должен быть эффект бегущего огня.