Example #1
0
void LCD_SC_DisplayRemainGas(void)
{
	uint32_t gas = 5;
	uint8_t gas_bcd[6] = {0};

	gas = DataMem_GetRemainGas();
	Covertu32To6bitBCD(gas,gas_bcd);
	if(!lcd_is_on)
	{
		LCD_SC_Init();
		lcd_is_on = 1;
	}
	disp_icon |= DISP_STERE_ICON;
	lcd_disp_info.is_disp_digits = 1;
	lcd_disp_info.is_disp_dot = 1;
	lcd_disp_info.is_disp_icon = 1;
	lcd_disp_info.p_disp_contex = gas_bcd;
	lcd_disp_info.disp_contex_len = sizeof(gas_bcd);
	lcd_disp_info.disp_dot_num = 4;
	lcd_disp_info.p_disp_icon = &disp_icon;
			
	LCD_SC_Init();
	LCD_SC_Display(&lcd_disp_info);
    LCD_SC_DoDisp();

	delay1s(10);

	disp_icon &= 0;
	memset(&lcd_disp_info, 0, sizeof(lcd_disp_info_t));
	LCD_SC_Display(&lcd_disp_info);
			
	/* Initialize the LCD */
	LCD_Cmd(DISABLE);
	LCD_DeInit();
}
Example #2
0
/***********************************************************************
  * @brief  Handles the event for LCD displaying.
  * @param  None
  * @retval None
************************************************************************/
void lcd_event_handler(void * p_event_data, uint16_t event_size)
{
	lcd_event_t * lcd_event_tmp = p_event_data;
	uint8_t temp[6] = {8,8,8,8,5,6};
	uint32_t u32temp = 654321;
	
	switch(lcd_event_tmp->eLcd_event)
	{
        case LCD_INIT:
			#ifdef LCD_DEBUG
				printf("LCD_INIT ...\r\n");
			#endif
			LCD_SC_Init_A();
			LCD_SC_DeInit();
            break;
            
        case lCD_HANDLE:
			#ifdef LCD_DEBUG
				printf("lCD_HANDLE ...\r\n");
			#endif
			if(!lcd_is_on)
			{
				LCD_SC_Init();
				lcd_is_on = 1;
			}
			disp_icon |= (DISP_VALVE_CLOSE_ICON | DISP_STERE_ICON);
			lcd_disp_info.is_disp_digits = 1;
			lcd_disp_info.is_disp_dot = 1;
			lcd_disp_info.is_disp_icon = 1;
			lcd_disp_info.p_disp_contex = temp;
			lcd_disp_info.disp_contex_len = sizeof(temp);
			lcd_disp_info.disp_dot_num = 2;
			lcd_disp_info.p_disp_icon = &disp_icon;
			
			LCD_SC_Init();
			LCD_SC_Display(&lcd_disp_info);
            LCD_SC_DoDisp();

			delay1s(2);

			disp_icon &= 0;
			memset(&lcd_disp_info, 0, sizeof(lcd_disp_info_t));
			LCD_SC_Display(&lcd_disp_info);
			
			/* Initialize the LCD */
			LCD_Cmd(DISABLE);
			LCD_DeInit();
			
			lcd_event.eLcd_event = LCD_DEINIT;
			app_sched_event_put(&lcd_event,sizeof(lcd_event),lcd_event_handler);
            break;

		case LCD_DISPLAY_REMAIN_GAS:
			#ifdef LCD_DEBUG
				printf("LCD_DISPLAY_REMAIN_GAS ...\r\n");
			#endif
			LCD_SC_DisplayRemainGas();
			
			lcd_event.eLcd_event = LCD_DEINIT;
			app_sched_event_put(&lcd_event,sizeof(lcd_event),lcd_event_handler);
            break;

		case LCD_DEINIT:
			#ifdef LCD_DEBUG
				printf("LCD_DEINIT ...\r\n");
			#endif
			
			/* Initialize the LCD */
			LCD_Cmd(DISABLE);
			LCD_DeInit();
			LCD_SC_DeInit();
			lcd_is_on = 0;
			break;
        
		default:
			break;
	}
}
Example #3
0
/**
  * @brief  Save Demonstration context (GPIOs Configurations, peripherals,...).
  * @param  None
  * @retval None
  */
void IDD_Measurement_SaveContext(void)
{
  GPIO_InitTypeDef GPIO_InitStructure;
  NVIC_InitTypeDef NVIC_InitStructure;
  EXTI_InitTypeDef EXTI_InitStructure;

  /* Deinitialize all peripherals used in the Demo */
  DAC_DeInit();
  ADC_DeInit(ADC1);
  DMA_DeInit(DMA1_Channel2);
  SPI_DeInit(SPI1);
  TIM_DeInit(TIM2);
  EXTI_DeInit();
  TIM_DeInit(TIM6);
  LCD_DeInit();
  SYSCFG_DeInit();
  I2C_DeInit(I2C1);
  COMP_DeInit();
    
  GPIOA_MODER = GPIOA->MODER;
  GPIOB_MODER = GPIOB->MODER;
  GPIOC_MODER = GPIOC->MODER;
  GPIOD_MODER = GPIOD->MODER;
  GPIOE_MODER = GPIOE->MODER;
  GPIOH_MODER = GPIOH->MODER;

  GPIOA_PUPDR = GPIOA->PUPDR;
  GPIOB_PUPDR = GPIOB->PUPDR;
  GPIOC_PUPDR = GPIOC->PUPDR;
  GPIOD_PUPDR = GPIOD->PUPDR;
  GPIOE_PUPDR = GPIOE->PUPDR;
  GPIOH_PUPDR = GPIOH->PUPDR;

  /* Configure all GPIO port pins in Analog Input mode */
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_40MHz;
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AN;
  GPIO_Init(GPIOA, &GPIO_InitStructure);
  GPIO_Init(GPIOB, &GPIO_InitStructure);
  GPIO_Init(GPIOC, &GPIO_InitStructure);
  GPIO_Init(GPIOD, &GPIO_InitStructure);
  GPIO_Init(GPIOE, &GPIO_InitStructure);
  GPIO_Init(GPIOH, &GPIO_InitStructure);

  GPIO_InitStructure.GPIO_Pin = IDD_CNT_EN_PIN;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_40MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
  GPIO_Init(IDD_CNT_EN_GPIO_PORT, &GPIO_InitStructure);

  /* Configure IDD_CNT_EN pin as output push-pull ----------------------------*/
  GPIO_SetBits(IDD_CNT_EN_GPIO_PORT, IDD_CNT_EN_PIN);
  
  /* Connect Button EXTI Line to Button GPIO Pin */
  SYSCFG_EXTILineConfig(IDD_WAKEUP_EXTI_PORTSOURCE, IDD_WAKEUP_EXTI_PINSOURCE);

  /* Configure IDD_WAKEUP pin as input pull-down -----------------------------*/
  GPIO_InitStructure.GPIO_Pin = IDD_WAKEUP_PIN;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
  GPIO_Init(IDD_WAKEUP_GPIO_PORT, &GPIO_InitStructure);

  /* Configure the IDD_WAKEUP EXTI Line */
  EXTI_ClearITPendingBit(IDD_WAKEUP_EXTI_LINE);

  EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
  EXTI_InitStructure.EXTI_Line = IDD_WAKEUP_EXTI_LINE;
  EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;
  EXTI_InitStructure.EXTI_LineCmd = ENABLE;
  EXTI_Init(&EXTI_InitStructure);

  /* Enable the EXTI Interrupt */
  NVIC_InitStructure.NVIC_IRQChannel = IDD_WAKEUP_IRQn;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);  
}