欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2805|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

ADX345加速度傳感器源程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:189657 發(fā)表于 2017-4-14 20:58 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
#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);
                }
        
}


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表