Начало работы с программатором PADAUK  Free PDK

Итак, программатор с последней прошивкой у нас есть.Теперь нам нужен компилятор и приложение для редактирования кода. Здесь рассказываю про версию для 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».  В выпадающем окне выбираем наш микроконтроллер. Получаем такой результат на экране

Прошиваем код в МК , вытаскиваем макетку из программатора, подаем питание. При включении питания, светодиоды начинают мерцать, при нажатии на кнопку должен быть эффект бегущего огня.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *