Ejemplo n.º 1
0
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;
}
Ejemplo n.º 2
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();
}
Ejemplo n.º 3
0
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;
				}	
			
			}
		}			
		
		
		
	
	
			}
}
Ejemplo n.º 4
0
void loop()
{
	TLC5940_SetGS(0,255);
}
Ejemplo n.º 5
0
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));
}
Ejemplo n.º 6
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();
}
Ejemplo n.º 7
0
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();
}
Ejemplo n.º 8
0
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();
}
Ejemplo n.º 9
0
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();
}
Ejemplo n.º 10
0
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);
  }
}
Ejemplo n.º 11
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);
  }

}
Ejemplo n.º 12
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();
}
Ejemplo n.º 13
0
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();
}
Ejemplo n.º 14
0
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();
}