int main(void){ MSP430_Init(); MSP430_Ports(); MSP430_Timer(); TLC5940_Init(); TLC5940_SetAllDC(63); TLC5940_ClockInDC(); // Default all channels to off TLC5940_SetAllGS(0); channel_t ch = 0; uint16_t bright = 0; // GLOBAL INTERRUPTS ENABLED __bis_status_register(GIE); for(;;){ while(uigsUpdateFlag); // wait until we can modify gsData //TLC5940_SetAllGS(0); TLC5940_SetGS(ch, bright); TLC5940_SetGSUpdateFlag(); __delay_cycles(10000); ch = (ch + 1) % NUM_CHANNELS; bright++; if (bright > 4095){ bright = 0; } } return 0; }
void EyesWink_d (uint8_t num) { //GUIÑA OJO DERECHO uint8_t i; while(gsUpdateFlag); // wait until we can modify gsData if (num == 0) { for (i=0;i<32;i++) TLC5940_SetGS(i, MAX_BRIGHT); } if (num == 1) { for (i=0;i<16;i++) TLC5940_SetGS(i, MAX_BRIGHT*0); } if (num == 2) { for (i=0;i<16;i++) TLC5940_SetGS(i, MAX_BRIGHT); } // TLC5940_SetGSUpdateFlag(); }
int main(void) { TLC5940_Init(); array_setup(); #if (TLC5940_MANUAL_DC_FUNCS) TLC5940_SetAllDC(63); TLC5940_ClockInDC(); #endif // Default all channels to off TLC5940_SetAllGS(0); // Enable Global Interrupts sei(); row=0; column=0; for (;;) { // Should not be updating array every time one row is completed...! xlatNeedsPulse = 1; while(notClockedinFlag) // Checks if we have clocked in all data for current cycle (current row). { for (column = 0; column < numcolumns; column++) { TLC5940_SetGS(i-1, array[row][column]*4000); // this is setting the GS data into the array i = (i + 1) % numChannels; if (i == 0) // i==0 means we have set GS for all channels on this row...clock in to display row! { if (row <= numrows-2) { //row++; notClockedinFlag = 0; } else if (row == numrows-1) // finished last row. Update entire array. { //row = 0; notClockedinFlag = 0; // Stop updating the gs arrays until row displayed. //clear_array_flag = 1; swap_array_flag = 1; update_array(); } gsUpdateFlag = 1; break; } } } } }
void loop() { TLC5940_SetGS(0,255); }
void EyesTired (uint8_t num) { uint8_t i; while(gsUpdateFlag); // wait until we can modify gsData for (i=0;i<32;i++) TLC5940_SetGS(i, MAX_BRIGHT*(1-num/255.0)); }
void EyesCircleMiddle_d (uint8_t num) { //OJO A LA ALTURA MEDIA DERECHA A IZQUIERDA uint8_t i; while(gsUpdateFlag); // wait until we can modify gsData for (i=0;i<16;i++) TLC5940_SetGS(i, MAX_BRIGHT*0); if (num == 0) { TLC5940_SetGS(2, MAX_BRIGHT); TLC5940_SetGS(1, MAX_BRIGHT); TLC5940_SetGS(4, MAX_BRIGHT); TLC5940_SetGS(6, MAX_BRIGHT); } else if (num == 1) { TLC5940_SetGS(4, MAX_BRIGHT); TLC5940_SetGS(2, MAX_BRIGHT); TLC5940_SetGS(6, MAX_BRIGHT); TLC5940_SetGS(8, MAX_BRIGHT); } else if (num == 2) { TLC5940_SetGS(8, MAX_BRIGHT); TLC5940_SetGS(6, MAX_BRIGHT); TLC5940_SetGS(11, MAX_BRIGHT); TLC5940_SetGS(10, MAX_BRIGHT); } else if (num == 3) { TLC5940_SetGS(10, MAX_BRIGHT); TLC5940_SetGS(11, MAX_BRIGHT); TLC5940_SetGS(14, MAX_BRIGHT); TLC5940_SetGS(12, MAX_BRIGHT); } // TLC5940_SetGSUpdateFlag(); }
void EyesCircleMiddle_i (uint8_t num) { //OJO A LA ALTURA MEDIA DERECHA A IZQUIERDA uint8_t i; while(gsUpdateFlag); // wait until we can modify gsData for (i=16;i<32;i++) TLC5940_SetGS(i, MAX_BRIGHT*0); if (num == 0) { TLC5940_SetGS(17, MAX_BRIGHT); TLC5940_SetGS(19, MAX_BRIGHT); TLC5940_SetGS(21, MAX_BRIGHT); TLC5940_SetGS(20, MAX_BRIGHT); } else if (num == 1) { TLC5940_SetGS(20, MAX_BRIGHT); TLC5940_SetGS(19, MAX_BRIGHT); TLC5940_SetGS(23, MAX_BRIGHT); TLC5940_SetGS(21, MAX_BRIGHT); } else if (num == 2) { TLC5940_SetGS(23, MAX_BRIGHT); TLC5940_SetGS(21, MAX_BRIGHT); TLC5940_SetGS(27, MAX_BRIGHT); TLC5940_SetGS(25, MAX_BRIGHT); } else if (num == 3) { TLC5940_SetGS(27, MAX_BRIGHT); TLC5940_SetGS(25, MAX_BRIGHT); TLC5940_SetGS(30, MAX_BRIGHT); TLC5940_SetGS(29, MAX_BRIGHT); } // TLC5940_SetGSUpdateFlag(); }
void EyesUpDown_d (uint8_t num) { //sube y baja los ojos uint8_t i; while(gsUpdateFlag); // wait until we can modify gsData for (i=0;i<16;i++) TLC5940_SetGS(i, MAX_BRIGHT*0); if (num == 0) { TLC5940_SetGS(5, MAX_BRIGHT); TLC5940_SetGS(7, MAX_BRIGHT); TLC5940_SetGS(6, MAX_BRIGHT); TLC5940_SetGS(10, MAX_BRIGHT); } else if (num == 1) { TLC5940_SetGS(6, MAX_BRIGHT); TLC5940_SetGS(10, MAX_BRIGHT); TLC5940_SetGS(8, MAX_BRIGHT); TLC5940_SetGS(11, MAX_BRIGHT); } else if (num == 2) { TLC5940_SetGS(8, MAX_BRIGHT); TLC5940_SetGS(11, MAX_BRIGHT); TLC5940_SetGS(9, MAX_BRIGHT); TLC5940_SetGS(13, MAX_BRIGHT); } // TLC5940_SetGSUpdateFlag(); }
void EyesUpDown_i (uint8_t num) { // uint8_t i; while(gsUpdateFlag); // wait until we can modify gsData for (i=16;i<32;i++) TLC5940_SetGS(i, MAX_BRIGHT*0); if (num == 0) { TLC5940_SetGS(26, MAX_BRIGHT); TLC5940_SetGS(24, MAX_BRIGHT); TLC5940_SetGS(21, MAX_BRIGHT); TLC5940_SetGS(25, MAX_BRIGHT); } else if (num == 1) { TLC5940_SetGS(21, MAX_BRIGHT); TLC5940_SetGS(25, MAX_BRIGHT); TLC5940_SetGS(23, MAX_BRIGHT); TLC5940_SetGS(20, MAX_BRIGHT); } else if (num == 2) { TLC5940_SetGS(23, MAX_BRIGHT); TLC5940_SetGS(20, MAX_BRIGHT); TLC5940_SetGS(22, MAX_BRIGHT); TLC5940_SetGS(18, MAX_BRIGHT); } // TLC5940_SetGSUpdateFlag(); }
void EyesBlink_i (uint8_t num) { //terminar uint8_t i; while(gsUpdateFlag); // wait until we can modify gsData for (i=16;i<32;i++) TLC5940_SetGS(i, MAX_BRIGHT); if (num == 0) { } if (num == 1) { TLC5940_SetGS(26, MAX_BRIGHT*0); TLC5940_SetGS(24, MAX_BRIGHT*0); } else if (num == 2) { TLC5940_SetGS(26, MAX_BRIGHT*0); TLC5940_SetGS(24, MAX_BRIGHT*0); TLC5940_SetGS(19, MAX_BRIGHT*0); TLC5940_SetGS(21, MAX_BRIGHT*0); TLC5940_SetGS(25, MAX_BRIGHT*0); TLC5940_SetGS(29, MAX_BRIGHT*0); } else if (num == 3) { TLC5940_SetGS(26, MAX_BRIGHT*0); TLC5940_SetGS(24, MAX_BRIGHT*0); TLC5940_SetGS(19, MAX_BRIGHT*0); TLC5940_SetGS(21, MAX_BRIGHT*0); TLC5940_SetGS(25, MAX_BRIGHT*0); TLC5940_SetGS(29, MAX_BRIGHT*0); TLC5940_SetGS(17, MAX_BRIGHT*0); TLC5940_SetGS(20, MAX_BRIGHT*0); TLC5940_SetGS(23, MAX_BRIGHT*0); TLC5940_SetGS(27, MAX_BRIGHT*0); TLC5940_SetGS(30, MAX_BRIGHT*0); } else if (num == 4) { TLC5940_SetGS(26, MAX_BRIGHT*0); TLC5940_SetGS(24, MAX_BRIGHT*0); TLC5940_SetGS(19, MAX_BRIGHT*0); TLC5940_SetGS(21, MAX_BRIGHT*0); TLC5940_SetGS(25, MAX_BRIGHT*0); TLC5940_SetGS(29, MAX_BRIGHT*0); TLC5940_SetGS(17, MAX_BRIGHT*0); TLC5940_SetGS(20, MAX_BRIGHT*0); TLC5940_SetGS(23, MAX_BRIGHT*0); TLC5940_SetGS(27, MAX_BRIGHT*0); TLC5940_SetGS(30, MAX_BRIGHT*0); TLC5940_SetGS(16, MAX_BRIGHT*0); TLC5940_SetGS(18, MAX_BRIGHT*0); TLC5940_SetGS(22, MAX_BRIGHT*0); TLC5940_SetGS(28, MAX_BRIGHT*0); TLC5940_SetGS(31, MAX_BRIGHT*0); } }
void EyesBlink_d (uint8_t num) { uint8_t i; while(gsUpdateFlag); // wait until we can modify gsData for (i=0;i<16;i++) TLC5940_SetGS(i, MAX_BRIGHT); if (num == 0) { } if (num == 1) { TLC5940_SetGS(5, MAX_BRIGHT*0); TLC5940_SetGS(7, MAX_BRIGHT*0); } else if (num == 2) { TLC5940_SetGS(5, MAX_BRIGHT*0); TLC5940_SetGS(7, MAX_BRIGHT*0); TLC5940_SetGS(2, MAX_BRIGHT*0); TLC5940_SetGS(6, MAX_BRIGHT*0); TLC5940_SetGS(10, MAX_BRIGHT*0); TLC5940_SetGS(12, MAX_BRIGHT*0); } else if (num == 3) { TLC5940_SetGS(5, MAX_BRIGHT*0); TLC5940_SetGS(7, MAX_BRIGHT*0); TLC5940_SetGS(2, MAX_BRIGHT*0); TLC5940_SetGS(6, MAX_BRIGHT*0); TLC5940_SetGS(10, MAX_BRIGHT*0); TLC5940_SetGS(12, MAX_BRIGHT*0); TLC5940_SetGS(1, MAX_BRIGHT*0); TLC5940_SetGS(11, MAX_BRIGHT*0); TLC5940_SetGS(14, MAX_BRIGHT*0); TLC5940_SetGS(8, MAX_BRIGHT*0); TLC5940_SetGS(4, MAX_BRIGHT*0); } else if (num == 4) { TLC5940_SetGS(5, MAX_BRIGHT*0); TLC5940_SetGS(7, MAX_BRIGHT*0); TLC5940_SetGS(2, MAX_BRIGHT*0); TLC5940_SetGS(6, MAX_BRIGHT*0); TLC5940_SetGS(10, MAX_BRIGHT*0); TLC5940_SetGS(12, MAX_BRIGHT*0); TLC5940_SetGS(1, MAX_BRIGHT*0); TLC5940_SetGS(11, MAX_BRIGHT*0); TLC5940_SetGS(14, MAX_BRIGHT*0); TLC5940_SetGS(8, MAX_BRIGHT*0); TLC5940_SetGS(4, MAX_BRIGHT*0); TLC5940_SetGS(0, MAX_BRIGHT*0); TLC5940_SetGS(3, MAX_BRIGHT*0); TLC5940_SetGS(9, MAX_BRIGHT*0); TLC5940_SetGS(13, MAX_BRIGHT*0); TLC5940_SetGS(15, MAX_BRIGHT*0); } }
void EyesCircle_i (uint8_t num) { uint8_t i; while(gsUpdateFlag); // wait until we can modify gsData for (i=16;i<32;i++) TLC5940_SetGS(i, MAX_BRIGHT*0); if (num == 0) { TLC5940_SetGS(17, MAX_BRIGHT); TLC5940_SetGS(16, MAX_BRIGHT); TLC5940_SetGS(18, MAX_BRIGHT); TLC5940_SetGS(20, MAX_BRIGHT); } else if (num == 1) { TLC5940_SetGS(20, MAX_BRIGHT); TLC5940_SetGS(18, MAX_BRIGHT); TLC5940_SetGS(23, MAX_BRIGHT); TLC5940_SetGS(22, MAX_BRIGHT); } else if (num == 2) { TLC5940_SetGS(23, MAX_BRIGHT); TLC5940_SetGS(22, MAX_BRIGHT); TLC5940_SetGS(27, MAX_BRIGHT); TLC5940_SetGS(28, MAX_BRIGHT); } else if (num == 3) { TLC5940_SetGS(27, MAX_BRIGHT); TLC5940_SetGS(28, MAX_BRIGHT); TLC5940_SetGS(30, MAX_BRIGHT); TLC5940_SetGS(31, MAX_BRIGHT); } // TLC5940_SetGSUpdateFlag(); }
void EyesCircle_d (uint8_t num) { uint8_t i; while(gsUpdateFlag); // wait until we can modify gsData for (i=0;i<16;i++) TLC5940_SetGS(i, MAX_BRIGHT*0); if (num == 0) { TLC5940_SetGS(0, MAX_BRIGHT); TLC5940_SetGS(1, MAX_BRIGHT); TLC5940_SetGS(4, MAX_BRIGHT); TLC5940_SetGS(3, MAX_BRIGHT); } else if (num == 1) { TLC5940_SetGS(4, MAX_BRIGHT); TLC5940_SetGS(3, MAX_BRIGHT); TLC5940_SetGS(9, MAX_BRIGHT); TLC5940_SetGS(8, MAX_BRIGHT); } else if (num == 2) { TLC5940_SetGS(8, MAX_BRIGHT); TLC5940_SetGS(9, MAX_BRIGHT); TLC5940_SetGS(11, MAX_BRIGHT); TLC5940_SetGS(13, MAX_BRIGHT); } else if (num == 3) { TLC5940_SetGS(13, MAX_BRIGHT); TLC5940_SetGS(11, MAX_BRIGHT); TLC5940_SetGS(14, MAX_BRIGHT); TLC5940_SetGS(15, MAX_BRIGHT); } // TLC5940_SetGSUpdateFlag(); }
void EyesAngry (void) { while(gsUpdateFlag); // wait until we can modify gsData TLC5940_SetGS(5, MAX_BRIGHT); TLC5940_SetGS(7, MAX_BRIGHT); TLC5940_SetGS(10, MAX_BRIGHT); TLC5940_SetGS(11, MAX_BRIGHT); TLC5940_SetGS(12, MAX_BRIGHT); TLC5940_SetGS(13, MAX_BRIGHT); TLC5940_SetGS(14, MAX_BRIGHT); TLC5940_SetGS(15, MAX_BRIGHT); TLC5940_SetGS(2, MAX_BRIGHT); TLC5940_SetGS(6, MAX_BRIGHT); TLC5940_SetGS(8, MAX_BRIGHT); TLC5940_SetGS(24, MAX_BRIGHT); TLC5940_SetGS(21, MAX_BRIGHT); TLC5940_SetGS(26, MAX_BRIGHT); TLC5940_SetGS(20, MAX_BRIGHT); TLC5940_SetGS(18, MAX_BRIGHT); TLC5940_SetGS(19, MAX_BRIGHT); TLC5940_SetGS(17, MAX_BRIGHT); TLC5940_SetGS(16, MAX_BRIGHT); TLC5940_SetGS(25, MAX_BRIGHT); TLC5940_SetGS(29, MAX_BRIGHT); TLC5940_SetGS(23, MAX_BRIGHT); TLC5940_SetGSUpdateFlag(); }