Exemplo n.º 1
0
int main(void)
{	
  //VARIABLES
  int input = 1; //Input state

  //Input variables
  float num = 0.0f;
  int event = -1;
  int digit = 0;

  //Angle variables
  float angle_value = 0.0f;

  /* MCU Configuration----------------------------------------------------------*/
  HAL_Init();

  /* Configure the system clock */
  SystemClock_Config();
	
  /* Initialize all configured peripherals */
k_filter_init(0.005f, 0.1f, 0.0f, 3.0f, 0.0f);
	tim_init();
	gpio_init();
  memsinit();
	
    NVIC_SetPriority(EXTI0_IRQn, 1); //4. Set Priority to 1
    NVIC_EnableIRQ(EXTI0_IRQn);

	LED_set_value(num);

	while (1){

    if (input) { //Input mode
      KP_update();
      event = KP_getEvent();
      if (event == 11) { //# pressed
        input = 0;
				LED_set_target(num);
      }else if (event > -1 && event < 10) { //Other key pressed
        num = change_digit(num, digit, event);
        LED_set_value(num);
        digit = (digit + 1) % 4;
      }
    } else { //Playing mode
        if (data_ready) {
          //CONVERT ANGLE READING
					//set LED to the filtered angle value
  				LED_set_value(k_filter_value(Rangle()));
          data_ready = 0;
        }
    }
	}
}
Exemplo n.º 2
0
/**
 * Change the digits in given column.
 * @param col column to change.
 * @param numTime one of the hhmm (time) digits.
 * @param numTop one of the ddmm (date) digits.
 * @param numBtm one of the year digits.
 **/
void change_digits(int col, int numTime, int numTop, int numBtm)
{
    change_digit(col, numTime, numTop, -2);
    change_digit(col, numTime, numBtm, 2);
    set_digit(col, numTime);
}