Exemple #1
0
int main(void)
{
	OSCCAL = 0xF2;
	
	LEDdrive_on();
	LEDdrive_init();
	TWI_init();
	LED_row_init();
	timer_init();

	double rand_num;
	int i,j;
	while(1)
	{
		for(j=0;j<3;j++)	
		{
			for(i=0;i<81;i++)
			{
				rand_num = (double)((uint16_t)rand()) / 65536;
				update_LED(i,j,rand_num);
			}
		}
		disp_LED(5000);
		LED_clear();
	}	
}
Exemple #2
0
//blue, input duty cycle
void PWM_B(uint16_t dc)
{
	LED_clear();

	for(;;)
	{
		PTD_BASE_PTR->PCOR |= 1 << 1;
		delay(dc*10);
		PTD_BASE_PTR->PSOR |= 1 << 1;
		delay(1000-dc*10);
		if (RxBuf_NofElements()!=0)
			break;
	}
}
Exemple #3
0
//=============================================================================
int main(void)
{
  I2C_init();
  LED_init();
  KBD_init();
  RTC_init();
  RTOS_init();
  RTOS_setTaskFunc(set_blink, 0, 500);       // моргание
  RTOS_setTaskFunc(KBD_scan, 10, 0);         // запускаем опрос кнопок
  sei(); 				        			 // Разрешили прерывания
#if (DEBUG == 1)
  RTC_set_time(23, 58, 50); // Test time
  LED_clear();
#endif
  while (1)
  {
    RTOS_dispatchTask();    			     // Вызываем диспетчер в цикле.    
  }
}
//=============================================================================
void LED_init(void)
{
  DDR(DIGIT_1) |= DIGIT_1_LINE;
  PORT(DIGIT_1) &= ~DIGIT_1_LINE;
  DDR(DIGIT_2) |= DIGIT_2_LINE;
  PORT(DIGIT_2) &= ~DIGIT_2_LINE;
  DDR(DIGIT_3) |= DIGIT_3_LINE;
  PORT(DIGIT_3) &= ~DIGIT_3_LINE;
  DDR(DIGIT_4) |= DIGIT_4_LINE;
  PORT(DIGIT_4) &= ~DIGIT_4_LINE;
  DDR(SEGMENT_PORT) = 0xFF;
  PORT(SEGMENT_PORT) = 0xFF;

  // Timer0 defines
  TCCR0B |= (1 << CS02)|(1 << CS00);    // прескалер - 1024
  TIFR0 = (1 << TOV0);          		// очищаем флаг прерывани¤ таймера “0
  TIMSK0 |= (1 << TOIE0);       		// разрешаем прерывание по переполнению
  TCNT0 = TIMER0_COUNTER;          		// загружаем начальное зн. в счетный регистр

  LED_clear();
}
Exemple #5
0
//control LED using inputs from virtual serial port
//use 'a' and 'd' to cycle through different colors
//use 'w' and 's' to increase or decrease brightness
void control_LED()
{
	for(;;)
	{
		if (RxBuf_NofElements()!=0)
		{
		      while (RxBuf_NofElements()!=0)
		      {
		        uint8_t ch;

		        (void)RxBuf_Get(&ch);
		        LOG_0("echo: ", 6);
		        LOG_0(&ch, 1);
		        LOG_0("\r\n", 2);

		        if (ch=='w' && dc_code<=90)
		        {
		        	dc_code+=10; //increase brightness
		        	LOG_0("Increase brightness\r\n", 21);
		        } else if (ch=='s' && dc_code>=10)
		        {
		        	dc_code-=10; //decrease brightness
		        	LOG_0("Decrease brightness\r\n", 21);
		        } else if (ch=='d' && color_code<7)
		        {
		        	color_code++;
		        	LOG_0("Change color\r\n", 14);
		        }else if (ch=='a' && color_code>0)
		        {
		        	color_code--;
		        	LOG_0("Change color\r\n", 14);
		        }

		        switch (color_code)
		        {
		        	case 0:
		        		PWM_R(dc_code);
		        		break;
		        	case 1:
		        		PWM_G(dc_code);
		        		break;
		        	case 2:
						PWM_B(dc_code);
						break;
					case 3:
						PWM_Y(dc_code);
						break;
					case 4:
						PWM_C(dc_code);
						break;
					case 5:
						PWM_M(dc_code);
						break;
					case 6:
						PWM_W(dc_code);
						break;
					case 7:
						LED_clear();
						break;
					default:
						break;
		        }
		      }
		}
	}
 }