|
#include "stm32f10x.h"
#include "key.h"
#include "led.h"
#include "system.h"
#include "usart.h"
#include "gui.h"
#include "flash.h"
#include "adx345.h"
#include "math.h"
int16_t Xval, Yval, Zval, Xang, Yang, Zang;
double Xg,Yg,Zg;
uint8_t ShowData[6] = {0, 0, 0, 0, 0, 0};
void GUI_DisplayInit(void);
void GUI_DisplayData(void);
/****************************************************************************
* Function Name : main
* Description : Main program.
* Input : None
* Output : None
* Return : None
****************************************************************************/
int main(void)
{
uint8_t ledState;
uint32_t i;
/* ³õʼ»¯ */
TFT_Init();
FLASH_Init();
SYSTICK_Config();
USART1_Config(9600);
LED_Config();
while(ADX345_Init())
{
GUI_Show12Char(60, 42, "ADX345 ERROR£¡", RED, BLACK);
SYSTICK_Delay1ms(100);
}
GUI_DisplayInit();
ADX345_Adjust();
while(1)
{
i++;
if(i > 0x02FFFF)
{
/* ¶ÁÈ¡X,Y,ZµÄ¼ÓËÙ¶ÈÖµ */
ADX_GetXYZData(&Xval, &Yval, &Zval);
printf(" x:%d \n", Xval);
printf(" y:%d \n", Yval);
printf(" z:%d \n", Zval);
/* ½«¶ÁÈ¡µ½µÄ¼ÓËÙ¶Èֵת»»Îª½Ç¶ÈÖµ */
Xang=ADX_GetAngle(Xval, Yval, Zval,1);
Yang=ADX_GetAngle(Xval, Yval, Zval,2);
Zang=ADX_GetAngle(Xval, Yval, Zval,0);
GUI_DisplayData();
i = 0;
if(ledState == 0xFE)
{
ledState = 0xFF;
}
else
{
ledState = 0xFE;
}
LED_SetState(ledState);
}
}
}
/****************************************************************************
* Function Name : GUI_DisplayInit
* Description : ³õʼ»¯²ÊÆÁÏÔʾ
* Input : None
* Output : None
* Return : None
****************************************************************************/
void GUI_DisplayInit(void)
{
TFT_ClearScreen(BLACK);
GUI_Show16Chinese(80, 0, "¼ÓËÙ¶È´«¸ÐÆ÷", RED, BLACK);
//GUI_Show12Char(90, 21, "PRECHIN", RED, BLACK);
//GUI_Show12Char(60, 42, "123456", RED, BLACK);
GUI_Show12Char(40, 63, "ADX345¼ÓËÙ¶È´«¸ÐÆ÷", RED, BLACK);
GUI_Show12Char(0, 84, "X VAL:", RED, BLACK);
GUI_Show12Char(0, 105, "Y VAL:", RED, BLACK);
GUI_Show12Char(0, 126, "Z VAL:", RED, BLACK);
GUI_Show12Char(0, 147, "X ANG:", RED, BLACK);
GUI_Show12Char(0, 168, "Y ANG:", RED, BLACK);
GUI_Show12Char(0, 189, "Z ANG:", RED, BLACK);
}
/****************************************************************************
* Function Name : GUI_DisplayData
* Description : ÏÔʾ¶ÁÈ¡µÄÊý¾Ý
* Input : None
* Output : None
* Return : None
****************************************************************************/
void GUI_DisplayData(void)
{
int16_t value;
uint8_t num = 6;
while(num)
{
switch(num)
{
case(1):
value = Zang;
break;
case(2):
value = Yang;
break;
case(3):
value = Xang;
break;
case(4):
value = Zval;
break;
case(5):
value = Yval;
break;
case(6):
value = Xval;
break;
default:
break;
}
if(value > 0)
{
ShowData[0] = '+';
}
else
{
ShowData[0] = '-';
value = abs(value);//Çó³ö¾ø¶ÔÖµ
}
ShowData[1] = (value % 10000 /1000) + '0';
ShowData[2] = (value % 1000 /100) + '0';
ShowData[3] = (value % 100 /10) + '0';
ShowData[4] = (value % 10) + '0';
GUI_Show12Char(48, (210 - num*21), ShowData, RED, BLACK);
num--;
}
Xg=Xval/256.00;
Yg=Yval/256.00;
Zg=Zval/256.00;
if(Xg<-0.2 && Yg>0.2)
{
GUI_Show12Char(0, 210, "Ïò×ó", RED, BLACK);
//SYSTICK_Delay1ms(1000);
//GUI_Show12Char(0, 210, "", RED, BLACK);
}
if(Xg<-0.2&&Yg<-0.2)
{
GUI_Show12Char(0, 210, "ÏòÓÒ", RED, BLACK);
//SYSTICK_Delay1ms(1000);
//GUI_Show12Char(0, 210, "", RED, BLACK);
}
if(Yg>-0.2&&Yg<0.2)
{
GUI_Show12Char(0, 210, "Ö±ÐÐ", RED, BLACK);
//SYSTICK_Delay1ms(1000);
//GUI_Show12Char(0, 210, "", RED, BLACK);
}
}
|
|