Guest User

AVR Src

a guest
Feb 15th, 2013
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.02 KB | None | 0 0
  1. char disp[4]; // Буфер дисплея
  2. char disp_c; // Индекс символа, отображаемого в данный момент
  3. char disp_p[4] = {0x01, 0x02, 0x40, 0x80}; // Битовые маски разрядов
  4.  
  5. // ================================ main() ================================
  6.     for(;;) {
  7.         wdt_reset();
  8.         usbPoll();
  9.         sk++;
  10.         if (sk >= 50) { // Порты контроллера очень быстрые, и задержка тут необходиа
  11.             disp_c = (disp_c + 1) % 4;
  12.             PORTA = ~disp[disp_c]; // Переместить "~" на строку ниже для дисплея с общ. катодом
  13.             PORTC = disp_p[disp_c];
  14.             sk = 0;
  15.         }
  16.     }
  17.  
  18. // ================================ процедура приема =======================
  19. uchar   usbFunctionWrite(uchar *data, uchar len) // onHostWrite
  20. {
  21.     disp[0] = data[1]; disp[1] = data[2];
  22.     disp[2] = data[3]; disp[3] = data[4];
  23.     if (data[0] & 0x01) DESELECT(); else SELECT();
  24.     return 1; /* обязательно */
  25. }
Advertisement
Add Comment
Please, Sign In to add comment