Advertisement
Guest User

Untitled

a guest
Jan 19th, 2017
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.86 KB | None | 0 0
  1.  
  2. #include "Arduino.h"
  3. #include "TimerOne.h"
  4.  
  5. // Библиотеки проекта
  6. #include "comm.cpp"
  7. #include "synth.cpp"
  8. //#include "visual.cpp"
  9.  
  10. // Первоначальная функция програмы
  11. void setup() {
  12.     Serial.begin(57600);
  13.     //pinMode(LED_BUILTIN, OUTPUT);
  14.  
  15.     // Сброс нот и настройка голов
  16.     SetupHeadOutputs();
  17.     ResetHeads();
  18.  
  19.     // Настройка экрана
  20.     //SetupScreen();
  21.     //ResetScreen();
  22.     //SwitchScreen(false);
  23.  
  24.     // Настройка таймера для обновления голов
  25.     Timer1.initialize(50);
  26.     Timer1.attachInterrupt(UpdateHeads);
  27. }
  28.  
  29. // Функция обновления программы
  30. void loop() {
  31.  
  32.     if (Connected) {
  33.  
  34.         // Чтение пакетов (по 16 на шаг)
  35.         for (int tick = 0; tick < 16; tick++) {
  36.             ReadPacket();
  37.  
  38.             // Если пакетов нет - пропускаем шаг
  39.             if (CurrentPacket == 0) {
  40.                 break;
  41.             }
  42.  
  43.             // Разбор индекса пакета
  44.             switch (CurrentPacket) {
  45.  
  46.                 // Сброс голов
  47.                 case PACKET_RESET:
  48.                     ResetHeads();
  49.                     //ResetScreen();
  50.                     break;
  51.  
  52.                 // Запуск ноты
  53.                 case PACKET_NOTE_ON:
  54.                     StartNote(CurrentParams[0], CurrentParams[1]);
  55.                     //SetScreenNote(CurrentParams[0], CurrentParams[1]);
  56.                     break;
  57.  
  58.                 // Остановка ноты
  59.                 case PACKET_NOTE_OFF:
  60.                     StopNote(CurrentParams[0]);
  61.                     //SetScreenNote(CurrentParams[0], -1);
  62.                     break;
  63.  
  64.                 // Отключение
  65.                 case PACKET_DISCONNECT:
  66.                     ResetHeads();
  67.                     //ResetScreen();
  68.                     //SwitchScreen(false);
  69.                     Connected = false;
  70.                     break;
  71.             }
  72.         }
  73.     } else {
  74.         // Ожидание подключения
  75.         WaitForConnection();
  76.         if (Connected) {
  77.             //ResetScreen();
  78.             //SwitchScreen(true);
  79.         }
  80.     }
  81.  
  82.     // Обновление экрана
  83.     //RedrawScreen();
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement