黑松配可ㄌㄜ

For Every Business

誰有三周陀螺聊包養網心得儀的法式呀!

誰有三周陀螺聊包養網心得儀的法式呀!

14-04-07    edit by edmondchao
*****************************包養app**************************************************/
#include “main.h”
uint8_t buffer[14];
volatile signed short int AdWertNick = 0, AdWertRoll = 0, AdWertGier = 0;
volatile signed short int AdWertAngRoll = 0,AdWertAngNick = 0,AdWertAngHoch = 0;
u8 MPU6050_en=0;   //1MS事務處置
int16_t sensor包養網推薦_6050in_old[9];
struct mpu6050_info S0_6050;包養故事
struct mpu6050_info corr_6050;
/**********包養意思****包養違法************完成函數********************************************
*函數原型包養犯法嗎“母親。”一直默默站在一旁的藍玉華,忽然輕聲叫了一聲,瞬間吸引了眾人的注意。裴家母子倆,母子倆齊刷刷的轉頭看向:                void MPU6050_setClockSource(uint8_t source)
*功 能:         設置 MPU6050 的時鐘源
* CLK_SEL | Clock Source
* ——–+————————————–
* 0      | Internal oscillator
* 1      | PLL with X Gyro reference
* 2      | PLL with Y Gyro reference
* 3     包養行情 | PLL with Z Gyro reference
* 4      | PLL with external 32.768kHz reference
* 5      | PLL with external 19.2MHz reference
* 6      | Reserved
* 7      | Stops the clock and keep包養條件s the timing generator in reset
*******************************************************************************/
void MPU6050_setClockSource(uint8_t source){
    IICwriteBits(devAddr, MPU6050_RA_PWR_MGMT_1, MPU6050_PWR1_CLKSEL_BIT, MPU6050_PWR1_CLKSEL_LENGTH, source);
}
/** Set full-scale gyroscope range.
* @param range New full-scale gyroscope range value
* @see getFullScaleRange()
* @see MPU6050_GYRO_FS_250
* @see MPU6050_RA_GYRO_CONFIG
* @see MPU6050_GCONFIG_FS_SEL_BIT
* @see MPU6050_GCONFIG_FS_SEL_LENGTH
*/
void MPU6050_setFullScaleGyroRange(uint8_t range) {
    IICwriteBits(devAddr, MPU6050_RA_GYRO_CONFIG, MPU6050_GCONFIG_FS_SEL_BIT, MPU6050_GCONFIG_FS_SEL_LENGTH, range);
}
/**************************完成函數******************女大生包養俱樂部**************************
*函數原型:                void MPU6050_setFullScaleAccelRange(uint8_t range)
*功 能:         設置 MPU6050 加快度計的最大批程
*******************************************************************************/
void MPU6050_setFullScaleAccelRange(uint8_t range) {
    IICwriteBits(devAddr, MPU6050_RA_ACCEL_CONFIG, MPU6050_ACONFIG_AFS_SEL_BIT, MPU6050包養平台_ACONFIG_AFS_SEL_LENGTH, range);
}
/**************************完成函數********************************************
*函數原型:                void MPU6050_setSleepEnabled(uint8_t enabled)
*此話一出,不僅驚呆了的月對慘叫了起來,就連正在啜泣欲哭的藍媽媽也瞬間停止了哭泣,猛地抬起頭,緊緊的抓住她的手臂功 能:         設置 MPU6050 能否進進睡眠形式
                                enabled =1   睡覺
                         enabled =0   任務
*******************包養故事************************************************************/
void MPU6050_setSleepEnabled(uint8_t enabled) {
    IICwriteBit(devAddr, MPU6050_RA_PWR_MGMT_1, MPU6050_PWR1_SLEEP_BIT, enabled);
}
/***************,她唯一的兒子。希望漸漸遠離她,直到再也看不到她,她閉上眼睛,全身頓時被黑暗所吞沒。***********完成函數********************************************
*函數原型:                uint8_t MPU6050_getDeviceID(void)
*功 能:         讀取 MPU6050 WHO_AM_I 標識       將前往 0x68
*******************************************************************************/
uint8_t MPU6050_getDeviceID(void) {
    IICreadBytes(devAddr, MPU6050_RA_WHO_AM_I, 1, buffer);
    return buffer[0];
}包養俱樂部
/**************************完成函數********************************************
*函數原型:                uint8_t MPU6050_testConnection(void)
*功 能:         檢測MPU6050 能否曾經銜接
*******************************************************************************/
uint8_t MPU6050_testConnection(void) {
   if(MPU6050_getDeviceID包養dcard() == 0x68) //0b01長期包養101000;
   {
        //LED1_Turn;
   return 1;
   }
          else return 0;
}
/**************************完成函包養網車馬費數********************************************
*函數“好的。”他點了點頭,最後小心翼翼地收起了那張鈔票,感覺值一千塊。銀幣值錢,但夫人的情意是無價的。原型:                void MPU6050_setI2CMasterModeEnabled(uint8_t enabled)
*功 能:         設置 MPU6050 能否為AUX I2C線的主機
*******************************************************************************/
void MPU6050_setI2CMasterModeEnabled(uint8_t enabled) {
    IICwriteBit(devAddr, MPU6050_RA_USER_CTRL, MPU6050_USERCTRL_I包養app2C_MST_EN_BIT, enabled);
}
/**************************完成函數********************************************
*函數原型:                void MPU6050_setI2CBypassEnabled(uint8_t enabled)
*功 能:         設置 MPU6050 能否為AUX I2C線的主機
*******************************************************************************/
void MPU6050_setI2CBypassEnabled(uint8_t enabled) {
    IICwriteBit(devAddr, MPU6050_RA_INT_PIN_CFG, MPU6050_INTCFG_I2C_BYPASS_EN_BIT, enabled);
}
void MPU6050_intio_I台灣包養nit(void)
{
   包養行情       GPIO_InitTypeDef GPIO_InitStructure;
       
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
        GPIO_InitStructure.GPIO_Pin = MPU6050_pin;
                           
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;       
        GPIO_Init(MPU6050_port, &GPIO_InitStructure);
}
/**************************完成函數********************************************
*函數原型:                void MPU6050_initialize(void)
*功 能:         初始化         台灣包養MPU6050 以進進可用狀況。
*******************************************************************************/
void MPU6050_initialize(void)
{
//        int16_t temp[6];
//        unsigned char i;
        MPU6050_intio_Init();
    MPU6050_setClockSource(MPU6050_CLOCK_PLL_XGYRO); //設置時鐘
    MPU6050_setFullScaleGyroRange(MPU6050_GYRO_FS_2000);//陀螺儀最大批程 +-2000度每秒
    MPU6050_setFullScaleAccelRange(MPU6050_ACCEL_FS_16);        //加快度度最大批程 +-2G
    MPU6050_setSleepEnabled(0); //進進任務狀況
        MPU6050_setI2CMasterModeEnabled(0);       //不讓MPU6050 把持AUXI2C
        MPU6050_setI2CBypassEnabled(1);       //主把持器的I2C與        MPU6050的AUXI2C        縱貫。把持器可以直接拜訪HMC5883L
        //設置裝備擺設MPU“進來。”裴母搖頭。6050 的中止形式 和中止電平形式
        //當此位等于0,包養價格INT引腳的邏輯電平為高電平。當此位等于1,INT引腳的邏輯電平為低電平有用。////(1)
        IICwriteBit(devAddr, MPU6050_RA_INT_PIN_CFG, MPU6050_INTCFG_INT_LEVEL_BIT, 1);
        //當此位等于0,INT引腳被設置裝備擺設為推挽。當此位等于1,INT引腳設置裝備擺設為漏極開路。
        IICwriteBit(devAddr, MPU6050_RA_INT_PIN_CFG, MPU6050_INTCFG_INT_OPEN_BIT, 0);
        //當此位等于0,INT引腳收回需50uS的長脈沖。當此位等于1,INT引腳堅持後面(1)界說電平,直到中止肅清。
        IICwriteBit(devAddr, MPU6050_RA_INT_PIN_CFG, MPU6050_INTCFG_LATCH_INT_EN_BIT, 1);
        //當此位等于0,中止狀況位被清零,只能經由過程瀏覽INT_STATUS(注冊58)當此位等于1,任何讀中止狀況位被清零操縱。
        IICwriteBit(devAddr, MPU6050_RA_INT_PIN_CFG, MPU6050_INTCFG_INT_RD_CLEAR_BIT, 1);
        //開數據轉換完成中止
    IICwriteBit(devAddr, MPU6050_RA_INT_ENABLE, MPU6050_INTERRUPT_DATA_RDY_BIT, 1);
        //MPU6050_en=1;
}
/**************************完成函數********************************************
*函數原型:                unsigned char MPU6050_is_DRY(void)
*功 能:         檢討 MPU6050的中止引腳,測試能否完成轉換
前往 1 轉換完成
0 數據存放器還沒有更換新的資料
*******************************************************************************/
unsigned char MPU6050_is_DRY(void)
{
    if(GPIO_ReadInputDataBit(MPU6050_port,MPU6050_pin)==0)return 1;
        else return 0;
}
u8 MPU6050_read_ok=包養app0;
volatile signed sho包養軟體rt int AdWer包養站長t_Nick = 0, AdWert_Roll = 0, AdWert_Gier = 0;
volatile signed short int AdWert_AngRoll = 0,AdWert_AngNick = 0,AdWert_AngHoch = 0;
s16 AngX_mid=0,AngY_mid=0,AngZ_mid= 0;
s16 AccX_mid=0,AccY_m包養一個月id=0,AccZ_mid= 0;
u8 mpu6050_star=0;//=0: 第一次啟動
void MPU6050_getMotion(void)
{
   // LED2_Turn;
    if(MPU6050_is_DRY())
        {
       
       IICreadBytes(devAddr, MPU6050_RA_ACCEL_XOUT_H, 14, buffer);
        AdWertAngNick=(((((int16_t)buffer[0]) >r_move))-AngX_mid-corr_6050.AngRoll);
        S0_6050.AngNick= -(((AdWert_AngNick>>r_move))-AngY_mid-corr_6050.AngNick);       
        //S0_6050.AngHoch=((AdWert_AngHoch>>r_move))-AngZ_mid;
        S0_6050.AccRoll=((AdWertRoll>>6)-AccX_mid-corr_6050.AccRoll);                                        
        S0_6050.AccNick=((AdWertNick>>6)-AccY_mid-corr_6050.AccNick);       
        S0_6050.AccGier=-((AdWertGier>>6)-AccZ_mid-corr_6050.AccGier);
        }
        else
        {
       AngX_mid=((AdWertAngRoll>>r_move));
       AngY_mid=((AdWertAngN包養站長ick>>r_move));
       AccX_mid= (AdWertRoll>>包養甜心網6);
   AccY_mid= (AdWertNick>>6);
   AccZ_mid= (AdWertGier>>6);
              S0_6050.AngNick=        AngX_mid;
                S0_6050.AngRoll= AngY_mid;
                S0_6050.AccNick= AccX_mid;                                                
                S0_6050.AccRoll= AccY_mid;       
                S0_6050.AccGier= AccZ_mid;
        }
       
     包養網推薦  
//#define        test_ppm_ad                                                                                           
#ifdef         test_ppm_ad       
        //UART1_Put_Chars(“Temperature:”);
        //UART1_Put_int((((((int16_t)buffer[6]) >6);
        UART1_Put_Chars(“AccRoll:”);
        UART1_Put_int(S0_6050.AccRoll);
        UART1_Put_Chars(“AccNick:”);
        UART1_Put_int(S0_6050.AccNick);
       包養妹
        //UART1_Put_Chars(“AngHoch:”);
        //UART1_Put_int(S0_6050.AngHoch);
        UART1_Put_Chars(“AngRoll:”);
        UART1_Put_int(S包養軟體0_6050.AngRoll);       
        UART1_Put_Chars(“AngN:”);
        UART1_Put_int(S0_6050.AngNick);       
        UART1_Put_int(S0_6050.AccNick);       
        UART1_Put_Chars(“AccGier:”);         
        UART1_Put_int(S0_6050.AccGier);
        USART_newline;
#endif       
       包養故事 }
}
void S_6050_set(void)
{
               
       u8 S_6050_same_data=0;
       //緩存E2ROM數據
       s16 AngX_mi包養網評價dz,AngY_midz;
       s16 AccX_midz,AccY_midz,AccZ_midz;
       u8 test_nu包養犯法嗎m=0;
       e2rom_mpu6050_read();
       AngX_midz=AngX_mid;
       AngY_midz=AngY_mid;
       AccX_midz=AccX_mid;
       AccY_midz=AccY_mid;
       AccZ_midz=AccZ_mid;
       
                 UART1_Put_Chars(“S_6050_ready!Star set s_6050_data!”);
                      “丫頭就是丫頭,沒關係,奴婢在這個世界上沒有親人,但我要跟著你一輩子。你不能不說話,過河拆橋。”彩修連忙說道。  while(S_6050_same_data1)|(abs(AngY_mid-AngY_midz)>1))   
                         {        
                                if(test_num

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *