Ejemplo n.º 1
0
int main(void)
{
   RCC_Configuration();
   GPIO_Configuration();

   RCC_ClocksTypeDef RCC_Clocks;
   RCC_GetClocksFreq(&RCC_Clocks);
   SysTick_Config(RCC_Clocks.HCLK_Frequency / 1000 - 1);

   setup_adc();
   tim1_init();
   usart_init();

   PWM_U = 0;
   PWM_V = 0;
   PWM_W = 0;

   while(1){
      if(uartsend == 1){
         amp = AMP(amp_raw);
         volt = VOLT(volt_raw);
         if(temp_raw < ARES && temp_raw > 0){
            temp = TEMP(temp_raw);
         }
         from_hv.dc_volt = TOFIXED(volt);
         from_hv.dc_cur =  TOFIXED(amp);
         from_hv.hv_temp = TOFIXED(temp);
#ifdef TROLLER
         from_hv.dc_cur =  TOFIXED(0);
         from_hv.hv_temp = TOFIXED(0);
         from_hv.a = TOFIXED(AMP(ADCConvertedValue[1]));
         from_hv.b = TOFIXED(AMP(ADCConvertedValue[2]));
         from_hv.c = TOFIXED(AMP(ADCConvertedValue[3]));
#endif
         uartsend = 0;
         while (USART_GetFlagStatus(USART2, USART_FLAG_TXE) == RESET);
         USART_SendData(USART2, 0x154);
         for(int j = 0;j<sizeof(from_hv_t);j++){
            while (USART_GetFlagStatus(USART2, USART_FLAG_TXE) == RESET);
            USART_SendData(USART2, ((uint8_t*)&from_hv)[j]);
         }
      }
      //GPIOA->BSRR = (GPIOA->ODR ^ GPIO_Pin_2) | (GPIO_Pin_2 << 16);//toggle red led
   }
}
Ejemplo n.º 2
0
void ObjAlign( LPRECT bRect, LPRECT oRect, LPALIGNOBJECTS_PARMS lpAlignParms,
						LFIXED vSpace, LFIXED hSpace, LPINT xOffset, LPINT yOffset,
						LPLFIXED fx, LPLFIXED fy )
/************************************************************************/
{

switch( lpAlignParms->HorzAlign )
	{
	case HA_RIGHT:
		*xOffset = ( bRect->right - RectWidth( oRect ) ) -
			oRect->left;
	break;

	case HA_LEFT:
		*xOffset = bRect->left - oRect->left;
	break;

	case HA_CENTER:
		*xOffset = bRect->left + FINT( FGET( RectWidth( bRect ), 2 ) -
			FGET( RectWidth( oRect ), 2 ) ) -
			oRect->left;
	break;

	case HA_EQUAL:
		if( *fx == 0 )
			{
			*xOffset = bRect->left - oRect->left;
			*fx = TOFIXED( RectWidth( oRect ) + bRect->left )
				+ hSpace;
			}
		else
			{
			*xOffset = FINT( *fx ) - oRect->left;
			*fx += TOFIXED( RectWidth( oRect ) )
				+ hSpace;
			}
	break;

	case HA_NONE:
		*xOffset = 0;
	break;
	}

switch( lpAlignParms->VertAlign )
	{
	case VA_TOP:
		*yOffset = bRect->top - oRect->top;
	break;

	case VA_BOTTOM:
		*yOffset = ( bRect->bottom - RectHeight( oRect ) ) -
			oRect->top;
	break;

	case VA_MID:
		*yOffset = bRect->top + FINT( FGET( RectHeight( bRect ), 2 ) -
			FGET( RectHeight( oRect ), 2 ) ) -
			oRect->top;
	break;

	case VA_EQUAL:
		if( *fy == 0 )
			{
			*yOffset = bRect->top - oRect->top;
			*fy = TOFIXED( RectHeight( oRect ) + bRect->top )
				+ vSpace;
			}
		else
			{
			*yOffset = FINT( *fy ) - oRect->top;
			*fy += TOFIXED( RectHeight( oRect ) )
				+ vSpace;
			}
	break;

	case VA_NONE:
		*yOffset = 0;
	break;
	}
}