コード例 #1
0
ファイル: GUI.c プロジェクト: skyterrace/ZhiCao
void Gui_box(u16 x, u16 y, u16 w, u16 h,u16 bc)
{
	Gui_DrawLine(x,y,x+w,y,0xEF7D);
	Gui_DrawLine(x+w-1,y+1,x+w-1,y+1+h,0x2965);
	Gui_DrawLine(x,y+h,x+w,y+h,0x2965);
	Gui_DrawLine(x,y,x,y+h,0xEF7D);
    Gui_DrawLine(x+1,y+1,x+1+w-2,y+1+h-2,bc);
}
コード例 #2
0
ファイル: GUI.c プロジェクト: eeinz/trochili
/**
  * @brief  Gui box.
  * @param  x,y,x1,w,h,bc.
  * @retval None
  */
void Gui_box(uint16_t x, uint16_t y, uint16_t w, uint16_t h,uint16_t bc)
{
    LCD_CS_CLR;
    Gui_DrawLine(x,y,x+w,y,0xEF7D);
    Gui_DrawLine(x+w-1,y+1,x+w-1,y+1+h,0x2965);
    Gui_DrawLine(x,y+h,x+w,y+h,0x2965);
    Gui_DrawLine(x,y,x,y+h,0xEF7D);
    Gui_DrawLine(x+1,y+1,x+1+w-2,y+1+h-2,bc);
    LCD_CS_SET;
}
コード例 #3
0
ファイル: main.c プロジェクト: bprewit/embeddedpi
// Digital Compass
int main(void)
{
    uint8_t Res;
    int16_t Com_Data[3];
    uint16_t x0, y0;
    unsigned long angle = 0;
    double radian;
    
    /* Setup the microcontroller system. Initialize the Embedded Flash Interface,  
     initialize the PLL and update the SystemFrequency variable. */
    xSysCtlClockSet(72000000, xSYSCTL_OSC_MAIN | xSYSCTL_XTAL_8MHZ);
    xSysCtlDelay(10000);

    delay_init(72);
    Lcd_Init();
    HMC5883L_Init();
    HMC5883L_Cfg(MODE_SIG | GAIN_1090 | SAMPLE_8 | DATA_RATE_15);
    
    Lcd_Clear(GRAY0);
    //
    Gui_Circle(64, 80, 50, BLUE);
    Gui_DrawFont_GBK16(64,14,BLUE,GRAY0,"N"); 
    Gui_DrawFont_GBK16(64,132,BLUE,GRAY0,"S"); 
    Gui_DrawFont_GBK16(5,80,BLUE,GRAY0,"W"); 
    Gui_DrawFont_GBK16(116,80,BLUE,GRAY0,"E"); 
    while(1){
        Res = HMC5883L_DataGet(&Com_Data[0], &Com_Data[1], &Com_Data[2]);
        if(Res) break;
        angle = (unsigned long) (atan2((double)Com_Data[0],(double)Com_Data[1])*(180/3.14159265)+180);
        //angle = rand()%360;
    	radian = angle * 3.1415926 / 180;
        
        if(angle <= 180){
            x0 = 64 + (int16_t)(40 * sin(radian));
            y0 = 80 - (int16_t)(40 * cos(radian));
        } else {
            x0 = 64 + (int16_t)(40 * sin(radian));
            y0 = 80 - (int16_t)(40 * cos(radian));
        }
        Gui_DrawLine(64, 80, x0, y0, BLUE);   
        delay_ms(500);
        Gui_DrawLine(64, 80, x0, y0, GRAY0); 
    }
    return 0;
}
コード例 #4
0
ファイル: GUI.c プロジェクト: skyterrace/ZhiCao
/**************************************************************************************
功能描述: 在屏幕显示一凸起的按钮框
输    入: u16 x1,y1,x2,y2 按钮框左上角和右下角坐标
输    出: 无
**************************************************************************************/
void DisplayButtonDown(u16 x1,u16 y1,u16 x2,u16 y2)
{
	Gui_DrawLine(x1,  y1,  x2,y1, GRAY2);  //H
	Gui_DrawLine(x1+1,y1+1,x2,y1+1, GRAY1);  //H
	Gui_DrawLine(x1,  y1,  x1,y2, GRAY2);  //V
	Gui_DrawLine(x1+1,y1+1,x1+1,y2, GRAY1);  //V
	Gui_DrawLine(x1,  y2,  x2,y2, WHITE);  //H
	Gui_DrawLine(x2,  y1,  x2,y2, WHITE);  //V
}
コード例 #5
0
ファイル: GUI.c プロジェクト: eeinz/trochili
/**
  * @brief  Display button down.
  * @param  x1,y1,x2,y2.
  * @retval None
  */
void DisplayButtonDown(uint16_t x1,uint16_t y1,uint16_t x2,uint16_t y2)
{
    LCD_CS_CLR;
    Gui_DrawLine(x1,  y1,  x2,y1, GRAY2);
    Gui_DrawLine(x1+1,y1+1,x2,y1+1, GRAY1);
    Gui_DrawLine(x1,  y1,  x1,y2, GRAY2);
    Gui_DrawLine(x1+1,y1+1,x1+1,y2, GRAY1);
    Gui_DrawLine(x1,  y2,  x2,y2, WHITE);
    Gui_DrawLine(x2,  y1,  x2,y2, WHITE);
    LCD_CS_SET;
}
コード例 #6
0
ファイル: GUI.c プロジェクト: eeinz/trochili
/**
  * @brief  Gui box2.
  * @param  x,y,x1,w,h,mode.
  * @retval None
  */
void Gui_box2(uint16_t x,uint16_t y,uint16_t w,uint16_t h, uint8_t mode)
{
    LCD_CS_CLR;
    if(mode==0)
    {
        Gui_DrawLine(x,y,x+w,y,0xEF7D);
        Gui_DrawLine(x+w-1,y+1,x+w-1,y+1+h,0x2965);
        Gui_DrawLine(x,y+h,x+w,y+h,0x2965);
        Gui_DrawLine(x,y,x,y+h,0xEF7D);
    }
    if(mode==1)
    {
        Gui_DrawLine(x,y,x+w,y,0x2965);
        Gui_DrawLine(x+w-1,y+1,x+w-1,y+1+h,0xEF7D);
        Gui_DrawLine(x,y+h,x+w,y+h,0xEF7D);
        Gui_DrawLine(x,y,x,y+h,0x2965);
    }
    if(mode==2)
    {
        Gui_DrawLine(x,y,x+w,y,0xffff);
        Gui_DrawLine(x+w-1,y+1,x+w-1,y+1+h,0xffff);
        Gui_DrawLine(x,y+h,x+w,y+h,0xffff);
        Gui_DrawLine(x,y,x,y+h,0xffff);
    }
    LCD_CS_SET;
}
コード例 #7
0
ファイル: Tdso-v2.c プロジェクト: cross-sky/stm32-board
/*
*********************************************************************************************************
*	函 数 名: DispCh1Wave
*	功能说明: 显示通道1波形
*	形    参:无
*	返 回 值: 无
最小值在上方,输出的波要反转
屏幕如下
0,0----------------- 320
|
|
|
|
240
*********************************************************************************************************
*/
static void Ch1WaveDisp(void)
{
	uint16_t i=0,j=0;		
	uint16_t *px,*pxcl;
	uint16_t *py,*pycl;
	int16_t iTemp;

	if (g_DsoA.BufUsed == 0)
	{
		g_DsoA.BufUsed = 1;
	}
	else
	{
		g_DsoA.BufUsed = 0;
	}

	if (g_DsoA.BufUsed == 0)
	{
		px = g_DsoA.xCh1Buf1;
		py = g_DsoA.yCh1Buf1;

		pxcl = g_DsoA.xCh1Buf2;
		pycl = g_DsoA.yCh1Buf2;
	}
	else
	{
		px = g_DsoA.xCh1Buf2;
		py = g_DsoA.yCh1Buf2;

		pxcl = g_DsoA.xCh1Buf1;
		pycl = g_DsoA.yCh1Buf1;
	}

	/* CH1通道, 输入0V时,ADC采样值 = 1872 ,这是根据多个开发板求到的平均值 */
	j = g_DsoA.ADCTrigCnt;
	for (i=0; i < 300; i++)
	{
		px[i] = 10 + i;
		iTemp = ((u32)g_DsoA.DMA_ADCBuf[j]*100)>>12;

		if (iTemp > 100)
		{
			iTemp = 100;
		}

		py[i] = 220 - iTemp;
		j++;
	}

	/* 下面的代码采取清除上帧波形,然后再重新描绘新波形,避免整屏刷新的闪烁感 */
	/* 清除上帧波形 */
// 	if (g_DsoA.BufUsed == 0)
// 	{
// 		LCD_DrawPoints(g_DsoA.xCh1Buf2, g_DsoA.yCh1Buf2, 300, CL_BLUE);
// 	}
// 	else
// 	{
// 		LCD_DrawPoints(g_DsoA.xCh1Buf1, g_DsoA.yCh1Buf1, 300, CL_BLUE);
// 	}
// 
// 	/* 显示更新的波形 */
	FrameDisp();
	ChInfoDisp();
// 	LCD_DrawPoints((uint16_t *)px, (uint16_t *)py, 300, CL_YELLOW);
	//	DMA_SetCurrDataCounter(DMA1_Channel4,10);
	//		DMA1_Channel4->CNDTR = 10;
	//	DMA1_Channel4->CMAR = (uint32_t)&px[0];
	//	DMA_Cmd(DMA1_Channel4,ENABLE);
	
	for (i=0; i<199; i++)
	{
		Gui_DrawLine(pxcl[i], pycl[i], pxcl[i + 1], pycl[i + 1], CL_BLUE);
		Gui_DrawLine(px[i],	  py[i],   px[i + 1],   py[i + 1],   CL_YELLOW);
	}
}
コード例 #8
0
ファイル: GUI.c プロジェクト: skyterrace/ZhiCao
void Gui_box2(u16 x,u16 y,u16 w,u16 h, u8 mode)
{
	if (mode==0)	{
		Gui_DrawLine(x,y,x+w,y,0xEF7D);
		Gui_DrawLine(x+w-1,y+1,x+w-1,y+1+h,0x2965);
		Gui_DrawLine(x,y+h,x+w,y+h,0x2965);
		Gui_DrawLine(x,y,x,y+h,0xEF7D);
		}
	if (mode==1)	{
		Gui_DrawLine(x,y,x+w,y,0x2965);
		Gui_DrawLine(x+w-1,y+1,x+w-1,y+1+h,0xEF7D);
		Gui_DrawLine(x,y+h,x+w,y+h,0xEF7D);
		Gui_DrawLine(x,y,x,y+h,0x2965);
	}
	if (mode==2)	{
		Gui_DrawLine(x,y,x+w,y,0xffff);
		Gui_DrawLine(x+w-1,y+1,x+w-1,y+1+h,0xffff);
		Gui_DrawLine(x,y+h,x+w,y+h,0xffff);
		Gui_DrawLine(x,y,x,y+h,0xffff);
	}
}