Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "Arduino.h"
- #include "TimerOne.h"
- // Библиотеки проекта
- #include "comm.cpp"
- #include "synth.cpp"
- //#include "visual.cpp"
- // Первоначальная функция програмы
- void setup() {
- Serial.begin(57600);
- //pinMode(LED_BUILTIN, OUTPUT);
- // Сброс нот и настройка голов
- SetupHeadOutputs();
- ResetHeads();
- // Настройка экрана
- //SetupScreen();
- //ResetScreen();
- //SwitchScreen(false);
- // Настройка таймера для обновления голов
- Timer1.initialize(50);
- Timer1.attachInterrupt(UpdateHeads);
- }
- // Функция обновления программы
- void loop() {
- if (Connected) {
- // Чтение пакетов (по 16 на шаг)
- for (int tick = 0; tick < 16; tick++) {
- ReadPacket();
- // Если пакетов нет - пропускаем шаг
- if (CurrentPacket == 0) {
- break;
- }
- // Разбор индекса пакета
- switch (CurrentPacket) {
- // Сброс голов
- case PACKET_RESET:
- ResetHeads();
- //ResetScreen();
- break;
- // Запуск ноты
- case PACKET_NOTE_ON:
- StartNote(CurrentParams[0], CurrentParams[1]);
- //SetScreenNote(CurrentParams[0], CurrentParams[1]);
- break;
- // Остановка ноты
- case PACKET_NOTE_OFF:
- StopNote(CurrentParams[0]);
- //SetScreenNote(CurrentParams[0], -1);
- break;
- // Отключение
- case PACKET_DISCONNECT:
- ResetHeads();
- //ResetScreen();
- //SwitchScreen(false);
- Connected = false;
- break;
- }
- }
- } else {
- // Ожидание подключения
- WaitForConnection();
- if (Connected) {
- //ResetScreen();
- //SwitchScreen(true);
- }
- }
- // Обновление экрана
- //RedrawScreen();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement