Guest User

Untitled

a guest
Apr 2nd, 2016
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.43 KB | None | 0 0
  1. // Params for width and height
  2. const uint8_t kMatrixWidth = 10;
  3. const uint8_t kMatrixHeight = 5;
  4.  
  5. #define NUM_LEDS (kMatrixWidth * kMatrixHeight)
  6.  
  7. // Param for different pixel layouts
  8. const bool    kMatrixSerpentineLayout = true;
  9.  
  10. uint8_t row[NUM_LEDS];
  11. uint8_t column[NUM_LEDS];
  12.  
  13. uint8_t findRow(uint8_t n)
  14. {
  15.   row[n] = n / kMatrixWidth;
  16.   return row[n];
  17. }
  18.  
  19.  
  20. uint8_t findColumn(uint8_t n)
  21. {
  22.  
  23.   if ( kMatrixSerpentineLayout == false) {
  24.     column[n] = (n - (kMatrixWidth * (n / kMatrixWidth)));
  25.   }
  26.  
  27.   if ( kMatrixSerpentineLayout == true) {
  28.     if ( (n / kMatrixWidth) & 0x01) {
  29.      
  30.       // Odd rows run backwards
  31.       column[n] = (kMatrixWidth - 1) - (n - (kMatrixWidth * (n / kMatrixWidth)));
  32.  
  33.     } else {
  34.       // Even rows run forwards
  35.       column[n] = (n - (kMatrixWidth * (n / kMatrixWidth)));
  36.     }
  37.   }
  38.  
  39.   return column[n];
  40. }
  41.  
  42. void setup() {
  43.  
  44.   delay(3000);
  45.   Serial.begin(9600);
  46.   while (!Serial);
  47.  
  48.  
  49.   //Print labels
  50.  
  51.   Serial.print("LED");
  52.   Serial.print("\t");
  53.  
  54.   Serial.print("ROW");
  55.   Serial.print("\t");
  56.  
  57.   Serial.print("COLUMN");
  58.   Serial.println("\t");
  59.  
  60.  
  61.   for ( uint8_t n = 0; n < NUM_LEDS; n++) {
  62.  
  63.     findRow(n);
  64.     findColumn(n);
  65.  
  66.     Serial.print(n);
  67.     Serial.print("\t");
  68.  
  69.     Serial.print(row[n]);
  70.     Serial.print("\t");
  71.  
  72.     Serial.print(column[n]);
  73.     Serial.println("\t");
  74.   }
  75. }
  76.  
  77. void loop() {
  78.   // put your main code here, to run repeatedly:
  79.  
  80. }
Advertisement
Add Comment
Please, Sign In to add comment