добавил инициализацию флоппи-приводов, чтобы они физически возвращались на парковку при сбросе процессора
This commit is contained in:
parent
709ae5ef4f
commit
b3b04f5714
@ -6,6 +6,11 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Функция инициализации флоппи-приводов, нужно вызывать после запуска таймера тактирования и перед запуском таймера мелодии
|
||||
*/
|
||||
void FloppyDriveInitialize();
|
||||
|
||||
/**
|
||||
* Функция, вызываемая в прерывании таймера несущей частоты
|
||||
*/
|
||||
|
@ -13,6 +13,7 @@ public:
|
||||
uint16_t top = 0; // верхнее значение таймера
|
||||
uint16_t curr_step = 0; // текущий шаг флоппи привода
|
||||
bool isStarted = false; // запущен ли таймер
|
||||
bool isInitialization = false; // режим инициализации, нужен чтобы отодвинуть флоппи привод на нулевую позицию
|
||||
|
||||
GPIO_TypeDef* gpio{};
|
||||
const uint16_t gpioDirBit{}; // бит ноги GPIO для подключения к Floppy::DIR
|
||||
@ -24,29 +25,56 @@ public:
|
||||
top = FLOPPOTRON_SOUND_FREQ / freq;
|
||||
}
|
||||
|
||||
void setInitializationMode() {
|
||||
isInitialization = true;
|
||||
isStarted = true;
|
||||
}
|
||||
|
||||
void setEnable(bool en) {
|
||||
isStarted = en;
|
||||
}
|
||||
|
||||
void tick() {
|
||||
if (isStarted) {
|
||||
cnt++;
|
||||
if (cnt >= top) {
|
||||
cnt = 0;
|
||||
curr_step++;
|
||||
if (curr_step >= FLOPPOTRON_MAX_STEPS) {
|
||||
curr_step = 0;
|
||||
}
|
||||
if (curr_step & 1) {
|
||||
// нечетные шаги, это тик направления
|
||||
if (curr_step < FLOPPOTRON_MAX_STEPS / 2) {
|
||||
gpio->ODR |= gpioDirBit;
|
||||
} else {
|
||||
gpio->ODR &= ~gpioDirBit;
|
||||
}
|
||||
} else {
|
||||
// четные шаги, это шаги мотора
|
||||
if (isInitialization) {
|
||||
cnt++;
|
||||
if (cnt >= FLOPPOTRON_SOUND_FREQ / 500) {
|
||||
// направление выставляем сразу
|
||||
gpio->ODR |= gpioDirBit;
|
||||
|
||||
// и дергаем ногой
|
||||
gpio->ODR ^= gpioStepBit;
|
||||
|
||||
cnt = 0;
|
||||
|
||||
curr_step++;
|
||||
|
||||
if (curr_step >= FLOPPOTRON_MAX_STEPS) {
|
||||
// инициализация завершена
|
||||
curr_step = 0;
|
||||
isInitialization = false;
|
||||
isStarted = false;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
cnt++;
|
||||
if (cnt >= top) {
|
||||
cnt = 0;
|
||||
curr_step++;
|
||||
if (curr_step >= FLOPPOTRON_MAX_STEPS) {
|
||||
curr_step = 0;
|
||||
}
|
||||
if (curr_step & 1) {
|
||||
// нечетные шаги, это тик направления
|
||||
if (curr_step < FLOPPOTRON_MAX_STEPS / 2) {
|
||||
gpio->ODR &= ~gpioDirBit;
|
||||
} else {
|
||||
gpio->ODR |= gpioDirBit;
|
||||
}
|
||||
} else {
|
||||
// четные шаги, это шаги мотора
|
||||
gpio->ODR ^= gpioStepBit;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@ -79,110 +107,194 @@ void FloppySoundTickHandler() {
|
||||
#define FT_CMD_MASK 0xF000
|
||||
|
||||
|
||||
void FloppyDriveInitialize() {
|
||||
for (auto& d:drives) {
|
||||
d.setInitializationMode();
|
||||
}
|
||||
|
||||
for (auto& d:drives) {
|
||||
// ожидание завершения инициализации
|
||||
while (d.isInitialization) {}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// хандлер для проигрывания нот
|
||||
void FloppyTrackTick() {
|
||||
// байткод для 100bpm, тестовая мелодия
|
||||
const static uint16_t bytecode[] = {
|
||||
FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 165, FT_CMD_WAIT | 50, // '3'
|
||||
FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 247, FT_CMD_WAIT | 50, // '7'
|
||||
FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 196, FT_CMD_WAIT | 50, // '5'
|
||||
FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 247, FT_CMD_WAIT | 50, // '7'
|
||||
FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 165, FT_CMD_WAIT | 50, // '3'
|
||||
FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 247, FT_CMD_WAIT | 50, // '7'
|
||||
FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 196, FT_CMD_WAIT | 50, // '5'
|
||||
FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 247, FT_CMD_WAIT | 50, // '7'
|
||||
FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 147, FT_CMD_WAIT | 50, // '2'
|
||||
FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 247, FT_CMD_WAIT | 50, // '7'
|
||||
FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 196, FT_CMD_WAIT | 50, // '5'
|
||||
FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 247, FT_CMD_WAIT | 50, // '7'
|
||||
FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 147, FT_CMD_WAIT | 50, // '2'
|
||||
FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 247, FT_CMD_WAIT | 50, // '7'
|
||||
FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 196, FT_CMD_WAIT | 50, // '5'
|
||||
FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 247, FT_CMD_WAIT | 50, // '7'
|
||||
FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 147, FT_CMD_WAIT | 50, // '2'
|
||||
FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 247, FT_CMD_WAIT | 50, // '7'
|
||||
FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 174, FT_CMD_WAIT | 50, // '4'
|
||||
FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 247, FT_CMD_WAIT | 50, // '7'
|
||||
FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 147, FT_CMD_WAIT | 50, // '2'
|
||||
FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 247, FT_CMD_WAIT | 50, // '7'
|
||||
FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 174, FT_CMD_WAIT | 50, // '4'
|
||||
FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 247, FT_CMD_WAIT | 50, // '7'
|
||||
FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 147, FT_CMD_WAIT | 50, // '2'
|
||||
FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 220, FT_CMD_WAIT | 50, // '6'
|
||||
FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 174, FT_CMD_WAIT | 50, // '4'
|
||||
FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 220, FT_CMD_WAIT | 50, // '6'
|
||||
FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 147, FT_CMD_WAIT | 50, // '2'
|
||||
FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 220, FT_CMD_WAIT | 50, // '6'
|
||||
FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 174, FT_CMD_WAIT | 50, // '4'
|
||||
FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 220, FT_CMD_WAIT | 50, // '6'
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 50, // ' '
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 50, // ' '
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 50, // ' '
|
||||
FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 165, FT_CMD_WAIT | 50, // '3'
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 50, // ' '
|
||||
FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 196, FT_CMD_WAIT | 50, // '5'
|
||||
FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 174, FT_CMD_WAIT | 50, // '4'
|
||||
FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 196, FT_CMD_WAIT | 50, // '5'
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 50, // ' '
|
||||
FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 247, FT_CMD_WAIT | 50, // '7'
|
||||
FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 262, FT_CMD_WAIT | 50, // '1''
|
||||
FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 247, FT_CMD_WAIT | 50, // '7'
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 50, // ' '
|
||||
FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 147, FT_CMD_WAIT | 50, // '2'
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 50, // ' '
|
||||
FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 174, FT_CMD_WAIT | 50, // '4'
|
||||
FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 196, FT_CMD_WAIT | 50, // '5'
|
||||
FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 174, FT_CMD_WAIT | 50, // '4'
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 50, // ' '
|
||||
FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 196, FT_CMD_WAIT | 50, // '5'
|
||||
FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 220, FT_CMD_WAIT | 50, // '6'
|
||||
FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 196, FT_CMD_WAIT | 50, // '5'
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 50, // ' '
|
||||
FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 147, FT_CMD_WAIT | 50, // '2'
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 50, // ' '
|
||||
FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 174, FT_CMD_WAIT | 50, // '4'
|
||||
FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 165, FT_CMD_WAIT | 50, // '3'
|
||||
FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 174, FT_CMD_WAIT | 50, // '4'
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 50, // ' '
|
||||
FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 247, FT_CMD_WAIT | 50, // '7'
|
||||
FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 262, FT_CMD_WAIT | 50, // '1''
|
||||
FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 247, FT_CMD_WAIT | 50, // '7'
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 50, // ' '
|
||||
FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 147, FT_CMD_WAIT | 50, // '2'
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 50, // ' '
|
||||
FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 174, FT_CMD_WAIT | 50, // '4'
|
||||
FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 165, FT_CMD_WAIT | 50, // '3'
|
||||
FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 174, FT_CMD_WAIT | 50, // '4'
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 50, // ' '
|
||||
FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 196, FT_CMD_WAIT | 50, // '5'
|
||||
FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 220, FT_CMD_WAIT | 50, // '6'
|
||||
FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 196, FT_CMD_WAIT | 50, // '5'
|
||||
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 500,
|
||||
// FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 165, FT_CMD_WAIT | 50, // '3'
|
||||
// FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 247, FT_CMD_WAIT | 50, // '7'
|
||||
// FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 196, FT_CMD_WAIT | 50, // '5'
|
||||
// FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 247, FT_CMD_WAIT | 50, // '7'
|
||||
// FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 165, FT_CMD_WAIT | 50, // '3'
|
||||
// FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 247, FT_CMD_WAIT | 50, // '7'
|
||||
// FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 196, FT_CMD_WAIT | 50, // '5'
|
||||
// FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 247, FT_CMD_WAIT | 50, // '7'
|
||||
// FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 147, FT_CMD_WAIT | 50, // '2'
|
||||
// FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 247, FT_CMD_WAIT | 50, // '7'
|
||||
// FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 196, FT_CMD_WAIT | 50, // '5'
|
||||
// FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 247, FT_CMD_WAIT | 50, // '7'
|
||||
// FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 147, FT_CMD_WAIT | 50, // '2'
|
||||
// FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 247, FT_CMD_WAIT | 50, // '7'
|
||||
// FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 196, FT_CMD_WAIT | 50, // '5'
|
||||
// FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 247, FT_CMD_WAIT | 50, // '7'
|
||||
// FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 147, FT_CMD_WAIT | 50, // '2'
|
||||
// FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 247, FT_CMD_WAIT | 50, // '7'
|
||||
// FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 174, FT_CMD_WAIT | 50, // '4'
|
||||
// FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 247, FT_CMD_WAIT | 50, // '7'
|
||||
// FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 147, FT_CMD_WAIT | 50, // '2'
|
||||
// FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 247, FT_CMD_WAIT | 50, // '7'
|
||||
// FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 174, FT_CMD_WAIT | 50, // '4'
|
||||
// FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 247, FT_CMD_WAIT | 50, // '7'
|
||||
// FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 147, FT_CMD_WAIT | 50, // '2'
|
||||
// FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 220, FT_CMD_WAIT | 50, // '6'
|
||||
// FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 174, FT_CMD_WAIT | 50, // '4'
|
||||
// FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 220, FT_CMD_WAIT | 50, // '6'
|
||||
// FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 147, FT_CMD_WAIT | 50, // '2'
|
||||
// FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 220, FT_CMD_WAIT | 50, // '6'
|
||||
// FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 174, FT_CMD_WAIT | 50, // '4'
|
||||
// FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 220, FT_CMD_WAIT | 50, // '6'
|
||||
// FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 50, // ' '
|
||||
// FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 50, // ' '
|
||||
// FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 50, // ' '
|
||||
// FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 165, FT_CMD_WAIT | 50, // '3'
|
||||
// FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 50, // ' '
|
||||
// FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 196, FT_CMD_WAIT | 50, // '5'
|
||||
// FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 174, FT_CMD_WAIT | 50, // '4'
|
||||
// FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 196, FT_CMD_WAIT | 50, // '5'
|
||||
// FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 50, // ' '
|
||||
// FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 247, FT_CMD_WAIT | 50, // '7'
|
||||
// FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 262, FT_CMD_WAIT | 50, // '1''
|
||||
// FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 247, FT_CMD_WAIT | 50, // '7'
|
||||
// FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 50, // ' '
|
||||
// FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 147, FT_CMD_WAIT | 50, // '2'
|
||||
// FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 50, // ' '
|
||||
// FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 174, FT_CMD_WAIT | 50, // '4'
|
||||
// FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 196, FT_CMD_WAIT | 50, // '5'
|
||||
// FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 174, FT_CMD_WAIT | 50, // '4'
|
||||
// FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 50, // ' '
|
||||
// FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 196, FT_CMD_WAIT | 50, // '5'
|
||||
// FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 220, FT_CMD_WAIT | 50, // '6'
|
||||
// FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 196, FT_CMD_WAIT | 50, // '5'
|
||||
// FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 50, // ' '
|
||||
// FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 147, FT_CMD_WAIT | 50, // '2'
|
||||
// FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 50, // ' '
|
||||
// FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 174, FT_CMD_WAIT | 50, // '4'
|
||||
// FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 165, FT_CMD_WAIT | 50, // '3'
|
||||
// FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 174, FT_CMD_WAIT | 50, // '4'
|
||||
// FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 50, // ' '
|
||||
// FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 247, FT_CMD_WAIT | 50, // '7'
|
||||
// FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 262, FT_CMD_WAIT | 50, // '1''
|
||||
// FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 247, FT_CMD_WAIT | 50, // '7'
|
||||
// FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 50, // ' '
|
||||
// FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 147, FT_CMD_WAIT | 50, // '2'
|
||||
// FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 50, // ' '
|
||||
// FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 174, FT_CMD_WAIT | 50, // '4'
|
||||
// FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 165, FT_CMD_WAIT | 50, // '3'
|
||||
// FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 174, FT_CMD_WAIT | 50, // '4'
|
||||
// FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 50, // ' '
|
||||
// FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 196, FT_CMD_WAIT | 50, // '5'
|
||||
// FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 220, FT_CMD_WAIT | 50, // '6'
|
||||
// FT_CMD_NOTES_ON | 1, FT_CMD_SET_FRQ1 | 196, FT_CMD_WAIT | 50, // '5'
|
||||
//
|
||||
// FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 500,
|
||||
|
||||
// недо-имперский марш
|
||||
FT_CMD_NOTES_ON | 3, FT_CMD_SET_FRQ1 | 165, FT_CMD_SET_FRQ2 | 165, FT_CMD_WAIT | 25, // '3'
|
||||
FT_CMD_WAIT | 25, // '_'
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 25, // ' '
|
||||
FT_CMD_NOTES_ON | 3, FT_CMD_SET_FRQ1 | 165, FT_CMD_SET_FRQ2 | 165, FT_CMD_WAIT | 25, // '3'
|
||||
FT_CMD_WAIT | 25, // '_'
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 25, // ' '
|
||||
FT_CMD_NOTES_ON | 3, FT_CMD_SET_FRQ1 | 165, FT_CMD_SET_FRQ2 | 165, FT_CMD_WAIT | 25, // '3'
|
||||
FT_CMD_WAIT | 25, // '_'
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 25, // ' '
|
||||
FT_CMD_NOTES_ON | 3, FT_CMD_SET_FRQ1 | 131, FT_CMD_SET_FRQ2 | 131, FT_CMD_WAIT | 25, // '1'
|
||||
FT_CMD_WAIT | 25, // '_'
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 25, // ' '
|
||||
FT_CMD_NOTES_ON | 3, FT_CMD_SET_FRQ1 | 196, FT_CMD_SET_FRQ2 | 196, FT_CMD_WAIT | 25, // '5'
|
||||
FT_CMD_NOTES_ON | 3, FT_CMD_SET_FRQ1 | 165, FT_CMD_SET_FRQ2 | 165, FT_CMD_WAIT | 25, // '3'
|
||||
FT_CMD_WAIT | 25, // '_'
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 25, // ' '
|
||||
FT_CMD_NOTES_ON | 3, FT_CMD_SET_FRQ1 | 131, FT_CMD_SET_FRQ2 | 131, FT_CMD_WAIT | 25, // '1'
|
||||
FT_CMD_WAIT | 25, // '_'
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 25, // ' '
|
||||
FT_CMD_NOTES_ON | 3, FT_CMD_SET_FRQ1 | 196, FT_CMD_SET_FRQ2 | 196, FT_CMD_WAIT | 25, // '5'
|
||||
FT_CMD_NOTES_ON | 3, FT_CMD_SET_FRQ1 | 165, FT_CMD_SET_FRQ2 | 165, FT_CMD_WAIT | 25, // '3'
|
||||
FT_CMD_WAIT | 25, // '_'
|
||||
FT_CMD_NOTES_ON | 3, FT_CMD_SET_FRQ1 | 131, FT_CMD_SET_FRQ2 | 131, FT_CMD_WAIT | 10, // '1'
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 10, // ' '
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 10, // ' '
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 10, // ' '
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 10, // ' '
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 10, // ' '
|
||||
FT_CMD_NOTES_ON | 3, FT_CMD_SET_FRQ1 | 131, FT_CMD_SET_FRQ2 | 131, FT_CMD_WAIT | 10, // '1'
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 10, // ' '
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 10, // ' '
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 10, // ' '
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 10, // ' '
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 10, // ' '
|
||||
FT_CMD_NOTES_ON | 3, FT_CMD_SET_FRQ1 | 131, FT_CMD_SET_FRQ2 | 131, FT_CMD_WAIT | 10, // '1'
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 10, // ' '
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 10, // ' '
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 10, // ' '
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 10, // ' '
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 10, // ' '
|
||||
FT_CMD_NOTES_ON | 3, FT_CMD_SET_FRQ1 | 131, FT_CMD_SET_FRQ2 | 131, FT_CMD_WAIT | 10, // '1'
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 10, // ' '
|
||||
FT_CMD_NOTES_ON | 3, FT_CMD_SET_FRQ1 | 131, FT_CMD_SET_FRQ2 | 131, FT_CMD_WAIT | 10, // '1'
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 10, // ' '
|
||||
FT_CMD_NOTES_ON | 3, FT_CMD_SET_FRQ1 | 131, FT_CMD_SET_FRQ2 | 131, FT_CMD_WAIT | 10, // '1'
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 10, // ' '
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 10, // ' '
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 10, // ' '
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 10, // ' '
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 10, // ' '
|
||||
FT_CMD_NOTES_ON | 3, FT_CMD_SET_FRQ1 | 131, FT_CMD_SET_FRQ2 | 131, FT_CMD_WAIT | 10, // '1'
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 10, // ' '
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 10, // ' '
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 10, // ' '
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 10, // ' '
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 10, // ' '
|
||||
FT_CMD_NOTES_ON | 3, FT_CMD_SET_FRQ1 | 131, FT_CMD_SET_FRQ2 | 131, FT_CMD_WAIT | 10, // '1'
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 10, // ' '
|
||||
FT_CMD_NOTES_ON | 3, FT_CMD_SET_FRQ1 | 131, FT_CMD_SET_FRQ2 | 131, FT_CMD_WAIT | 10, // '1'
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 10, // ' '
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 10, // ' '
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 10, // ' '
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 10, // ' '
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 10, // ' '
|
||||
FT_CMD_NOTES_ON | 3, FT_CMD_SET_FRQ1 | 165, FT_CMD_SET_FRQ2 | 165, FT_CMD_WAIT | 10, // '3'
|
||||
FT_CMD_WAIT | 10, // '_'
|
||||
FT_CMD_WAIT | 10, // '_'
|
||||
FT_CMD_WAIT | 10, // '_'
|
||||
FT_CMD_WAIT | 10, // '_'
|
||||
FT_CMD_WAIT | 10, // '_'
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 10, // ' '
|
||||
FT_CMD_NOTES_ON | 3, FT_CMD_SET_FRQ1 | 165, FT_CMD_SET_FRQ2 | 165, FT_CMD_WAIT | 10, // '3'
|
||||
FT_CMD_WAIT | 10, // '_'
|
||||
FT_CMD_WAIT | 10, // '_'
|
||||
FT_CMD_WAIT | 10, // '_'
|
||||
FT_CMD_WAIT | 10, // '_'
|
||||
FT_CMD_WAIT | 10, // '_'
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 10, // ' '
|
||||
FT_CMD_NOTES_ON | 3, FT_CMD_SET_FRQ1 | 165, FT_CMD_SET_FRQ2 | 165, FT_CMD_WAIT | 10, // '3'
|
||||
FT_CMD_WAIT | 10, // '_'
|
||||
FT_CMD_WAIT | 10, // '_'
|
||||
FT_CMD_WAIT | 10, // '_'
|
||||
FT_CMD_WAIT | 10, // '_'
|
||||
FT_CMD_WAIT | 10, // '_'
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 10, // ' '
|
||||
FT_CMD_NOTES_ON | 3, FT_CMD_SET_FRQ1 | 131, FT_CMD_SET_FRQ2 | 131, FT_CMD_WAIT | 10, // '1'
|
||||
FT_CMD_WAIT | 10, // '_'
|
||||
FT_CMD_WAIT | 10, // '_'
|
||||
FT_CMD_WAIT | 10, // '_'
|
||||
FT_CMD_WAIT | 10, // '_'
|
||||
FT_CMD_WAIT | 10, // '_'
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 10, // ' '
|
||||
FT_CMD_NOTES_ON | 3, FT_CMD_SET_FRQ1 | 196, FT_CMD_SET_FRQ2 | 196, FT_CMD_WAIT | 10, // '5'
|
||||
FT_CMD_WAIT | 10, // '_'
|
||||
FT_CMD_NOTES_ON | 3, FT_CMD_SET_FRQ1 | 165, FT_CMD_SET_FRQ2 | 165, FT_CMD_WAIT | 10, // '3'
|
||||
FT_CMD_WAIT | 10, // '_'
|
||||
FT_CMD_WAIT | 10, // '_'
|
||||
FT_CMD_WAIT | 10, // '_'
|
||||
FT_CMD_WAIT | 10, // '_'
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 10, // ' '
|
||||
FT_CMD_NOTES_ON | 3, FT_CMD_SET_FRQ1 | 131, FT_CMD_SET_FRQ2 | 131, FT_CMD_WAIT | 10, // '1'
|
||||
FT_CMD_WAIT | 10, // '_'
|
||||
FT_CMD_WAIT | 10, // '_'
|
||||
FT_CMD_WAIT | 10, // '_'
|
||||
FT_CMD_WAIT | 10, // '_'
|
||||
FT_CMD_WAIT | 10, // '_'
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 10, // ' '
|
||||
FT_CMD_NOTES_ON | 3, FT_CMD_SET_FRQ1 | 196, FT_CMD_SET_FRQ2 | 196, FT_CMD_WAIT | 10, // '5'
|
||||
FT_CMD_WAIT | 10, // '_'
|
||||
FT_CMD_NOTES_ON | 3, FT_CMD_SET_FRQ1 | 165, FT_CMD_SET_FRQ2 | 165, FT_CMD_WAIT | 10, // '3'
|
||||
FT_CMD_WAIT | 10, // '_'
|
||||
FT_CMD_WAIT | 10, // '_'
|
||||
FT_CMD_WAIT | 10, // '_'
|
||||
FT_CMD_WAIT | 10, // '_'
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 10, // ' '
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 10, // ' '
|
||||
|
||||
FT_CMD_NOTES_OFF | 3, FT_CMD_WAIT | 500,
|
||||
FT_CMD_STOP
|
||||
|
@ -96,6 +96,9 @@ int main(void)
|
||||
/* USER CODE BEGIN 2 */
|
||||
|
||||
HAL_TIM_Base_Start_IT(&htim4);
|
||||
|
||||
FloppyDriveInitialize();
|
||||
|
||||
HAL_TIM_Base_Start_IT(&htim3);
|
||||
|
||||
/* USER CODE END 2 */
|
||||
|
Loading…
x
Reference in New Issue
Block a user