mirror of
https://gitee.com/seekfree/TC264_Library.git
synced 2026-06-03 19:32:55 +00:00
V3.4.2:优化双摄库,掉帧不卡、修改串口发送数组函数中的发送条件、修改ips200pro注释、修改陀螺仪驱动文件相关函数
This commit is contained in:
@@ -1,3 +1,10 @@
|
||||
V3.4.2
|
||||
<20>Ż<EFBFBD>˫<EFBFBD><CBAB><EFBFBD>⣬<EFBFBD><E2A3AC>֡<EFBFBD><D6A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20>Ĵ<DEB8><C4B4>ڷ<EFBFBD><DAB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>麯<EFBFBD><E9BAAF><EFBFBD>еķ<D0B5><C4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><EFBFBD>ips200proע<6F><D7A2>
|
||||
<20><EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>غ<EFBFBD><D8BA><EFBFBD>
|
||||
V3.4.1
|
||||
<20><><EFBFBD><EFBFBD>˫<EFBFBD><CBAB><EFBFBD><EFBFBD>
|
||||
V3.4.0
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><D8B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>zf_components/printf_redirect.h<>ļ<EFBFBD><C4BC>ڵĺ궨<C4BA>弴<EFBFBD><E5BCB4><EFBFBD><EFBFBD>printf<74><66><EFBFBD><EFBFBD>
|
||||
<20>Ż<EFBFBD><C5BB><EFBFBD><EFBFBD><EFBFBD>ͨѶʱ<D1B6><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>115200<30><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨѶ<CDA8><D1B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1.388ms<EFBFBD><EFBFBD>ʱ
|
||||
|
||||
@@ -410,7 +410,7 @@ uint32 IfxAsclin_write8(Ifx_ASCLIN *asclin,const uint8 *data, uint32 count)
|
||||
{
|
||||
txData->U = *data++;
|
||||
count--;
|
||||
while(asclin->TXFIFOCON.B.FILL == 16);
|
||||
while(asclin->TXFIFOCON.B.FILL > 0);
|
||||
}
|
||||
|
||||
return count;
|
||||
|
||||
@@ -98,8 +98,7 @@
|
||||
#include "zf_device_key.h"
|
||||
#include "zf_device_menc15a.h"
|
||||
#include "zf_device_mpu6050.h"
|
||||
#include "zf_device_mt9v03x.h"
|
||||
#include "zf_device_mt9v03x2.h"
|
||||
#include "zf_device_mt9v03x_double.h"
|
||||
#include "zf_device_oled.h"
|
||||
#include "zf_device_ov7725.h"
|
||||
#include "zf_device_scc8660.h"
|
||||
|
||||
@@ -39,8 +39,7 @@
|
||||
#include "zf_driver_gpio.h"
|
||||
#include "zf_driver_dma.h"
|
||||
#include "zf_driver_exti.h"
|
||||
#include "zf_device_mt9v03x.h"
|
||||
#include "zf_device_mt9v03x2.h"
|
||||
#include "zf_device_mt9v03x_double.h"
|
||||
#include "zf_device_ov7725.h"
|
||||
#include "zf_device_scc8660.h"
|
||||
#include "isr_config.h"
|
||||
@@ -109,11 +108,10 @@ void camera_fifo_init (void)
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ͷ<EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD>ʼ<EFBFBD><CABC>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> image_size ͼ<><CDBC><EFBFBD>Ĵ<EFBFBD>С
|
||||
// @return void
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> image_size ͼ<><CDBC><EFBFBD>Ĵ<EFBFBD>С
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD> data_addr <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> buffer_addr ͼ<><EFBFBD><F1BBBAB3><EFBFBD><EFBFBD><EFBFBD>ַ
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> source_addr <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD> destination_addr ͼ<><EFBFBD><F1BBBAB3><EFBFBD><EFBFBD><EFBFBD>ַ
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> image_size ͼ<EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD>С
|
||||
// <20><><EFBFBD>ز<EFBFBD><EFBFBD><EFBFBD> uint8 DMA <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// @return void
|
||||
// Sample usage: camera_init();
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
@@ -134,39 +132,36 @@ uint8 camera_init (uint8 *source_addr, uint8 *destination_addr, uint32 image_siz
|
||||
destination_addr,
|
||||
OV7725_PCLK_PIN,
|
||||
EXTI_TRIGGER_FALLING,
|
||||
image_size,
|
||||
DMA_INT_PRIO);
|
||||
image_size);
|
||||
exti_init(OV7725_VSYNC_PIN, EXTI_TRIGGER_FALLING); //<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>жϣ<D0B6><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>½<EFBFBD><C2BD>ش<EFBFBD><D8B4><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
break;
|
||||
case CAMERA_GRAYSCALE: // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
case CAMERA_GRAYSCALE_1: // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1
|
||||
for(num = 0; num < 8; num ++)
|
||||
{
|
||||
gpio_init((gpio_pin_enum)(MT9V03X_DATA_PIN + num), GPI, GPIO_LOW, GPI_FLOATING_IN);
|
||||
gpio_init((gpio_pin_enum)(MT9V03X_1_DATA_PIN + num), GPI, GPIO_LOW, GPI_FLOATING_IN);
|
||||
}
|
||||
link_list_num = dma_init(MT9V03X_DMA_CH,
|
||||
link_list_num = dma_init(MT9V03X_1_DMA_CH,
|
||||
source_addr,
|
||||
destination_addr,
|
||||
MT9V03X_PCLK_PIN,
|
||||
EXTI_TRIGGER_FALLING,
|
||||
image_size,
|
||||
DMA_INT_PRIO); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>300M <20><><EFBFBD><EFBFBD><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΪFALLING
|
||||
MT9V03X_1_PCLK_PIN,
|
||||
EXTI_TRIGGER_RISING,
|
||||
image_size); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>300M <20><><EFBFBD><EFBFBD><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΪFALLING
|
||||
|
||||
exti_init(MT9V03X_VSYNC_PIN, EXTI_TRIGGER_FALLING); // <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>жϣ<D0B6><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>½<EFBFBD><C2BD>ش<EFBFBD><D8B4><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
exti_init(MT9V03X_1_VSYNC_PIN, EXTI_TRIGGER_BOTH); // <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>жϣ<D0B6><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>½<EFBFBD><C2BD>ش<EFBFBD><D8B4><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
break;
|
||||
case CAMERA_GRAYSCALE2: // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
case CAMERA_GRAYSCALE_2: // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2
|
||||
for(num = 0; num < 8; num ++)
|
||||
{
|
||||
gpio_init((gpio_pin_enum)(MT9V03X2_DATA_PIN + num), GPI, GPIO_LOW, GPI_FLOATING_IN);
|
||||
gpio_init((gpio_pin_enum)(MT9V03X_2_DATA_PIN + num), GPI, GPIO_LOW, GPI_FLOATING_IN);
|
||||
}
|
||||
link_list_num = dma_init(MT9V03X2_DMA_CH,
|
||||
link_list_num = dma_init_2(MT9V03X_2_DMA_CH,
|
||||
source_addr,
|
||||
destination_addr,
|
||||
MT9V03X2_PCLK_PIN,
|
||||
EXTI_TRIGGER_FALLING,
|
||||
image_size,
|
||||
DMA_INT_PRIO); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>300M <20><><EFBFBD><EFBFBD><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΪFALLING
|
||||
MT9V03X_2_PCLK_PIN,
|
||||
EXTI_TRIGGER_RISING,
|
||||
image_size); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>300M <20><><EFBFBD><EFBFBD><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΪFALLING
|
||||
|
||||
exti_init(MT9V03X2_VSYNC_PIN, EXTI_TRIGGER_FALLING); // <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>жϣ<D0B6><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>½<EFBFBD><C2BD>ش<EFBFBD><D8B4><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
exti_init(MT9V03X_2_VSYNC_PIN, EXTI_TRIGGER_BOTH); // <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>жϣ<D0B6><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>½<EFBFBD><C2BD>ش<EFBFBD><D8B4><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
break;
|
||||
case CAMERA_COLOR: // <20><>ͫ
|
||||
for(num=0; num<8; num++)
|
||||
@@ -179,8 +174,7 @@ uint8 camera_init (uint8 *source_addr, uint8 *destination_addr, uint32 image_siz
|
||||
destination_addr,
|
||||
SCC8660_PCLK_PIN,
|
||||
EXTI_TRIGGER_RISING,
|
||||
image_size,
|
||||
DMA_INT_PRIO); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>300M <20><><EFBFBD><EFBFBD><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΪFALLING
|
||||
image_size); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>300M <20><><EFBFBD><EFBFBD><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΪFALLING
|
||||
|
||||
exti_init(SCC8660_VSYNC_PIN, EXTI_TRIGGER_FALLING); // <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>жϣ<D0B6><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>½<EFBFBD><C2BD>ش<EFBFBD><D8B4><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
break;
|
||||
@@ -191,88 +185,3 @@ uint8 camera_init (uint8 *source_addr, uint8 *destination_addr, uint32 image_siz
|
||||
|
||||
return link_list_num;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ͷ2<CDB7>ɼ<EFBFBD><C9BC><EFBFBD>ʼ<EFBFBD><CABC>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> image_size ͼ<><CDBC><EFBFBD>Ĵ<EFBFBD>С
|
||||
// @return void
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> image_size ͼ<><CDBC><EFBFBD>Ĵ<EFBFBD>С
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> data_addr <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> buffer_addr ͼ<><EFBFBD><F1BBBAB3><EFBFBD><EFBFBD><EFBFBD>ַ
|
||||
// @return void
|
||||
// Sample usage: camera_init_2();
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint8 camera_init_2 (uint8 *source_addr, uint8 *destination_addr, uint32 image_size)
|
||||
{
|
||||
uint8 num;
|
||||
uint8 link_list_num;
|
||||
switch(camera_type_2)
|
||||
{
|
||||
case CAMERA_BIN_IIC: // IIC С<><D0A1><EFBFBD><EFBFBD>
|
||||
case CAMERA_BIN_UART: // UART С<><D0A1><EFBFBD><EFBFBD>
|
||||
for(num = 0; num < 8; num ++)
|
||||
{
|
||||
gpio_init((gpio_pin_enum)(OV7725_DATA_PIN + num), GPI, GPIO_LOW, GPI_FLOATING_IN);
|
||||
}
|
||||
link_list_num = dma_init_2(OV7725_DMA_CH,
|
||||
source_addr,
|
||||
destination_addr,
|
||||
OV7725_PCLK_PIN,
|
||||
EXTI_TRIGGER_FALLING,
|
||||
image_size,
|
||||
DMA_INT_PRIO_2);
|
||||
exti_init(OV7725_VSYNC_PIN, EXTI_TRIGGER_FALLING); //<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>жϣ<D0B6><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>½<EFBFBD><C2BD>ش<EFBFBD><D8B4><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
break;
|
||||
case CAMERA_GRAYSCALE: // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
for(num = 0; num < 8; num ++)
|
||||
{
|
||||
gpio_init((gpio_pin_enum)(MT9V03X_DATA_PIN + num), GPI, GPIO_LOW, GPI_FLOATING_IN);
|
||||
}
|
||||
link_list_num = dma_init_2(MT9V03X_DMA_CH,
|
||||
source_addr,
|
||||
destination_addr,
|
||||
MT9V03X_PCLK_PIN,
|
||||
EXTI_TRIGGER_FALLING,
|
||||
image_size,
|
||||
DMA_INT_PRIO_2); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>300M <20><><EFBFBD><EFBFBD><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΪFALLING
|
||||
|
||||
exti_init(MT9V03X_VSYNC_PIN, EXTI_TRIGGER_FALLING); // <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>жϣ<D0B6><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>½<EFBFBD><C2BD>ش<EFBFBD><D8B4><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
break;
|
||||
case CAMERA_GRAYSCALE2: // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
for(num = 0; num < 8; num ++)
|
||||
{
|
||||
gpio_init((gpio_pin_enum)(MT9V03X2_DATA_PIN + num), GPI, GPIO_LOW, GPI_FLOATING_IN);
|
||||
}
|
||||
link_list_num = dma_init_2(MT9V03X2_DMA_CH,
|
||||
source_addr,
|
||||
destination_addr,
|
||||
MT9V03X2_PCLK_PIN,
|
||||
EXTI_TRIGGER_FALLING,
|
||||
image_size,
|
||||
DMA_INT_PRIO_2); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>300M <20><><EFBFBD><EFBFBD><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΪFALLING
|
||||
|
||||
exti_init(MT9V03X2_VSYNC_PIN, EXTI_TRIGGER_FALLING); // <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>жϣ<D0B6><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>½<EFBFBD><C2BD>ش<EFBFBD><D8B4><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
break;
|
||||
case CAMERA_COLOR: // <20><>ͫ
|
||||
for(num=0; num<8; num++)
|
||||
{
|
||||
gpio_init((gpio_pin_enum)(SCC8660_DATA_PIN + num), GPI, GPIO_LOW, GPI_FLOATING_IN);
|
||||
}
|
||||
|
||||
link_list_num = dma_init_2(SCC8660_DMA_CH,
|
||||
source_addr,
|
||||
destination_addr,
|
||||
SCC8660_PCLK_PIN,
|
||||
EXTI_TRIGGER_RISING,
|
||||
image_size,
|
||||
DMA_INT_PRIO_2); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>300M <20><><EFBFBD><EFBFBD><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΪFALLING
|
||||
|
||||
exti_init(SCC8660_VSYNC_PIN, EXTI_TRIGGER_FALLING); // <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>жϣ<D0B6><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>½<EFBFBD><C2BD>ش<EFBFBD><D8B4><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return link_list_num;
|
||||
}
|
||||
|
||||
@@ -53,7 +53,6 @@ void camera_binary_image_decompression (const uint8 *data1, uint8 *data2, uint3
|
||||
void camera_send_image (uart_index_enum uartn, const uint8 *image_addr, uint32 image_size); // <20><><EFBFBD><EFBFBD>ͷͼ<CDB7><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD>鿴ͼ<E9BFB4><CDBC>
|
||||
void camera_fifo_init (void); // <20><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD> FIFO <20><>ʼ<EFBFBD><CABC>
|
||||
uint8 camera_init (uint8 *source_addr, uint8 *destination_addr, uint32 image_size); // <20><><EFBFBD><EFBFBD>ͷ<EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD>ʼ<EFBFBD><CABC>
|
||||
uint8 camera_init_2 (uint8 *source_addr, uint8 *destination_addr, uint32 image_size); // <20><><EFBFBD><EFBFBD>ͷ2<CDB7>ɼ<EFBFBD><C9BC><EFBFBD>ʼ<EFBFBD><CABC>
|
||||
//=================================================<3D><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>================================================
|
||||
|
||||
#endif
|
||||
|
||||
@@ -55,6 +55,8 @@
|
||||
* ------------------------------------
|
||||
********************************************************************************************************************/
|
||||
|
||||
|
||||
|
||||
#include "zf_common_debug.h"
|
||||
#include "zf_driver_delay.h"
|
||||
#include "zf_driver_spi.h"
|
||||
@@ -65,6 +67,7 @@
|
||||
|
||||
int16 imu660ra_gyro_x = 0, imu660ra_gyro_y = 0, imu660ra_gyro_z = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> gyro (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
int16 imu660ra_acc_x = 0, imu660ra_acc_y = 0, imu660ra_acc_z = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> acc (accelerometer <20><><EFBFBD>ٶȼ<D9B6>)
|
||||
float imu660ra_transition_factor[2] = {4096, 16.4};
|
||||
|
||||
#if IMU660RA_USE_SOFT_IIC
|
||||
static soft_iic_info_struct imu660ra_iic_struct;
|
||||
@@ -82,7 +85,7 @@ static soft_iic_info_struct imu660ra_iic_struct;
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> imu660ra_write_register(IMU660RA_PWR_CONF, 0x00); // <20>رո<D5B8>ʡ<EFBFBD><CAA1>ģʽ
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
static void imu660ra_write_register(uint8 reg, uint8 data)
|
||||
static void imu660ra_write_register (uint8 reg, uint8 data)
|
||||
{
|
||||
IMU660RA_CS(0);
|
||||
spi_write_8bit_register(IMU660RA_SPI, reg | IMU660RA_SPI_W, data);
|
||||
@@ -97,7 +100,7 @@ static void imu660ra_write_register(uint8 reg, uint8 data)
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> imu660ra_write_registers(IMU660RA_INIT_DATA, imu660ra_config_file, sizeof(imu660ra_config_file));
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
static void imu660ra_write_registers(uint8 reg, const uint8 *data, uint32 len)
|
||||
static void imu660ra_write_registers (uint8 reg, const uint8 *data, uint32 len)
|
||||
{
|
||||
IMU660RA_CS(0);
|
||||
spi_write_8bit_registers(IMU660RA_SPI, reg | IMU660RA_SPI_W, data, len);
|
||||
@@ -111,7 +114,7 @@ static void imu660ra_write_registers(uint8 reg, const uint8 *data, uint32 len)
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> imu660ra_read_register(IMU660RA_CHIP_ID);
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
static uint8 imu660ra_read_register(uint8 reg)
|
||||
static uint8 imu660ra_read_register (uint8 reg)
|
||||
{
|
||||
uint8 data[2];
|
||||
IMU660RA_CS(0);
|
||||
@@ -129,13 +132,12 @@ static uint8 imu660ra_read_register(uint8 reg)
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> imu660ra_read_registers(IMU660RA_ACC_ADDRESS, dat, 6);
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
static void imu660ra_read_registers(uint8 reg, uint8 *data, uint32 len)
|
||||
static void imu660ra_read_registers (uint8 reg, uint8 *data, uint32 len)
|
||||
{
|
||||
uint8 temp_data[8];
|
||||
IMU660RA_CS(0);
|
||||
spi_read_8bit_registers(IMU660RA_SPI, reg | IMU660RA_SPI_R, temp_data, len + 1);
|
||||
IMU660RA_CS(1);
|
||||
|
||||
for(int i = 0; i < len; i ++)
|
||||
{
|
||||
*(data ++) = temp_data[i + 1];
|
||||
@@ -156,7 +158,7 @@ static uint8 imu660ra_self_check (void)
|
||||
uint16 timeout_count = 0;
|
||||
do
|
||||
{
|
||||
if(timeout_count ++ > IMU660RA_TIMEOUT_COUNT)
|
||||
if(IMU660RA_TIMEOUT_COUNT < timeout_count ++)
|
||||
{
|
||||
return_state = 1;
|
||||
break;
|
||||
@@ -180,9 +182,9 @@ void imu660ra_get_acc (void)
|
||||
uint8 dat[6];
|
||||
|
||||
imu660ra_read_registers(IMU660RA_ACC_ADDRESS, dat, 6);
|
||||
imu660ra_acc_x = (int16)(((uint16)dat[1]<<8 | dat[0]));
|
||||
imu660ra_acc_y = (int16)(((uint16)dat[3]<<8 | dat[2]));
|
||||
imu660ra_acc_z = (int16)(((uint16)dat[5]<<8 | dat[4]));
|
||||
imu660ra_acc_x = (int16)(((uint16)dat[1] << 8 | dat[0]));
|
||||
imu660ra_acc_y = (int16)(((uint16)dat[3] << 8 | dat[2]));
|
||||
imu660ra_acc_z = (int16)(((uint16)dat[5] << 8 | dat[4]));
|
||||
}
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȡ IMU660RA <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
@@ -197,52 +199,9 @@ void imu660ra_get_gyro (void)
|
||||
uint8 dat[6];
|
||||
|
||||
imu660ra_read_registers(IMU660RA_GYRO_ADDRESS, dat, 6);
|
||||
imu660ra_gyro_x = (int16)(((uint16)dat[1]<<8 | dat[0]));
|
||||
imu660ra_gyro_y = (int16)(((uint16)dat[3]<<8 | dat[2]));
|
||||
imu660ra_gyro_z = (int16)(((uint16)dat[5]<<8 | dat[4]));
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> IMU660RA <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊʵ<CEAA><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> gyro_value <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> float data = imu660ra_acc_transition(imu660ra_acc_x); // <20><>λΪ g(m/s^2)
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
float imu660ra_acc_transition (int16 acc_value)
|
||||
{
|
||||
float acc_data = 0;
|
||||
switch(IMU660RA_ACC_SAMPLE)
|
||||
{
|
||||
case 0x00: acc_data = (float)acc_value / 16384; break; // 0x00 <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>2g <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 16384 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
case 0x01: acc_data = (float)acc_value / 8192; break; // 0x01 <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>4g <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 8192 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
case 0x02: acc_data = (float)acc_value / 4096; break; // 0x02 <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>8g <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 4096 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
case 0x03: acc_data = (float)acc_value / 2048; break; // 0x03 <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>16g <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 2048 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
default: break;
|
||||
}
|
||||
return acc_data;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> IMU660RA <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊʵ<CEAA><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> gyro_value <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> float data = imu660ra_gyro_transition(imu660ra_gyro_x); // <20><>λΪ<CEBB><CEAA>/s
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
float imu660ra_gyro_transition (int16 gyro_value)
|
||||
{
|
||||
float gyro_data = 0;
|
||||
switch(IMU660RA_GYR_SAMPLE)
|
||||
{
|
||||
case 0x00: gyro_data = (float)gyro_value / 16.4f; break; // 0x00 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>2000dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD> 16.4 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
case 0x01: gyro_data = (float)gyro_value / 32.8f; break; // 0x01 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>1000dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD> 32.8 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
case 0x02: gyro_data = (float)gyro_value / 65.6f; break; // 0x02 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>500 dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD> 65.6 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
case 0x03: gyro_data = (float)gyro_value / 131.2f; break; // 0x03 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>250 dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD> 131.2 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
case 0x04: gyro_data = (float)gyro_value / 262.4f; break; // 0x04 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>125 dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD> 262.4 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
default: break;
|
||||
}
|
||||
return gyro_data;
|
||||
imu660ra_gyro_x = (int16)(((uint16)dat[1] << 8 | dat[0]));
|
||||
imu660ra_gyro_y = (int16)(((uint16)dat[3] << 8 | dat[2]));
|
||||
imu660ra_gyro_z = (int16)(((uint16)dat[5] << 8 | dat[4]));
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
@@ -256,8 +215,11 @@ uint8 imu660ra_init (void)
|
||||
{
|
||||
uint8 return_state = 0;
|
||||
system_delay_ms(20); // <20>ȴ<EFBFBD><C8B4>豸<EFBFBD>ϵ<EFBFBD><CFB5>ɹ<EFBFBD>
|
||||
|
||||
#if IMU660RA_USE_SOFT_IIC
|
||||
gpio_init(IMU660RA_CS_PIN, GPO, GPIO_LOW, GPO_PUSH_PULL); // <20><><EFBFBD><EFBFBD> IMU660RA <20><>CS<43>˿<EFBFBD>
|
||||
soft_iic_init(&imu660ra_iic_struct, IMU660RA_DEV_ADDR, IMU660RA_SOFT_IIC_DELAY, IMU660RA_SCL_PIN, IMU660RA_SDA_PIN); // <20><><EFBFBD><EFBFBD> IMU660RA <20><> IIC <20>˿<EFBFBD>
|
||||
|
||||
#else
|
||||
spi_init(IMU660RA_SPI, SPI_MODE0, IMU660RA_SPI_SPEED, IMU660RA_SPC_PIN, IMU660RA_SDI_PIN, IMU660RA_SDO_PIN, SPI_CS_NULL); // <20><><EFBFBD><EFBFBD> IMU660RA <20><> SPI <20>˿<EFBFBD>
|
||||
gpio_init(IMU660RA_CS_PIN, GPO, GPIO_HIGH, GPO_PUSH_PULL); // <20><><EFBFBD><EFBFBD> IMU660RA <20><>CS<43>˿<EFBFBD>
|
||||
@@ -280,7 +242,7 @@ uint8 imu660ra_init (void)
|
||||
imu660ra_write_registers(IMU660RA_INIT_DATA, imu660ra_config_file, sizeof(imu660ra_config_file)); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
||||
imu660ra_write_register(IMU660RA_INIT_CTRL, 0x01); // <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>ý<EFBFBD><C3BD><EFBFBD>
|
||||
system_delay_ms(20);
|
||||
if(imu660ra_read_register(IMU660RA_INT_STA) == 0) // <20><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if(1 != imu660ra_read_register(IMU660RA_INT_STA)) // <20><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD><CBB6><EFBFBD><EFBFBD><EFBFBD>Ϣ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><>ô<EFBFBD><C3B4><EFBFBD><EFBFBD> IMU660RA <20><><EFBFBD>ó<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
@@ -292,23 +254,88 @@ uint8 imu660ra_init (void)
|
||||
imu660ra_write_register(IMU660RA_PWR_CTRL, 0x0E); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǡ<EFBFBD><C7A1><EFBFBD><EFBFBD>ٶȡ<D9B6><C8A1>¶ȴ<C2B6><C8B4><EFBFBD><EFBFBD><EFBFBD>
|
||||
imu660ra_write_register(IMU660RA_ACC_CONF, 0xA7); // <20><><EFBFBD>ٶȲɼ<C8B2><C9BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ģʽ <20><><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD> 50Hz <20><><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>
|
||||
imu660ra_write_register(IMU660RA_GYR_CONF, 0xA9); // <20><><EFBFBD><EFBFBD><EFBFBD>Dzɼ<C7B2><C9BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ģʽ <20><><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD> 200Hz <20><><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>
|
||||
imu660ra_write_register(IMU660RA_ACC_RANGE, IMU660RA_ACC_SAMPLE); // <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>8g
|
||||
imu660ra_write_register(IMU660RA_GYR_RANGE, IMU660RA_GYR_SAMPLE); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>2000dps
|
||||
|
||||
// IMU660RA_ACC_SAMPLE <20>Ĵ<EFBFBD><C4B4><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x00 <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>2g <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD> 16384 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x01 <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>4g <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD> 8192 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x02 <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>8g <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD> 4096 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x03 <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>16g <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD> 2048 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x00 <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>2 g <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 16384 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (g <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD> <20><><EFBFBD><EFBFBD>ѧ<EFBFBD><D1A7><EFBFBD><EFBFBD> һ<><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> g ȡ 9.8 m/s^2 Ϊ<><CEAA>ֵ)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x01 <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>4 g <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 8192 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (g <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD> <20><><EFBFBD><EFBFBD>ѧ<EFBFBD><D1A7><EFBFBD><EFBFBD> һ<><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> g ȡ 9.8 m/s^2 Ϊ<><CEAA>ֵ)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x02 <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>8 g <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 4096 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (g <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD> <20><><EFBFBD><EFBFBD>ѧ<EFBFBD><D1A7><EFBFBD><EFBFBD> һ<><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> g ȡ 9.8 m/s^2 Ϊ<><CEAA>ֵ)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x03 <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>16 g <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 2048 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (g <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD> <20><><EFBFBD><EFBFBD>ѧ<EFBFBD><D1A7><EFBFBD><EFBFBD> һ<><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> g ȡ 9.8 m/s^2 Ϊ<><CEAA>ֵ)
|
||||
switch(IMU660RA_ACC_SAMPLE_DEFAULT)
|
||||
{
|
||||
default:
|
||||
{
|
||||
zf_log(0, "IMU660RA_ACC_SAMPLE_DEFAULT set error.");
|
||||
return_state = 1;
|
||||
}break;
|
||||
case IMU660RA_ACC_SAMPLE_SGN_2G:
|
||||
{
|
||||
imu660ra_write_register(IMU660RA_ACC_RANGE, 0x00);
|
||||
imu660ra_transition_factor[0] = 16384;
|
||||
}break;
|
||||
case IMU660RA_ACC_SAMPLE_SGN_4G:
|
||||
{
|
||||
imu660ra_write_register(IMU660RA_ACC_RANGE, 0x01);
|
||||
imu660ra_transition_factor[0] = 8192;
|
||||
}break;
|
||||
case IMU660RA_ACC_SAMPLE_SGN_8G:
|
||||
{
|
||||
imu660ra_write_register(IMU660RA_ACC_RANGE, 0x02);
|
||||
imu660ra_transition_factor[0] = 4096;
|
||||
}break;
|
||||
case IMU660RA_ACC_SAMPLE_SGN_16G:
|
||||
{
|
||||
imu660ra_write_register(IMU660RA_ACC_RANGE, 0x03);
|
||||
imu660ra_transition_factor[0] = 2048;
|
||||
}break;
|
||||
}
|
||||
if(1 == return_state)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
// IMU660RA_GYR_RANGE <20>Ĵ<EFBFBD><C4B4><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x00 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>2000dps <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD> 16.4 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x01 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>1000dps <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD> 32.8 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x02 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>500 dps <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD> 65.6 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x03 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>250 dps <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD> 131.2 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x04 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>125 dps <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD> 262.4 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x04 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>125 dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 262.4 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ <EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x03 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>250 dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 131.2 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ <EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x02 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>500 dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 65.6 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ <EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x01 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>1000 dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 32.8 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ <EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x00 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>2000 dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 16.4 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ <EFBFBD><EFBFBD>/s
|
||||
switch(IMU660RA_GYRO_SAMPLE_DEFAULT)
|
||||
{
|
||||
default:
|
||||
{
|
||||
zf_log(0, "IMU660RA_GYRO_SAMPLE_DEFAULT set error.");
|
||||
return_state = 1;
|
||||
}break;
|
||||
case IMU660RA_GYRO_SAMPLE_SGN_125DPS:
|
||||
{
|
||||
imu660ra_write_register(IMU660RA_GYR_RANGE, 0x04);
|
||||
imu660ra_transition_factor[1] = 262.4;
|
||||
}break;
|
||||
case IMU660RA_GYRO_SAMPLE_SGN_250DPS:
|
||||
{
|
||||
imu660ra_write_register(IMU660RA_GYR_RANGE, 0x03);
|
||||
imu660ra_transition_factor[1] = 131.2;
|
||||
}break;
|
||||
case IMU660RA_GYRO_SAMPLE_SGN_500DPS:
|
||||
{
|
||||
imu660ra_write_register(IMU660RA_GYR_RANGE, 0x02);
|
||||
imu660ra_transition_factor[1] = 65.6;
|
||||
}break;
|
||||
case IMU660RA_GYRO_SAMPLE_SGN_1000DPS:
|
||||
{
|
||||
imu660ra_write_register(IMU660RA_GYR_RANGE, 0x01);
|
||||
imu660ra_transition_factor[1] = 32.8;
|
||||
}break;
|
||||
case IMU660RA_GYRO_SAMPLE_SGN_2000DPS:
|
||||
{
|
||||
imu660ra_write_register(IMU660RA_GYR_RANGE, 0x00);
|
||||
imu660ra_transition_factor[1] = 16.4;
|
||||
}break;
|
||||
}
|
||||
if(1 == return_state)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}while(0);
|
||||
return return_state;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -54,7 +54,6 @@
|
||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* ------------------------------------
|
||||
********************************************************************************************************************/
|
||||
|
||||
#ifndef _zf_device_imu660ra_h_
|
||||
#define _zf_device_imu660ra_h_
|
||||
|
||||
@@ -64,71 +63,97 @@
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IMU660RA_USE_SOFT_IIC<49><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>ȱ<EFBFBD><C8B1>벢<EFBFBD><EBB2A2><EFBFBD>س<EFBFBD><D8B3><EFBFBD>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD>Ҫ<EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨѶ
|
||||
#define IMU660RA_USE_SOFT_IIC (0) // Ĭ<><C4AC>ʹ<EFBFBD><CAB9>Ӳ<EFBFBD><D3B2> SPI <20><>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
#if IMU660RA_USE_SOFT_IIC // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7> <20><>ɫ<EFBFBD>ҵľ<D2B5><C4BE><EFBFBD>û<EFBFBD><C3BB><EFBFBD>õ<EFBFBD>
|
||||
//====================================================<3D><><EFBFBD><EFBFBD> IIC <20><><EFBFBD><EFBFBD>====================================================
|
||||
#define IMU660RA_SOFT_IIC_DELAY (59) // <20><><EFBFBD><EFBFBD> IIC <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD> <20><>ֵԽС IIC ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD>
|
||||
#define IMU660RA_SCL_PIN (P20_11) // <20><><EFBFBD><EFBFBD> IIC SCL <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> IMU660RA <20><> SCL <20><><EFBFBD><EFBFBD>
|
||||
#define IMU660RA_SDA_PIN (P20_14) // <20><><EFBFBD><EFBFBD> IIC SDA <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> IMU660RA <20><> SDA <20><><EFBFBD><EFBFBD>
|
||||
#define IMU660RA_SOFT_IIC_DELAY (59) // <20><><EFBFBD><EFBFBD> IIC <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD> <20><>ֵԽС IIC ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD>
|
||||
#define IMU660RA_SCL_PIN (P20_11) // <20><><EFBFBD><EFBFBD> IIC SCL <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> IMU660RA <20><> SCL <20><><EFBFBD><EFBFBD>
|
||||
#define IMU660RA_SDA_PIN (P20_14) // <20><><EFBFBD><EFBFBD> IIC SDA <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> IMU660RA <20><> SDA <20><><EFBFBD><EFBFBD>
|
||||
//====================================================<3D><><EFBFBD><EFBFBD> IIC <20><><EFBFBD><EFBFBD>====================================================
|
||||
#else
|
||||
|
||||
//====================================================Ӳ<><D3B2> SPI <20><><EFBFBD><EFBFBD>====================================================
|
||||
#define IMU660RA_SPI_SPEED (10 * 1000 * 1000) // Ӳ<><D3B2> SPI <20><><EFBFBD><EFBFBD>
|
||||
#define IMU660RA_SPI (SPI_0) // Ӳ<><D3B2> SPI <20><>
|
||||
#define IMU660RA_SPC_PIN (SPI0_SCLK_P20_11) // Ӳ<><D3B2> SPI SCK <20><><EFBFBD><EFBFBD>
|
||||
#define IMU660RA_SDI_PIN (SPI0_MOSI_P20_14) // Ӳ<><D3B2> SPI MOSI <20><><EFBFBD><EFBFBD>
|
||||
#define IMU660RA_SDO_PIN (SPI0_MISO_P20_12) // Ӳ<><D3B2> SPI MISO <20><><EFBFBD><EFBFBD>
|
||||
#define IMU660RA_SPC_PIN (SPI0_SCLK_P20_11 ) // Ӳ<><D3B2> SPI SCK <20><><EFBFBD><EFBFBD>
|
||||
#define IMU660RA_SDI_PIN (SPI0_MOSI_P20_14) // Ӳ<><D3B2> SPI MOSI <20><><EFBFBD><EFBFBD>
|
||||
#define IMU660RA_SDO_PIN (SPI0_MISO_P20_12) // Ӳ<><D3B2> SPI MISO <20><><EFBFBD><EFBFBD>
|
||||
//====================================================Ӳ<><D3B2> SPI <20><><EFBFBD><EFBFBD>====================================================
|
||||
#endif
|
||||
#define IMU660RA_CS_PIN (P20_13) // CS Ƭѡ<C6AC><D1A1><EFBFBD><EFBFBD>
|
||||
#define IMU660RA_CS_PIN (P20_13) // CS Ƭѡ<C6AC><D1A1><EFBFBD><EFBFBD>
|
||||
#define IMU660RA_CS(x) ((x) ? (gpio_high(IMU660RA_CS_PIN)) : (gpio_low(IMU660RA_CS_PIN)))
|
||||
|
||||
#define IMU660RA_TIMEOUT_COUNT (0x00FF) // IMU660 <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
||||
typedef enum
|
||||
{
|
||||
IMU660RA_ACC_SAMPLE_SGN_2G , // <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><>2G (ACC = Accelerometer <20><><EFBFBD>ٶȼ<D9B6>) (SGN = signum <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ) (G = g <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD> g<><67>9.80 m/s^2)
|
||||
IMU660RA_ACC_SAMPLE_SGN_4G , // <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><>4G (ACC = Accelerometer <20><><EFBFBD>ٶȼ<D9B6>) (SGN = signum <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ) (G = g <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD> g<><67>9.80 m/s^2)
|
||||
IMU660RA_ACC_SAMPLE_SGN_8G , // <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><>8G (ACC = Accelerometer <20><><EFBFBD>ٶȼ<D9B6>) (SGN = signum <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ) (G = g <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD> g<><67>9.80 m/s^2)
|
||||
IMU660RA_ACC_SAMPLE_SGN_16G, // <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><>16G (ACC = Accelerometer <20><><EFBFBD>ٶȼ<D9B6>) (SGN = signum <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ) (G = g <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD> g<><67>9.80 m/s^2)
|
||||
}imu660ra_acc_sample_config;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
IMU660RA_GYRO_SAMPLE_SGN_125DPS , // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>125DPS (GYRO = Gyroscope <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) (SGN = signum <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ) (DPS = Degree Per Second <20><><EFBFBD>ٶȵ<D9B6>λ <20><>/S)
|
||||
IMU660RA_GYRO_SAMPLE_SGN_250DPS , // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>250DPS (GYRO = Gyroscope <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) (SGN = signum <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ) (DPS = Degree Per Second <20><><EFBFBD>ٶȵ<D9B6>λ <20><>/S)
|
||||
IMU660RA_GYRO_SAMPLE_SGN_500DPS , // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>500DPS (GYRO = Gyroscope <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) (SGN = signum <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ) (DPS = Degree Per Second <20><><EFBFBD>ٶȵ<D9B6>λ <20><>/S)
|
||||
IMU660RA_GYRO_SAMPLE_SGN_1000DPS, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>1000DPS (GYRO = Gyroscope <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) (SGN = signum <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ) (DPS = Degree Per Second <20><><EFBFBD>ٶȵ<D9B6>λ <20><>/S)
|
||||
IMU660RA_GYRO_SAMPLE_SGN_2000DPS, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>2000DPS (GYRO = Gyroscope <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) (SGN = signum <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ) (DPS = Degree Per Second <20><><EFBFBD>ٶȵ<D9B6>λ <20><>/S)
|
||||
}imu660ra_gyro_sample_config;
|
||||
|
||||
#define IMU660RA_ACC_SAMPLE_DEFAULT ( IMU660RA_ACC_SAMPLE_SGN_8G ) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD>ϵ<EFBFBD> <20><><EFBFBD>ٶȼ<D9B6> <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define IMU660RA_GYRO_SAMPLE_DEFAULT ( IMU660RA_GYRO_SAMPLE_SGN_2000DPS ) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD>ϵ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
#define IMU660RA_TIMEOUT_COUNT ( 0x00FF ) // IMU660RA <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
||||
|
||||
//================================================<3D><><EFBFBD><EFBFBD> IMU660RA <20>ڲ<EFBFBD><DAB2><EFBFBD>ַ================================================
|
||||
#define IMU660RA_DEV_ADDR ( 0x69 ) // SA0<41>ӵأ<D3B5>0x68 SA0<41><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0x69 ģ<><C4A3>Ĭ<EFBFBD><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define IMU660RA_SPI_W ( 0x00 )
|
||||
#define IMU660RA_SPI_R ( 0x80 )
|
||||
|
||||
#define IMU660RA_CHIP_ID ( 0x00 )
|
||||
#define IMU660RA_PWR_CONF ( 0x7C )
|
||||
#define IMU660RA_PWR_CTRL ( 0x7D )
|
||||
#define IMU660RA_INIT_CTRL ( 0x59 )
|
||||
#define IMU660RA_INIT_DATA ( 0x5E )
|
||||
#define IMU660RA_INT_STA ( 0x21 )
|
||||
#define IMU660RA_ACC_ADDRESS ( 0x0C )
|
||||
#define IMU660RA_GYRO_ADDRESS ( 0x12 )
|
||||
#define IMU660RA_ACC_CONF ( 0x40 )
|
||||
#define IMU660RA_ACC_RANGE ( 0x41 )
|
||||
#define IMU660RA_GYR_CONF ( 0x42 )
|
||||
#define IMU660RA_GYR_RANGE ( 0x43 )
|
||||
//================================================<3D><><EFBFBD><EFBFBD> IMU660RA <20>ڲ<EFBFBD><DAB2><EFBFBD>ַ================================================
|
||||
|
||||
//================================================<3D><><EFBFBD><EFBFBD> IMU660RA ȫ<>ֱ<EFBFBD><D6B1><EFBFBD>================================================
|
||||
extern int16 imu660ra_gyro_x, imu660ra_gyro_y, imu660ra_gyro_z; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> gyro (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
extern int16 imu660ra_acc_x, imu660ra_acc_y, imu660ra_acc_z; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> acc (accelerometer <20><><EFBFBD>ٶȼ<D9B6>)
|
||||
extern float imu660ra_transition_factor[2];
|
||||
//================================================<3D><><EFBFBD><EFBFBD> IMU660RA ȫ<>ֱ<EFBFBD><D6B1><EFBFBD>================================================
|
||||
|
||||
|
||||
//================================================<3D><><EFBFBD><EFBFBD> imu660ra <20>ڲ<EFBFBD><EFBFBD><EFBFBD>ַ================================================
|
||||
#define IMU660RA_DEV_ADDR (0x69) // SA0<EFBFBD>ӵأ<EFBFBD>0x68 SA0<41><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0x69 ģ<><C4A3>Ĭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define IMU660RA_SPI_W (0x00)
|
||||
#define IMU660RA_SPI_R (0x80)
|
||||
|
||||
#define IMU660RA_CHIP_ID (0x00)
|
||||
|
||||
#define IMU660RA_PWR_CONF (0x7C)
|
||||
#define IMU660RA_PWR_CTRL (0x7D)
|
||||
#define IMU660RA_INIT_CTRL (0x59)
|
||||
#define IMU660RA_INIT_DATA (0x5E)
|
||||
#define IMU660RA_INT_STA (0x21)
|
||||
#define IMU660RA_ACC_ADDRESS (0x0C)
|
||||
#define IMU660RA_GYRO_ADDRESS (0x12)
|
||||
#define IMU660RA_ACC_CONF (0x40)
|
||||
#define IMU660RA_ACC_RANGE (0x41)
|
||||
#define IMU660RA_GYR_CONF (0x42)
|
||||
#define IMU660RA_GYR_RANGE (0x43)
|
||||
|
||||
#define IMU660RA_ACC_SAMPLE (0x02) // <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x00 <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>2g <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 16384 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x01 <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>4g <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 8192 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x02 <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>8g <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 4096 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x03 <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>16g <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 2048 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
|
||||
#define IMU660RA_GYR_SAMPLE (0x00) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x00 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>2000dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 16.4 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x01 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>1000dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 32.8 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x02 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>500 dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 65.6 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x03 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>250 dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 131.2 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x04 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>125 dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 262.4 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
//================================================<3D><><EFBFBD><EFBFBD> IMU660RA <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>================================================
|
||||
void imu660ra_get_acc (void); // <EFBFBD><EFBFBD>ȡ IMU660RA <20><><EFBFBD>ٶȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void imu660ra_get_gyro (void); // <20><>ȡ IMU660RA <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
uint8 imu660ra_init (void); // <20><>ʼ<EFBFBD><CABC> IMU660RA
|
||||
//================================================<3D><><EFBFBD><EFBFBD> IMU660RA <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>================================================
|
||||
|
||||
|
||||
//================================================<3D><><EFBFBD><EFBFBD> IMU660RA <20><>չ<EFBFBD><D5B9><EFBFBD><EFBFBD>================================================
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> IMU660RA <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊʵ<CEAA><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> acc_value <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> float data = imu660ra_acc_transition(imu660ra_acc_x); // <20><>λΪ g(m/s^2)
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
#define imu660ra_acc_transition(acc_value) ((float)(acc_value) / imu660ra_transition_factor[0])
|
||||
|
||||
extern int16 imu660ra_gyro_x, imu660ra_gyro_y, imu660ra_gyro_z; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> gyro (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
extern int16 imu660ra_acc_x, imu660ra_acc_y, imu660ra_acc_z; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> acc (accelerometer <20><><EFBFBD>ٶȼ<D9B6>)
|
||||
|
||||
void imu660ra_get_acc (void); // <20><>ȡ IMU660RA <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
void imu660ra_get_gyro (void); // <20><>ȡ IMU660RA <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
float imu660ra_acc_transition (int16 acc_value); // <20><> IMU660RA <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊʵ<CEAA><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
float imu660ra_gyro_transition (int16 gyro_value); // <20><> IMU660RA <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊʵ<CEAA><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
uint8 imu660ra_init (void); // <20><>ʼ<EFBFBD><CABC> IMU660RA
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> IMU660RA <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD>Ϊʵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> gyro_value <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> float data = imu660ra_gyro_transition(imu660ra_gyro_x); // <20><>λΪ <20><>/s
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
#define imu660ra_gyro_transition(gyro_value) ((float)(gyro_value) / imu660ra_transition_factor[1])
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -33,213 +33,184 @@
|
||||
* 2022-09-15 pudding first version
|
||||
* 2023-04-28 pudding <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2>˵<EFBFBD><CBB5>
|
||||
********************************************************************************************************************/
|
||||
/*********************************************************************************************************************
|
||||
/********************************************************************************************************************
|
||||
* <20><><EFBFBD>߶<EFBFBD><DFB6>壺
|
||||
* ------------------------------------
|
||||
* ģ<EFBFBD><EFBFBD><EFBFBD>ܽ<EFBFBD> <20><>Ƭ<EFBFBD><C6AC><EFBFBD>ܽ<EFBFBD>
|
||||
* // Ӳ<><D3B2> SPI <20><><EFBFBD><EFBFBD>
|
||||
* SCL/SPC <20>鿴 zf_device_imu660rb.h <20><> IMU660RB_SPC_PIN <20>궨<EFBFBD><EAB6A8>
|
||||
* SDA/DSI <20>鿴 zf_device_imu660rb.h <20><> IMU660RB_SDI_PIN <20>궨<EFBFBD><EAB6A8>
|
||||
* SA0/SDO <20>鿴 zf_device_imu660rb.h <20><> IMU660RB_SDO_PIN <20>궨<EFBFBD><EAB6A8>
|
||||
* CS <20>鿴 zf_device_imu660rb.h <20><> IMU660RB_CS_PIN <20>궨<EFBFBD><EAB6A8>
|
||||
* VCC 3.3V<EFBFBD><EFBFBD>Դ
|
||||
* GND <20><>Դ<EFBFBD><D4B4>
|
||||
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* ------------------------------------
|
||||
* ģ<><C4A3><EFBFBD>ܽ<EFBFBD> <20><>Ƭ<EFBFBD><C6AC><EFBFBD>ܽ<EFBFBD>
|
||||
* // Ӳ<><D3B2> SPI <20><><EFBFBD><EFBFBD>
|
||||
* SCL/SPC <EFBFBD>鿴 zf_device_imu660rb.h <20><> IMU660RB_SPC_PIN <20>궨<EFBFBD><EAB6A8>
|
||||
* SDA/DSI <EFBFBD>鿴 zf_device_imu660rb.h <20><> IMU660RB_SDI_PIN <20>궨<EFBFBD><EAB6A8>
|
||||
* SA0/SDO <EFBFBD>鿴 zf_device_imu660rb.h <20><> IMU660RB_SDO_PIN <20>궨<EFBFBD><EAB6A8>
|
||||
* CS <EFBFBD>鿴 zf_device_imu660rb.h <20><> IMU660RB_CS_PIN <EFBFBD>궨<EFBFBD><EFBFBD>
|
||||
* VCC 3.3V<EFBFBD><EFBFBD>Դ
|
||||
* GND <EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD>
|
||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
*
|
||||
* // <20><><EFBFBD><EFBFBD> IIC <20><><EFBFBD><EFBFBD>
|
||||
* SCL/SPC <20>鿴 zf_device_imu660rb.h <20><> IMU660RB_SCL_PIN <20>궨<EFBFBD><EAB6A8>
|
||||
* SDA/DSI <20>鿴 zf_device_imu660rb.h <20><> IMU660RB_SDA_PIN <20>궨<EFBFBD><EAB6A8>
|
||||
* VCC 3.3V<EFBFBD><EFBFBD>Դ
|
||||
* GND <20><>Դ<EFBFBD><D4B4>
|
||||
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* ------------------------------------
|
||||
* // <20><><EFBFBD><EFBFBD> IIC <20><><EFBFBD><EFBFBD>
|
||||
* SCL/SPC <EFBFBD>鿴 zf_device_imu660rb.h <20><> IMU660RB_SCL_PIN <20>궨<EFBFBD><EAB6A8>
|
||||
* SDA/DSI <EFBFBD>鿴 zf_device_imu660rb.h <20><> IMU660RB_SDA_PIN <20>궨<EFBFBD><EAB6A8>
|
||||
* VCC 3.3V<EFBFBD><EFBFBD>Դ
|
||||
* GND <EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD>
|
||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* ------------------------------------
|
||||
********************************************************************************************************************/
|
||||
|
||||
#include "zf_common_debug.h"
|
||||
#include "zf_driver_delay.h"
|
||||
#include "zf_driver_spi.h"
|
||||
#include "zf_driver_gpio.h"
|
||||
#include "zf_driver_soft_iic.h"
|
||||
#include "zf_device_config.h"
|
||||
#include "zf_device_imu660rb.h"
|
||||
|
||||
int16 imu660rb_gyro_x = 0, imu660rb_gyro_y = 0, imu660rb_gyro_z = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> gyro (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
int16 imu660rb_acc_x = 0, imu660rb_acc_y = 0, imu660rb_acc_z = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> acc (accelerometer <20><><EFBFBD>ٶȼ<D9B6>)
|
||||
int16 imu660rb_gyro_x = 0, imu660rb_gyro_y = 0, imu660rb_gyro_z = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> GYRO (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
int16 imu660rb_acc_x = 0, imu660rb_acc_y = 0, imu660rb_acc_z = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> ACC (accelerometer <20><><EFBFBD>ٶȼ<D9B6>)
|
||||
float imu660rb_transition_factor[2] = {4098, 14.3}; // ת<><D7AA>ʵ<EFBFBD><CAB5>ֵ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD>
|
||||
|
||||
#if IMU660RB_USE_SOFT_IIC
|
||||
static soft_iic_info_struct imu660rb_iic_struct;
|
||||
|
||||
#define imu660rb_write_register(reg, data) (soft_iic_write_8bit_register (&imu660rb_iic_struct, (reg), (data)))
|
||||
#define imu660rb_write_registers(reg, data, len) (soft_iic_write_8bit_registers(&imu660rb_iic_struct, (reg), (data), (len)))
|
||||
#define imu660rb_read_register(reg) (soft_iic_read_8bit_register (&imu660rb_iic_struct, (reg)))
|
||||
#define imu660rb_read_registers(reg, data, len) (soft_iic_read_8bit_registers (&imu660rb_iic_struct, (reg), (data), (len)))
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IMU660RB д<>Ĵ<EFBFBD><C4B4><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> reg <20>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>ַ
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> data <20><><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> imu660rb_write_acc_gyro_register(IMU660RB_SLV0_CONFIG, 0x00);
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
#define imu660rb_write_acc_gyro_register(reg,data) (soft_iic_write_8bit_register(&imu660rb_iic_struct,reg,data))
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IMU660RB <20><><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> reg <20>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>ַ
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> uint8 <20><><EFBFBD><EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> imu660rb_read_acc_gyro_register(IMU660RB_STATUS_MASTER);
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
#define imu660rb_read_acc_gyro_register(reg) (soft_iic_sccb_read_register(&imu660rb_iic_struct,reg))
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IMU660RB <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> reg <20>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>ַ
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> data <20><><EFBFBD>ݻ<EFBFBD><DDBB><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> len <20><><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> imu660rb_read_acc_gyro_registers(IMU660RB_OUTX_L_A, dat, 6);
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
#define imu660rb_read_acc_gyro_registers(reg,data,len) (soft_iic_read_8bit_registers(&imu660rb_iic_struct,reg,data,len))
|
||||
#else
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IMU660RB д<>Ĵ<EFBFBD><C4B4><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> reg <20>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>ַ
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> data <20><><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> imu660rb_write_register(IMU660RB_PWR_CONF, 0x00); // <20>رո<D5B8>ʡ<EFBFBD><CAA1>ģʽ
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> imu660rb_write_acc_gyro_register(IMU660RB_SLV0_CONFIG, 0x00);
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
static void imu660rb_write_register(uint8 reg, uint8 data)
|
||||
static void imu660rb_write_acc_gyro_register (uint8 reg, uint8 data)
|
||||
{
|
||||
IMU660RB_CS(0);
|
||||
spi_write_8bit_register(IMU660RB_SPI, reg | IMU660RB_SPI_W, data);
|
||||
|
||||
IMU660RB_CS(1);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IMU660RB д<><D0B4><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> reg <20>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>ַ
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> data <20><><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> imu660rb_write_registers(IMU660RB_INIT_DATA, imu660rb_config_file, sizeof(imu660rb_config_file));
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// static void imu660rb_write_registers(uint8 reg, const uint8 *data, uint32 len)
|
||||
// {
|
||||
// IMU660RB_CS(0);
|
||||
// spi_write_8bit_registers(IMU660RB_SPI, reg | IMU660RB_SPI_W, data, len);
|
||||
// IMU660RB_CS(1);
|
||||
// }
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IMU660RB <20><><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> reg <20>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>ַ
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> uint8 <20><><EFBFBD><EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> imu660rb_read_register(IMU660RB_CHIP_ID);
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> imu660rb_read_acc_gyro_register(IMU660RB_STATUS_MASTER);
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
static uint8 imu660rb_read_register(uint8 reg)
|
||||
static uint8 imu660rb_read_acc_gyro_register (uint8 reg)
|
||||
{
|
||||
uint8 data;
|
||||
uint8 data = 0;
|
||||
IMU660RB_CS(0);
|
||||
data = spi_read_8bit_register(IMU660RB_SPI, reg | IMU660RB_SPI_R);
|
||||
|
||||
IMU660RB_CS(1);
|
||||
return data;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IMU660RB <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IMU660RB <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> reg <20>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>ַ
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> data <20><><EFBFBD>ݻ<EFBFBD><DDBB><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> len <20><><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> imu660rb_read_registers(IMU660RB_ACC_ADDRESS, dat, 6);
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> imu660rb_read_acc_gyro_registers(IMU660RB_OUTX_L_A, dat, 6);
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
static void imu660rb_read_registers(uint8 reg, uint8 *data, uint32 len)
|
||||
static void imu660rb_read_acc_gyro_registers (uint8 reg, uint8 *data, uint32 len)
|
||||
{
|
||||
IMU660RB_CS(0);
|
||||
spi_read_8bit_registers(IMU660RB_SPI, reg | IMU660RB_SPI_R, data, len);
|
||||
IMU660RB_CS(1);
|
||||
|
||||
IMU660RB_CS(1);
|
||||
}
|
||||
#endif
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IMU660RB <20>Լ<EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IMU660RB <20><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD> <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> void
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> uint8 1-<2D>Լ<EFBFBD>ʧ<EFBFBD><CAA7> 0-<2D>Լ<EFBFBD><D4BC>ɹ<EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> imu660rb_self_check();
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> imu660rb_acc_gyro_self_check();
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
static uint8 imu660rb_self_check (void)
|
||||
static uint8 imu660rb_acc_gyro_self_check (void)
|
||||
{
|
||||
uint8 dat = 0, return_state = 0;
|
||||
uint8 return_state = 0;
|
||||
uint8 dat = 0;
|
||||
uint16 timeout_count = 0;
|
||||
do
|
||||
|
||||
while(0x6B != dat) // <20>ж<EFBFBD> ID <20>Ƿ<EFBFBD><C7B7><EFBFBD>ȷ
|
||||
{
|
||||
if(timeout_count ++ > IMU660RB_TIMEOUT_COUNT)
|
||||
if(IMU660RB_TIMEOUT_COUNT < timeout_count ++)
|
||||
{
|
||||
return_state = 1;
|
||||
return_state = 1;
|
||||
break;
|
||||
}
|
||||
dat = imu660rb_read_register(IMU660RB_CHIP_ID);
|
||||
system_delay_ms(1);
|
||||
}while(0x6B != dat); // <20><>ȡ<EFBFBD>豸ID<49>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>0X24<32><34><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0X24<32><34><EFBFBD><EFBFBD>Ϊû<CEAA><C3BB><EFBFBD><EFBFBD>豸
|
||||
dat = imu660rb_read_acc_gyro_register(IMU660RB_WHO_AM_I);
|
||||
system_delay_ms(10);
|
||||
}
|
||||
return return_state;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȡ IMU660RB <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> void
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> imu660rb_get_acc(); // ִ<>иú<D0B8><C3BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>Ӳ鿴<D3B2><E9BFB4>Ӧ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ ʹ<EFBFBD><EFBFBD> SPI <20>IJɼ<C4B2>ʱ<EFBFBD><CAB1>Ϊ69us
|
||||
// ʹ<><CAB9> IIC <20>IJɼ<C4B2>ʱ<EFBFBD><CAB1>Ϊ126us <20>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD>ٶȼƵ<C8BC>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǵ<EFBFBD>ʱ<EFBFBD><CAB1>һ<EFBFBD>µ<EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD>Ƕ<EFBFBD>ֻ<EFBFBD>Ƕ<EFBFBD>ȡ<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> imu660rb_get_acc();
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ ִ<EFBFBD>иú<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>Ӳ鿴<EFBFBD><EFBFBD>Ӧ<EFBFBD>ı<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void imu660rb_get_acc (void)
|
||||
{
|
||||
uint8 dat[6];
|
||||
|
||||
imu660rb_read_registers(IMU660RB_ACC_ADDRESS, dat, 6);
|
||||
imu660rb_read_acc_gyro_registers(IMU660RB_OUTX_L_A, dat, 6);
|
||||
imu660rb_acc_x = (int16)(((uint16)dat[1]<<8 | dat[0]));
|
||||
imu660rb_acc_y = (int16)(((uint16)dat[3]<<8 | dat[2]));
|
||||
imu660rb_acc_z = (int16)(((uint16)dat[5]<<8 | dat[4]));
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȡ IMU660RB <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> void
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> imu660rb_get_gyro(); // ִ<>иú<D0B8><C3BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>Ӳ鿴<D3B2><E9BFB4>Ӧ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ ʹ<EFBFBD><EFBFBD> SPI <20>IJɼ<C4B2>ʱ<EFBFBD><CAB1>Ϊ69us
|
||||
// ʹ<><CAB9> IIC <20>IJɼ<C4B2>ʱ<EFBFBD><CAB1>Ϊ126us
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> imu660rb_get_gyro();
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ ִ<EFBFBD>иú<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>Ӳ鿴<EFBFBD><EFBFBD>Ӧ<EFBFBD>ı<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void imu660rb_get_gyro (void)
|
||||
{
|
||||
uint8 dat[6];
|
||||
|
||||
imu660rb_read_registers(IMU660RB_GYRO_ADDRESS, dat, 6);
|
||||
imu660rb_read_acc_gyro_registers(IMU660RB_OUTX_L_G, dat, 6);
|
||||
imu660rb_gyro_x = (int16)(((uint16)dat[1]<<8 | dat[0]));
|
||||
imu660rb_gyro_y = (int16)(((uint16)dat[3]<<8 | dat[2]));
|
||||
imu660rb_gyro_z = (int16)(((uint16)dat[5]<<8 | dat[4]));
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> IMU660RB <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊʵ<CEAA><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> gyro_value <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> float data = imu660rb_acc_transition(imu660rb_acc_x); // <20><>λΪ g(m/s^2)
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
float imu660rb_acc_transition (int16 acc_value)
|
||||
{
|
||||
float acc_data = 0;
|
||||
switch(IMU660RB_ACC_SAMPLE)
|
||||
{
|
||||
case 0x30: acc_data = (float)acc_value / 16393; break; // 0x30 <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>2G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 16393 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
case 0x38: acc_data = (float)acc_value / 8197; break; // 0x38 <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>4G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 8197 <20><> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
case 0x3C: acc_data = (float)acc_value / 4098; break; // 0x3C <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>8G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 4098 <20><> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
case 0x34: acc_data = (float)acc_value / 2049; break; // 0x34 <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>16G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 2049 <20><> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
default: break;
|
||||
}
|
||||
return acc_data;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> IMU660RB <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊʵ<CEAA><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> gyro_value <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> float data = imu660rb_gyro_transition(imu660rb_gyro_x); // <20><>λΪ<CEBB><CEAA>/s
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
float imu660rb_gyro_transition (int16 gyro_value)
|
||||
{
|
||||
float gyro_data = 0;
|
||||
switch(IMU660RB_GYR_SAMPLE)
|
||||
{
|
||||
case 0x52: gyro_data = (float)gyro_value / 228.6f; break; // 0x52 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>125dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD> 228.6<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
case 0x50: gyro_data = (float)gyro_value / 114.3f; break; // 0x50 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>250dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD> 114.3<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
case 0x54: gyro_data = (float)gyro_value / 57.1f; break; // 0x54 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>500dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD> 57.1<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
case 0x58: gyro_data = (float)gyro_value / 28.6f; break; // 0x58 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>1000dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD> 28.6<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
case 0x5C: gyro_data = (float)gyro_value / 14.3f; break; // 0x5C <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>2000dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD> 14.3<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
case 0x51: gyro_data = (float)gyro_value / 7.1f; break; // 0x51 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>4000dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD> 7.1<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
default: break;
|
||||
}
|
||||
return gyro_data;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ʼ<EFBFBD><CABC> IMU660RB
|
||||
@@ -251,53 +222,125 @@ float imu660rb_gyro_transition (int16 gyro_value)
|
||||
uint8 imu660rb_init (void)
|
||||
{
|
||||
uint8 return_state = 0;
|
||||
system_delay_ms(20); // <20>ȴ<EFBFBD><EFBFBD>豸<EFBFBD>ϵ<EFBFBD><EFBFBD>ɹ<EFBFBD>
|
||||
system_delay_ms(10); // <20>ϵ<EFBFBD><CFB5><EFBFBD>ʱ
|
||||
|
||||
#if IMU660RB_USE_SOFT_IIC
|
||||
soft_iic_init(&imu660rb_iic_struct, IMU660RB_DEV_ADDR, IMU660RB_SOFT_IIC_DELAY, IMU660RB_SCL_PIN, IMU660RB_SDA_PIN); // <20><><EFBFBD><EFBFBD> IMU660RB <20><> IIC <20>˿<EFBFBD>
|
||||
soft_iic_init(&imu660rb_iic_struct, IMU660RB_DEV_ADDR, IMU660RB_SOFT_IIC_DELAY, IMU660RB_SCL_PIN, IMU660RB_SDA_PIN);
|
||||
#else
|
||||
spi_init(IMU660RB_SPI, SPI_MODE0, IMU660RB_SPI_SPEED, IMU660RB_SPC_PIN, IMU660RB_SDI_PIN, IMU660RB_SDO_PIN, SPI_CS_NULL); // <20><><EFBFBD><EFBFBD> IMU660RB <20><> SPI <20>˿<EFBFBD>
|
||||
gpio_init(IMU660RB_CS_PIN, GPO, GPIO_HIGH, GPO_PUSH_PULL); // <20><><EFBFBD><EFBFBD> IMU660RB <20><> CS <20>˿<EFBFBD>
|
||||
// imu660rb_read_register(IMU660RB_CHIP_ID); // <20><>ȡһ<C8A1><D2BB><EFBFBD>豸ID <20><><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>ΪSPIģʽ
|
||||
spi_init(IMU660RB_SPI, SPI_MODE0, IMU660RB_SPI_SPEED, IMU660RB_SPC_PIN, IMU660RB_SDI_PIN, IMU660RB_SDO_PIN, SPI_CS_NULL);
|
||||
gpio_init(IMU660RB_CS_PIN, GPO, GPIO_LOW, GPO_PUSH_PULL);
|
||||
#endif
|
||||
|
||||
do{
|
||||
if(imu660rb_self_check()) // IMU660RB <20>Լ<EFBFBD>
|
||||
do
|
||||
{
|
||||
imu660rb_write_acc_gyro_register(IMU660RB_FUNC_CFG_ACCESS, 0x00); // <20>ر<EFBFBD>HUB<55>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
imu660rb_write_acc_gyro_register(IMU660RB_CTRL3_C, 0x01); // <20><>λ<EFBFBD>豸
|
||||
system_delay_ms(2);
|
||||
imu660rb_write_acc_gyro_register(IMU660RB_FUNC_CFG_ACCESS, 0x00); // <20>ر<EFBFBD>HUB<55>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if(imu660rb_acc_gyro_self_check())
|
||||
{
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD><CBB6><EFBFBD><EFBFBD><EFBFBD>Ϣ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><>ô<EFBFBD><C3B4><EFBFBD><EFBFBD> IMU660RB <20>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>˳<EFBFBD><CBB3><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>һ<EFBFBD>½<EFBFBD><C2BD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܾ<EFBFBD><DCBE>ǻ<EFBFBD><C7BB><EFBFBD>
|
||||
zf_log(0, "imu660rb self check error.");
|
||||
zf_log(0, "IMU660RB acc and gyro self check error.");
|
||||
return_state = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
imu660rb_write_register(IMU660RB_INT1_CTRL, 0x03); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD>ݾ<EFBFBD><DDBE><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
imu660rb_write_register(IMU660RB_CTRL1_XL, IMU660RB_ACC_SAMPLE); // <20><><EFBFBD>ü<EFBFBD><C3BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><>8G <20>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 52hz <20>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD>Ϣ<EFBFBD>ӵ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD>˲<EFBFBD><CBB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
imu660rb_write_acc_gyro_register(IMU660RB_INT1_CTRL, 0x03); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD>ݾ<EFBFBD><DDBE><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
|
||||
// IMU660RB_CTRL1_XL <20>Ĵ<EFBFBD><C4B4><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x30 <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>2G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD>16393<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x38 <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>4G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD>8197<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x3C <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>8G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD>4098<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x34 <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>16G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD>2049<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x30 <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>2 G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 16393 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>λ g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x38 <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>4 G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 8197 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>λ g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x3C <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>8 G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 4098 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>λ g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x34 <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>16 G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 2049 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>λ g(m/s^2)
|
||||
switch(IMU660RB_ACC_SAMPLE_DEFAULT)
|
||||
{
|
||||
default:
|
||||
{
|
||||
zf_log(0, "IMU660RB_ACC_SAMPLE_DEFAULT set error.");
|
||||
return_state = 1;
|
||||
}break;
|
||||
case IMU660RB_ACC_SAMPLE_SGN_2G:
|
||||
{
|
||||
imu660rb_write_acc_gyro_register(IMU660RB_CTRL1_XL, 0x30);
|
||||
imu660rb_transition_factor[0] = 16393;
|
||||
}break;
|
||||
case IMU660RB_ACC_SAMPLE_SGN_4G:
|
||||
{
|
||||
imu660rb_write_acc_gyro_register(IMU660RB_CTRL1_XL, 0x38);
|
||||
imu660rb_transition_factor[0] = 8197;
|
||||
}break;
|
||||
case IMU660RB_ACC_SAMPLE_SGN_8G:
|
||||
{
|
||||
imu660rb_write_acc_gyro_register(IMU660RB_CTRL1_XL, 0x3C);
|
||||
imu660rb_transition_factor[0] = 4098;
|
||||
}break;
|
||||
case IMU660RB_ACC_SAMPLE_SGN_16G:
|
||||
{
|
||||
imu660rb_write_acc_gyro_register(IMU660RB_CTRL1_XL, 0x34);
|
||||
imu660rb_transition_factor[0] = 2049;
|
||||
}break;
|
||||
}
|
||||
if(1 == return_state)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
imu660rb_write_register(IMU660RB_CTRL2_G, IMU660RB_GYR_SAMPLE); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǽ<EFBFBD><C7BC><EFBFBD><EFBFBD><EFBFBD> <20><>2000dps <20>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 208hz
|
||||
// IMU660RB_CTRL2_G <20>Ĵ<EFBFBD><C4B4><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x52 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>125dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>228.6<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD>λΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x50 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>250dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>114.3<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD>λΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x54 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>500dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>57.1<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD>λΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x58 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>1000dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>28.6<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD>λΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x5C <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>2000dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>14.3<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD>λΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x51 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>4000dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>7.1<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD>λΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x52 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>125 dps <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 228.6 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>λΪ <EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x50 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>250 dps <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 114.3 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>λΪ <EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x54 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>500 dps <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 57.1 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>λΪ <EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x58 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>1000 dps <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 28.6 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>λΪ <EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x5C <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>2000 dps <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 14.3 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>λΪ <EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x51 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>4000 dps <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 7.1 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>λΪ <EFBFBD><EFBFBD>/s
|
||||
switch(IMU660RB_GYRO_SAMPLE_DEFAULT)
|
||||
{
|
||||
default:
|
||||
{
|
||||
zf_log(0, "IMU660RB_GYRO_SAMPLE_DEFAULT set error.");
|
||||
return_state = 1;
|
||||
}break;
|
||||
case IMU660RB_GYRO_SAMPLE_SGN_125DPS:
|
||||
{
|
||||
imu660rb_write_acc_gyro_register(IMU660RB_CTRL2_G, 0x52);
|
||||
imu660rb_transition_factor[1] = 228.6;
|
||||
}break;
|
||||
case IMU660RB_GYRO_SAMPLE_SGN_250DPS:
|
||||
{
|
||||
imu660rb_write_acc_gyro_register(IMU660RB_CTRL2_G, 0x50);
|
||||
imu660rb_transition_factor[1] = 114.3;
|
||||
}break;
|
||||
case IMU660RB_GYRO_SAMPLE_SGN_500DPS:
|
||||
{
|
||||
imu660rb_write_acc_gyro_register(IMU660RB_CTRL2_G, 0x54);
|
||||
imu660rb_transition_factor[1] = 57.1;
|
||||
}break;
|
||||
case IMU660RB_GYRO_SAMPLE_SGN_1000DPS:
|
||||
{
|
||||
imu660rb_write_acc_gyro_register(IMU660RB_CTRL2_G, 0x58);
|
||||
imu660rb_transition_factor[1] = 28.6;
|
||||
}break;
|
||||
case IMU660RB_GYRO_SAMPLE_SGN_2000DPS:
|
||||
{
|
||||
imu660rb_write_acc_gyro_register(IMU660RB_CTRL2_G, 0x5C);
|
||||
imu660rb_transition_factor[1] = 14.3;
|
||||
}break;
|
||||
case IMU660RB_GYRO_SAMPLE_SGN_4000DPS:
|
||||
{
|
||||
imu660rb_write_acc_gyro_register(IMU660RB_CTRL2_G, 0x51);
|
||||
imu660rb_transition_factor[1] = 7.1;
|
||||
}break;
|
||||
}
|
||||
if(1 == return_state)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
imu660rb_write_register(IMU660RB_CTRL3_C, 0x44); // ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ͨ<EFBFBD>˲<EFBFBD><CBB2><EFBFBD>
|
||||
imu660rb_write_register(IMU660RB_CTRL4_C, 0x02); // ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ͨ<EFBFBD>˲<EFBFBD><CBB2><EFBFBD>
|
||||
imu660rb_write_register(IMU660RB_CTRL5_C, 0x00); // <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
imu660rb_write_register(IMU660RB_CTRL6_C, 0x00); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶȼƸ<C8BC><C6B8><EFBFBD><EFBFBD><EFBFBD>ģʽ <20><><EFBFBD><EFBFBD><EFBFBD>ǵ<EFBFBD>ͨ<EFBFBD>˲<EFBFBD> 133hz
|
||||
imu660rb_write_register(IMU660RB_CTRL7_G, 0x00); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǹ<EFBFBD><C7B8><EFBFBD><EFBFBD><EFBFBD>ģʽ <20>رո<D8B1>ͨ<EFBFBD>˲<EFBFBD>
|
||||
imu660rb_write_register(IMU660RB_CTRL9_XL, 0x01); // <20>ر<EFBFBD>I3C<33>ӿ<EFBFBD>
|
||||
imu660rb_write_acc_gyro_register(IMU660RB_CTRL3_C, 0x44); // ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ͨ<EFBFBD>˲<EFBFBD><CBB2><EFBFBD>
|
||||
imu660rb_write_acc_gyro_register(IMU660RB_CTRL4_C, 0x02); // ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ͨ<EFBFBD>˲<EFBFBD><CBB2><EFBFBD>
|
||||
imu660rb_write_acc_gyro_register(IMU660RB_CTRL5_C, 0x00); // <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
imu660rb_write_acc_gyro_register(IMU660RB_CTRL6_C, 0x00); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶȼƸ<C8BC><C6B8><EFBFBD><EFBFBD><EFBFBD>ģʽ <20><><EFBFBD><EFBFBD><EFBFBD>ǵ<EFBFBD>ͨ<EFBFBD>˲<EFBFBD> 133hz
|
||||
imu660rb_write_acc_gyro_register(IMU660RB_CTRL7_G, 0x00); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǹ<EFBFBD><C7B8><EFBFBD><EFBFBD><EFBFBD>ģʽ <20>رո<D8B1>ͨ<EFBFBD>˲<EFBFBD>
|
||||
imu660rb_write_acc_gyro_register(IMU660RB_CTRL9_XL, 0x01); // <20>ر<EFBFBD>I3C<33>ӿ<EFBFBD>
|
||||
|
||||
}while(0);
|
||||
return return_state;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -32,27 +32,28 @@
|
||||
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
|
||||
* 2022-09-15 pudding first version
|
||||
* 2023-04-28 pudding <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2>˵<EFBFBD><CBB5>
|
||||
* 2024-01-30 pudding <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
********************************************************************************************************************/
|
||||
/*********************************************************************************************************************
|
||||
/********************************************************************************************************************
|
||||
* <20><><EFBFBD>߶<EFBFBD><DFB6>壺
|
||||
* ------------------------------------
|
||||
* ģ<EFBFBD><EFBFBD><EFBFBD>ܽ<EFBFBD> <20><>Ƭ<EFBFBD><C6AC><EFBFBD>ܽ<EFBFBD>
|
||||
* // Ӳ<><D3B2> SPI <20><><EFBFBD><EFBFBD>
|
||||
* SCL/SPC <20>鿴 zf_device_imu660rb.h <20><> IMU660RB_SPC_PIN <20>궨<EFBFBD><EAB6A8>
|
||||
* SDA/DSI <20>鿴 zf_device_imu660rb.h <20><> IMU660RB_SDI_PIN <20>궨<EFBFBD><EAB6A8>
|
||||
* SA0/SDO <20>鿴 zf_device_imu660rb.h <20><> IMU660RB_SDO_PIN <20>궨<EFBFBD><EAB6A8>
|
||||
* CS <20>鿴 zf_device_imu660rb.h <20><> IMU660RB_CS_PIN <20>궨<EFBFBD><EAB6A8>
|
||||
* VCC 3.3V<EFBFBD><EFBFBD>Դ
|
||||
* GND <20><>Դ<EFBFBD><D4B4>
|
||||
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* ------------------------------------
|
||||
* ģ<><C4A3><EFBFBD>ܽ<EFBFBD> <20><>Ƭ<EFBFBD><C6AC><EFBFBD>ܽ<EFBFBD>
|
||||
* // Ӳ<><D3B2> SPI <20><><EFBFBD><EFBFBD>
|
||||
* SCL/SPC <EFBFBD>鿴 zf_device_imu660rb.h <20><> IMU660RB_SPC_PIN <20>궨<EFBFBD><EAB6A8>
|
||||
* SDA/DSI <EFBFBD>鿴 zf_device_imu660rb.h <20><> IMU660RB_SDI_PIN <20>궨<EFBFBD><EAB6A8>
|
||||
* SA0/SDO <EFBFBD>鿴 zf_device_imu660rb.h <20><> IMU660RB_SDO_PIN <20>궨<EFBFBD><EAB6A8>
|
||||
* CS <EFBFBD>鿴 zf_device_imu660rb.h <20><> IMU660RB_CS_PIN <EFBFBD>궨<EFBFBD><EFBFBD>
|
||||
* VCC 3.3V<EFBFBD><EFBFBD>Դ
|
||||
* GND <EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD>
|
||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
*
|
||||
* // <20><><EFBFBD><EFBFBD> IIC <20><><EFBFBD><EFBFBD>
|
||||
* SCL/SPC <20>鿴 zf_device_imu660rb.h <20><> IMU660RB_SCL_PIN <20>궨<EFBFBD><EAB6A8>
|
||||
* SDA/DSI <20>鿴 zf_device_imu660rb.h <20><> IMU660RB_SDA_PIN <20>궨<EFBFBD><EAB6A8>
|
||||
* VCC 3.3V<EFBFBD><EFBFBD>Դ
|
||||
* GND <20><>Դ<EFBFBD><D4B4>
|
||||
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* ------------------------------------
|
||||
* // <20><><EFBFBD><EFBFBD> IIC <20><><EFBFBD><EFBFBD>
|
||||
* SCL/SPC <EFBFBD>鿴 zf_device_imu660rb.h <20><> IMU660RB_SCL_PIN <20>궨<EFBFBD><EAB6A8>
|
||||
* SDA/DSI <EFBFBD>鿴 zf_device_imu660rb.h <20><> IMU660RB_SDA_PIN <20>궨<EFBFBD><EAB6A8>
|
||||
* VCC 3.3V<EFBFBD><EFBFBD>Դ
|
||||
* GND <EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD>
|
||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* ------------------------------------
|
||||
********************************************************************************************************************/
|
||||
|
||||
#ifndef _zf_device_imu660rb_h_
|
||||
@@ -60,59 +61,96 @@
|
||||
|
||||
#include "zf_common_typedef.h"
|
||||
|
||||
// IMU660RB_USE_SOFT_IIC<49><43><EFBFBD><EFBFBD>Ϊ0<CEAA><30>ʾʹ<CABE><CAB9>Ӳ<EFBFBD><D3B2>SPI<50><49><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ϊ1<CEAA><31>ʾʹ<CABE><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IIC<49><43><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IMU660RB_USE_SOFT_IIC<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>ȱ<EFBFBD><EFBFBD>벢<EFBFBD><EFBFBD><EFBFBD>س<EFBFBD><EFBFBD><EFBFBD>Ƭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>ϵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨѶ
|
||||
#define IMU660RB_USE_SOFT_IIC (0) // Ĭ<><C4AC>ʹ<EFBFBD><CAB9>Ӳ<EFBFBD><D3B2> SPI <20><>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
//================================================<3D><><EFBFBD><EFBFBD> IMU660RB <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>================================================
|
||||
#define IMU660RB_USE_SOFT_IIC (0) // Ĭ<EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD>Ӳ<EFBFBD><EFBFBD> SPI <EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#if IMU660RB_USE_SOFT_IIC // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7> <20><>ɫ<EFBFBD>ҵľ<D2B5><C4BE><EFBFBD>û<EFBFBD><C3BB><EFBFBD>õ<EFBFBD>
|
||||
//====================================================<3D><><EFBFBD><EFBFBD> IIC <20><><EFBFBD><EFBFBD>====================================================
|
||||
#define IMU660RB_SOFT_IIC_DELAY (59) // <20><><EFBFBD><EFBFBD> IIC <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD> <20><>ֵԽС IIC ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD>
|
||||
#define IMU660RB_SCL_PIN (P20_11) // <20><><EFBFBD><EFBFBD> IIC SCL <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> IMU660RB <20><> SCL <20><><EFBFBD><EFBFBD>
|
||||
#define IMU660RB_SDA_PIN (P20_14) // <20><><EFBFBD><EFBFBD> IIC SDA <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> IMU660RB <20><> SDA <20><><EFBFBD><EFBFBD>
|
||||
#define IMU660RB_SOFT_IIC_DELAY (59 ) // <20><><EFBFBD><EFBFBD> IIC <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD> <20><>ֵԽС IIC ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD>
|
||||
#define IMU660RB_SCL_PIN (P20_11) // <20><><EFBFBD><EFBFBD> IIC SCL <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> IMU660RB <20><> SCL <20><><EFBFBD><EFBFBD>
|
||||
#define IMU660RB_SDA_PIN (P20_14) // <20><><EFBFBD><EFBFBD> IIC SDA <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> IMU660RB <20><> SDA <20><><EFBFBD><EFBFBD>
|
||||
//====================================================<3D><><EFBFBD><EFBFBD> IIC <20><><EFBFBD><EFBFBD>====================================================
|
||||
#else
|
||||
|
||||
//====================================================Ӳ<><D3B2> SPI <20><><EFBFBD><EFBFBD>====================================================
|
||||
#define IMU660RB_SPI_SPEED (10 * 1000 * 1000) // Ӳ<><D3B2> SPI <20><><EFBFBD><EFBFBD>
|
||||
#define IMU660RB_SPI (SPI_0) // Ӳ<><D3B2> SPI <20><>
|
||||
#define IMU660RB_SPC_PIN (SPI0_SCLK_P20_11 ) // Ӳ<><D3B2> SPI SCK <20><><EFBFBD><EFBFBD>
|
||||
#define IMU660RB_SDI_PIN (SPI0_MOSI_P20_14) // Ӳ<><D3B2> SPI MOSI <20><><EFBFBD><EFBFBD>
|
||||
#define IMU660RB_SDO_PIN (SPI0_MISO_P20_12) // Ӳ<><D3B2> SPI MISO <20><><EFBFBD><EFBFBD>
|
||||
#define IMU660RB_SPI_SPEED (10 * 1000 * 1000) // Ӳ<><D3B2> SPI <20><><EFBFBD><EFBFBD>
|
||||
#define IMU660RB_SPI (SPI_0 ) // Ӳ<><D3B2> SPI <20><>
|
||||
#define IMU660RB_SPC_PIN (SPI0_SCLK_P20_11) // Ӳ<><D3B2> SPI SCK <20><><EFBFBD><EFBFBD>
|
||||
#define IMU660RB_SDI_PIN (SPI0_MOSI_P20_14) // Ӳ<><D3B2> SPI MOSI <20><><EFBFBD><EFBFBD>
|
||||
#define IMU660RB_SDO_PIN (SPI0_MISO_P20_12) // Ӳ<><D3B2> SPI MISO <20><><EFBFBD><EFBFBD>
|
||||
//====================================================Ӳ<><D3B2> SPI <20><><EFBFBD><EFBFBD>====================================================
|
||||
#endif
|
||||
#define IMU660RB_CS_PIN (P20_13) // CS Ƭѡ<C6AC><D1A1><EFBFBD><EFBFBD>
|
||||
#define IMU660RB_CS(x) ((x) ? (gpio_high(IMU660RB_CS_PIN)) : (gpio_low(IMU660RB_CS_PIN)))
|
||||
|
||||
#define IMU660RB_TIMEOUT_COUNT (0x00FF) // IMU660 <20><>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define IMU660RB_CS_PIN (P20_13) // CS Ƭѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define IMU660RB_CS(x) (x? (gpio_high(IMU660RB_CS_PIN)): (gpio_low(IMU660RB_CS_PIN)))
|
||||
|
||||
//================================================<3D><><EFBFBD><EFBFBD> imu660rb <20>ڲ<EFBFBD><DAB2><EFBFBD>ַ================================================
|
||||
#define IMU660RB_DEV_ADDR (0x6B) // SA0<41>ӵأ<D3B5>0x68 SA0<41><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0x69 ģ<><C4A3>Ĭ<EFBFBD><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define IMU660RB_SPI_W (0x00)
|
||||
#define IMU660RB_SPI_R (0x80)
|
||||
typedef enum
|
||||
{
|
||||
IMU660RB_ACC_SAMPLE_SGN_2G , // <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><>2G (ACC = Accelerometer <20><><EFBFBD>ٶȼ<D9B6>) (SGN = signum <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ) (G = g <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD> g<><67>9.80 m/s^2)
|
||||
IMU660RB_ACC_SAMPLE_SGN_4G , // <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><>4G (ACC = Accelerometer <20><><EFBFBD>ٶȼ<D9B6>) (SGN = signum <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ) (G = g <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD> g<><67>9.80 m/s^2)
|
||||
IMU660RB_ACC_SAMPLE_SGN_8G , // <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><>8G (ACC = Accelerometer <20><><EFBFBD>ٶȼ<D9B6>) (SGN = signum <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ) (G = g <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD> g<><67>9.80 m/s^2)
|
||||
IMU660RB_ACC_SAMPLE_SGN_16G, // <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><>16G (ACC = Accelerometer <20><><EFBFBD>ٶȼ<D9B6>) (SGN = signum <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ) (G = g <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD> g<><67>9.80 m/s^2)
|
||||
}imu660rb_acc_sample_config;
|
||||
|
||||
#define IMU660RB_CHIP_ID (0x0F)
|
||||
typedef enum
|
||||
{
|
||||
IMU660RB_GYRO_SAMPLE_SGN_125DPS , // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>125DPS (GYRO = Gyroscope <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) (SGN = signum <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ) (DPS = Degree Per Second <20><><EFBFBD>ٶȵ<D9B6>λ <20><>/S)
|
||||
IMU660RB_GYRO_SAMPLE_SGN_250DPS , // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>250DPS (GYRO = Gyroscope <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) (SGN = signum <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ) (DPS = Degree Per Second <20><><EFBFBD>ٶȵ<D9B6>λ <20><>/S)
|
||||
IMU660RB_GYRO_SAMPLE_SGN_500DPS , // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>500DPS (GYRO = Gyroscope <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) (SGN = signum <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ) (DPS = Degree Per Second <20><><EFBFBD>ٶȵ<D9B6>λ <20><>/S)
|
||||
IMU660RB_GYRO_SAMPLE_SGN_1000DPS, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>1000DPS (GYRO = Gyroscope <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) (SGN = signum <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ) (DPS = Degree Per Second <20><><EFBFBD>ٶȵ<D9B6>λ <20><>/S)
|
||||
IMU660RB_GYRO_SAMPLE_SGN_2000DPS, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>2000DPS (GYRO = Gyroscope <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) (SGN = signum <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ) (DPS = Degree Per Second <20><><EFBFBD>ٶȵ<D9B6>λ <20><>/S)
|
||||
IMU660RB_GYRO_SAMPLE_SGN_4000DPS, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>4000DPS (GYRO = Gyroscope <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) (SGN = signum <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ) (DPS = Degree Per Second <20><><EFBFBD>ٶȵ<D9B6>λ <20><>/S)
|
||||
}imu660rb_gyro_sample_config;
|
||||
|
||||
#define IMU660RB_INT1_CTRL (0x0D)
|
||||
#define IMU660RB_CTRL1_XL (0x10)
|
||||
#define IMU660RB_CTRL2_G (0x11)
|
||||
#define IMU660RB_CTRL3_C (0x12)
|
||||
#define IMU660RB_CTRL4_C (0x13)
|
||||
#define IMU660RB_CTRL5_C (0x14)
|
||||
#define IMU660RB_CTRL6_C (0x15)
|
||||
#define IMU660RB_CTRL7_G (0x16)
|
||||
#define IMU660RB_CTRL9_XL (0x18)
|
||||
|
||||
#define IMU660RB_ACC_ADDRESS (0x28)
|
||||
#define IMU660RB_GYRO_ADDRESS (0x22)
|
||||
|
||||
#define IMU660RB_ACC_SAMPLE (0x3C) // <20><><EFBFBD>ٶȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define IMU660RB_ACC_SAMPLE_DEFAULT ( IMU660RB_ACC_SAMPLE_SGN_8G ) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD>ϵ<EFBFBD> <20><><EFBFBD>ٶȼ<D9B6> <20><>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define IMU660RB_GYRO_SAMPLE_DEFAULT ( IMU660RB_GYRO_SAMPLE_SGN_2000DPS ) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD>ϵ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define IMU660RB_TIMEOUT_COUNT (0x00FF) // IMU660RB <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
||||
//================================================<3D><><EFBFBD><EFBFBD> IMU660RB <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>================================================
|
||||
|
||||
|
||||
//================================================<3D><><EFBFBD><EFBFBD> IMU660RB <20>ڲ<EFBFBD><DAB2><EFBFBD>ַ================================================
|
||||
#define IMU660RB_DEV_ADDR (0x6B) // SA0<41>ӵأ<D3B5>0x6A SA0<41><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0x6B ģ<><C4A3>Ĭ<EFBFBD><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define IMU660RB_SPI_W (0x00)
|
||||
#define IMU660RB_SPI_R (0x80)
|
||||
|
||||
#define IMU660RB_FUNC_CFG_ACCESS (0x01)
|
||||
#define IMU660RB_INT1_CTRL (0x0D)
|
||||
#define IMU660RB_WHO_AM_I (0x0F)
|
||||
#define IMU660RB_CTRL1_XL (0x10)
|
||||
#define IMU660RB_CTRL2_G (0x11)
|
||||
#define IMU660RB_CTRL3_C (0x12)
|
||||
#define IMU660RB_CTRL4_C (0x13)
|
||||
#define IMU660RB_CTRL5_C (0x14)
|
||||
#define IMU660RB_CTRL6_C (0x15)
|
||||
#define IMU660RB_CTRL7_G (0x16)
|
||||
#define IMU660RB_CTRL9_XL (0x18)
|
||||
#define IMU660RB_OUTX_L_G (0x22)
|
||||
#define IMU660RB_OUTX_L_A (0x28)
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؼĴ<D8BC><C4B4><EFBFBD> <20><>Ҫ<EFBFBD><D2AA>FUNC_CFG_ACCESS<53><53>SHUB_REG_ACCESSλ<53><CEBB><EFBFBD><EFBFBD>Ϊ1<CEAA><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD>
|
||||
#define IMU660RB_SENSOR_HUB_1 (0x02)
|
||||
#define IMU660RB_MASTER_CONFIG (0x14)
|
||||
#define IMU660RB_SLV0_ADD (0x15)
|
||||
#define IMU660RB_SLV0_SUBADD (0x16)
|
||||
#define IMU660RB_SLV0_CONFIG (0x17)
|
||||
#define IMU660RB_DATAWRITE_SLV0 (0x21)
|
||||
#define IMU660RB_STATUS_MASTER (0x22)
|
||||
|
||||
#define IMU660RB_MAG_ADDR (0x0D) // 7λIIC<49><43>ַ
|
||||
#define IMU660RB_MAG_OUTX_L (0x00)
|
||||
#define IMU660RB_MAG_CONTROL1 (0x09)
|
||||
#define IMU660RB_MAG_CONTROL2 (0x0A)
|
||||
#define IMU660RB_MAG_FBR (0x0B)
|
||||
#define IMU660RB_MAG_CHIP_ID (0x0D)
|
||||
|
||||
#define IMU660RB_ACC_SAMPLE (0x3C) // <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x30 <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>2G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>16393<39><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x38 <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>4G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>8197<39><37> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x3C <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>8G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>4098<39><38> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x34 <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>16G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>2049<34><39> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
|
||||
#define IMU660RB_GYR_SAMPLE (0x5C) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define IMU660RB_GYR_SAMPLE (0x5C) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x52 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>125dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>228.6<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x50 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>250dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>114.3<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x54 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>500dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>57.1<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
@@ -121,21 +159,38 @@
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x51 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>4000dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>7.1<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
|
||||
|
||||
|
||||
//================================================<3D><><EFBFBD><EFBFBD> IMU963RB ȫ<>ֱ<EFBFBD><D6B1><EFBFBD>================================================
|
||||
extern int16 imu660rb_gyro_x, imu660rb_gyro_y, imu660rb_gyro_z; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> gyro (<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
extern int16 imu660rb_acc_x, imu660rb_acc_y, imu660rb_acc_z; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> acc (accelerometer <20><><EFBFBD>ٶȼ<D9B6>)
|
||||
//================================================<3D><><EFBFBD><EFBFBD> IMU963RB ȫ<>ֱ<EFBFBD><D6B1><EFBFBD>================================================
|
||||
//================================================<3D><><EFBFBD><EFBFBD> IMU660RB ȫ<>ֱ<EFBFBD><D6B1><EFBFBD>================================================
|
||||
extern int16 imu660rb_acc_x, imu660rb_acc_y, imu660rb_acc_z; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> GYRO (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
extern int16 imu660rb_gyro_x, imu660rb_gyro_y, imu660rb_gyro_z; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ACC (accelerometer <EFBFBD><EFBFBD><EFBFBD>ٶȼ<EFBFBD>)
|
||||
extern float imu660rb_transition_factor[2]; // ת<><D7AA>ʵ<EFBFBD><CAB5>ֵ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD>
|
||||
//================================================<3D><><EFBFBD><EFBFBD> IMU660RB ȫ<>ֱ<EFBFBD><D6B1><EFBFBD>================================================
|
||||
|
||||
|
||||
//================================================<3D><><EFBFBD><EFBFBD> IMU963RB <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>================================================
|
||||
void imu660rb_get_acc (void); // <20><>ȡ IMU660RB <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
void imu660rb_get_gyro (void); // <20><>ȡ IMU660RB <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
float imu660rb_acc_transition (int16 acc_value); // <20><> IMU660RB <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊʵ<CEAA><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
float imu660rb_gyro_transition (int16 gyro_value); // <20><> IMU660RB <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊʵ<CEAA><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
uint8 imu660rb_init (void); // <20><>ʼ<EFBFBD><CABC> IMU660RB
|
||||
//================================================<3D><><EFBFBD><EFBFBD> IMU963RB <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>================================================
|
||||
//================================================<3D><><EFBFBD><EFBFBD> IMU660RB <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>================================================
|
||||
void imu660rb_get_acc (void); // <20><>ȡ IMU660RB <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
void imu660rb_get_gyro (void); // <20><>ȡ IMU660RB <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
uint8 imu660rb_init (void); // <20><>ʼ<EFBFBD><EFBFBD> IMU660RB
|
||||
//================================================<3D><><EFBFBD><EFBFBD> IMU660RB <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>================================================
|
||||
|
||||
|
||||
//================================================<3D><><EFBFBD><EFBFBD> IMU660RB <20><>չ<EFBFBD><D5B9><EFBFBD><EFBFBD>================================================
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> IMU660RB <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊʵ<CEAA><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> acc_value <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> float data = imu660rb_acc_transition(imu660rb_acc_x); // <20><>λΪ g(m/s^2)
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
#define imu660rb_acc_transition(acc_value) ((float)(acc_value) / imu660rb_transition_factor[0])
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> IMU660RB <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊʵ<CEAA><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> gyro_value <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> float data = imu660rb_gyro_transition(imu660rb_gyro_x); // <20><>λΪ <20><>/s
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
#define imu660rb_gyro_transition(gyro_value) ((float)(gyro_value) / imu660rb_transition_factor[1])
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -68,6 +68,8 @@
|
||||
|
||||
int16 imu660rx_gyro_x = 0, imu660rx_gyro_y = 0, imu660rx_gyro_z = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> gyro (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
int16 imu660rx_acc_x = 0, imu660rx_acc_y = 0, imu660rx_acc_z = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> acc (accelerometer <20><><EFBFBD>ٶȼ<D9B6>)
|
||||
float imu660rx_transition_factor[2] = {4096, 16.4};
|
||||
|
||||
|
||||
uint8 imu660rx_self_check_id = 0;
|
||||
uint8 imu660rx_acc_address = 0, imu660rx_gyro_address = 0;
|
||||
@@ -124,11 +126,11 @@ static void imu660rx_read_registers(uint8 reg, uint8 *data, uint32 len)
|
||||
{
|
||||
uint8 temp_data[8];
|
||||
|
||||
IMU660RB_CS(0);
|
||||
IMU660RX_CS(0);
|
||||
if (imu660rx_self_check_id == IMU660RX_CHIP_IDA)
|
||||
{
|
||||
spi_read_8bit_registers(IMU660RX_SPI, reg | IMU660RX_SPI_R, temp_data, len + 1);
|
||||
IMU660RB_CS(1);
|
||||
IMU660RX_CS(1);
|
||||
for(int i = 0; i < len; i ++)
|
||||
{
|
||||
*(data ++) = temp_data[i + 1];
|
||||
@@ -137,7 +139,7 @@ static void imu660rx_read_registers(uint8 reg, uint8 *data, uint32 len)
|
||||
else if (imu660rx_self_check_id == IMU660RX_CHIP_IDB)
|
||||
{
|
||||
spi_read_8bit_registers(IMU660RX_SPI, reg | IMU660RX_SPI_R, data, len);
|
||||
IMU660RB_CS(1);
|
||||
IMU660RX_CS(1);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -246,82 +248,6 @@ void imu660rx_get_gyro (void)
|
||||
}
|
||||
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> IMU660RX <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊʵ<CEAA><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> gyro_value <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> float data = imu660rx_acc_transition(imu660rx_acc_x); // <20><>λΪ g(m/s^2)
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
float imu660rx_acc_transition (int16 acc_value)
|
||||
{
|
||||
float acc_data = 0;
|
||||
|
||||
if (imu660rx_self_check_id == IMU660RX_CHIP_IDA)
|
||||
{
|
||||
switch(IMU660RA_ACC_SAMPLE)
|
||||
{
|
||||
case 0x00: acc_data = (float)acc_value / 16384; break; // 0x00 <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>2g <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 16384 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
case 0x01: acc_data = (float)acc_value / 8192; break; // 0x01 <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>4g <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 8192 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
case 0x02: acc_data = (float)acc_value / 4096; break; // 0x02 <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>8g <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 4096 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
case 0x03: acc_data = (float)acc_value / 2048; break; // 0x03 <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>16g <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 2048 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
else if(imu660rx_self_check_id == IMU660RX_CHIP_IDB)
|
||||
{
|
||||
switch(IMU660RB_ACC_SAMPLE)
|
||||
{
|
||||
case 0x30: acc_data = (float)acc_value / 16393; break; // 0x30 <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>2G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 16393 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
case 0x38: acc_data = (float)acc_value / 8197; break; // 0x38 <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>4G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 8197 <20><> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
case 0x3C: acc_data = (float)acc_value / 4098; break; // 0x3C <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>8G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 4098 <20><> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
case 0x34: acc_data = (float)acc_value / 2049; break; // 0x34 <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>16G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 2049 <20><> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
return acc_data;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> IMU660RX <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊʵ<CEAA><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> gyro_value <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> float data = imu660rx_gyro_transition(imu660rx_gyro_x); // <20><>λΪ<CEBB><CEAA>/s
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
float imu660rx_gyro_transition (int16 gyro_value)
|
||||
{
|
||||
float gyro_data = 0;
|
||||
if (imu660rx_self_check_id == IMU660RX_CHIP_IDA)
|
||||
{
|
||||
switch(IMU660RA_GYR_SAMPLE)
|
||||
{
|
||||
case 0x00: gyro_data = (float)gyro_value / 16.4f; break; // 0x00 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>2000dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD> 16.4 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
case 0x01: gyro_data = (float)gyro_value / 32.8f; break; // 0x01 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>1000dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD> 32.8 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
case 0x02: gyro_data = (float)gyro_value / 65.6f; break; // 0x02 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>500 dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD> 65.6 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
case 0x03: gyro_data = (float)gyro_value / 131.2f; break; // 0x03 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>250 dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD> 131.2 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
case 0x04: gyro_data = (float)gyro_value / 262.4f; break; // 0x04 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>125 dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD> 262.4 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
else if (imu660rx_self_check_id == IMU660RX_CHIP_IDB)
|
||||
{
|
||||
switch(IMU660RB_GYR_SAMPLE)
|
||||
{
|
||||
case 0x52: gyro_data = (float)gyro_value / 228.6f; break; // 0x52 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>125dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD> 228.6<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
case 0x50: gyro_data = (float)gyro_value / 114.3f; break; // 0x50 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>250dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD> 114.3<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
case 0x54: gyro_data = (float)gyro_value / 57.1f; break; // 0x54 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>500dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD> 57.1<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
case 0x58: gyro_data = (float)gyro_value / 28.6f; break; // 0x58 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>1000dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD> 28.6<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
case 0x5C: gyro_data = (float)gyro_value / 14.3f; break; // 0x5C <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>2000dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD> 14.3<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
case 0x51: gyro_data = (float)gyro_value / 7.1f; break; // 0x51 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>4000dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD> 7.1<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
return gyro_data;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ʼ<EFBFBD><CABC> IMU660RX
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> void
|
||||
@@ -357,13 +283,14 @@ uint8 imu660rx_init (void)
|
||||
{
|
||||
imu660rx_acc_address = IMU660RA_ACC_ADDRESS;
|
||||
imu660rx_gyro_address = IMU660RA_GYRO_ADDRESS;
|
||||
|
||||
imu660rx_write_register(IMU660RA_PWR_CONF, 0x00); // <20>رո<D5B8>ʡ<EFBFBD><CAA1>ģʽ
|
||||
system_delay_ms(1);
|
||||
imu660rx_write_register(IMU660RA_INIT_CTRL, 0x00); // <20><>ʼ<EFBFBD><CABC>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD>г<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
imu660rx_write_registers(IMU660RA_INIT_DATA, imu660ra_config_file, sizeof(imu660ra_config_file)); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
||||
imu660rx_write_register(IMU660RA_INIT_CTRL, 0x01); // <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>ý<EFBFBD><C3BD><EFBFBD>
|
||||
system_delay_ms(20);
|
||||
if(imu660rx_read_register(IMU660RA_INT_STA,2) == 0) // <20><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if(1 != imu660rx_read_register(IMU660RA_INT_STA,2)) // <20><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD><CBB6><EFBFBD><EFBFBD><EFBFBD>Ϣ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><>ô<EFBFBD><C3B4><EFBFBD><EFBFBD> IMU660RA <20><><EFBFBD>ó<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
@@ -375,53 +302,196 @@ uint8 imu660rx_init (void)
|
||||
imu660rx_write_register(IMU660RA_PWR_CTRL, 0x0E); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǡ<EFBFBD><C7A1><EFBFBD><EFBFBD>ٶȡ<D9B6><C8A1>¶ȴ<C2B6><C8B4><EFBFBD><EFBFBD><EFBFBD>
|
||||
imu660rx_write_register(IMU660RA_ACC_CONF, 0xA7); // <20><><EFBFBD>ٶȲɼ<C8B2><C9BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ģʽ <20><><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD> 50Hz <20><><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>
|
||||
imu660rx_write_register(IMU660RA_GYR_CONF, 0xA9); // <20><><EFBFBD><EFBFBD><EFBFBD>Dzɼ<C7B2><C9BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ģʽ <20><><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD> 200Hz <20><><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>
|
||||
imu660rx_write_register(IMU660RA_ACC_RANGE, IMU660RA_ACC_SAMPLE); // <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>8g
|
||||
imu660rx_write_register(IMU660RA_GYR_RANGE, IMU660RA_GYR_SAMPLE); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>2000dps
|
||||
|
||||
// IMU660RA_ACC_SAMPLE <20>Ĵ<EFBFBD><C4B4><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x00 <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>2g <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD> 16384 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x01 <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>4g <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD> 8192 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x02 <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>8g <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD> 4096 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x03 <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>16g <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD> 2048 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x00 <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>2 g <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 16384 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (g <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD> <20><><EFBFBD><EFBFBD>ѧ<EFBFBD><D1A7><EFBFBD><EFBFBD> һ<><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> g ȡ 9.8 m/s^2 Ϊ<><CEAA>ֵ)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x01 <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>4 g <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 8192 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (g <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD> <20><><EFBFBD><EFBFBD>ѧ<EFBFBD><D1A7><EFBFBD><EFBFBD> һ<><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> g ȡ 9.8 m/s^2 Ϊ<><CEAA>ֵ)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x02 <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>8 g <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 4096 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (g <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD> <20><><EFBFBD><EFBFBD>ѧ<EFBFBD><D1A7><EFBFBD><EFBFBD> һ<><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> g ȡ 9.8 m/s^2 Ϊ<><CEAA>ֵ)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x03 <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>16 g <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 2048 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (g <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD> <20><><EFBFBD><EFBFBD>ѧ<EFBFBD><D1A7><EFBFBD><EFBFBD> һ<><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> g ȡ 9.8 m/s^2 Ϊ<><CEAA>ֵ)
|
||||
switch(IMU660RA_ACC_SAMPLE_DEFAULT)
|
||||
{
|
||||
default:
|
||||
{
|
||||
zf_log(0, "IMU660RA_ACC_SAMPLE_DEFAULT set error.");
|
||||
return_state = 1;
|
||||
}break;
|
||||
case IMU660RA_ACC_SAMPLE_SGN_2G:
|
||||
{
|
||||
imu660rx_write_register(IMU660RA_ACC_RANGE, 0x00);
|
||||
imu660rx_transition_factor[0] = 16384;
|
||||
}break;
|
||||
case IMU660RA_ACC_SAMPLE_SGN_4G:
|
||||
{
|
||||
imu660rx_write_register(IMU660RA_ACC_RANGE, 0x01);
|
||||
imu660rx_transition_factor[0] = 8192;
|
||||
}break;
|
||||
case IMU660RA_ACC_SAMPLE_SGN_8G:
|
||||
{
|
||||
imu660rx_write_register(IMU660RA_ACC_RANGE, 0x02);
|
||||
imu660rx_transition_factor[0] = 4096;
|
||||
}break;
|
||||
case IMU660RA_ACC_SAMPLE_SGN_16G:
|
||||
{
|
||||
imu660rx_write_register(IMU660RA_ACC_RANGE, 0x03);
|
||||
imu660rx_transition_factor[0] = 2048;
|
||||
}break;
|
||||
}
|
||||
if(1 == return_state)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
// IMU660RA_GYR_RANGE <20>Ĵ<EFBFBD><C4B4><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x00 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>2000dps <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD> 16.4 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x01 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>1000dps <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD> 32.8 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x02 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>500 dps <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD> 65.6 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x03 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>250 dps <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD> 131.2 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x04 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>125 dps <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD> 262.4 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/s
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x04 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>125 dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 262.4 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ <EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x03 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>250 dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 131.2 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ <EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x02 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>500 dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 65.6 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ <EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x01 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>1000 dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 32.8 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ <EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x00 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>2000 dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 16.4 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ <EFBFBD><EFBFBD>/s
|
||||
switch(IMU660RA_GYRO_SAMPLE_DEFAULT)
|
||||
{
|
||||
default:
|
||||
{
|
||||
zf_log(0, "IMU660RA_GYRO_SAMPLE_DEFAULT set error.");
|
||||
return_state = 1;
|
||||
}break;
|
||||
case IMU660RA_GYRO_SAMPLE_SGN_125DPS:
|
||||
{
|
||||
imu660rx_write_register(IMU660RA_GYR_RANGE, 0x04);
|
||||
imu660rx_transition_factor[1] = 262.4;
|
||||
}break;
|
||||
case IMU660RA_GYRO_SAMPLE_SGN_250DPS:
|
||||
{
|
||||
imu660rx_write_register(IMU660RA_GYR_RANGE, 0x03);
|
||||
imu660rx_transition_factor[1] = 131.2;
|
||||
}break;
|
||||
case IMU660RA_GYRO_SAMPLE_SGN_500DPS:
|
||||
{
|
||||
imu660rx_write_register(IMU660RA_GYR_RANGE, 0x02);
|
||||
imu660rx_transition_factor[1] = 65.6;
|
||||
}break;
|
||||
case IMU660RA_GYRO_SAMPLE_SGN_1000DPS:
|
||||
{
|
||||
imu660rx_write_register(IMU660RA_GYR_RANGE, 0x01);
|
||||
imu660rx_transition_factor[1] = 32.8;
|
||||
}break;
|
||||
case IMU660RA_GYRO_SAMPLE_SGN_2000DPS:
|
||||
{
|
||||
imu660rx_write_register(IMU660RA_GYR_RANGE, 0x00);
|
||||
imu660rx_transition_factor[1] = 16.4;
|
||||
}break;
|
||||
}
|
||||
if(1 == return_state)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if (imu660rx_self_check_id == IMU660RX_CHIP_IDB)
|
||||
{
|
||||
imu660rx_acc_address = IMU660RB_OUTX_L_A;
|
||||
imu660rx_gyro_address = IMU660RB_OUTX_L_G;
|
||||
|
||||
imu660rx_write_register(IMU660RB_FUNC_CFG_ACCESS, 0x00); // <20>ر<EFBFBD>HUB<55>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
imu660rx_write_register(IMU660RB_CTRL3_C, 0x01); // <20><>λ<EFBFBD>豸
|
||||
system_delay_ms(2);
|
||||
imu660rx_write_register(IMU660RB_FUNC_CFG_ACCESS, 0x00); // <20>ر<EFBFBD>HUB<55>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
imu660rx_write_register(IMU660RB_INT1_CTRL, 0x03); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD>ݾ<EFBFBD><DDBE><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
|
||||
imu660rx_acc_address = IMU660RB_ACC_ADDRESS;
|
||||
imu660rx_gyro_address = IMU660RB_GYRO_ADDRESS;
|
||||
imu660rx_write_register(IMU660RB_INT1_CTRL, 0x03); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD>ݾ<EFBFBD><DDBE><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
imu660rx_write_register(IMU660RB_CTRL1_XL, IMU660RB_ACC_SAMPLE); // <20><><EFBFBD>ü<EFBFBD><C3BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><>8G <20>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 52hz <20>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD>Ϣ<EFBFBD>ӵ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD>˲<EFBFBD><CBB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// IMU660RB_CTRL1_XL <20>Ĵ<EFBFBD><C4B4><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x30 <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>2G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD>16393<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x38 <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>4G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD>8197<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x3C <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>8G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD>4098<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x34 <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>16G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD>2049<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x30 <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>2 G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 16393 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>λ g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x38 <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>4 G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 8197 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>λ g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x3C <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>8 G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 4098 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>λ g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x34 <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>16 G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 2049 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>λ g(m/s^2)
|
||||
switch(IMU660RB_ACC_SAMPLE_DEFAULT)
|
||||
{
|
||||
default:
|
||||
{
|
||||
zf_log(0, "IMU660RB_ACC_SAMPLE_DEFAULT set error.");
|
||||
return_state = 1;
|
||||
}break;
|
||||
case IMU660RB_ACC_SAMPLE_SGN_2G:
|
||||
{
|
||||
imu660rx_write_register(IMU660RB_CTRL1_XL, 0x30);
|
||||
imu660rx_transition_factor[0] = 16393;
|
||||
}break;
|
||||
case IMU660RB_ACC_SAMPLE_SGN_4G:
|
||||
{
|
||||
imu660rx_write_register(IMU660RB_CTRL1_XL, 0x38);
|
||||
imu660rx_transition_factor[0] = 8197;
|
||||
}break;
|
||||
case IMU660RB_ACC_SAMPLE_SGN_8G:
|
||||
{
|
||||
imu660rx_write_register(IMU660RB_CTRL1_XL, 0x3C);
|
||||
imu660rx_transition_factor[0] = 4098;
|
||||
}break;
|
||||
case IMU660RB_ACC_SAMPLE_SGN_16G:
|
||||
{
|
||||
imu660rx_write_register(IMU660RB_CTRL1_XL, 0x34);
|
||||
imu660rx_transition_factor[0] = 2049;
|
||||
}break;
|
||||
}
|
||||
if(1 == return_state)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
imu660rx_write_register(IMU660RB_CTRL2_G, IMU660RB_GYR_SAMPLE); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǽ<EFBFBD><C7BC><EFBFBD><EFBFBD><EFBFBD> <20><>2000dps <20>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 208hz
|
||||
// IMU660RB_CTRL2_G <20>Ĵ<EFBFBD><C4B4><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x52 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>125dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>228.6<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD>λΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x50 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>250dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>114.3<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD>λΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x54 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>500dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>57.1<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD>λΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x58 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>1000dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>28.6<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD>λΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x5C <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>2000dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>14.3<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD>λΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x51 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>4000dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>7.1<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD>λΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x52 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>125 dps <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 228.6 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>λΪ <EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x50 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>250 dps <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 114.3 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>λΪ <EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x54 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>500 dps <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 57.1 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>λΪ <EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x58 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>1000 dps <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 28.6 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>λΪ <EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x5C <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>2000 dps <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 14.3 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>λΪ <EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x51 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>4000 dps <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 7.1 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>λΪ <EFBFBD><EFBFBD>/s
|
||||
switch(IMU660RB_GYRO_SAMPLE_DEFAULT)
|
||||
{
|
||||
default:
|
||||
{
|
||||
zf_log(0, "IMU660RB_GYRO_SAMPLE_DEFAULT set error.");
|
||||
return_state = 1;
|
||||
}break;
|
||||
case IMU660RB_GYRO_SAMPLE_SGN_125DPS:
|
||||
{
|
||||
imu660rx_write_register(IMU660RB_CTRL2_G, 0x52);
|
||||
imu660rx_transition_factor[1] = 228.6;
|
||||
}break;
|
||||
case IMU660RB_GYRO_SAMPLE_SGN_250DPS:
|
||||
{
|
||||
imu660rx_write_register(IMU660RB_CTRL2_G, 0x50);
|
||||
imu660rx_transition_factor[1] = 114.3;
|
||||
}break;
|
||||
case IMU660RB_GYRO_SAMPLE_SGN_500DPS:
|
||||
{
|
||||
imu660rx_write_register(IMU660RB_CTRL2_G, 0x54);
|
||||
imu660rx_transition_factor[1] = 57.1;
|
||||
}break;
|
||||
case IMU660RB_GYRO_SAMPLE_SGN_1000DPS:
|
||||
{
|
||||
imu660rx_write_register(IMU660RB_CTRL2_G, 0x58);
|
||||
imu660rx_transition_factor[1] = 28.6;
|
||||
}break;
|
||||
case IMU660RB_GYRO_SAMPLE_SGN_2000DPS:
|
||||
{
|
||||
imu660rx_write_register(IMU660RB_CTRL2_G, 0x5C);
|
||||
imu660rx_transition_factor[1] = 14.3;
|
||||
}break;
|
||||
case IMU660RB_GYRO_SAMPLE_SGN_4000DPS:
|
||||
{
|
||||
imu660rx_write_register(IMU660RB_CTRL2_G, 0x51);
|
||||
imu660rx_transition_factor[1] = 7.1;
|
||||
}break;
|
||||
}
|
||||
if(1 == return_state)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
imu660rx_write_register(IMU660RB_CTRL3_C, 0x44); // ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ͨ<EFBFBD>˲<EFBFBD><CBB2><EFBFBD>
|
||||
imu660rx_write_register(IMU660RB_CTRL4_C, 0x02); // ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ͨ<EFBFBD>˲<EFBFBD><CBB2><EFBFBD>
|
||||
imu660rx_write_register(IMU660RB_CTRL5_C, 0x00); // <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
imu660rx_write_register(IMU660RB_CTRL6_C, 0x00); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶȼƸ<C8BC><C6B8><EFBFBD><EFBFBD><EFBFBD>ģʽ <20><><EFBFBD><EFBFBD><EFBFBD>ǵ<EFBFBD>ͨ<EFBFBD>˲<EFBFBD> 133hz
|
||||
imu660rx_write_register(IMU660RB_CTRL7_G, 0x00); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǹ<EFBFBD><C7B8><EFBFBD><EFBFBD><EFBFBD>ģʽ <20>رո<D8B1>ͨ<EFBFBD>˲<EFBFBD>
|
||||
imu660rx_write_register(IMU660RB_CTRL9_XL, 0x01); // <20>ر<EFBFBD>I3C<33>ӿ<EFBFBD>
|
||||
imu660rx_write_register(IMU660RB_CTRL3_C, 0x44); // ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ͨ<EFBFBD>˲<EFBFBD><CBB2><EFBFBD>
|
||||
imu660rx_write_register(IMU660RB_CTRL4_C, 0x02); // ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ͨ<EFBFBD>˲<EFBFBD><CBB2><EFBFBD>
|
||||
imu660rx_write_register(IMU660RB_CTRL5_C, 0x00); // <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
imu660rx_write_register(IMU660RB_CTRL6_C, 0x00); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶȼƸ<C8BC><C6B8><EFBFBD><EFBFBD><EFBFBD>ģʽ <20><><EFBFBD><EFBFBD><EFBFBD>ǵ<EFBFBD>ͨ<EFBFBD>˲<EFBFBD> 133hz
|
||||
imu660rx_write_register(IMU660RB_CTRL7_G, 0x00); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǹ<EFBFBD><C7B8><EFBFBD><EFBFBD><EFBFBD>ģʽ <20>رո<D8B1>ͨ<EFBFBD>˲<EFBFBD>
|
||||
imu660rx_write_register(IMU660RB_CTRL9_XL, 0x01); // <20>ر<EFBFBD>I3C<33>ӿ<EFBFBD>
|
||||
}
|
||||
|
||||
}while(0);
|
||||
return return_state;
|
||||
}
|
||||
|
||||
@@ -56,7 +56,8 @@
|
||||
|
||||
#ifndef _zf_device_imu660rx_h_
|
||||
#define _zf_device_imu660rx_h_
|
||||
|
||||
#include "zf_device_imu660rb.h"
|
||||
#include "zf_device_imu660ra.h"
|
||||
#include "zf_common_typedef.h"
|
||||
|
||||
// IMU660RX_USE_SOFT_IIC<49><43><EFBFBD><EFBFBD>Ϊ0<CEAA><30>ʾʹ<CABE><CAB9>Ӳ<EFBFBD><D3B2>SPI<50><49><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ϊ1<CEAA><31>ʾʹ<CABE><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IIC<49><43><EFBFBD><EFBFBD>
|
||||
@@ -81,31 +82,51 @@
|
||||
#define IMU660RX_CS_PIN (P20_13) // CS Ƭѡ<C6AC><D1A1><EFBFBD><EFBFBD>
|
||||
#define IMU660RX_CS(x) ((x) ? (gpio_high(IMU660RX_CS_PIN)) : (gpio_low(IMU660RX_CS_PIN)))
|
||||
|
||||
#define IMU660RX_TIMEOUT_COUNT (0x00FF) // IMU660 <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
||||
#define IMU660RX_TIMEOUT_COUNT (0x0FFF) // IMU660 <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
||||
|
||||
//================================================<3D><><EFBFBD><EFBFBD> IMU660RX <20>ڲ<EFBFBD><DAB2><EFBFBD>ַ================================================
|
||||
#define IMU660RX_DEV_ADDR (0x6B) // SA0<41>ӵأ<D3B5>0x6B SA0<41><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0x69 ģ<><C4A3>Ĭ<EFBFBD><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
#define IMU660RX_SPI_W (0x00)
|
||||
#define IMU660RX_SPI_R (0x80)
|
||||
|
||||
#define IMU660RX_CHIP_IDA (0x00) //660RAID
|
||||
#define IMU660RX_CHIP_IDB (0x0F) //660RBID
|
||||
#define IMU660RX_CHIP_IDA (0x00) //660RAID
|
||||
#define IMU660RX_CHIP_IDB (0x0F) //660RBID
|
||||
|
||||
|
||||
//================================================<3D><><EFBFBD><EFBFBD> IMU660RX ȫ<>ֱ<EFBFBD><D6B1><EFBFBD>================================================
|
||||
extern int16 imu660rx_gyro_x, imu660rx_gyro_y, imu660rx_gyro_z; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> gyro (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
extern int16 imu660rx_acc_x, imu660rx_acc_y, imu660rx_acc_z; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> acc (accelerometer <20><><EFBFBD>ٶȼ<D9B6>)
|
||||
extern float imu660ra_transition_factor[2];
|
||||
//================================================<3D><><EFBFBD><EFBFBD> IMU660RX ȫ<>ֱ<EFBFBD><D6B1><EFBFBD>================================================
|
||||
|
||||
|
||||
//================================================<3D><><EFBFBD><EFBFBD> IMU660RX <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>================================================
|
||||
void imu660rx_get_acc (void); // <20><>ȡ IMU660RX <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
void imu660rx_get_gyro (void); // <20><>ȡ IMU660RX <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
float imu660rx_acc_transition (int16 acc_value); // <20><> IMU660RX <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊʵ<CEAA><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
float imu660rx_gyro_transition (int16 gyro_value); // <20><> IMU660RX <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊʵ<CEAA><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
uint8 imu660rx_init (void); // <20><>ʼ<EFBFBD><CABC> IMU660RX
|
||||
//================================================<3D><><EFBFBD><EFBFBD> IMU660RX <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>================================================
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> IMU660RX <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊʵ<CEAA><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> acc_value <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> float data = imu660ra_acc_transition(imu660ra_acc_x); // <20><>λΪ g(m/s^2)
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
#define imu660rx_acc_transition(acc_value) ((float)(acc_value) / imu660rx_transition_factor[0])
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> IMU660RA <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊʵ<CEAA><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> gyro_value <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> float data = imu660ra_gyro_transition(imu660ra_gyro_x); // <20><>λΪ <20><>/s
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
#define imu660rx_gyro_transition(gyro_value) ((float)(gyro_value) / imu660rx_transition_factor[1])
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -65,7 +65,7 @@
|
||||
#define IMU963RA_USE_SOFT_IIC (0) // Ĭ<><C4AC>ʹ<EFBFBD><CAB9>Ӳ<EFBFBD><D3B2> SPI <20><>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
|
||||
#if IMU963RA_USE_SOFT_IIC // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7> <20><>ɫ<EFBFBD>ҵľ<D2B5><C4BE><EFBFBD>û<EFBFBD><C3BB><EFBFBD>õ<EFBFBD>
|
||||
//====================================================<3D><><EFBFBD><EFBFBD> IIC <20><><EFBFBD><EFBFBD>====================================================
|
||||
#define IMU963RA_SOFT_IIC_DELAY (59 ) // <20><><EFBFBD><EFBFBD> IIC <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD> <20><>ֵԽС IIC ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD>
|
||||
#define IMU963RA_SOFT_IIC_DELAY (59) // <20><><EFBFBD><EFBFBD> IIC <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD> <20><>ֵԽС IIC ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD>
|
||||
#define IMU963RA_SCL_PIN (P20_11) // <20><><EFBFBD><EFBFBD> IIC SCL <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> IMU963RA <20><> SCL <20><><EFBFBD><EFBFBD>
|
||||
#define IMU963RA_SDA_PIN (P20_14) // <20><><EFBFBD><EFBFBD> IIC SDA <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> IMU963RA <20><> SDA <20><><EFBFBD><EFBFBD>
|
||||
//====================================================<3D><><EFBFBD><EFBFBD> IIC <20><><EFBFBD><EFBFBD>====================================================
|
||||
|
||||
@@ -104,10 +104,10 @@
|
||||
//D4-D7<44>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD><C5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>B0-B3,B1-B4<42>ȵȡ<C8B5>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD>ͬ<EFBFBD>˿ڵ<CBBF><DAB5><EFBFBD>˼<EFBFBD><CBBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>D0-D3<44><33>C1-C4<43><34><EFBFBD>ӣ<EFBFBD>D4-D7<44><37>B2-B5<42><35><EFBFBD>ӡ<EFBFBD>
|
||||
//<2F>л<EFBFBD><D0BB><EFBFBD><EFBFBD>ź<EFBFBD>ע<EFBFBD><D7A2><EFBFBD><EFBFBD>IPS200_DATA_PORT1<54><31>IPS200_DATA_PORT2<54>궨<EFBFBD><EAB6A8>
|
||||
#define IPS200_D0_PIN_PARALLEL8 (P11_9 ) // (<28><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>)Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>D0
|
||||
#define IPS200_D1_PIN_PARALLEL8 (P11_10) // (<28><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>)Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>D1
|
||||
#define IPS200_D2_PIN_PARALLEL8 (P11_11) // (<28><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>)Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>D2
|
||||
#define IPS200_D3_PIN_PARALLEL8 (P11_12) // (<28><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>)Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>D3
|
||||
#define IPS200_D0_PIN_PARALLEL8 (P02_0 ) // (<28><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>)Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>D0
|
||||
#define IPS200_D1_PIN_PARALLEL8 (P02_1) // (<28><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>)Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>D1
|
||||
#define IPS200_D2_PIN_PARALLEL8 (P02_2) // (<28><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>)Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>D2
|
||||
#define IPS200_D3_PIN_PARALLEL8 (P02_3) // (<28><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>)Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>D3
|
||||
#define IPS200_D4_PIN_PARALLEL8 (P13_0 ) // (<28><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>)Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>D4
|
||||
#define IPS200_D5_PIN_PARALLEL8 (P13_1 ) // (<28><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>)Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>D5
|
||||
#define IPS200_D6_PIN_PARALLEL8 (P13_2 ) // (<28><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>)Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>D6
|
||||
|
||||
@@ -347,9 +347,9 @@ uint8 ips200pro_set_backlight (uint8 backlight);
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> dir <20><><EFBFBD><EFBFBD>1-255
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> dir <20><>Ļ<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> uint8 ״̬ 0<><30><EFBFBD><EFBFBD><EFBFBD>óɹ<C3B3> 1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> ips200pro_set_backlight(100); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ100
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> ips200pro_set_direction(IPS200PRO_PORTRAIT); // <20><><EFBFBD><EFBFBD>ģʽ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint8 ips200pro_set_direction (ips200pro_display_direction_enum dir);
|
||||
|
||||
@@ -388,7 +388,7 @@ uint8 ips200pro_get_date (ips200pro_time_struct *time);
|
||||
uint8 ips200pro_get_time (ips200pro_time_struct *time);
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ջ<EFBFBD><EFBFBD>С
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȡϵͳ<EFBFBD><EFBFBD>Ϣ
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> *information <20><><EFBFBD><EFBFBD>ϵͳ<CFB5><CDB3>Ϣ<EFBFBD><CFA2>ָ<EFBFBD><D6B8>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> uint8 ״̬ 0<><30><EFBFBD><EFBFBD><EFBFBD>óɹ<C3B3> 1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> ips200pro_get_information(&ips200pro_information); //
|
||||
@@ -396,7 +396,7 @@ uint8 ips200pro_get_time (ips200pro_time_struct *time);
|
||||
uint8 ips200pro_get_information (ips200pro_information_struct *information);
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȡϵͳ<EFBFBD><EFBFBD>Ϣ
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ջ<EFBFBD><EFBFBD>С
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> *stack_size <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ջ<EFBFBD><D5BB>С<EFBFBD><D0A1>ָ<EFBFBD><D6B8>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> uint8 ״̬ 0<><30><EFBFBD><EFBFBD><EFBFBD>óɹ<C3B3> 1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> ips200pro_get_free_stack_size(&stack_size); //
|
||||
|
||||
@@ -1,209 +0,0 @@
|
||||
/*********************************************************************************************************************
|
||||
* TC264 Opensourec Library <20><><EFBFBD><EFBFBD>TC264 <20><>Դ<EFBFBD>⣩<EFBFBD><E2A3A9>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ڹٷ<DAB9> SDK <20>ӿڵĵ<DAB5><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4>
|
||||
* Copyright (c) 2022 SEEKFREE <20><><EFBFBD>ɿƼ<C9BF>
|
||||
*
|
||||
* <20><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD> TC264 <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
|
||||
*
|
||||
* TC264 <20><>Դ<EFBFBD><D4B4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* <20><><EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD><D4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᷢ<EFBFBD><E1B7A2><EFBFBD><EFBFBD> GPL<50><4C>GNU General Public License<73><65><EFBFBD><EFBFBD> GNUͨ<55>ù<EFBFBD><C3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* <20><> GPL <20>ĵ<EFBFBD>3<EFBFBD>棨<EFBFBD><E6A3A8> GPL3.0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD>κκ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>İ汾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><DEB8><EFBFBD>
|
||||
*
|
||||
* <20><><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD><EFBFBD><EFBFBD>ܷ<EFBFBD><DCB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κεı<CEB5>֤
|
||||
* <20><><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ի<EFBFBD><D4BB>ʺ<EFBFBD><CABA>ض<EFBFBD><D8B6><EFBFBD>;<EFBFBD>ı<EFBFBD>֤
|
||||
* <20><><EFBFBD><EFBFBD>ϸ<EFBFBD><CFB8><EFBFBD><EFBFBD><EFBFBD>μ<EFBFBD> GPL
|
||||
*
|
||||
* <20><>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>ͬʱ<CDAC>յ<EFBFBD>һ<EFBFBD><D2BB> GPL <20>ĸ<EFBFBD><C4B8><EFBFBD>
|
||||
* <20><><EFBFBD><EFBFBD>û<EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><https://www.gnu.org/licenses/>
|
||||
*
|
||||
* <20><><EFBFBD><EFBFBD>ע<EFBFBD><D7A2><EFBFBD><EFBFBD>
|
||||
* <20><><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4>ʹ<EFBFBD><CAB9> GPL3.0 <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>֤Э<D6A4><D0AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>İ汾
|
||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӣ<EFBFBD>İ<EFBFBD><C4B0><EFBFBD> libraries/doc <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>µ<EFBFBD> GPL3_permission_statement.txt <20>ļ<EFBFBD><C4BC><EFBFBD>
|
||||
* <20><><EFBFBD><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> libraries <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>µ<EFBFBD> LICENSE <20>ļ<EFBFBD>
|
||||
* <20><>ӭ<EFBFBD><D3AD>λʹ<CEBB>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>뱣<EFBFBD><EBB1A3><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC>İ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
*
|
||||
* <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> zf_device_mt9v03x
|
||||
* <20><>˾<EFBFBD><CBBE><EFBFBD><EFBFBD> <20>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD><EFBFBD>˾
|
||||
* <20>汾<EFBFBD><E6B1BE>Ϣ <20>鿴 libraries/doc <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> version <20>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
|
||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ADS v1.10.2
|
||||
* <20><><EFBFBD><EFBFBD>ƽ̨ TC264D
|
||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> https://seekfree.taobao.com/
|
||||
*
|
||||
* <20>ļ<DEB8>¼
|
||||
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
|
||||
* 2022-09-15 pudding first version
|
||||
* 2023-04-28 pudding <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2>˵<EFBFBD><CBB5>
|
||||
********************************************************************************************************************/
|
||||
/*********************************************************************************************************************
|
||||
* <20><><EFBFBD>߶<EFBFBD><DFB6>壺
|
||||
* ------------------------------------
|
||||
* ģ<><C4A3><EFBFBD>ܽ<EFBFBD> <20><>Ƭ<EFBFBD><C6AC><EFBFBD>ܽ<EFBFBD>
|
||||
* TXD <20>鿴 zf_device_mt9v03x.h <20><> MT9V03X_COF_UART_TX <20>궨<EFBFBD><EAB6A8>
|
||||
* RXD <20>鿴 zf_device_mt9v03x.h <20><> MT9V03X_COF_UART_RX <20>궨<EFBFBD><EAB6A8>
|
||||
* PCLK <20>鿴 zf_device_mt9v03x.h <20><> MT9V03X_PCLK_PIN <20>궨<EFBFBD><EAB6A8>
|
||||
* VSY <20>鿴 zf_device_mt9v03x.h <20><> MT9V03X_VSYNC_PIN <20>궨<EFBFBD><EAB6A8>
|
||||
* D0-D7 <20>鿴 zf_device_mt9v03x.h <20><> MT9V03X_DATA_PIN <20>궨<EFBFBD><EAB6A8> <20>Ӹö<D3B8><C3B6>忪ʼ<E5BFAA><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˸<EFBFBD><CBB8><EFBFBD><EFBFBD><EFBFBD>
|
||||
* VCC 3.3V<EFBFBD><EFBFBD>Դ
|
||||
* GND <20><>Դ<EFBFBD><D4B4>
|
||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* ------------------------------------
|
||||
********************************************************************************************************************/
|
||||
|
||||
#include "zf_common_interrupt.h"
|
||||
#include "zf_common_debug.h"
|
||||
#include "zf_common_fifo.h"
|
||||
#include "zf_driver_soft_iic.h"
|
||||
#include "zf_driver_delay.h"
|
||||
#include "zf_driver_dma.h"
|
||||
#include "zf_driver_exti.h"
|
||||
#include "zf_driver_gpio.h"
|
||||
#include "zf_device_camera.h"
|
||||
#include "zf_device_config.h"
|
||||
#include "isr_config.h"
|
||||
#include "zf_device_mt9v03x2.h"
|
||||
#include "zf_device_mt9v03x.h"
|
||||
|
||||
vuint8 mt9v03x_finish_flag = 0; // һ<><D2BB>ͼ<EFBFBD><CDBC><EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD>ɱ<EFBFBD>־λ
|
||||
IFX_ALIGN(4) uint8 mt9v03x_image[MT9V03X_H][MT9V03X_W]; // <20><><EFBFBD><EFBFBD>4<EFBFBD>ֽڶ<D6BD><DAB6><EFBFBD>
|
||||
|
||||
static m9v03x_type_enum mt9v03x_type; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD>
|
||||
|
||||
int16 timeout = MT9V03X_INIT_TIMEOUT; // <20><><EFBFBD>峬ʱ<E5B3AC><CAB1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
|
||||
uint8 mt9v03x_lost_flag = 1; // ͼ<><CDBC><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>־λ
|
||||
uint8 mt9v03x_dma_int_num; // <20><>ǰDMA<4D>жϴ<D0B6><CFB4><EFBFBD>
|
||||
uint8 mt9v03x_dma_init_flag; // <20>Ƿ<EFBFBD><C7B7><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>³<EFBFBD>ʼ<EFBFBD><CABC>
|
||||
uint8 mt9v03x_link_list_num;
|
||||
|
||||
int16 mt9v03x_dma_run_flag = 0;
|
||||
uint8 mt9v03x_init_flag = 0;
|
||||
// <20><>Ҫ<EFBFBD><D2AA><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IJ<DEB8><C4B2><EFBFBD>
|
||||
static int16 mt9v03x_set_confing_buffer[MT9V03X_CONFIG_FINISH][2]=
|
||||
{
|
||||
{MT9V03X_INIT, 0}, // <20><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>ʼ<EFBFBD><CABC>ʼ<EFBFBD><CABC>
|
||||
{MT9V03X_AUTO_EXP, MT9V03X_AUTO_EXP_DEF}, // <20>Զ<EFBFBD><D4B6>ع<EFBFBD><D8B9><EFBFBD><EFBFBD><EFBFBD> <20><>Χ1-63 0Ϊ<30>ر<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6>ع<D8B9><E2BFAA> EXP_TIME<4D><45><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD>ݽ<EFBFBD><DDBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD>ʱ<EFBFBD>䣬Ҳ<E4A3AC><D2B2><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6>ع<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{MT9V03X_EXP_TIME, MT9V03X_EXP_TIME_DEF}, // <20>ع<EFBFBD>ʱ<EFBFBD><CAB1> <20><><EFBFBD><EFBFBD>ͷ<EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD>ʱ<EFBFBD>䣬<EFBFBD><E4A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ù<EFBFBD><C3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD>ֵ
|
||||
{MT9V03X_FPS, MT9V03X_FPS_DEF}, // ͼ<><CDBC>֡<EFBFBD><D6A1> <20><><EFBFBD><EFBFBD>ͷ<EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>FPS<50><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>FPS
|
||||
{MT9V03X_SET_COL, MT9V03X_W}, // ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>Χ1-752
|
||||
{MT9V03X_SET_ROW, MT9V03X_H}, // ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>Χ1-480
|
||||
{MT9V03X_LR_OFFSET, MT9V03X_LR_OFFSET_DEF}, // ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD> <20><>ֵ <20><>ƫ<EFBFBD><C6AB> <20><>ֵ <20><>ƫ<EFBFBD><C6AB> <20><>Ϊ188 376 752ʱ<32><EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB> <20><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD><EFBFBD>ݺ<EFBFBD><DDBA><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB>
|
||||
{MT9V03X_UD_OFFSET, MT9V03X_UD_OFFSET_DEF}, // ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD> <20><>ֵ <20><>ƫ<EFBFBD><C6AB> <20><>ֵ <20><>ƫ<EFBFBD><C6AB> <20><>Ϊ120 240 480ʱ<30><EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB> <20><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD><EFBFBD>ݺ<EFBFBD><DDBA><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB>
|
||||
{MT9V03X_GAIN, MT9V03X_GAIN_DEF}, // ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>Χ16-64 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>̶<EFBFBD><CCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¸ı<C2B8>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̶<EFBFBD>
|
||||
{MT9V03X_PCLK_MODE, MT9V03X_PCLK_MODE_DEF}, // <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>ģʽ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>MT9V034 V2.0<EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϰ汾֧<EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
};
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MT9V03X<33><58><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>ж<EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> void
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> mt9v03x_vsync_handler();
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
static void mt9v03x_vsync_handler(void)
|
||||
{
|
||||
exti_flag_clear(MT9V03X_VSYNC_PIN);
|
||||
|
||||
if ((mt9v03x2_dma_run_flag == 1) && (mt9v03x2_init_flag)) // <20><>ʱ<EFBFBD>ɼ<EFBFBD>
|
||||
{
|
||||
|
||||
return ;
|
||||
}
|
||||
mt9v03x_dma_int_num = 0;
|
||||
if(mt9v03x_dma_init_flag )
|
||||
{
|
||||
mt9v03x_dma_init_flag = 0;
|
||||
IfxDma_resetChannel(&MODULE_DMA, MT9V03X_DMA_CH);
|
||||
mt9v03x_link_list_num = dma_init(MT9V03X_DMA_CH,
|
||||
MT9V03X_DATA_ADD,
|
||||
mt9v03x_image[0],
|
||||
MT9V03X_PCLK_PIN,
|
||||
EXTI_TRIGGER_FALLING,
|
||||
MT9V03X_IMAGE_SIZE,
|
||||
DMA_INT_PRIO); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>300M <20><><EFBFBD><EFBFBD><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΪFALLING
|
||||
dma_enable(MT9V03X_DMA_CH);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(1 == mt9v03x_link_list_num)
|
||||
{
|
||||
dma_set_destination(MT9V03X_DMA_CH, mt9v03x_image[0]); // û<>в<EFBFBD><D0B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӵ<EFBFBD><D3B4><EFBFBD>ģʽ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD>ĵ<EFBFBD>ַ
|
||||
}
|
||||
dma_enable(MT9V03X_DMA_CH);
|
||||
|
||||
}
|
||||
|
||||
mt9v03x_lost_flag = 1;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MT9V03X<33><58><EFBFBD><EFBFBD>ͷDMA<4D><41><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> void
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> mt9v03x_dma_handler();
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
static void mt9v03x_dma_handler(void)
|
||||
{
|
||||
|
||||
|
||||
clear_dma_flag(MT9V03X_DMA_CH);
|
||||
|
||||
if(IfxDma_getChannelTransactionRequestLost(&MODULE_DMA, MT9V03X_DMA_CH)) // ͼ<><CDBC><EFBFBD><EFBFBD>λ<EFBFBD>ж<EFBFBD>
|
||||
{
|
||||
mt9v03x_finish_flag = 0;
|
||||
dma_disable(MT9V03X_DMA_CH);
|
||||
IfxDma_clearChannelTransactionRequestLost(&MODULE_DMA, MT9V03X_DMA_CH);
|
||||
mt9v03x_dma_init_flag = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
mt9v03x_dma_int_num++;
|
||||
if(mt9v03x_dma_int_num >= mt9v03x_link_list_num)
|
||||
{
|
||||
// <20>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
// һ<><D2BB>ͼ<EFBFBD><CDBC><EFBFBD>Ӳɼ<D3B2><C9BC><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ3.8MS<EFBFBD><EFBFBD><EFBFBD><EFBFBD>(50FPS<50><53>188*120<32>ֱ<EFBFBD><D6B1><EFBFBD>)
|
||||
mt9v03x_dma_int_num = 0;
|
||||
mt9v03x_lost_flag = 0;
|
||||
mt9v03x_finish_flag = 1;
|
||||
|
||||
|
||||
mt9v03x_dma_run_flag = 0;
|
||||
mt9v03x2_dma_run_flag = 1;
|
||||
dma_disable(MT9V03X_DMA_CH);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MT9V03X <20><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>ʼ<EFBFBD><CABC>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> void
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> uint8 1-ʧ<><CAA7> 0-<2D>ɹ<EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> zf_log(mt9v03x_init(), "mt9v03x init error");
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint8 mt9v03x_init (void)
|
||||
{
|
||||
uint8 return_state = 0;
|
||||
soft_iic_info_struct mt9v03x_iic_struct;
|
||||
do
|
||||
{
|
||||
system_delay_ms(200);
|
||||
// <20><><EFBFBD>ȳ<EFBFBD><C8B3><EFBFBD>SCCBͨѶ
|
||||
mt9v03x_type = MT9V03X_SCCB;
|
||||
set_camera_type(CAMERA_GRAYSCALE, mt9v03x_vsync_handler, mt9v03x_dma_handler, NULL);
|
||||
soft_iic_init(&mt9v03x_iic_struct, 0, MT9V03X_COF_IIC_DELAY, MT9V03X_COF_IIC_SCL, MT9V03X_COF_IIC_SDA);
|
||||
if(mt9v03x_set_config_sccb(&mt9v03x_iic_struct, mt9v03x_set_confing_buffer))
|
||||
{
|
||||
// SCCBͨѶʧ<D1B6><CAA7>
|
||||
zf_log(0, "MT9V03X set sccb error.");
|
||||
return_state = 1;
|
||||
break;
|
||||
}
|
||||
mt9v03x_link_list_num = camera_init(MT9V03X_DATA_ADD, mt9v03x_image[0], MT9V03X_IMAGE_SIZE);
|
||||
}while(0);
|
||||
|
||||
mt9v03x_init_flag = 1;
|
||||
return return_state;
|
||||
}
|
||||
|
||||
@@ -1,141 +0,0 @@
|
||||
/*********************************************************************************************************************
|
||||
* TC264 Opensourec Library <20><><EFBFBD><EFBFBD>TC264 <20><>Դ<EFBFBD>⣩<EFBFBD><E2A3A9>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ڹٷ<DAB9> SDK <20>ӿڵĵ<DAB5><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4>
|
||||
* Copyright (c) 2022 SEEKFREE <20><><EFBFBD>ɿƼ<C9BF>
|
||||
*
|
||||
* <20><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD> TC264 <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
|
||||
*
|
||||
* TC264 <20><>Դ<EFBFBD><D4B4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* <20><><EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD><D4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᷢ<EFBFBD><E1B7A2><EFBFBD><EFBFBD> GPL<50><4C>GNU General Public License<73><65><EFBFBD><EFBFBD> GNUͨ<55>ù<EFBFBD><C3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* <20><> GPL <20>ĵ<EFBFBD>3<EFBFBD>棨<EFBFBD><E6A3A8> GPL3.0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD>κκ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>İ汾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><DEB8><EFBFBD>
|
||||
*
|
||||
* <20><><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD><EFBFBD><EFBFBD>ܷ<EFBFBD><DCB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κεı<CEB5>֤
|
||||
* <20><><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ի<EFBFBD><D4BB>ʺ<EFBFBD><CABA>ض<EFBFBD><D8B6><EFBFBD>;<EFBFBD>ı<EFBFBD>֤
|
||||
* <20><><EFBFBD><EFBFBD>ϸ<EFBFBD><CFB8><EFBFBD><EFBFBD><EFBFBD>μ<EFBFBD> GPL
|
||||
*
|
||||
* <20><>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>ͬʱ<CDAC>յ<EFBFBD>һ<EFBFBD><D2BB> GPL <20>ĸ<EFBFBD><C4B8><EFBFBD>
|
||||
* <20><><EFBFBD><EFBFBD>û<EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><https://www.gnu.org/licenses/>
|
||||
*
|
||||
* <20><><EFBFBD><EFBFBD>ע<EFBFBD><D7A2><EFBFBD><EFBFBD>
|
||||
* <20><><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4>ʹ<EFBFBD><CAB9> GPL3.0 <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>֤Э<D6A4><D0AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>İ汾
|
||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӣ<EFBFBD>İ<EFBFBD><C4B0><EFBFBD> libraries/doc <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>µ<EFBFBD> GPL3_permission_statement.txt <20>ļ<EFBFBD><C4BC><EFBFBD>
|
||||
* <20><><EFBFBD><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> libraries <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>µ<EFBFBD> LICENSE <20>ļ<EFBFBD>
|
||||
* <20><>ӭ<EFBFBD><D3AD>λʹ<CEBB>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>뱣<EFBFBD><EBB1A3><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC>İ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
*
|
||||
* <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> zf_device_mt9v03x
|
||||
* <20><>˾<EFBFBD><CBBE><EFBFBD><EFBFBD> <20>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD><EFBFBD>˾
|
||||
* <20>汾<EFBFBD><E6B1BE>Ϣ <20>鿴 libraries/doc <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> version <20>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
|
||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ADS v1.10.2
|
||||
* <20><><EFBFBD><EFBFBD>ƽ̨ TC264D
|
||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> https://seekfree.taobao.com/
|
||||
*
|
||||
* <20>ļ<DEB8>¼
|
||||
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
|
||||
* 2025-04-28 JKS first version
|
||||
********************************************************************************************************************/
|
||||
/*********************************************************************************************************************
|
||||
* <20><><EFBFBD>߶<EFBFBD><DFB6>壺
|
||||
* ------------------------------------
|
||||
* ģ<><C4A3><EFBFBD>ܽ<EFBFBD> <20><>Ƭ<EFBFBD><C6AC><EFBFBD>ܽ<EFBFBD>
|
||||
* TXD <20>鿴 zf_device_mt9v03x.h <20><> MT9V03X_COF_IIC_SCL <20>궨<EFBFBD><EAB6A8>
|
||||
* RXD <20>鿴 zf_device_mt9v03x.h <20><> MT9V03X_COF_IIC_SDA <20>궨<EFBFBD><EAB6A8>
|
||||
* PCLK <20>鿴 zf_device_mt9v03x.h <20><> MT9V03X_PCLK_PIN <20>궨<EFBFBD><EAB6A8>
|
||||
* VSY <20>鿴 zf_device_mt9v03x.h <20><> MT9V03X_VSYNC_PIN <20>궨<EFBFBD><EAB6A8>
|
||||
* D0-D7 <20>鿴 zf_device_mt9v03x.h <20><> MT9V03X_DATA_PIN <20>궨<EFBFBD><EAB6A8> <20>Ӹö<D3B8><C3B6>忪ʼ<E5BFAA><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˸<EFBFBD><CBB8><EFBFBD><EFBFBD><EFBFBD>
|
||||
* VCC 3.3V<EFBFBD><EFBFBD>Դ
|
||||
* GND <20><>Դ<EFBFBD><D4B4>
|
||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* ------------------------------------
|
||||
********************************************************************************************************************/
|
||||
|
||||
#ifndef _zf_device_mt9v03x_h_
|
||||
#define _zf_device_mt9v03x_h_
|
||||
|
||||
#include "zf_common_typedef.h"
|
||||
#include "zf_device_type.h"
|
||||
|
||||
//================================================<3D><><EFBFBD><EFBFBD> MT9V03X <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>================================================
|
||||
#define MT9V03X_COF_IIC_DELAY (800) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IIC <20><>ʱ
|
||||
#define MT9V03X_COF_IIC_SCL (P33_13) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IIC-SCL <20><><EFBFBD><EFBFBD>
|
||||
#define MT9V03X_COF_IIC_SDA (P32_4) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IIC-SDA <20><><EFBFBD><EFBFBD>
|
||||
|
||||
#define MT9V03X_DMA_CH (IfxDma_ChannelId_7)
|
||||
|
||||
#define MT9V03X_PCLK_PIN (ERU_CH1_REQ10_P14_3) // PCLK <20><><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD> TIM_ETR <20><><EFBFBD>Ž<EFBFBD>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
#define MT9V03X_VSYNC_PIN (ERU_CH4_REQ8_P33_7) // <20><><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
#define MT9V03X_DATA_PIN (P00_0) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ֻ<><D6BB><EFBFBD><EFBFBD> GPIOx0 <20><><EFBFBD><EFBFBD> GPIOx8 <20><>ʼ <20><><EFBFBD><EFBFBD><EFBFBD>˸<EFBFBD><CBB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> P00_0-P00_7
|
||||
#define MT9V03X_DATA_ADD (get_port_in_addr(MT9V03X_DATA_PIN))
|
||||
|
||||
#define MT9V03X_INIT_TIMEOUT (0x0080) // Ĭ<>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ʱʱ<CAB1><CAB1> <20><><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>λ
|
||||
//================================================<3D><><EFBFBD><EFBFBD> MT9V03X <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>================================================
|
||||
|
||||
|
||||
//================================================<3D><><EFBFBD><EFBFBD> MT9V03X <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>================================================
|
||||
#define MT9V03X_W (188) // ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>Χ [1-752]
|
||||
#define MT9V03X_H (120) // ͼ<><CDBC><EFBFBD>߶<EFBFBD> <20><>Χ [1-480]
|
||||
|
||||
#define MT9V03X_IMAGE_SIZE (MT9V03X_W * MT9V03X_H) // <20><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD>ܳ<EFBFBD><DCB3><EFBFBD> 65535
|
||||
|
||||
#define MT9V03X_AUTO_EXP_DEF ( 0 ) // <20>Զ<EFBFBD><D4B6>ع<EFBFBD><D8B9><EFBFBD><EFBFBD><EFBFBD> Ĭ<>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6>ع<EFBFBD><D8B9><EFBFBD><EFBFBD><EFBFBD> <20><>Χ [0-63] 0Ϊ<30>ر<EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6>ع<D8B9><E2BFAA> EXP_TIME<4D><45><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6>ع<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// һ<><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Dz<EFBFBD><C7B2><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6>ع<EFBFBD><D8B9><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߷dz<DFB7><C7B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȵ<EFBFBD><C8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Գ<EFBFBD><D4B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6>ع⣬<D8B9><E2A3AC><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD>ȶ<EFBFBD><C8B6><EFBFBD>
|
||||
#define MT9V03X_EXP_TIME_DEF ( 512 ) // <20>ع<EFBFBD>ʱ<EFBFBD><CAB1> <20><><EFBFBD><EFBFBD>ͷ<EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD>ʱ<EFBFBD>䣬<EFBFBD><E4A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ù<EFBFBD><C3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD>ֵ
|
||||
#define MT9V03X_FPS_DEF ( 50 ) // ͼ<><CDBC>֡<EFBFBD><D6A1> <20><><EFBFBD><EFBFBD>ͷ<EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>FPS<50><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>FPS
|
||||
#define MT9V03X_LR_OFFSET_DEF ( 0 ) // ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD> <20><>ֵ <20><>ƫ<EFBFBD><C6AB> <20><>ֵ <20><>ƫ<EFBFBD><C6AB> <20><>Ϊ188 376 752ʱ<32><EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB>
|
||||
// <20><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD><EFBFBD>ݺ<EFBFBD><DDBA><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB>
|
||||
#define MT9V03X_UD_OFFSET_DEF ( 0 ) // ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD> <20><>ֵ <20><>ƫ<EFBFBD><C6AB> <20><>ֵ <20><>ƫ<EFBFBD><C6AB> <20><>Ϊ120 240 480ʱ<30><EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB>
|
||||
// <20><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD><EFBFBD>ݺ<EFBFBD><DDBA><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB>
|
||||
#define MT9V03X_GAIN_DEF ( 32 ) // ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>Χ [16-64] <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>̶<EFBFBD><CCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¸ı<C2B8>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̶<EFBFBD>
|
||||
#define MT9V03X_PCLK_MODE_DEF ( 0 ) // <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>ģʽ <20><>Χ [0-1] Ĭ<>ϣ<EFBFBD>0 <20><>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>[0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>,1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>]
|
||||
// ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ0<CEAA><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>CH32V307<30><37>DVP<56>ӿڻ<D3BF>STM32<33><32>DCMI<4D>ӿڲɼ<DAB2><C9BC><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>Ϊ1
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MT9V034 V1.5 <20>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD>ϰ汾֧<E6B1BE>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>
|
||||
//================================================<3D><><EFBFBD><EFBFBD> MT9V03X <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>================================================
|
||||
|
||||
|
||||
//================================================<3D><><EFBFBD><EFBFBD> MT9V03X <20><><EFBFBD><EFBFBD><EFBFBD>ṹ<EFBFBD><E1B9B9>===============================================
|
||||
typedef enum
|
||||
{
|
||||
MT9V03X_INIT = 0, // <20><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MT9V03X_AUTO_EXP, // <20>Զ<EFBFBD><D4B6>ع<EFBFBD><D8B9><EFBFBD><EFBFBD><EFBFBD>
|
||||
MT9V03X_EXP_TIME, // <20>ع<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MT9V03X_FPS, // <20><><EFBFBD><EFBFBD>ͷ֡<CDB7><D6A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MT9V03X_SET_COL, // ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MT9V03X_SET_ROW, // ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MT9V03X_LR_OFFSET, // ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MT9V03X_UD_OFFSET, // ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MT9V03X_GAIN, // ͼ<><CDBC>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MT9V03X_PCLK_MODE, // <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>ģʽ<C4A3><CABD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>MT9V034 V1.5<EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϰ汾֧<EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
MT9V03X_CONFIG_FINISH, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>ռλ<D5BC><CEBB><EFBFBD><EFBFBD>
|
||||
|
||||
MT9V03X_COLOR_GET_WHO_AM_I = 0xEF,
|
||||
MT9V03X_SET_EXP_TIME = 0XF0, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MT9V03X_GET_STATUS, // <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MT9V03X_GET_VERSION, // <20>̼<EFBFBD><CCBC>汾<EFBFBD><E6B1BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
MT9V03X_SET_ADDR = 0XFE, // <20>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>
|
||||
MT9V03X_SET_DATA // <20>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}m9v03x_cmd_enum;
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>ͷ<EFBFBD>ӿ<EFBFBD><D3BF><EFBFBD><EFBFBD><EFBFBD>ö<EFBFBD><C3B6>
|
||||
typedef enum
|
||||
{
|
||||
MT9V03X_UART, // ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ò<EFBFBD><C3B2><EFBFBD>
|
||||
MT9V03X_SCCB, // ͨ<><CDA8>SCCB<43><42><EFBFBD>ò<EFBFBD><C3B2><EFBFBD>
|
||||
}m9v03x_type_enum;
|
||||
//================================================<3D><><EFBFBD><EFBFBD> MT9V03X <20><><EFBFBD><EFBFBD><EFBFBD>ṹ<EFBFBD><E1B9B9>===============================================
|
||||
|
||||
|
||||
//================================================<3D><><EFBFBD><EFBFBD> MT9V03X ȫ<>ֱ<EFBFBD><D6B1><EFBFBD>================================================
|
||||
extern vuint8 mt9v03x_finish_flag; // һ<><D2BB>ͼ<EFBFBD><CDBC><EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD>ɱ<EFBFBD>־λ
|
||||
extern uint8 mt9v03x_image[MT9V03X_H][MT9V03X_W]; // ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD>
|
||||
extern int16 mt9v03x_dma_run_flag;
|
||||
extern uint8 mt9v03x_init_flag;
|
||||
//================================================<3D><><EFBFBD><EFBFBD> MT9V03X ȫ<>ֱ<EFBFBD><D6B1><EFBFBD>================================================
|
||||
|
||||
|
||||
//================================================<3D><><EFBFBD><EFBFBD> MT9V03X <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>================================================
|
||||
uint8 mt9v03x_init (void); // MT9V03X <20><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>ʼ<EFBFBD><CABC>
|
||||
//================================================<3D><><EFBFBD><EFBFBD> MT9V03X <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>================================================
|
||||
|
||||
#endif
|
||||
@@ -1,214 +0,0 @@
|
||||
/*********************************************************************************************************************
|
||||
* TC264 Opensourec Library <20><><EFBFBD><EFBFBD>TC264 <20><>Դ<EFBFBD>⣩<EFBFBD><E2A3A9>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ڹٷ<DAB9> SDK <20>ӿڵĵ<DAB5><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4>
|
||||
* Copyright (c) 2022 SEEKFREE <20><><EFBFBD>ɿƼ<C9BF>
|
||||
*
|
||||
* <20><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD> TC264 <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
|
||||
*
|
||||
* TC264 <20><>Դ<EFBFBD><D4B4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* <20><><EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD><D4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᷢ<EFBFBD><E1B7A2><EFBFBD><EFBFBD> GPL<50><4C>GNU General Public License<73><65><EFBFBD><EFBFBD> GNUͨ<55>ù<EFBFBD><C3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* <20><> GPL <20>ĵ<EFBFBD>3<EFBFBD>棨<EFBFBD><E6A3A8> GPL3.0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD>κκ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>İ汾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><DEB8><EFBFBD>
|
||||
*
|
||||
* <20><><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD><EFBFBD><EFBFBD>ܷ<EFBFBD><DCB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κεı<CEB5>֤
|
||||
* <20><><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ի<EFBFBD><D4BB>ʺ<EFBFBD><CABA>ض<EFBFBD><D8B6><EFBFBD>;<EFBFBD>ı<EFBFBD>֤
|
||||
* <20><><EFBFBD><EFBFBD>ϸ<EFBFBD><CFB8><EFBFBD><EFBFBD><EFBFBD>μ<EFBFBD> GPL
|
||||
*
|
||||
* <20><>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>ͬʱ<CDAC>յ<EFBFBD>һ<EFBFBD><D2BB> GPL <20>ĸ<EFBFBD><C4B8><EFBFBD>
|
||||
* <20><><EFBFBD><EFBFBD>û<EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><https://www.gnu.org/licenses/>
|
||||
*
|
||||
* <20><><EFBFBD><EFBFBD>ע<EFBFBD><D7A2><EFBFBD><EFBFBD>
|
||||
* <20><><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4>ʹ<EFBFBD><CAB9> GPL3.0 <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>֤Э<D6A4><D0AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>İ汾
|
||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӣ<EFBFBD>İ<EFBFBD><C4B0><EFBFBD> libraries/doc <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>µ<EFBFBD> GPL3_permission_statement.txt <20>ļ<EFBFBD><C4BC><EFBFBD>
|
||||
* <20><><EFBFBD><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> libraries <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>µ<EFBFBD> LICENSE <20>ļ<EFBFBD>
|
||||
* <20><>ӭ<EFBFBD><D3AD>λʹ<CEBB>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>뱣<EFBFBD><EBB1A3><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC>İ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
*
|
||||
* <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> zf_device_mt9v03x2
|
||||
* <20><>˾<EFBFBD><CBBE><EFBFBD><EFBFBD> <20>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD><EFBFBD>˾
|
||||
* <20>汾<EFBFBD><E6B1BE>Ϣ <20>鿴 libraries/doc <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> version <20>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
|
||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ADS v1.10.2
|
||||
* <20><><EFBFBD><EFBFBD>ƽ̨ TC264D
|
||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> https://seekfree.taobao.com/
|
||||
*
|
||||
* <20>ļ<DEB8>¼
|
||||
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
|
||||
* 2022-09-15 pudding first version
|
||||
* 2023-04-28 pudding <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2>˵<EFBFBD><CBB5>
|
||||
********************************************************************************************************************/
|
||||
/*********************************************************************************************************************
|
||||
* <20><><EFBFBD>߶<EFBFBD><DFB6>壺
|
||||
* ------------------------------------
|
||||
* ģ<><C4A3><EFBFBD>ܽ<EFBFBD> <20><>Ƭ<EFBFBD><C6AC><EFBFBD>ܽ<EFBFBD>
|
||||
* TXD <20>鿴 zf_device_mt9v03x2.h <20><> MT9V03X2_COF_UART_TX <20>궨<EFBFBD><EAB6A8>
|
||||
* RXD <20>鿴 zf_device_mt9v03x2.h <20><> MT9V03X2_COF_UART_RX <20>궨<EFBFBD><EAB6A8>
|
||||
* PCLK <20>鿴 zf_device_mt9v03x2.h <20><> MT9V03X2_PCLK_PIN <20>궨<EFBFBD><EAB6A8>
|
||||
* VSY <20>鿴 zf_device_mt9v03x2.h <20><> MT9V03X2_VSYNC_PIN <20>궨<EFBFBD><EAB6A8>
|
||||
* D0-D7 <20>鿴 zf_device_mt9v03x2.h <20><> MT9V03X2_DATA_PIN <20>궨<EFBFBD><EAB6A8> <20>Ӹö<D3B8><C3B6>忪ʼ<E5BFAA><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˸<EFBFBD><CBB8><EFBFBD><EFBFBD><EFBFBD>
|
||||
* VCC 3.3V<EFBFBD><EFBFBD>Դ
|
||||
* GND <20><>Դ<EFBFBD><D4B4>
|
||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* ------------------------------------
|
||||
********************************************************************************************************************/
|
||||
|
||||
|
||||
#include "zf_common_interrupt.h"
|
||||
#include "zf_common_debug.h"
|
||||
#include "zf_common_fifo.h"
|
||||
#include "zf_driver_soft_iic.h"
|
||||
#include "zf_driver_delay.h"
|
||||
#include "zf_driver_dma.h"
|
||||
#include "zf_driver_exti.h"
|
||||
#include "zf_driver_gpio.h"
|
||||
#include "zf_device_camera.h"
|
||||
#include "zf_device_config.h"
|
||||
#include "isr_config.h"
|
||||
#include "zf_device_mt9v03x.h"
|
||||
#include "zf_device_mt9v03x2.h"
|
||||
vuint8 mt9v03x2_finish_flag = 0; // һ<><D2BB>ͼ<EFBFBD><CDBC><EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD>ɱ<EFBFBD>־λ
|
||||
IFX_ALIGN(4) uint8 mt9v03x2_image[MT9V03X2_H][MT9V03X2_W]; // <20><><EFBFBD><EFBFBD>4<EFBFBD>ֽڶ<D6BD><DAB6><EFBFBD>
|
||||
|
||||
static m9v03x2_type_enum mt9v03x2_type; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD>
|
||||
|
||||
int16 timeout_2 = MT9V03X2_INIT_TIMEOUT; // <20><><EFBFBD>峬ʱ<E5B3AC><CAB1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
|
||||
uint8 mt9v03x2_lost_flag = 1; // ͼ<><CDBC><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>־λ
|
||||
uint8 mt9v03x2_dma_int_num; // <20><>ǰDMA<4D>жϴ<D0B6><CFB4><EFBFBD>
|
||||
uint8 mt9v03x2_dma_init_flag; // <20>Ƿ<EFBFBD><C7B7><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>³<EFBFBD>ʼ<EFBFBD><CABC>
|
||||
uint8 mt9v03x2_link_list_num;
|
||||
|
||||
int16 mt9v03x2_dma_run_flag = 1;
|
||||
uint8 mt9v03x2_init_flag = 0;
|
||||
|
||||
// <20><>Ҫ<EFBFBD><D2AA><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IJ<DEB8><C4B2><EFBFBD>
|
||||
static int16 mt9v03x2_set_confing_buffer[MT9V03X2_CONFIG_FINISH][2]=
|
||||
{
|
||||
{MT9V03X2_INIT, 0}, // <20><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>ʼ<EFBFBD><CABC>ʼ<EFBFBD><CABC>
|
||||
{MT9V03X2_AUTO_EXP, MT9V03X2_AUTO_EXP_DEF}, // <20>Զ<EFBFBD><D4B6>ع<EFBFBD><D8B9><EFBFBD><EFBFBD><EFBFBD> <20><>Χ1-63 0Ϊ<30>ر<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6>ع<D8B9><E2BFAA> EXP_TIME<4D><45><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD>ݽ<EFBFBD><DDBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD>ʱ<EFBFBD>䣬Ҳ<E4A3AC><D2B2><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6>ع<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{MT9V03X2_EXP_TIME, MT9V03X2_EXP_TIME_DEF}, // <20>ع<EFBFBD>ʱ<EFBFBD><CAB1> <20><><EFBFBD><EFBFBD>ͷ<EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD>ʱ<EFBFBD>䣬<EFBFBD><E4A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ù<EFBFBD><C3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD>ֵ
|
||||
{MT9V03X2_FPS, MT9V03X2_FPS_DEF}, // ͼ<><CDBC>֡<EFBFBD><D6A1> <20><><EFBFBD><EFBFBD>ͷ<EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>FPS<50><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>FPS
|
||||
{MT9V03X2_SET_COL, MT9V03X2_W}, // ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>Χ1-752
|
||||
{MT9V03X2_SET_ROW, MT9V03X2_H}, // ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>Χ1-480
|
||||
{MT9V03X2_LR_OFFSET, MT9V03X2_LR_OFFSET_DEF}, // ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD> <20><>ֵ <20><>ƫ<EFBFBD><C6AB> <20><>ֵ <20><>ƫ<EFBFBD><C6AB> <20><>Ϊ188 376 752ʱ<32><EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB> <20><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD><EFBFBD>ݺ<EFBFBD><DDBA><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB>
|
||||
{MT9V03X2_UD_OFFSET, MT9V03X2_UD_OFFSET_DEF}, // ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD> <20><>ֵ <20><>ƫ<EFBFBD><C6AB> <20><>ֵ <20><>ƫ<EFBFBD><C6AB> <20><>Ϊ120 240 480ʱ<30><EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB> <20><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD><EFBFBD>ݺ<EFBFBD><DDBA><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB>
|
||||
{MT9V03X2_GAIN, MT9V03X2_GAIN_DEF}, // ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>Χ16-64 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>̶<EFBFBD><CCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¸ı<C2B8>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̶<EFBFBD>
|
||||
{MT9V03X2_PCLK_MODE, MT9V03X2_PCLK_MODE_DEF}, // <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>ģʽ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>MT9V034 V2.0<EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϰ汾֧<EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
};
|
||||
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MT9V03X2<58><32><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>ж<EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> void
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> mt9v03x2_vsync_handler();
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
static void mt9v03x2_vsync_handler(void)
|
||||
{
|
||||
exti_flag_clear(MT9V03X2_VSYNC_PIN);
|
||||
|
||||
if ((mt9v03x_dma_run_flag == 1) && (mt9v03x_init_flag)) // <20><>ʱ<EFBFBD>ɼ<EFBFBD>
|
||||
{
|
||||
return ;
|
||||
}
|
||||
mt9v03x2_dma_int_num = 0;
|
||||
if((mt9v03x2_dma_init_flag))
|
||||
{
|
||||
mt9v03x2_dma_init_flag = 0;
|
||||
IfxDma_resetChannel(&MODULE_DMA, MT9V03X2_DMA_CH);
|
||||
|
||||
mt9v03x2_link_list_num = dma_init(MT9V03X2_DMA_CH,
|
||||
MT9V03X2_DATA_ADD,
|
||||
mt9v03x2_image[0],
|
||||
MT9V03X2_PCLK_PIN,
|
||||
EXTI_TRIGGER_RISING,
|
||||
MT9V03X2_IMAGE_SIZE,
|
||||
DMA_INT_PRIO_2); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>300M <20><><EFBFBD><EFBFBD><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΪFALLING
|
||||
|
||||
dma_enable(MT9V03X2_DMA_CH);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
if(1 == mt9v03x2_link_list_num)
|
||||
{
|
||||
dma_set_destination(MT9V03X2_DMA_CH, mt9v03x2_image[0]); // û<>в<EFBFBD><D0B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӵ<EFBFBD><D3B4><EFBFBD>ģʽ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD>ĵ<EFBFBD>ַ
|
||||
}
|
||||
dma_enable(MT9V03X2_DMA_CH);
|
||||
|
||||
}
|
||||
|
||||
mt9v03x2_lost_flag = 1;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MT9V03X2<58><32><EFBFBD><EFBFBD>ͷDMA<4D><41><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> void
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> mt9v03x2_dma_handler();
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
static void mt9v03x2_dma_handler(void)
|
||||
{
|
||||
|
||||
clear_dma_flag(MT9V03X2_DMA_CH);
|
||||
|
||||
if(IfxDma_getChannelTransactionRequestLost(&MODULE_DMA, MT9V03X2_DMA_CH)) // ͼ<><CDBC><EFBFBD><EFBFBD>λ<EFBFBD>ж<EFBFBD>
|
||||
{
|
||||
mt9v03x2_finish_flag = 0;
|
||||
dma_disable(MT9V03X2_DMA_CH);
|
||||
IfxDma_clearChannelInterrupt(&MODULE_DMA, MT9V03X2_DMA_CH);
|
||||
mt9v03x2_dma_init_flag = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
mt9v03x2_dma_int_num++;
|
||||
if(mt9v03x2_dma_int_num >= mt9v03x2_link_list_num)
|
||||
{
|
||||
// <20>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
// һ<><D2BB>ͼ<EFBFBD><CDBC><EFBFBD>Ӳɼ<D3B2><C9BC><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ3.8MS<EFBFBD><EFBFBD><EFBFBD><EFBFBD>(50FPS<50><53>188*120<32>ֱ<EFBFBD><D6B1><EFBFBD>)
|
||||
mt9v03x2_dma_int_num = 0;
|
||||
mt9v03x2_lost_flag = 0;
|
||||
mt9v03x2_finish_flag = 1;
|
||||
|
||||
|
||||
mt9v03x2_dma_run_flag = 0;
|
||||
mt9v03x_dma_run_flag = 1;
|
||||
dma_disable(MT9V03X2_DMA_CH);
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MT9V03X2 <20><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>ʼ<EFBFBD><CABC>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> void
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> uint8 1-ʧ<><CAA7> 0-<2D>ɹ<EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> zf_log(mt9v03x2_init(), "mt9v03x2 init error");
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint8 mt9v03x2_init (void)
|
||||
{
|
||||
uint8 return_state = 0;
|
||||
soft_iic_info_struct mt9v03x2_iic_struct;
|
||||
do
|
||||
{
|
||||
// system_delay_ms(200);
|
||||
// <20><><EFBFBD>ȳ<EFBFBD><C8B3><EFBFBD>SCCBͨѶ
|
||||
mt9v03x2_type = MT9V03X2_SCCB;
|
||||
set_camera_type_2(CAMERA_GRAYSCALE2, mt9v03x2_vsync_handler, mt9v03x2_dma_handler, NULL);
|
||||
soft_iic_init(&mt9v03x2_iic_struct, 0, MT9V03X2_COF_IIC_DELAY, MT9V03X2_COF_IIC_SCL, MT9V03X2_COF_IIC_SDA);
|
||||
if(mt9v03x_set_config_sccb(&mt9v03x2_iic_struct, mt9v03x2_set_confing_buffer))
|
||||
{
|
||||
// SCCBͨѶʧ<D1B6><CAA7>
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD><CBB6><EFBFBD><EFBFBD><EFBFBD>Ϣ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><>ô<EFBFBD><C3B4><EFBFBD>Ǵ<EFBFBD><C7B4><EFBFBD>ͨ<EFBFBD>ų<EFBFBD><C5B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>˳<EFBFBD><CBB3><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>һ<EFBFBD>½<EFBFBD><C2BD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܾ<EFBFBD><DCBE>ǻ<EFBFBD><C7BB><EFBFBD>
|
||||
zf_log(0, "MT9V03X2 set sccb error.");
|
||||
return_state = 1;
|
||||
break;
|
||||
}
|
||||
mt9v03x2_link_list_num = camera_init_2(MT9V03X2_DATA_ADD, mt9v03x2_image[0], MT9V03X2_IMAGE_SIZE);
|
||||
}while(0);
|
||||
|
||||
mt9v03x2_init_flag = 1;
|
||||
return return_state;
|
||||
}
|
||||
|
||||
@@ -1,141 +0,0 @@
|
||||
/*********************************************************************************************************************
|
||||
* TC264 Opensourec Library <20><><EFBFBD><EFBFBD>TC264 <20><>Դ<EFBFBD>⣩<EFBFBD><E2A3A9>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ڹٷ<DAB9> SDK <20>ӿڵĵ<DAB5><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4>
|
||||
* Copyright (c) 2022 SEEKFREE <20><><EFBFBD>ɿƼ<C9BF>
|
||||
*
|
||||
* <20><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD> TC264 <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
|
||||
*
|
||||
* TC264 <20><>Դ<EFBFBD><D4B4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* <20><><EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD><D4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᷢ<EFBFBD><E1B7A2><EFBFBD><EFBFBD> GPL<50><4C>GNU General Public License<73><65><EFBFBD><EFBFBD> GNUͨ<55>ù<EFBFBD><C3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* <20><> GPL <20>ĵ<EFBFBD>3<EFBFBD>棨<EFBFBD><E6A3A8> GPL3.0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD>κκ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>İ汾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><DEB8><EFBFBD>
|
||||
*
|
||||
* <20><><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD><EFBFBD><EFBFBD>ܷ<EFBFBD><DCB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κεı<CEB5>֤
|
||||
* <20><><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ի<EFBFBD><D4BB>ʺ<EFBFBD><CABA>ض<EFBFBD><D8B6><EFBFBD>;<EFBFBD>ı<EFBFBD>֤
|
||||
* <20><><EFBFBD><EFBFBD>ϸ<EFBFBD><CFB8><EFBFBD><EFBFBD><EFBFBD>μ<EFBFBD> GPL
|
||||
*
|
||||
* <20><>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>ͬʱ<CDAC>յ<EFBFBD>һ<EFBFBD><D2BB> GPL <20>ĸ<EFBFBD><C4B8><EFBFBD>
|
||||
* <20><><EFBFBD><EFBFBD>û<EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><https://www.gnu.org/licenses/>
|
||||
*
|
||||
* <20><><EFBFBD><EFBFBD>ע<EFBFBD><D7A2><EFBFBD><EFBFBD>
|
||||
* <20><><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4>ʹ<EFBFBD><CAB9> GPL3.0 <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>֤Э<D6A4><D0AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>İ汾
|
||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӣ<EFBFBD>İ<EFBFBD><C4B0><EFBFBD> libraries/doc <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>µ<EFBFBD> GPL3_permission_statement.txt <20>ļ<EFBFBD><C4BC><EFBFBD>
|
||||
* <20><><EFBFBD><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> libraries <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>µ<EFBFBD> LICENSE <20>ļ<EFBFBD>
|
||||
* <20><>ӭ<EFBFBD><D3AD>λʹ<CEBB>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>뱣<EFBFBD><EBB1A3><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC>İ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
*
|
||||
* <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> zf_device_mt9v03x2
|
||||
* <20><>˾<EFBFBD><CBBE><EFBFBD><EFBFBD> <20>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD><EFBFBD>˾
|
||||
* <20>汾<EFBFBD><E6B1BE>Ϣ <20>鿴 libraries/doc <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> version <20>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
|
||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ADS v1.10.2
|
||||
* <20><><EFBFBD><EFBFBD>ƽ̨ TC264D
|
||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> https://seekfree.taobao.com/
|
||||
*
|
||||
* <20>ļ<DEB8>¼
|
||||
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
|
||||
* 2025-04-28 JKS first version
|
||||
********************************************************************************************************************/
|
||||
/*********************************************************************************************************************
|
||||
* <20><><EFBFBD>߶<EFBFBD><DFB6>壺
|
||||
* ------------------------------------
|
||||
* ģ<><C4A3><EFBFBD>ܽ<EFBFBD> <20><>Ƭ<EFBFBD><C6AC><EFBFBD>ܽ<EFBFBD>
|
||||
* TXD <20>鿴 zf_device_mt9v03x2.h <20><> MT9V03X2_COF_IIC_SCL <20>궨<EFBFBD><EAB6A8>
|
||||
* RXD <20>鿴 zf_device_mt9v03x2.h <20><> MT9V03X2_COF_IIC_SDA <20>궨<EFBFBD><EAB6A8>
|
||||
* PCLK <20>鿴 zf_device_mt9v03x2.h <20><> MT9V03X2_PCLK_PIN <20>궨<EFBFBD><EAB6A8>
|
||||
* VSY <20>鿴 zf_device_mt9v03x2.h <20><> MT9V03X2_VSYNC_PIN <20>궨<EFBFBD><EAB6A8>
|
||||
* D0-D7 <20>鿴 zf_device_mt9v03x2.h <20><> MT9V03X2_DATA_PIN <20>궨<EFBFBD><EAB6A8> <20>Ӹö<D3B8><C3B6>忪ʼ<E5BFAA><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˸<EFBFBD><CBB8><EFBFBD><EFBFBD><EFBFBD>
|
||||
* VCC 3.3V<EFBFBD><EFBFBD>Դ
|
||||
* GND <20><>Դ<EFBFBD><D4B4>
|
||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* ------------------------------------
|
||||
********************************************************************************************************************/
|
||||
|
||||
#ifndef _zf_device_mt9v03x2_h_
|
||||
#define _zf_device_mt9v03x2_h_
|
||||
|
||||
#include "zf_common_typedef.h"
|
||||
#include "zf_device_type.h"
|
||||
|
||||
//================================================<3D><><EFBFBD><EFBFBD> MT9V03X2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>================================================
|
||||
#define MT9V03X2_COF_IIC_DELAY (800) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IIC <20><>ʱ
|
||||
#define MT9V03X2_COF_IIC_SCL (P13_1) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IIC-SCL <20><><EFBFBD><EFBFBD>
|
||||
#define MT9V03X2_COF_IIC_SDA (P13_0) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IIC-SDA <20><><EFBFBD><EFBFBD>
|
||||
|
||||
#define MT9V03X2_DMA_CH (IfxDma_ChannelId_6)
|
||||
|
||||
#define MT9V03X2_PCLK_PIN (ERU_CH2_REQ2_P10_2) // PCLK <20><><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD> TIM_ETR <20><><EFBFBD>Ž<EFBFBD>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
#define MT9V03X2_VSYNC_PIN (ERU_CH3_REQ3_P10_3) // <20><><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
#define MT9V03X2_DATA_PIN (P02_0) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ֻ<><D6BB><EFBFBD><EFBFBD> GPIOx0 <20><><EFBFBD><EFBFBD> GPIOx8 <20><>ʼ <20><><EFBFBD><EFBFBD><EFBFBD>˸<EFBFBD><CBB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> P00_0-P00_7
|
||||
#define MT9V03X2_DATA_ADD (get_port_in_addr(MT9V03X2_DATA_PIN))
|
||||
|
||||
#define MT9V03X2_INIT_TIMEOUT (0x0080) // Ĭ<>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ʱʱ<CAB1><CAB1> <20><><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>λ
|
||||
//================================================<3D><><EFBFBD><EFBFBD> MT9V03X2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>================================================
|
||||
|
||||
//================================================<3D><><EFBFBD><EFBFBD> MT9V03X2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>================================================
|
||||
#define MT9V03X2_W (188) // ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>Χ [1-752]
|
||||
#define MT9V03X2_H (120) // ͼ<><CDBC><EFBFBD>߶<EFBFBD> <20><>Χ [1-480]
|
||||
|
||||
#define MT9V03X2_IMAGE_SIZE (MT9V03X2_W * MT9V03X2_H) // <20><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD>ܳ<EFBFBD><DCB3><EFBFBD> 65535
|
||||
|
||||
#define MT9V03X2_AUTO_EXP_DEF ( 0 ) // <20>Զ<EFBFBD><D4B6>ع<EFBFBD><D8B9><EFBFBD><EFBFBD><EFBFBD> Ĭ<>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6>ع<EFBFBD><D8B9><EFBFBD><EFBFBD><EFBFBD> <20><>Χ [0-63] 0Ϊ<30>ر<EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6>ع<D8B9><E2BFAA> EXP_TIME<4D><45><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6>ع<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// һ<><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Dz<EFBFBD><C7B2><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6>ع<EFBFBD><D8B9><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߷dz<DFB7><C7B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȵ<EFBFBD><C8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Գ<EFBFBD><D4B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6>ع⣬<D8B9><E2A3AC><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD>ȶ<EFBFBD><C8B6><EFBFBD>
|
||||
#define MT9V03X2_EXP_TIME_DEF ( 512 ) // <20>ع<EFBFBD>ʱ<EFBFBD><CAB1> <20><><EFBFBD><EFBFBD>ͷ<EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD>ʱ<EFBFBD>䣬<EFBFBD><E4A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ù<EFBFBD><C3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD>ֵ
|
||||
#define MT9V03X2_FPS_DEF ( 50 ) // ͼ<><CDBC>֡<EFBFBD><D6A1> <20><><EFBFBD><EFBFBD>ͷ<EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>FPS<50><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>FPS "
|
||||
#define MT9V03X2_LR_OFFSET_DEF ( 0 ) // ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD> <20><>ֵ <20><>ƫ<EFBFBD><C6AB> <20><>ֵ <20><>ƫ<EFBFBD><C6AB> <20><>Ϊ188 376 752ʱ<32><EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB>
|
||||
// <20><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD><EFBFBD>ݺ<EFBFBD><DDBA><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB>
|
||||
#define MT9V03X2_UD_OFFSET_DEF ( 0 ) // ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD> <20><>ֵ <20><>ƫ<EFBFBD><C6AB> <20><>ֵ <20><>ƫ<EFBFBD><C6AB> <20><>Ϊ120 240 480ʱ<30><EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB>
|
||||
// <20><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD><EFBFBD>ݺ<EFBFBD><DDBA><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB>
|
||||
#define MT9V03X2_GAIN_DEF ( 32 ) // ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>Χ [16-64] <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>̶<EFBFBD><CCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¸ı<C2B8>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̶<EFBFBD>
|
||||
#define MT9V03X2_PCLK_MODE_DEF ( 0 ) // <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>ģʽ <20><>Χ [0-1] Ĭ<>ϣ<EFBFBD>0 <20><>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>[0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>,1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>]
|
||||
// ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ0<CEAA><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>CH32V307<30><37>DVP<56>ӿڻ<D3BF>STM32<33><32>DCMI<4D>ӿڲɼ<DAB2><C9BC><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>Ϊ1
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MT9V034 V1.5 <20>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD>ϰ汾֧<E6B1BE>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>
|
||||
//================================================<3D><><EFBFBD><EFBFBD> MT9V03X2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>================================================
|
||||
|
||||
|
||||
|
||||
//================================================<3D><><EFBFBD><EFBFBD> MT9V03X2 <20><><EFBFBD><EFBFBD><EFBFBD>ṹ<EFBFBD><E1B9B9>===============================================
|
||||
typedef enum
|
||||
{
|
||||
MT9V03X2_INIT = 0, // <20><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MT9V03X2_AUTO_EXP, // <20>Զ<EFBFBD><D4B6>ع<EFBFBD><D8B9><EFBFBD><EFBFBD><EFBFBD>
|
||||
MT9V03X2_EXP_TIME, // <20>ع<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MT9V03X2_FPS, // <20><><EFBFBD><EFBFBD>ͷ֡<CDB7><D6A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MT9V03X2_SET_COL, // ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MT9V03X2_SET_ROW, // ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MT9V03X2_LR_OFFSET, // ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MT9V03X2_UD_OFFSET, // ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MT9V03X2_GAIN, // ͼ<><CDBC>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MT9V03X2_PCLK_MODE, // <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>ģʽ<C4A3><CABD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>MT9V034 V1.5<EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϰ汾֧<EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
MT9V03X2_CONFIG_FINISH, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>ռλ<D5BC><CEBB><EFBFBD><EFBFBD>
|
||||
|
||||
MT9V03X2_COLOR_GET_WHO_AM_I = 0xEF,
|
||||
MT9V03X2_SET_EXP_TIME = 0XF0, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MT9V03X2_GET_STATUS, // <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MT9V03X2_GET_VERSION, // <20>̼<EFBFBD><CCBC>汾<EFBFBD><E6B1BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
MT9V03X2_SET_ADDR = 0XFE, // <20>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>
|
||||
MT9V03X2_SET_DATA // <20>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}m9v03x2_cmd_enum;
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>ͷ<EFBFBD>ӿ<EFBFBD><D3BF><EFBFBD><EFBFBD><EFBFBD>ö<EFBFBD><C3B6>
|
||||
typedef enum
|
||||
{
|
||||
MT9V03X2_UART, // ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ò<EFBFBD><C3B2><EFBFBD>
|
||||
MT9V03X2_SCCB, // ͨ<><CDA8>SCCB<43><42><EFBFBD>ò<EFBFBD><C3B2><EFBFBD>
|
||||
}m9v03x2_type_enum;
|
||||
//================================================<3D><><EFBFBD><EFBFBD> MT9V03X2 <20><><EFBFBD><EFBFBD><EFBFBD>ṹ<EFBFBD><E1B9B9>===============================================
|
||||
|
||||
|
||||
//================================================<3D><><EFBFBD><EFBFBD> MT9V03X2 ȫ<>ֱ<EFBFBD><D6B1><EFBFBD>================================================
|
||||
extern vuint8 mt9v03x2_finish_flag; // һ<><D2BB>ͼ<EFBFBD><CDBC><EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD>ɱ<EFBFBD>־λ
|
||||
extern uint8 mt9v03x2_image[MT9V03X2_H][MT9V03X2_W]; // ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD>
|
||||
extern int16 mt9v03x2_dma_run_flag;
|
||||
extern uint8 mt9v03x2_init_flag;
|
||||
//================================================<3D><><EFBFBD><EFBFBD> MT9V03X2 ȫ<>ֱ<EFBFBD><D6B1><EFBFBD>================================================
|
||||
|
||||
|
||||
//================================================<3D><><EFBFBD><EFBFBD> MT9V03X2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>================================================
|
||||
uint8 mt9v03x2_init (void); // MT9V03X2 <20><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>ʼ<EFBFBD><CABC>
|
||||
//================================================<3D><><EFBFBD><EFBFBD> MT9V03X2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>================================================
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,440 @@
|
||||
/*********************************************************************************************************************
|
||||
* TC264 Opensourec Library <20><><EFBFBD><EFBFBD>TC264 <20><>Դ<EFBFBD>⣩<EFBFBD><E2A3A9>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ڹٷ<DAB9> SDK <20>ӿڵĵ<DAB5><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4>
|
||||
* Copyright (c) 2022 SEEKFREE <20><><EFBFBD>ɿƼ<C9BF>
|
||||
*
|
||||
* <20><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD> TC264 <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
|
||||
*
|
||||
* TC264 <20><>Դ<EFBFBD><D4B4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* <20><><EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD><D4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᷢ<EFBFBD><E1B7A2><EFBFBD><EFBFBD> GPL<50><4C>GNU General Public License<73><65><EFBFBD><EFBFBD> GNUͨ<55>ù<EFBFBD><C3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* <20><> GPL <20>ĵ<EFBFBD>3<EFBFBD>棨<EFBFBD><E6A3A8> GPL3.0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD>κκ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>İ汾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><DEB8><EFBFBD>
|
||||
*
|
||||
* <20><><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD><EFBFBD><EFBFBD>ܷ<EFBFBD><DCB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κεı<CEB5>֤
|
||||
* <20><><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ի<EFBFBD><D4BB>ʺ<EFBFBD><CABA>ض<EFBFBD><D8B6><EFBFBD>;<EFBFBD>ı<EFBFBD>֤
|
||||
* <20><><EFBFBD><EFBFBD>ϸ<EFBFBD><CFB8><EFBFBD><EFBFBD><EFBFBD>μ<EFBFBD> GPL
|
||||
*
|
||||
* <20><>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>ͬʱ<CDAC>յ<EFBFBD>һ<EFBFBD><D2BB> GPL <20>ĸ<EFBFBD><C4B8><EFBFBD>
|
||||
* <20><><EFBFBD><EFBFBD>û<EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><https://www.gnu.org/licenses/>
|
||||
*
|
||||
* <20><><EFBFBD><EFBFBD>ע<EFBFBD><D7A2><EFBFBD><EFBFBD>
|
||||
* <20><><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4>ʹ<EFBFBD><CAB9> GPL3.0 <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>֤Э<D6A4><D0AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>İ汾
|
||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӣ<EFBFBD>İ<EFBFBD><C4B0><EFBFBD> libraries/doc <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>µ<EFBFBD> GPL3_permission_statement.txt <20>ļ<EFBFBD><C4BC><EFBFBD>
|
||||
* <20><><EFBFBD><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> libraries <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>µ<EFBFBD> LICENSE <20>ļ<EFBFBD>
|
||||
* <20><>ӭ<EFBFBD><D3AD>λʹ<CEBB>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>뱣<EFBFBD><EBB1A3><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC>İ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
*
|
||||
* <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> zf_device_mt9v03x_double
|
||||
* <20><>˾<EFBFBD><CBBE><EFBFBD><EFBFBD> <20>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD><EFBFBD>˾
|
||||
* <20>汾<EFBFBD><E6B1BE>Ϣ <20>鿴 libraries/doc <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> version <20>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
|
||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ADS v1.10.2
|
||||
* <20><><EFBFBD><EFBFBD>ƽ̨ TC264D
|
||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> https://seekfree.taobao.com/
|
||||
*
|
||||
* <20>ļ<DEB8>¼
|
||||
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
|
||||
* 2022-09-15 pudding first version
|
||||
* 2023-04-28 pudding <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2>˵<EFBFBD><CBB5>
|
||||
********************************************************************************************************************/
|
||||
/*********************************************************************************************************************
|
||||
* <20><><EFBFBD>߶<EFBFBD><DFB6>壺
|
||||
* ------------------------------------
|
||||
* ģ<><C4A3><EFBFBD>ܽ<EFBFBD> <20><>Ƭ<EFBFBD><C6AC><EFBFBD>ܽ<EFBFBD>
|
||||
* SCL <20>鿴 zf_device_mt9v03x_double.h <20><> MT9V03X_COF_IIC_SCL <20>궨<EFBFBD><EAB6A8>
|
||||
* SDA <20>鿴 zf_device_mt9v03x_double.h <20><> MT9V03X_COF_IIC_SDA <20>궨<EFBFBD><EAB6A8>
|
||||
* PCLK <20>鿴 zf_device_mt9v03x_double.h <20><> MT9V03X_PCLK_PIN <20>궨<EFBFBD><EAB6A8>
|
||||
* VSY <20>鿴 zf_device_mt9v03x_double.h <20><> MT9V03X_VSYNC_PIN <20>궨<EFBFBD><EAB6A8>
|
||||
* D0-D7 <20>鿴 zf_device_mt9v03x_double.h <20><> MT9V03X_DATA_PIN <20>궨<EFBFBD><EAB6A8> <20>Ӹö<D3B8><C3B6>忪ʼ<E5BFAA><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˸<EFBFBD><CBB8><EFBFBD><EFBFBD><EFBFBD>
|
||||
* VCC 3.3V<EFBFBD><EFBFBD>Դ
|
||||
* GND <20><>Դ<EFBFBD><D4B4>
|
||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* ------------------------------------
|
||||
********************************************************************************************************************/
|
||||
#include "IfxStm.h"
|
||||
#include "zf_common_interrupt.h"
|
||||
#include "zf_common_debug.h"
|
||||
#include "zf_driver_soft_iic.h"
|
||||
#include "zf_driver_delay.h"
|
||||
#include "zf_driver_dma.h"
|
||||
#include "zf_driver_exti.h"
|
||||
#include "zf_driver_gpio.h"
|
||||
#include "zf_driver_timer.h"
|
||||
#include "zf_device_camera.h"
|
||||
#include "zf_device_config.h"
|
||||
#include "zf_device_mt9v03x_double.h"
|
||||
|
||||
#pragma section all "cpu0_dsram"
|
||||
|
||||
vuint8 mt9v03x_finish_flag_1; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ1 <20><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD>ɱ<EFBFBD>־λ
|
||||
vuint8 mt9v03x_finish_flag_2; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ2 <20><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD>ɱ<EFBFBD>־λ
|
||||
IFX_ALIGN(4) uint8 mt9v03x_image_1[MT9V03X_1_H][MT9V03X_1_W]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ1 ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD>
|
||||
IFX_ALIGN(4) uint8 mt9v03x_image_2[MT9V03X_2_H][MT9V03X_2_W]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ2 ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD>
|
||||
uint32 mt9v03x_fps[2]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷʵ<CDB7>ʲɼ<CAB2>֡<EFBFBD><D6A1>
|
||||
|
||||
|
||||
int16 time_out_1 = MT9V03X_1_INIT_TIMEOUT; // <20><><EFBFBD>峬ʱ<E5B3AC><CAB1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
int16 time_out_2 = MT9V03X_2_INIT_TIMEOUT; // <20><><EFBFBD>峬ʱ<E5B3AC><CAB1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
|
||||
uint8 mt9v03x_link_list_num_1; // <20><>ǰDMA<4D><41><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
uint8 mt9v03x_link_list_num_2; // <20><>ǰDMA<4D><41><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
m9v03x_double_init_type_enum camera_work_type; // <20><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
uint8 mt9v03x_dma_state[2];
|
||||
uint8 mt9v03x_gather_flag;
|
||||
uint32 mt9v03x_time[2];
|
||||
|
||||
|
||||
// <20><>Ҫ<EFBFBD><D2AA><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IJ<DEB8><C4B2><EFBFBD>
|
||||
static int16 mt9v03x_set_confing_buffer_1[MT9V03X_DOUBLE_CONFIG_FINISH][2]=
|
||||
{
|
||||
{MT9V03X_DOUBLE_INIT, 0}, // <20><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>ʼ<EFBFBD><CABC>ʼ<EFBFBD><CABC>
|
||||
{MT9V03X_DOUBLE_AUTO_EXP, MT9V03X_1_AUTO_EXP_DEF}, // <20>Զ<EFBFBD><D4B6>ع<EFBFBD><D8B9><EFBFBD><EFBFBD><EFBFBD> <20><>Χ1-63 0Ϊ<30>ر<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6>ع<D8B9><E2BFAA> EXP_TIME<4D><45><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD>ݽ<EFBFBD><DDBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD>ʱ<EFBFBD>䣬Ҳ<E4A3AC><D2B2><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6>ع<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{MT9V03X_DOUBLE_EXP_TIME, MT9V03X_1_EXP_TIME_DEF}, // <20>ع<EFBFBD>ʱ<EFBFBD><CAB1> <20><><EFBFBD><EFBFBD>ͷ<EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD>ʱ<EFBFBD>䣬<EFBFBD><E4A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ù<EFBFBD><C3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD>ֵ
|
||||
{MT9V03X_DOUBLE_FPS, MT9V03X_1_FPS_DEF}, // ͼ<><CDBC>֡<EFBFBD><D6A1> <20><><EFBFBD><EFBFBD>ͷ<EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>FPS<50><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>FPS
|
||||
{MT9V03X_DOUBLE_SET_COL, MT9V03X_1_W}, // ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>Χ1-752
|
||||
{MT9V03X_DOUBLE_SET_ROW, MT9V03X_1_H}, // ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>Χ1-480
|
||||
{MT9V03X_DOUBLE_LR_OFFSET, MT9V03X_1_LR_OFFSET_DEF}, // ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD> <20><>ֵ <20><>ƫ<EFBFBD><C6AB> <20><>ֵ <20><>ƫ<EFBFBD><C6AB> <20><>Ϊ188 376 752ʱ<32><EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB> <20><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD><EFBFBD>ݺ<EFBFBD><DDBA><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB>
|
||||
{MT9V03X_DOUBLE_UD_OFFSET, MT9V03X_1_UD_OFFSET_DEF}, // ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD> <20><>ֵ <20><>ƫ<EFBFBD><C6AB> <20><>ֵ <20><>ƫ<EFBFBD><C6AB> <20><>Ϊ120 240 480ʱ<30><EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB> <20><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD><EFBFBD>ݺ<EFBFBD><DDBA><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB>
|
||||
{MT9V03X_DOUBLE_GAIN, MT9V03X_1_GAIN_DEF}, // ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>Χ16-64 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>̶<EFBFBD><CCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¸ı<C2B8>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̶<EFBFBD>
|
||||
{MT9V03X_DOUBLE_PCLK_MODE, MT9V03X_1_PCLK_MODE_DEF}, // <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>ģʽ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>MT9V034 V2.0<EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϰ汾֧<EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
};
|
||||
|
||||
static int16 mt9v03x_set_confing_buffer_2[MT9V03X_DOUBLE_CONFIG_FINISH][2]=
|
||||
{
|
||||
{MT9V03X_DOUBLE_INIT, 0}, // <20><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>ʼ<EFBFBD><CABC>ʼ<EFBFBD><CABC>
|
||||
{MT9V03X_DOUBLE_AUTO_EXP, MT9V03X_2_AUTO_EXP_DEF}, // <20>Զ<EFBFBD><D4B6>ع<EFBFBD><D8B9><EFBFBD><EFBFBD><EFBFBD> <20><>Χ1-63 0Ϊ<30>ر<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6>ع<D8B9><E2BFAA> EXP_TIME<4D><45><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD>ݽ<EFBFBD><DDBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD>ʱ<EFBFBD>䣬Ҳ<E4A3AC><D2B2><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6>ع<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{MT9V03X_DOUBLE_EXP_TIME, MT9V03X_2_EXP_TIME_DEF}, // <20>ع<EFBFBD>ʱ<EFBFBD><CAB1> <20><><EFBFBD><EFBFBD>ͷ<EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD>ʱ<EFBFBD>䣬<EFBFBD><E4A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ù<EFBFBD><C3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD>ֵ
|
||||
{MT9V03X_DOUBLE_FPS, MT9V03X_2_FPS_DEF}, // ͼ<><CDBC>֡<EFBFBD><D6A1> <20><><EFBFBD><EFBFBD>ͷ<EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>FPS<50><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>FPS
|
||||
{MT9V03X_DOUBLE_SET_COL, MT9V03X_2_W}, // ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>Χ1-752
|
||||
{MT9V03X_DOUBLE_SET_ROW, MT9V03X_2_H}, // ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>Χ1-480
|
||||
{MT9V03X_DOUBLE_LR_OFFSET, MT9V03X_2_LR_OFFSET_DEF}, // ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD> <20><>ֵ <20><>ƫ<EFBFBD><C6AB> <20><>ֵ <20><>ƫ<EFBFBD><C6AB> <20><>Ϊ188 376 752ʱ<32><EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB> <20><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD><EFBFBD>ݺ<EFBFBD><DDBA><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB>
|
||||
{MT9V03X_DOUBLE_UD_OFFSET, MT9V03X_2_UD_OFFSET_DEF}, // ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD> <20><>ֵ <20><>ƫ<EFBFBD><C6AB> <20><>ֵ <20><>ƫ<EFBFBD><C6AB> <20><>Ϊ120 240 480ʱ<30><EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB> <20><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD><EFBFBD>ݺ<EFBFBD><DDBA><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB>
|
||||
{MT9V03X_DOUBLE_GAIN, MT9V03X_2_GAIN_DEF}, // ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>Χ16-64 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>̶<EFBFBD><CCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¸ı<C2B8>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̶<EFBFBD>
|
||||
{MT9V03X_DOUBLE_PCLK_MODE, MT9V03X_2_PCLK_MODE_DEF}, // <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>ģʽ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>MT9V034 V2.0<EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϰ汾֧<EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
};
|
||||
|
||||
#pragma section all restore
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MT9V03X <20><><EFBFBD><EFBFBD>ͷ1 DMA <20><><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> void
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> mt9v03x_dma_restart_1();
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
static void mt9v03x_dma_restart_1(void)
|
||||
{
|
||||
dma_disable(MT9V03X_1_DMA_CH);
|
||||
IfxDma_resetChannel(&MODULE_DMA, MT9V03X_1_DMA_CH);
|
||||
dma_init(MT9V03X_1_DMA_CH,
|
||||
MT9V03X_1_DATA_ADD,
|
||||
mt9v03x_image_1[0],
|
||||
MT9V03X_1_PCLK_PIN,
|
||||
EXTI_TRIGGER_FALLING,
|
||||
MT9V03X_1_IMAGE_SIZE); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>300M <20><><EFBFBD><EFBFBD><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΪFALLING
|
||||
dma_enable(MT9V03X_1_DMA_CH);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MT9V03X <20><><EFBFBD><EFBFBD>ͷ2 DMA <20><><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> void
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> mt9v03x_dma_restart_1();
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
static void mt9v03x_dma_restart_2(void)
|
||||
{
|
||||
dma_disable(MT9V03X_2_DMA_CH);
|
||||
IfxDma_resetChannel(&MODULE_DMA, MT9V03X_2_DMA_CH);
|
||||
dma_init_2(MT9V03X_2_DMA_CH,
|
||||
MT9V03X_2_DATA_ADD,
|
||||
mt9v03x_image_2[0],
|
||||
MT9V03X_2_PCLK_PIN,
|
||||
EXTI_TRIGGER_FALLING,
|
||||
MT9V03X_2_IMAGE_SIZE); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>300M <20><><EFBFBD><EFBFBD><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΪFALLING
|
||||
dma_enable(MT9V03X_2_DMA_CH);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MT9V03X<33><58><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>ж<EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> void
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> mt9v03x_vsync_handler();
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
static void mt9v03x_vsync_handler_1(void)
|
||||
{
|
||||
Ifx_STM *module_num;
|
||||
uint32 temp_time = 0;
|
||||
static uint32 mt9v03x_fps_count = 0;
|
||||
|
||||
if(gpio_get_level(P33_7))
|
||||
{
|
||||
if(camera_work_type == mt9v03x_double && mt9v03x_dma_state[0] && gpio_get_level(P10_3) == 0)
|
||||
{
|
||||
mt9v03x_dma_state[0] = 0;
|
||||
mt9v03x_dma_restart_2();
|
||||
|
||||
mt9v03x_gather_flag = 2;
|
||||
}
|
||||
else if(mt9v03x_gather_flag == 0)
|
||||
{
|
||||
mt9v03x_dma_restart_1();
|
||||
|
||||
mt9v03x_gather_flag = 1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if(mt9v03x_gather_flag == 1)
|
||||
{
|
||||
// <20>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
// һ<><D2BB>ͼ<EFBFBD><CDBC><EFBFBD>Ӳɼ<D3B2><C9BC><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ3.8MS<EFBFBD><EFBFBD><EFBFBD><EFBFBD>(50FPS<50><53>188*120<32>ֱ<EFBFBD><D6B1><EFBFBD>)
|
||||
dma_disable(MT9V03X_1_DMA_CH);
|
||||
if(camera_work_type == mt9v03x_double)
|
||||
{
|
||||
if(gpio_get_level(P10_3))
|
||||
{
|
||||
mt9v03x_dma_state[0] = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
mt9v03x_dma_restart_2();
|
||||
mt9v03x_gather_flag = 2;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
mt9v03x_dma_restart_1();
|
||||
}
|
||||
|
||||
module_num = IfxStm_getAddress((IfxStm_Index)(IfxCpu_getCoreId()));
|
||||
|
||||
if(mt9v03x_time[0] == 0)
|
||||
{
|
||||
mt9v03x_time[0] = IfxStm_getLower(module_num);
|
||||
}
|
||||
else
|
||||
{
|
||||
temp_time = (uint32)((uint64)(IfxStm_getLower(module_num) - mt9v03x_time[0]) * 1000 / IfxStm_getFrequency(module_num));
|
||||
if(temp_time >= 1000)
|
||||
{
|
||||
mt9v03x_time[0] = IfxStm_getLower(module_num);
|
||||
mt9v03x_fps[0] = mt9v03x_fps_count - 1;
|
||||
mt9v03x_fps_count = 0;
|
||||
}
|
||||
}
|
||||
|
||||
mt9v03x_fps_count ++;
|
||||
|
||||
mt9v03x_finish_flag_1 = 1;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MT9V03X<33><58><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>ж<EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> void
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> mt9v03x_vsync_handler();
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
static void mt9v03x_vsync_handler_2(void)
|
||||
{
|
||||
Ifx_STM *module_num;
|
||||
uint32 temp_time = 0;
|
||||
static uint32 mt9v03x_fps_count = 0;
|
||||
|
||||
if(gpio_get_level(P10_3) == 1)
|
||||
{
|
||||
if(camera_work_type == mt9v03x_double && mt9v03x_dma_state[1] && gpio_get_level(P33_7) == 0)
|
||||
{
|
||||
mt9v03x_dma_state[1] = 0;
|
||||
mt9v03x_dma_restart_1();
|
||||
|
||||
mt9v03x_gather_flag = 1;
|
||||
}
|
||||
else if(mt9v03x_gather_flag == 0)
|
||||
{
|
||||
mt9v03x_dma_restart_2();
|
||||
mt9v03x_gather_flag = 2;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if(mt9v03x_gather_flag == 2)
|
||||
{
|
||||
// <20>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
// һ<><D2BB>ͼ<EFBFBD><CDBC><EFBFBD>Ӳɼ<D3B2><C9BC><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ3.8MS<EFBFBD><EFBFBD><EFBFBD><EFBFBD>(50FPS<50><53>188*120<32>ֱ<EFBFBD><D6B1><EFBFBD>)
|
||||
|
||||
dma_disable(MT9V03X_2_DMA_CH);
|
||||
|
||||
if(camera_work_type == mt9v03x_double)
|
||||
{
|
||||
if(gpio_get_level(P33_7))
|
||||
{
|
||||
mt9v03x_dma_state[1] = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
mt9v03x_dma_restart_1();
|
||||
|
||||
mt9v03x_gather_flag = 1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
mt9v03x_dma_restart_2();
|
||||
}
|
||||
|
||||
module_num = IfxStm_getAddress((IfxStm_Index)(IfxCpu_getCoreId()));
|
||||
|
||||
if(mt9v03x_time[1] == 0)
|
||||
{
|
||||
mt9v03x_time[1] = IfxStm_getLower(module_num);
|
||||
}
|
||||
else
|
||||
{
|
||||
temp_time = (uint32)((uint64)(IfxStm_getLower(module_num) - mt9v03x_time[1]) * 1000 / IfxStm_getFrequency(module_num));
|
||||
if(temp_time >= 1000)
|
||||
{
|
||||
mt9v03x_time[1] = IfxStm_getLower(module_num);
|
||||
mt9v03x_fps[1] = mt9v03x_fps_count - 1;
|
||||
mt9v03x_fps_count = 0;
|
||||
}
|
||||
}
|
||||
|
||||
mt9v03x_fps_count ++;
|
||||
|
||||
mt9v03x_finish_flag_2 = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MT9V03X ˫<><CBAB><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>ʼ<EFBFBD><CABC>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> init_type <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ʽ
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> uint8 1-ʧ<><CAA7> 0-<2D>ɹ<EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> zf_log(mt9v03x_init(), "mt9v03x init error");
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ ע<><D7A2>:˫<><CBAB><EFBFBD>汾<EFBFBD><E6B1BE><EFBFBD>ټ<EFBFBD><D9BC>ݴ<EFBFBD><DDB4>ڰ汾<DAB0><E6B1BE><EFBFBD><EFBFBD>ͷ <20><EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>ʼ<EFBFBD><CABC>ͨѶ<CDA8><D1B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint8 mt9v03x_double_init(m9v03x_double_init_type_enum init_type)
|
||||
{
|
||||
//-------------------<2D>ú<EFBFBD><C3BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>TCϵ<43><CFB5> V3.0 ˫<><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>ʼ<EFBFBD><CABC>----------------------
|
||||
//-------------------<2D>ú<EFBFBD><C3BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>TCϵ<43><CFB5> V3.0 ˫<><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>ʼ<EFBFBD><CABC>----------------------
|
||||
//-------------------<2D>ú<EFBFBD><C3BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>TCϵ<43><CFB5> V3.0 ˫<><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>ʼ<EFBFBD><CABC>----------------------
|
||||
uint8 return_state = 0;
|
||||
|
||||
soft_iic_info_struct mt9v03x_iic_struct;
|
||||
|
||||
uint32 interrupt_state = interrupt_global_disable(); // <20>ر<EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD>ж<EFBFBD>
|
||||
|
||||
system_delay_ms(200);
|
||||
|
||||
camera_work_type = init_type;
|
||||
|
||||
switch(init_type)
|
||||
{
|
||||
case mt9v03x_1:
|
||||
{
|
||||
do
|
||||
{
|
||||
// ʹ<><CAB9>SCCBͨѶ
|
||||
set_camera_type(CAMERA_GRAYSCALE_1, mt9v03x_vsync_handler_1, NULL, NULL);
|
||||
|
||||
soft_iic_init(&mt9v03x_iic_struct, 0, MT9V03X_1_COF_IIC_DELAY, MT9V03X_1_COF_IIC_SCL, MT9V03X_1_COF_IIC_SDA);
|
||||
|
||||
if(mt9v03x_set_config_sccb(&mt9v03x_iic_struct, mt9v03x_set_confing_buffer_1))
|
||||
{
|
||||
// SCCBͨѶʧ<D1B6><CAA7>
|
||||
zf_log(0, "MT9V03X 1 set sccb error.");
|
||||
return_state = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
mt9v03x_link_list_num_1 = camera_init(MT9V03X_1_DATA_ADD, mt9v03x_image_1[0], MT9V03X_1_IMAGE_SIZE);
|
||||
|
||||
IfxDma_disableChannelInterrupt(&MODULE_DMA, MT9V03X_1_DMA_CH);
|
||||
}while(0);
|
||||
}break;
|
||||
|
||||
case mt9v03x_2:
|
||||
{
|
||||
do
|
||||
{
|
||||
// ʹ<><CAB9>SCCBͨѶ
|
||||
set_camera_type(CAMERA_GRAYSCALE_2, mt9v03x_vsync_handler_2, NULL, NULL);
|
||||
|
||||
soft_iic_init(&mt9v03x_iic_struct, 0, MT9V03X_2_COF_IIC_DELAY, MT9V03X_2_COF_IIC_SCL, MT9V03X_2_COF_IIC_SDA);
|
||||
|
||||
if(mt9v03x_set_config_sccb(&mt9v03x_iic_struct, mt9v03x_set_confing_buffer_2))
|
||||
{
|
||||
// SCCBͨѶʧ<D1B6><CAA7>
|
||||
zf_log(0, "MT9V03X 2 set sccb error.");
|
||||
return_state = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
mt9v03x_link_list_num_2 = camera_init(MT9V03X_2_DATA_ADD, mt9v03x_image_2[0], MT9V03X_2_IMAGE_SIZE);
|
||||
|
||||
IfxDma_disableChannelInterrupt(&MODULE_DMA, MT9V03X_2_DMA_CH);
|
||||
}while(0);
|
||||
|
||||
}break;
|
||||
|
||||
case mt9v03x_double:
|
||||
{
|
||||
do
|
||||
{
|
||||
// ʹ<><CAB9>SCCBͨѶ
|
||||
set_camera_type(CAMERA_GRAYSCALE_1, mt9v03x_vsync_handler_1, NULL, NULL);
|
||||
|
||||
soft_iic_init(&mt9v03x_iic_struct, 0, MT9V03X_1_COF_IIC_DELAY, MT9V03X_1_COF_IIC_SCL, MT9V03X_1_COF_IIC_SDA);
|
||||
|
||||
if(mt9v03x_set_config_sccb(&mt9v03x_iic_struct, mt9v03x_set_confing_buffer_1))
|
||||
{
|
||||
// SCCBͨѶʧ<D1B6><CAA7>
|
||||
zf_log(0, "MT9V03X 1 set sccb error.");
|
||||
return_state = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
mt9v03x_link_list_num_1 = camera_init(MT9V03X_1_DATA_ADD, mt9v03x_image_1[0], MT9V03X_1_IMAGE_SIZE);
|
||||
|
||||
IfxDma_disableChannelInterrupt(&MODULE_DMA, MT9V03X_1_DMA_CH);
|
||||
|
||||
system_delay_ms(MT9V03X_INIT_INTV_DELAY); //<2F><EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӹ<EFBFBD>֡<EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
|
||||
// ʹ<><CAB9>SCCBͨѶ
|
||||
set_camera_type(CAMERA_GRAYSCALE_2, mt9v03x_vsync_handler_2, NULL, NULL);
|
||||
|
||||
soft_iic_init(&mt9v03x_iic_struct, 0, MT9V03X_2_COF_IIC_DELAY, MT9V03X_2_COF_IIC_SCL, MT9V03X_2_COF_IIC_SDA);
|
||||
|
||||
if(mt9v03x_set_config_sccb(&mt9v03x_iic_struct, mt9v03x_set_confing_buffer_2))
|
||||
{
|
||||
// SCCBͨѶʧ<D1B6><CAA7>
|
||||
zf_log(0, "MT9V03X 2 set sccb error.");
|
||||
return_state = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
mt9v03x_link_list_num_2 = camera_init(MT9V03X_2_DATA_ADD, mt9v03x_image_2[0], MT9V03X_2_IMAGE_SIZE);
|
||||
|
||||
IfxDma_disableChannelInterrupt(&MODULE_DMA, MT9V03X_2_DMA_CH);
|
||||
}while(0);
|
||||
}break;
|
||||
|
||||
default:break;
|
||||
}
|
||||
|
||||
interrupt_global_enable(interrupt_state); // <20><><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD>ж<EFBFBD>
|
||||
|
||||
return return_state;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,172 @@
|
||||
/*********************************************************************************************************************
|
||||
* TC264 Opensourec Library <20><><EFBFBD><EFBFBD>TC264 <20><>Դ<EFBFBD>⣩<EFBFBD><E2A3A9>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ڹٷ<DAB9> SDK <20>ӿڵĵ<DAB5><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4>
|
||||
* Copyright (c) 2022 SEEKFREE <20><><EFBFBD>ɿƼ<C9BF>
|
||||
*
|
||||
* <20><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD> TC264 <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
|
||||
*
|
||||
* TC264 <20><>Դ<EFBFBD><D4B4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* <20><><EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD><D4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᷢ<EFBFBD><E1B7A2><EFBFBD><EFBFBD> GPL<50><4C>GNU General Public License<73><65><EFBFBD><EFBFBD> GNUͨ<55>ù<EFBFBD><C3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* <20><> GPL <20>ĵ<EFBFBD>3<EFBFBD>棨<EFBFBD><E6A3A8> GPL3.0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD>κκ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>İ汾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><DEB8><EFBFBD>
|
||||
*
|
||||
* <20><><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD><EFBFBD><EFBFBD>ܷ<EFBFBD><DCB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κεı<CEB5>֤
|
||||
* <20><><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ի<EFBFBD><D4BB>ʺ<EFBFBD><CABA>ض<EFBFBD><D8B6><EFBFBD>;<EFBFBD>ı<EFBFBD>֤
|
||||
* <20><><EFBFBD><EFBFBD>ϸ<EFBFBD><CFB8><EFBFBD><EFBFBD><EFBFBD>μ<EFBFBD> GPL
|
||||
*
|
||||
* <20><>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>ͬʱ<CDAC>յ<EFBFBD>һ<EFBFBD><D2BB> GPL <20>ĸ<EFBFBD><C4B8><EFBFBD>
|
||||
* <20><><EFBFBD><EFBFBD>û<EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><https://www.gnu.org/licenses/>
|
||||
*
|
||||
* <20><><EFBFBD><EFBFBD>ע<EFBFBD><D7A2><EFBFBD><EFBFBD>
|
||||
* <20><><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4>ʹ<EFBFBD><CAB9> GPL3.0 <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>֤Э<D6A4><D0AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>İ汾
|
||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӣ<EFBFBD>İ<EFBFBD><C4B0><EFBFBD> libraries/doc <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>µ<EFBFBD> GPL3_permission_statement.txt <20>ļ<EFBFBD><C4BC><EFBFBD>
|
||||
* <20><><EFBFBD><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> libraries <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>µ<EFBFBD> LICENSE <20>ļ<EFBFBD>
|
||||
* <20><>ӭ<EFBFBD><D3AD>λʹ<CEBB>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>뱣<EFBFBD><EBB1A3><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC>İ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
*
|
||||
* <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> zf_device_mt9v03x_double
|
||||
* <20><>˾<EFBFBD><CBBE><EFBFBD><EFBFBD> <20>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD><EFBFBD>˾
|
||||
* <20>汾<EFBFBD><E6B1BE>Ϣ <20>鿴 libraries/doc <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> version <20>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
|
||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ADS v1.10.2
|
||||
* <20><><EFBFBD><EFBFBD>ƽ̨ TC264D
|
||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> https://seekfree.taobao.com/
|
||||
*
|
||||
* <20>ļ<DEB8>¼
|
||||
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
|
||||
* 2025-07-09 pudding first version
|
||||
********************************************************************************************************************/
|
||||
|
||||
#ifndef _zf_device_mt9v03x_double_h_
|
||||
#define _zf_device_mt9v03x_double_h_
|
||||
|
||||
#include "zf_common_typedef.h"
|
||||
#include "zf_device_type.h"
|
||||
|
||||
//================================================<3D><><EFBFBD><EFBFBD> MT9V03X ˫<><CBAB><EFBFBD><EFBFBD>ͷ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>================================================
|
||||
#define MT9V03X_1_COF_IIC_DELAY (800) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ1 IIC <20><>ʱ
|
||||
#define MT9V03X_1_COF_IIC_SCL (P33_13) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ1 IIC-SCL <20><><EFBFBD><EFBFBD>
|
||||
#define MT9V03X_1_COF_IIC_SDA (P32_4) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ1 IIC-SDA <20><><EFBFBD><EFBFBD>
|
||||
|
||||
#define MT9V03X_1_DMA_CH (IfxDma_ChannelId_7)
|
||||
|
||||
#define MT9V03X_1_PCLK_PIN (ERU_CH1_REQ10_P14_3) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ1 PCLK <20><><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD> TIM_ETR <20><><EFBFBD>Ž<EFBFBD>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define MT9V03X_1_VSYNC_PIN (ERU_CH4_REQ8_P33_7) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ1 <20><><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
#define MT9V03X_1_DATA_PIN (P00_0) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ֻ<><D6BB><EFBFBD><EFBFBD> GPIOx0 <20><><EFBFBD><EFBFBD> GPIOx8 <20><>ʼ <20><><EFBFBD><EFBFBD><EFBFBD>˸<EFBFBD><CBB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> P00_0-P00_7
|
||||
#define MT9V03X_1_DATA_ADD (get_port_in_addr(MT9V03X_1_DATA_PIN))
|
||||
|
||||
#define MT9V03X_1_INIT_TIMEOUT (0x0080) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ1 Ĭ<>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ʱʱ<CAB1><CAB1> <20><><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>λ
|
||||
|
||||
|
||||
#define MT9V03X_2_COF_IIC_DELAY (800) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ2 IIC <20><>ʱ
|
||||
#define MT9V03X_2_COF_IIC_SCL (P13_1) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ2 IIC-SCL <20><><EFBFBD><EFBFBD>
|
||||
#define MT9V03X_2_COF_IIC_SDA (P13_0) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ2 IIC-SDA <20><><EFBFBD><EFBFBD>
|
||||
|
||||
#define MT9V03X_2_DMA_CH (IfxDma_ChannelId_6)
|
||||
|
||||
#define MT9V03X_2_PCLK_PIN (ERU_CH2_REQ2_P10_2) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ2 PCLK <20><><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD> TIM_ETR <20><><EFBFBD>Ž<EFBFBD>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define MT9V03X_2_VSYNC_PIN (ERU_CH3_REQ3_P10_3) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ2 <20><><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
#define MT9V03X_2_DATA_PIN (P02_0) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ֻ<><D6BB><EFBFBD><EFBFBD> GPIOx0 <20><><EFBFBD><EFBFBD> GPIOx8 <20><>ʼ <20><><EFBFBD><EFBFBD><EFBFBD>˸<EFBFBD><CBB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> P00_0-P00_7
|
||||
#define MT9V03X_2_DATA_ADD (get_port_in_addr(MT9V03X_2_DATA_PIN))
|
||||
|
||||
#define MT9V03X_2_INIT_TIMEOUT (0x0080) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ2 Ĭ<>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ʱʱ<CAB1><CAB1> <20><><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>λ
|
||||
|
||||
|
||||
#define MT9V03X_INIT_INTV_DELAY (0) //<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>Ӹ<EFBFBD>֡<EFBFBD><D6A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ0-3<><33><EFBFBD><EFBFBD>λMS<4D><53>
|
||||
|
||||
//================================================<3D><><EFBFBD><EFBFBD> MT9V03X ˫<><CBAB><EFBFBD><EFBFBD>ͷ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>================================================
|
||||
|
||||
|
||||
//================================================<3D><><EFBFBD><EFBFBD> MT9V03X ˫<><CBAB><EFBFBD><EFBFBD>ͷ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>================================================
|
||||
#define MT9V03X_1_W (188) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ1 ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>Χ [1-752]
|
||||
#define MT9V03X_1_H (120) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ1 ͼ<><CDBC><EFBFBD>߶<EFBFBD> <20><>Χ [1-480]
|
||||
|
||||
#define MT9V03X_1_IMAGE_SIZE (MT9V03X_1_W * MT9V03X_1_H) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ1 <20><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD>ܳ<EFBFBD><DCB3><EFBFBD> 65535
|
||||
|
||||
#define MT9V03X_1_AUTO_EXP_DEF ( 0 ) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ1 <20>Զ<EFBFBD><D4B6>ع<EFBFBD><D8B9><EFBFBD><EFBFBD><EFBFBD> Ĭ<>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6>ع<EFBFBD><D8B9><EFBFBD><EFBFBD><EFBFBD> <20><>Χ [0-63] 0Ϊ<30>ر<EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6>ع<D8B9><E2BFAA> EXP_TIME<4D><45><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6>ع<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// һ<><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Dz<EFBFBD><C7B2><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6>ع<EFBFBD><D8B9><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߷dz<DFB7><C7B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȵ<EFBFBD><C8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Գ<EFBFBD><D4B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6>ع⣬<D8B9><E2A3AC><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD>ȶ<EFBFBD><C8B6><EFBFBD>
|
||||
#define MT9V03X_1_EXP_TIME_DEF ( 512 ) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ1 <20>ع<EFBFBD>ʱ<EFBFBD><CAB1> <20><><EFBFBD><EFBFBD>ͷ<EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD>ʱ<EFBFBD>䣬<EFBFBD><E4A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ù<EFBFBD><C3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD>ֵ
|
||||
#define MT9V03X_1_FPS_DEF ( 100 ) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ1 ͼ<><CDBC>֡<EFBFBD><D6A1> <20><><EFBFBD><EFBFBD>ͷ<EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>FPS<50><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>FPS
|
||||
#define MT9V03X_1_LR_OFFSET_DEF ( 0 ) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ1 ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD> <20><>ֵ <20><>ƫ<EFBFBD><C6AB> <20><>ֵ <20><>ƫ<EFBFBD><C6AB> <20><>Ϊ188 376 752ʱ<32><EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB>
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ1 <20><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD><EFBFBD>ݺ<EFBFBD><DDBA><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB>
|
||||
#define MT9V03X_1_UD_OFFSET_DEF ( 0 ) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ1 ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD> <20><>ֵ <20><>ƫ<EFBFBD><C6AB> <20><>ֵ <20><>ƫ<EFBFBD><C6AB> <20><>Ϊ120 240 480ʱ<30><EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB>
|
||||
// <20><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD><EFBFBD>ݺ<EFBFBD><DDBA><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB>
|
||||
#define MT9V03X_1_GAIN_DEF ( 32 ) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ1 ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>Χ [16-64] <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>̶<EFBFBD><CCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¸ı<C2B8>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̶<EFBFBD>
|
||||
#define MT9V03X_1_PCLK_MODE_DEF ( 0 ) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ1 <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>ģʽ <20><>Χ [0-1] Ĭ<>ϣ<EFBFBD>0 <20><>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>[0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>,1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>]
|
||||
// ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ0<CEAA><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>CH32V307<30><37>DVP<56>ӿڻ<D3BF>STM32<33><32>DCMI<4D>ӿڲɼ<DAB2><C9BC><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>Ϊ1
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MT9V034 V1.5 <20>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD>ϰ汾֧<E6B1BE>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
#define MT9V03X_2_W (188) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ2 ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>Χ [1-752]
|
||||
#define MT9V03X_2_H (120) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ2 ͼ<><CDBC><EFBFBD>߶<EFBFBD> <20><>Χ [1-480]
|
||||
|
||||
#define MT9V03X_2_IMAGE_SIZE (MT9V03X_2_W * MT9V03X_2_H) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ2 <20><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD>ܳ<EFBFBD><DCB3><EFBFBD> 65535
|
||||
|
||||
#define MT9V03X_2_AUTO_EXP_DEF ( 0 ) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ2 <20>Զ<EFBFBD><D4B6>ع<EFBFBD><D8B9><EFBFBD><EFBFBD><EFBFBD> Ĭ<>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6>ع<EFBFBD><D8B9><EFBFBD><EFBFBD><EFBFBD> <20><>Χ [0-63] 0Ϊ<30>ر<EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6>ع<D8B9><E2BFAA> EXP_TIME<4D><45><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6>ع<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// һ<><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Dz<EFBFBD><C7B2><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6>ع<EFBFBD><D8B9><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߷dz<DFB7><C7B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȵ<EFBFBD><C8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Գ<EFBFBD><D4B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6>ع⣬<D8B9><E2A3AC><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD>ȶ<EFBFBD><C8B6><EFBFBD> <20>⣬<EFBFBD><E2A3AC><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD>ȶ<EFBFBD><C8B6><EFBFBD>
|
||||
#define MT9V03X_2_EXP_TIME_DEF ( 512 ) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ2 <20>ع<EFBFBD>ʱ<EFBFBD><CAB1> <20><><EFBFBD><EFBFBD>ͷ<EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD>ʱ<EFBFBD>䣬<EFBFBD><E4A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ù<EFBFBD><C3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD>ֵ
|
||||
#define MT9V03X_2_FPS_DEF ( 100 ) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ2 ͼ<><CDBC>֡<EFBFBD><D6A1> <20><><EFBFBD><EFBFBD>ͷ<EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>FPS<50><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>FPS
|
||||
#define MT9V03X_2_LR_OFFSET_DEF ( 0 ) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ2 ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD> <20><>ֵ <20><>ƫ<EFBFBD><C6AB> <20><>ֵ <20><>ƫ<EFBFBD><C6AB> <20><>Ϊ188 376 752ʱ<32><EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB>
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ2 <20><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD><EFBFBD>ݺ<EFBFBD><DDBA><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB>
|
||||
#define MT9V03X_2_UD_OFFSET_DEF ( 0 ) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ2 ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD> <20><>ֵ <20><>ƫ<EFBFBD><C6AB> <20><>ֵ <20><>ƫ<EFBFBD><C6AB> <20><>Ϊ120 240 480ʱ<30><EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB>
|
||||
// <20><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD><EFBFBD>ݺ<EFBFBD><DDBA><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB>
|
||||
#define MT9V03X_2_GAIN_DEF ( 32 ) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ2 ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>Χ [16-64] <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>̶<EFBFBD><CCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¸ı<C2B8>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̶<EFBFBD>
|
||||
#define MT9V03X_2_PCLK_MODE_DEF ( 0 ) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ2 <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>ģʽ <20><>Χ [0-1] Ĭ<>ϣ<EFBFBD>0 <20><>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>[0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>,1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>]
|
||||
// ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ0<CEAA><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>CH32V307<30><37>DVP<56>ӿڻ<D3BF>STM32<33><32>DCMI<4D>ӿڲɼ<DAB2><C9BC><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>Ϊ1
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MT9V034 V1.5 <20>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD>ϰ汾֧<E6B1BE>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>
|
||||
//================================================<3D><><EFBFBD><EFBFBD> MT9V03X ˫<><CBAB><EFBFBD><EFBFBD>ͷ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>================================================
|
||||
|
||||
//================================================<3D><><EFBFBD><EFBFBD> MT9V03X ˫<><CBAB><EFBFBD><EFBFBD>ͷ <20><><EFBFBD><EFBFBD><EFBFBD>ṹ<EFBFBD><E1B9B9>===============================================
|
||||
typedef enum
|
||||
{
|
||||
MT9V03X_DOUBLE_INIT = 0, // <20><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MT9V03X_DOUBLE_AUTO_EXP, // <20>Զ<EFBFBD><D4B6>ع<EFBFBD><D8B9><EFBFBD><EFBFBD><EFBFBD>
|
||||
MT9V03X_DOUBLE_EXP_TIME, // <20>ع<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MT9V03X_DOUBLE_FPS, // <20><><EFBFBD><EFBFBD>ͷ֡<CDB7><D6A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MT9V03X_DOUBLE_SET_COL, // ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MT9V03X_DOUBLE_SET_ROW, // ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MT9V03X_DOUBLE_LR_OFFSET, // ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MT9V03X_DOUBLE_UD_OFFSET, // ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MT9V03X_DOUBLE_GAIN, // ͼ<><CDBC>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MT9V03X_DOUBLE_PCLK_MODE, // <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>ģʽ<C4A3><CABD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>MT9V034 V1.5<EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϰ汾֧<EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
MT9V03X_DOUBLE_CONFIG_FINISH, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>ռλ<D5BC><CEBB><EFBFBD><EFBFBD>
|
||||
|
||||
MT9V03X_DOUBLE_COLOR_GET_WHO_AM_I = 0xEF,
|
||||
MT9V03X_DOUBLE_SET_EXP_TIME = 0XF0, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MT9V03X_DOUBLE_GET_STATUS, // <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MT9V03X_DOUBLE_GET_VERSION, // <20>̼<EFBFBD><CCBC>汾<EFBFBD><E6B1BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
MT9V03X_DOUBLE_SET_ADDR = 0XFE, // <20>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>
|
||||
MT9V03X_DOUBLE_SET_DATA // <20>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}m9v03x_double_cmd_enum;
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>ͷ<EFBFBD>ӿ<EFBFBD><D3BF><EFBFBD><EFBFBD><EFBFBD>ö<EFBFBD><C3B6>
|
||||
typedef enum
|
||||
{
|
||||
mt9v03x_1, // <20><><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ 1 <20><><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD>ͷ1
|
||||
mt9v03x_2, // <20><><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ 2 <20><><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD>ͷ2
|
||||
mt9v03x_double, // ˫<><CBAB>ͬʱ<CDAC><CAB1>ʼ<EFBFBD><CABC> <20>ȶ<EFBFBD>ģʽ DMA <20>ϸ<EFBFBD><CFB8><EFBFBD><EFBFBD><EFBFBD> <20>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ
|
||||
// ע<>⣺ DMAֻ<41><D6BB>һ<EFBFBD><D2BB> <20>ɼ<EFBFBD>ʱ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷͬʱ<CDAC><CAB1><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD>ʲɼ<CAB2>˫<EFBFBD><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>֡<EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD>2
|
||||
// ע<>⣺ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ˫<><CBAB><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>غ<EFBFBD> <20>ϳ<EFBFBD>ʱ<EFBFBD>乤<EFBFBD><E4B9A4>ʱ <20><><EFBFBD><EFBFBD><EFBFBD>³<EFBFBD><C2B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// ע<>⣺ 188*120<32>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD>֡<EFBFBD>ʳ<EFBFBD><CAB3><EFBFBD>135<33><35>100%<25>غϵ<D8BA><CFB5><EFBFBD>ʵ<EFBFBD><CAB5>֡<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD> <20><>ͨ<EFBFBD><CDA8>˫<EFBFBD><CBAB><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>֮<EFBFBD><D6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD>
|
||||
}m9v03x_double_init_type_enum;
|
||||
|
||||
//================================================<3D><><EFBFBD><EFBFBD> MT9V03X ˫<><CBAB><EFBFBD><EFBFBD>ͷ <20><><EFBFBD><EFBFBD><EFBFBD>ṹ<EFBFBD><E1B9B9>===============================================
|
||||
|
||||
//================================================<3D><><EFBFBD><EFBFBD> MT9V03X ȫ<>ֱ<EFBFBD><D6B1><EFBFBD>================================================
|
||||
extern vuint8 mt9v03x_finish_flag_1; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ1 <20><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD>ɱ<EFBFBD>־λ
|
||||
extern vuint8 mt9v03x_finish_flag_2; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ2 <20><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD>ɱ<EFBFBD>־λ
|
||||
extern uint8 mt9v03x_image_1[MT9V03X_1_H][MT9V03X_1_W]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ1 ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD>
|
||||
extern uint8 mt9v03x_image_2[MT9V03X_2_H][MT9V03X_2_W]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ2 ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD>
|
||||
extern uint32 mt9v03x_fps[2]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷʵ<CDB7>ʲɼ<CAB2>֡<EFBFBD><D6A1>
|
||||
//================================================<3D><><EFBFBD><EFBFBD> MT9V03X ȫ<>ֱ<EFBFBD><D6B1><EFBFBD>================================================
|
||||
|
||||
|
||||
//================================================<3D><><EFBFBD><EFBFBD> MT9V03X <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>================================================
|
||||
//-------------------<2D>ú<EFBFBD><C3BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>TCϵ<43><CFB5> V3.0 ˫<><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>ʼ<EFBFBD><CABC>----------------------
|
||||
//-------------------<2D>ú<EFBFBD><C3BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>TCϵ<43><CFB5> V3.0 ˫<><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>ʼ<EFBFBD><CABC>----------------------
|
||||
//-------------------<2D>ú<EFBFBD><C3BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>TCϵ<43><CFB5> V3.0 ˫<><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>ʼ<EFBFBD><CABC>----------------------
|
||||
uint8 mt9v03x_double_init(m9v03x_double_init_type_enum init_mode); // MT9V03X <20><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>ʼ<EFBFBD><CABC>
|
||||
//================================================<3D><><EFBFBD><EFBFBD> MT9V03X <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>================================================
|
||||
|
||||
#endif
|
||||
@@ -343,8 +343,7 @@ static void ov7725_vsync_handler(void)
|
||||
ov7725_image_binary[0],
|
||||
OV7725_PCLK_PIN,
|
||||
EXTI_TRIGGER_RISING,
|
||||
OV7725_IMAGE_SIZE,
|
||||
DMA_INT_PRIO);
|
||||
OV7725_IMAGE_SIZE);
|
||||
dma_enable(OV7725_DMA_CH);
|
||||
}
|
||||
else
|
||||
|
||||
@@ -498,8 +498,7 @@ static void scc8660_vsync_handler(void)
|
||||
(uint8 *)scc8660_image[0],
|
||||
SCC8660_PCLK_PIN,
|
||||
EXTI_TRIGGER_RISING,
|
||||
SCC8660_IMAGE_SIZE,
|
||||
DMA_INT_PRIO);
|
||||
SCC8660_IMAGE_SIZE);
|
||||
dma_enable(SCC8660_DMA_CH);
|
||||
}
|
||||
else
|
||||
|
||||
@@ -40,12 +40,11 @@
|
||||
static void type_default_callback(void);
|
||||
|
||||
camera_type_enum camera_type = NO_CAMERE; // <20><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>ͱ<EFBFBD><CDB1><EFBFBD>
|
||||
callback_function camera_uart_handler = type_default_callback; // <20><><EFBFBD><EFBFBD>ͨѶ<CDA8>жϺ<D0B6><CFBA><EFBFBD>ָ<EFBFBD>룬<EFBFBD><EBA3AC><EFBFBD>ݳ<EFBFBD>ʼ<EFBFBD><CABC>ʱ<EFBFBD><CAB1><EFBFBD>õĺ<C3B5><C4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת
|
||||
callback_function camera_vsync_handler = type_default_callback; // <20><><EFBFBD>жϺ<D0B6><CFBA><EFBFBD>ָ<EFBFBD>룬<EFBFBD><EBA3AC><EFBFBD>ݳ<EFBFBD>ʼ<EFBFBD><CABC>ʱ<EFBFBD><CAB1><EFBFBD>õĺ<C3B5><C4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת
|
||||
callback_function camera_dma_handler = type_default_callback; // DMA<4D><41><EFBFBD><EFBFBD><EFBFBD>жϺ<D0B6><CFBA><EFBFBD>ָ<EFBFBD>룬<EFBFBD><EBA3AC><EFBFBD>ݳ<EFBFBD>ʼ<EFBFBD><CABC>ʱ<EFBFBD><CAB1><EFBFBD>õĺ<C3B5><C4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת
|
||||
|
||||
callback_function camera_uart_handler_1 = type_default_callback; // <20><><EFBFBD><EFBFBD>ͨѶ<CDA8>жϺ<D0B6><CFBA><EFBFBD>ָ<EFBFBD>룬<EFBFBD><EBA3AC><EFBFBD>ݳ<EFBFBD>ʼ<EFBFBD><CABC>ʱ<EFBFBD><CAB1><EFBFBD>õĺ<C3B5><C4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת
|
||||
callback_function camera_vsync_handler_1 = type_default_callback; // <20><><EFBFBD>жϺ<D0B6><CFBA><EFBFBD>ָ<EFBFBD>룬<EFBFBD><EBA3AC><EFBFBD>ݳ<EFBFBD>ʼ<EFBFBD><CABC>ʱ<EFBFBD><CAB1><EFBFBD>õĺ<C3B5><C4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת
|
||||
callback_function camera_dma_handler_1 = type_default_callback; // DMA<4D><41><EFBFBD><EFBFBD><EFBFBD>жϺ<D0B6><CFBA><EFBFBD>ָ<EFBFBD>룬<EFBFBD><EBA3AC><EFBFBD>ݳ<EFBFBD>ʼ<EFBFBD><CABC>ʱ<EFBFBD><CAB1><EFBFBD>õĺ<C3B5><C4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת
|
||||
|
||||
camera_type_enum camera_type_2 = NO_CAMERE; // <20><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>ͱ<EFBFBD><CDB1><EFBFBD>
|
||||
callback_function camera_uart_handler_2 = type_default_callback; // <20><><EFBFBD><EFBFBD>ͨѶ<CDA8>жϺ<D0B6><CFBA><EFBFBD>ָ<EFBFBD>룬<EFBFBD><EBA3AC><EFBFBD>ݳ<EFBFBD>ʼ<EFBFBD><CABC>ʱ<EFBFBD><CAB1><EFBFBD>õĺ<C3B5><C4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת
|
||||
callback_function camera_vsync_handler_2 = type_default_callback; // <20><><EFBFBD>жϺ<D0B6><CFBA><EFBFBD>ָ<EFBFBD>룬<EFBFBD><EBA3AC><EFBFBD>ݳ<EFBFBD>ʼ<EFBFBD><CABC>ʱ<EFBFBD><CAB1><EFBFBD>õĺ<C3B5><C4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת
|
||||
callback_function camera_dma_handler_2 = type_default_callback; // DMA<4D><41><EFBFBD><EFBFBD><EFBFBD>жϺ<D0B6><CFBA><EFBFBD>ָ<EFBFBD>룬<EFBFBD><EBA3AC><EFBFBD>ݳ<EFBFBD>ʼ<EFBFBD><CABC>ʱ<EFBFBD><CAB1><EFBFBD>õĺ<C3B5><C4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת
|
||||
@@ -80,29 +79,20 @@ static void type_default_callback (void)
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void set_camera_type (camera_type_enum type_set, callback_function vsync_callback, callback_function dma_callback, callback_function uart_callback)
|
||||
{
|
||||
camera_type = type_set;
|
||||
camera_uart_handler = ((uart_callback == NULL) ? (type_default_callback) : (uart_callback));
|
||||
camera_vsync_handler = ((vsync_callback == NULL) ? (type_default_callback) : (vsync_callback));
|
||||
camera_dma_handler = ((dma_callback == NULL) ? (type_default_callback) : (dma_callback));
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ2<CDB7><32><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> type_set ѡ<><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> vsync_callback <20>豸<EFBFBD>ij<EFBFBD><C4B3>жϻص<CFBB><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> dma_callback <20>豸<EFBFBD><E8B1B8> DMA <20><><EFBFBD><EFBFBD><EFBFBD>жϻص<CFBB><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> uart_callback <20>豸<EFBFBD>Ĵ<EFBFBD><C4B4>ڻص<DABB><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> set_camera_type_2(CAMERA_GRAYSCALE);
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ һ<><D2BB><EFBFBD>ɸ<EFBFBD><C9B8><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>ʼ<EFBFBD><CABC><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void set_camera_type_2 (camera_type_enum type_set, callback_function vsync_callback, callback_function dma_callback, callback_function uart_callback)
|
||||
{
|
||||
camera_type_2 = type_set;
|
||||
camera_uart_handler_2 = ((uart_callback == NULL) ? (type_default_callback) : (uart_callback));
|
||||
camera_vsync_handler_2 = ((vsync_callback == NULL) ? (type_default_callback) : (vsync_callback));
|
||||
camera_dma_handler_2 = ((dma_callback == NULL) ? (type_default_callback) : (dma_callback));
|
||||
camera_type = type_set;
|
||||
|
||||
if(type_set == CAMERA_GRAYSCALE_2 || type_set == CAMERA_GRAYSCALE_SINGLE)
|
||||
{
|
||||
camera_uart_handler_2 = ((uart_callback == NULL) ? (type_default_callback) : (uart_callback));
|
||||
camera_vsync_handler_2 = ((vsync_callback == NULL) ? (type_default_callback) : (vsync_callback));
|
||||
camera_dma_handler_2 = ((dma_callback == NULL) ? (type_default_callback) : (dma_callback));
|
||||
}
|
||||
else
|
||||
{
|
||||
camera_uart_handler_1 = ((uart_callback == NULL) ? (type_default_callback) : (uart_callback));
|
||||
camera_vsync_handler_1 = ((vsync_callback == NULL) ? (type_default_callback) : (vsync_callback));
|
||||
camera_dma_handler_1 = ((dma_callback == NULL) ? (type_default_callback) : (dma_callback));
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
@@ -46,8 +46,9 @@ typedef enum
|
||||
NO_CAMERE = 0, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ
|
||||
CAMERA_BIN_IIC, // С<><D0A1><EFBFBD><EFBFBD> IIC <20>汾
|
||||
CAMERA_BIN_UART, // С<><D0A1><EFBFBD><EFBFBD> UART <20>汾
|
||||
CAMERA_GRAYSCALE, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
CAMERA_GRAYSCALE2, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2
|
||||
CAMERA_GRAYSCALE_SINGLE, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>汾
|
||||
CAMERA_GRAYSCALE_1, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1
|
||||
CAMERA_GRAYSCALE_2, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2
|
||||
CAMERA_COLOR, // <20><>ͫ
|
||||
}camera_type_enum;
|
||||
|
||||
@@ -75,21 +76,21 @@ typedef void (*callback_function)(void);
|
||||
|
||||
extern wireless_type_enum wireless_type;
|
||||
extern callback_function wireless_module_uart_handler; // <20><><EFBFBD>ߴ<EFBFBD><DFB4>ڽ<EFBFBD><DABD><EFBFBD><EFBFBD>жϺ<D0B6><CFBA><EFBFBD>ָ<EFBFBD>룬<EFBFBD><EBA3AC><EFBFBD>ݳ<EFBFBD>ʼ<EFBFBD><CABC>ʱ<EFBFBD><CAB1><EFBFBD>õĺ<C3B5><C4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת
|
||||
|
||||
extern camera_type_enum camera_type;
|
||||
extern callback_function camera_dma_handler; // <20><><EFBFBD><EFBFBD>ͨѶ<CDA8>жϺ<D0B6><CFBA><EFBFBD>ָ<EFBFBD>룬<EFBFBD><EBA3AC><EFBFBD>ݳ<EFBFBD>ʼ<EFBFBD><CABC>ʱ<EFBFBD><CAB1><EFBFBD>õĺ<C3B5><C4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת
|
||||
extern callback_function camera_vsync_handler; // <20><><EFBFBD><EFBFBD>ͨѶ<CDA8>жϺ<D0B6><CFBA><EFBFBD>ָ<EFBFBD>룬<EFBFBD><EBA3AC><EFBFBD>ݳ<EFBFBD>ʼ<EFBFBD><CABC>ʱ<EFBFBD><CAB1><EFBFBD>õĺ<C3B5><C4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת
|
||||
extern callback_function camera_uart_handler; // <20><><EFBFBD><EFBFBD>ͨѶ<CDA8>жϺ<D0B6><CFBA><EFBFBD>ָ<EFBFBD>룬<EFBFBD><EBA3AC><EFBFBD>ݳ<EFBFBD>ʼ<EFBFBD><CABC>ʱ<EFBFBD><CAB1><EFBFBD>õĺ<C3B5><C4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת
|
||||
extern callback_function wireless_module_spi_handler; // WIFI SPI GPIO<49>жϺ<D0B6><CFBA><EFBFBD>ָ<EFBFBD>룬<EFBFBD><EBA3AC><EFBFBD>ݳ<EFBFBD>ʼ<EFBFBD><CABC>ʱ<EFBFBD><CAB1><EFBFBD>õĺ<C3B5><C4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת
|
||||
|
||||
extern camera_type_enum camera_type_2; // <20><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>ͱ<EFBFBD><CDB1><EFBFBD>
|
||||
extern callback_function camera_uart_handler_2; // <20><><EFBFBD><EFBFBD>ͨѶ<CDA8>жϺ<D0B6><CFBA><EFBFBD>ָ<EFBFBD>룬<EFBFBD><EBA3AC><EFBFBD>ݳ<EFBFBD>ʼ<EFBFBD><CABC>ʱ<EFBFBD><CAB1><EFBFBD>õĺ<C3B5><C4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת
|
||||
extern callback_function camera_vsync_handler_2; // <20><><EFBFBD>жϺ<D0B6><CFBA><EFBFBD>ָ<EFBFBD>룬<EFBFBD><EBA3AC><EFBFBD>ݳ<EFBFBD>ʼ<EFBFBD><CABC>ʱ<EFBFBD><CAB1><EFBFBD>õĺ<C3B5><C4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת
|
||||
extern callback_function camera_dma_handler_2; // DMA<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϺ<EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD>룬<EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD>ʼ<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD>õĺ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת
|
||||
extern camera_type_enum camera_type ; // <20><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>ͱ<EFBFBD><CDB1><EFBFBD>
|
||||
|
||||
extern callback_function camera_uart_handler_1 ; // <20><><EFBFBD><EFBFBD>ͨѶ<EFBFBD>жϺ<EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD>룬<EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD>ʼ<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD>õĺ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת
|
||||
extern callback_function camera_vsync_handler_1 ; // <20><><EFBFBD>жϺ<D0B6><CFBA><EFBFBD>ָ<EFBFBD>룬<EFBFBD><EBA3AC><EFBFBD>ݳ<EFBFBD>ʼ<EFBFBD><CABC>ʱ<EFBFBD><CAB1><EFBFBD>õĺ<C3B5><C4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת
|
||||
extern callback_function camera_dma_handler_1 ; // DMA<4D><41><EFBFBD><EFBFBD><EFBFBD>жϺ<D0B6><CFBA><EFBFBD>ָ<EFBFBD>룬<EFBFBD><EBA3AC><EFBFBD>ݳ<EFBFBD>ʼ<EFBFBD><CABC>ʱ<EFBFBD><CAB1><EFBFBD>õĺ<C3B5><C4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת
|
||||
|
||||
extern callback_function camera_uart_handler_2 ; // <20><><EFBFBD><EFBFBD>ͨѶ<CDA8>жϺ<D0B6><CFBA><EFBFBD>ָ<EFBFBD>룬<EFBFBD><EBA3AC><EFBFBD>ݳ<EFBFBD>ʼ<EFBFBD><CABC>ʱ<EFBFBD><CAB1><EFBFBD>õĺ<C3B5><C4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת
|
||||
extern callback_function camera_vsync_handler_2 ; // <20><><EFBFBD>жϺ<D0B6><CFBA><EFBFBD>ָ<EFBFBD>룬<EFBFBD><EBA3AC><EFBFBD>ݳ<EFBFBD>ʼ<EFBFBD><CABC>ʱ<EFBFBD><CAB1><EFBFBD>õĺ<C3B5><C4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת
|
||||
extern callback_function camera_dma_handler_2 ; // DMA<4D><41><EFBFBD><EFBFBD><EFBFBD>жϺ<D0B6><CFBA><EFBFBD>ָ<EFBFBD>룬<EFBFBD><EBA3AC><EFBFBD>ݳ<EFBFBD>ʼ<EFBFBD><CABC>ʱ<EFBFBD><CAB1><EFBFBD>õĺ<C3B5><C4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת
|
||||
|
||||
|
||||
extern tof_type_enum tof_type; // ToF ģ<><C4A3> <20><><EFBFBD><EFBFBD>
|
||||
extern callback_function tof_module_exti_handler; // ToF ģ<><C4A3> INT <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
extern tof_type_enum tof_type; // ToF ģ<><C4A3> <20><><EFBFBD><EFBFBD>
|
||||
extern callback_function tof_module_exti_handler; // ToF ģ<><C4A3> INT <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
//===========================================<3D><><EFBFBD><EFBFBD> <20>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD>뼰<EFBFBD><EBBCB0><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>==============================================
|
||||
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
* <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> zf_device_wifi_spi
|
||||
* <20><>˾<EFBFBD><CBBE><EFBFBD><EFBFBD> <20>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD><EFBFBD>˾
|
||||
* <20>汾<EFBFBD><E6B1BE>Ϣ <20>鿴 libraries/doc <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> version <20>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
|
||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ADS v1.10.2
|
||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ADS v1.9.20
|
||||
* <20><><EFBFBD><EFBFBD>ƽ̨ TC264D
|
||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> https://seekfree.taobao.com/
|
||||
*
|
||||
@@ -271,6 +271,8 @@ static uint8 wifi_spi_get_version (void)
|
||||
{
|
||||
memcpy(wifi_spi_version, temp_packets.buffer, temp_packets.head.length);
|
||||
}
|
||||
return_state = (return_state == 0) ? (WIFI_SPI_REPLY_VERSION != temp_packets.head.command) : 1;
|
||||
|
||||
return return_state;
|
||||
}
|
||||
|
||||
@@ -291,6 +293,8 @@ static uint8 wifi_spi_get_mac_addr (void)
|
||||
{
|
||||
memcpy(wifi_spi_mac_addr, temp_packets.buffer, temp_packets.head.length);
|
||||
}
|
||||
return_state = (return_state == 0) ? (WIFI_SPI_REPLY_MAC_ADDR != temp_packets.head.command) : 1;
|
||||
|
||||
return return_state;
|
||||
}
|
||||
|
||||
@@ -312,6 +316,8 @@ static uint8 wifi_spi_get_ip_addr_port (void)
|
||||
{
|
||||
memcpy(wifi_spi_ip_addr_port, temp_packets.buffer, temp_packets.head.length);
|
||||
}
|
||||
return_state = (return_state == 0) ? (WIFI_SPI_REPLY_IP_ADDR != temp_packets.head.command) : 1;
|
||||
|
||||
return return_state;
|
||||
}
|
||||
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
|
||||
|
||||
#define WIFI_SPI_INDEX (SPI_3 ) // <20><><EFBFBD><EFBFBD>ʹ<EFBFBD>õ<EFBFBD>SPI<50><49>
|
||||
#define WIFI_SPI_SPEED (30 * 1000 * 1000 ) // Ӳ<><D3B2> SPI <20><><EFBFBD><EFBFBD>
|
||||
#define WIFI_SPI_SPEED (10 * 1000 * 1000 ) // Ӳ<><D3B2> SPI <20><><EFBFBD><EFBFBD>
|
||||
#define WIFI_SPI_SCK_PIN (SPI3_SCLK_P22_3 ) // <20><><EFBFBD><EFBFBD>SPI_SCK<43><4B><EFBFBD><EFBFBD>
|
||||
#define WIFI_SPI_MOSI_PIN (SPI3_MOSI_P22_0 ) // <20><><EFBFBD><EFBFBD>SPI_MOSI<53><49><EFBFBD><EFBFBD>
|
||||
#define WIFI_SPI_MISO_PIN (SPI3_MISO_P22_1 ) // <20><><EFBFBD><EFBFBD>SPI_MISO<53><4F><EFBFBD><EFBFBD> IPSû<53><C3BB>MISO<53><4F><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD><C8BB>Ҫ<EFBFBD><D2AA><EFBFBD>壬<EFBFBD><E5A3AC>spi<70>ij<EFBFBD>ʼ<EFBFBD><CABC>ʱ<EFBFBD><CAB1>Ҫʹ<D2AA><CAB9>
|
||||
|
||||
@@ -70,7 +70,7 @@ IFX_ALIGN(256) DMA_LINK dma_link_list_2;
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> dma_init(MT9V03X_DMA_CH, MT9V03X_DATA_ADD, mt9v03x_image[0], MT9V03X_PCLK_PIN, EXTI_TRIGGER_RISING, MT9V03X_IMAGE_SIZE);
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint8 dma_init (IfxDma_ChannelId dma_ch, uint8 *source_addr, uint8 *destination_addr, exti_pin_enum exti_pin, exti_trigger_enum trigger, uint32 dma_count, uint8 isr_prio)
|
||||
uint8 dma_init (IfxDma_ChannelId dma_ch, uint8 *source_addr, uint8 *destination_addr, exti_pin_enum exti_pin, exti_trigger_enum trigger, uint32 dma_count)
|
||||
{
|
||||
IfxDma_Dma_Channel dmaChn;
|
||||
|
||||
@@ -139,10 +139,10 @@ uint8 dma_init (IfxDma_ChannelId dma_ch, uint8 *source_addr, uint8 *destination_
|
||||
cfg.channelId = (IfxDma_ChannelId)dma_ch;
|
||||
cfg.hardwareRequestEnabled = FALSE;
|
||||
cfg.channelInterruptEnabled = TRUE;
|
||||
cfg.channelInterruptPriority = isr_prio;
|
||||
cfg.channelInterruptPriority = DMA_INT_PRIO_1;
|
||||
|
||||
|
||||
cfg.channelInterruptTypeOfService = DMA_INT_SERVICE;
|
||||
cfg.channelInterruptTypeOfService = DMA_INT_SERVICE_1;
|
||||
|
||||
|
||||
|
||||
@@ -198,7 +198,7 @@ uint8 dma_init (IfxDma_ChannelId dma_ch, uint8 *source_addr, uint8 *destination_
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> dma_init(MT9V03X_DMA_CH, MT9V03X_DATA_ADD, mt9v03x_image[0], MT9V03X_PCLK_PIN, EXTI_TRIGGER_RISING, MT9V03X_IMAGE_SIZE);
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint8 dma_init_2 (IfxDma_ChannelId dma_ch, uint8 *source_addr, uint8 *destination_addr, exti_pin_enum exti_pin, exti_trigger_enum trigger, uint32 dma_count, uint8 isr_prio)
|
||||
uint8 dma_init_2 (IfxDma_ChannelId dma_ch, uint8 *source_addr, uint8 *destination_addr, exti_pin_enum exti_pin, exti_trigger_enum trigger, uint32 dma_count)
|
||||
{
|
||||
IfxDma_Dma_Channel dmaChn;
|
||||
|
||||
@@ -267,7 +267,7 @@ uint8 dma_init_2 (IfxDma_ChannelId dma_ch, uint8 *source_addr, uint8 *destinatio
|
||||
cfg.channelId = (IfxDma_ChannelId)dma_ch;
|
||||
cfg.hardwareRequestEnabled = FALSE;
|
||||
cfg.channelInterruptEnabled = TRUE;
|
||||
cfg.channelInterruptPriority = isr_prio;
|
||||
cfg.channelInterruptPriority = DMA_INT_PRIO_2;
|
||||
|
||||
|
||||
cfg.channelInterruptTypeOfService = DMA_INT_SERVICE_2 ;
|
||||
|
||||
@@ -45,8 +45,8 @@
|
||||
#define dma_set_destination(dma_ch, destination_addr) (IfxDma_setChannelDestinationAddress(&MODULE_DMA, (dma_ch), (void *)IFXCPU_GLB_ADDR_DSPR(IfxCpu_getCoreId(), (destination_addr))))
|
||||
|
||||
//====================================================DMA <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||
uint8 dma_init (IfxDma_ChannelId dma_ch, uint8 *source_addr, uint8 *destination_addr, exti_pin_enum eru_pin, exti_trigger_enum trigger, uint32 dma_count, uint8 isr_prio);
|
||||
uint8 dma_init_2 (IfxDma_ChannelId dma_ch, uint8 *source_addr, uint8 *destination_addr, exti_pin_enum eru_pin, exti_trigger_enum trigger, uint32 dma_count, uint8 isr_prio);
|
||||
uint8 dma_init (IfxDma_ChannelId dma_ch, uint8 *source_addr, uint8 *destination_addr, exti_pin_enum eru_pin, exti_trigger_enum trigger, uint32 dma_count);
|
||||
uint8 dma_init_2 (IfxDma_ChannelId dma_ch, uint8 *source_addr, uint8 *destination_addr, exti_pin_enum eru_pin, exti_trigger_enum trigger, uint32 dma_count);
|
||||
void dma_disable (IfxDma_ChannelId dma_ch);
|
||||
void dma_enable (IfxDma_ChannelId dma_ch);
|
||||
//====================================================DMA <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||
|
||||
@@ -41,15 +41,8 @@
|
||||
|
||||
|
||||
|
||||
//**************************** PIT<49>жϺ<D0B6><CFBA><EFBFBD> ****************************
|
||||
IFX_INTERRUPT(cc60_pit_ch0_isr, 0, CCU6_0_CH0_ISR_PRIORITY)
|
||||
{
|
||||
interrupt_global_enable(0); // <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
|
||||
pit_clear_flag(CCU60_CH0);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
IFX_INTERRUPT(cc60_pit_ch1_isr, 0, CCU6_0_CH1_ISR_PRIORITY)
|
||||
{
|
||||
@@ -85,64 +78,99 @@ IFX_INTERRUPT(cc61_pit_ch1_isr, 0, CCU6_1_CH1_ISR_PRIORITY)
|
||||
IFX_INTERRUPT(exti_ch0_ch4_isr, 0, EXTI_CH0_CH4_INT_PRIO)
|
||||
{
|
||||
interrupt_global_enable(0); // <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
|
||||
if(exti_flag_get(ERU_CH4_REQ8_P33_7)) // ͨ<><CDA8>4<EFBFBD>ж<EFBFBD>
|
||||
if(exti_flag_get(ERU_CH4_REQ8_P33_7)) // ͨ<><CDA8>4<EFBFBD>ж<EFBFBD>
|
||||
{
|
||||
exti_flag_clear(ERU_CH4_REQ8_P33_7);
|
||||
camera_vsync_handler(); // <20><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD>ͳһ<CDB3>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
||||
camera_vsync_handler_1(); // <20><><EFBFBD><EFBFBD>ͷ1 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD>ͳһ<EFBFBD>ص<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
|
||||
if(exti_flag_get(ERU_CH0_REQ0_P15_4)) // ͨ<><CDA8>0<EFBFBD>ж<EFBFBD>
|
||||
{
|
||||
exti_flag_clear(ERU_CH0_REQ0_P15_4);
|
||||
// ע<><D7A2>: <20><><EFBFBD>ⲿ<EFBFBD>ж<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>ж<EFBFBD> <20><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ <20>벻Ҫ<EBB2BB><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// ע<><D7A2>: <20><><EFBFBD>ⲿ<EFBFBD>ж<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>ж<EFBFBD> <20><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ <20>벻Ҫ<EBB2BB><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// ע<><D7A2>: <20><><EFBFBD>ⲿ<EFBFBD>ж<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>ж<EFBFBD> <20><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ <20>벻Ҫ<EBB2BB><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷpclk<6C><6B><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD> 1ͨ<31><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>DMA<4D><41><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ﲻ<EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD>жϺ<D0B6><CFBA><EFBFBD>
|
||||
//IFX_INTERRUPT(exti_ch1_ch5_isr, 0, EXTI_CH1_CH5_INT_PRIO)
|
||||
//{
|
||||
// interrupt_global_enable(0); // <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
|
||||
//
|
||||
// if(exti_flag_get(ERU_CH1_REQ10_P14_3)) // ͨ<><CDA8>1<EFBFBD>ж<EFBFBD>
|
||||
// {
|
||||
// exti_flag_clear(ERU_CH1_REQ10_P14_3);
|
||||
//
|
||||
// }
|
||||
//
|
||||
// if(exti_flag_get(ERU_CH5_REQ1_P15_8)) // ͨ<><CDA8>5<EFBFBD>ж<EFBFBD>
|
||||
// {
|
||||
// exti_flag_clear(ERU_CH5_REQ1_P15_8);
|
||||
//
|
||||
//
|
||||
// }
|
||||
//}
|
||||
IFX_INTERRUPT(exti_ch1_ch5_isr, 0, EXTI_CH1_CH5_INT_PRIO)
|
||||
{
|
||||
interrupt_global_enable(0); // <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
|
||||
|
||||
if(exti_flag_get(ERU_CH1_REQ10_P14_3)) // ͨ<><CDA8>1<EFBFBD>ж<EFBFBD>
|
||||
{
|
||||
exti_flag_clear(ERU_CH1_REQ10_P14_3);
|
||||
// ע<><D7A2>: <20><><EFBFBD>ⲿ<EFBFBD>ж<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>ͷPCLK <20><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ <20>벻Ҫ<EBB2BB><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// ע<><D7A2>: <20><><EFBFBD>ⲿ<EFBFBD>ж<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>ͷPCLK <20><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ <20>벻Ҫ<EBB2BB><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// ע<><D7A2>: <20><><EFBFBD>ⲿ<EFBFBD>ж<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>ͷPCLK <20><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ <20>벻Ҫ<EBB2BB><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
if(exti_flag_get(ERU_CH5_REQ1_P15_8)) // ͨ<><CDA8>5<EFBFBD>ж<EFBFBD>
|
||||
{
|
||||
exti_flag_clear(ERU_CH5_REQ1_P15_8);
|
||||
// ע<><D7A2>: <20><><EFBFBD>ⲿ<EFBFBD>ж<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>ͷPCLK <20><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ <20>벻Ҫ<EBB2BB><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// ע<><D7A2>: <20><><EFBFBD>ⲿ<EFBFBD>ж<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>ͷPCLK <20><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ <20>벻Ҫ<EBB2BB><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// ע<><D7A2>: <20><><EFBFBD>ⲿ<EFBFBD>ж<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>ͷPCLK <20><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ <20>벻Ҫ<EBB2BB><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
IFX_INTERRUPT(exti_ch2_ch6_isr, 0, EXTI_CH2_CH6_INT_PRIO)
|
||||
{
|
||||
interrupt_global_enable(0); // <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
|
||||
if(exti_flag_get(ERU_CH2_REQ7_P00_4)) // ͨ<><CDA8>2<EFBFBD>ж<EFBFBD>
|
||||
{
|
||||
exti_flag_clear(ERU_CH2_REQ7_P00_4);
|
||||
// ע<><D7A2>: <20><><EFBFBD>ⲿ<EFBFBD>ж<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>ͷPCLK <20><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ <20>벻Ҫ<EBB2BB><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// ע<><D7A2>: <20><><EFBFBD>ⲿ<EFBFBD>ж<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>ͷPCLK <20><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ <20>벻Ҫ<EBB2BB><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// ע<><D7A2>: <20><><EFBFBD>ⲿ<EFBFBD>ж<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>ͷPCLK <20><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ <20>벻Ҫ<EBB2BB><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
|
||||
}
|
||||
if(exti_flag_get(ERU_CH6_REQ9_P20_0)) // ͨ<><CDA8>6<EFBFBD>ж<EFBFBD>
|
||||
{
|
||||
exti_flag_clear(ERU_CH6_REQ9_P20_0);
|
||||
// ע<><D7A2>: <20><><EFBFBD>ⲿ<EFBFBD>ж<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>ͷPCLK <20><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ <20>벻Ҫ<EBB2BB><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// ע<><D7A2>: <20><><EFBFBD>ⲿ<EFBFBD>ж<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>ͷPCLK <20><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ <20>벻Ҫ<EBB2BB><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// ע<><D7A2>: <20><><EFBFBD>ⲿ<EFBFBD>ж<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>ͷPCLK <20><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ <20>벻Ҫ<EBB2BB><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷpclk<6C><6B><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD> 2ͨ<32><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>DMA<4D><41><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ﲻ<EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD>жϺ<D0B6><CFBA><EFBFBD>
|
||||
// IFX_INTERRUPT(exti_ch2_ch6_isr, 0, EXTI_CH2_CH6_INT_PRIO)
|
||||
// {
|
||||
// interrupt_global_enable(0); // <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
|
||||
// if(exti_flag_get(ERU_CH2_REQ7_P00_4)) // ͨ<><CDA8>2<EFBFBD>ж<EFBFBD>
|
||||
// {
|
||||
// exti_flag_clear(ERU_CH2_REQ7_P00_4);
|
||||
// }
|
||||
// if(exti_flag_get(ERU_CH6_REQ9_P20_0)) // ͨ<><CDA8>6<EFBFBD>ж<EFBFBD>
|
||||
// {
|
||||
// exti_flag_clear(ERU_CH6_REQ9_P20_0);
|
||||
// }
|
||||
// }
|
||||
IFX_INTERRUPT(exti_ch3_ch7_isr, 0, EXTI_CH3_CH7_INT_PRIO)
|
||||
{
|
||||
interrupt_global_enable(0); // <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
|
||||
|
||||
if(exti_flag_get(ERU_CH3_REQ3_P10_3)) // ͨ<><CDA8>3<EFBFBD>ж<EFBFBD>
|
||||
{
|
||||
exti_flag_clear(ERU_CH3_REQ3_P10_3);
|
||||
camera_vsync_handler_2(); // <20><><EFBFBD><EFBFBD>ͷ2<CDB7><32><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD>ͳһ<CDB3>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
||||
camera_vsync_handler_2(); // <20><><EFBFBD><EFBFBD>ͷ2<CDB7><32><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD>ͳһ<CDB3>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
|
||||
if(exti_flag_get(ERU_CH7_REQ16_P15_1)) // ͨ<><CDA8>7<EFBFBD>ж<EFBFBD>
|
||||
{
|
||||
exti_flag_clear(ERU_CH7_REQ16_P15_1);
|
||||
// ע<><D7A2>: <20><><EFBFBD>ⲿ<EFBFBD>ж<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>ж<EFBFBD> <20><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ <20>벻Ҫ<EBB2BB><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// ע<><D7A2>: <20><><EFBFBD>ⲿ<EFBFBD>ж<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>ж<EFBFBD> <20><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ <20>벻Ҫ<EBB2BB><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// ע<><D7A2>: <20><><EFBFBD>ⲿ<EFBFBD>ж<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>ж<EFBFBD> <20><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ <20>벻Ҫ<EBB2BB><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -151,16 +179,16 @@ IFX_INTERRUPT(exti_ch3_ch7_isr, 0, EXTI_CH3_CH7_INT_PRIO)
|
||||
|
||||
|
||||
// **************************** DMA<4D>жϺ<D0B6><CFBA><EFBFBD> ****************************
|
||||
IFX_INTERRUPT(dma_ch6_isr, 0, DMA_INT_PRIO)
|
||||
IFX_INTERRUPT(dma_ch6_isr, 0, DMA_INT_PRIO_1)
|
||||
{
|
||||
interrupt_global_enable(0); // <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
|
||||
camera_dma_handler(); // <20><><EFBFBD><EFBFBD>ͷ<EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD>ͳһ<CDB3>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
||||
camera_dma_handler_1(); // <20><><EFBFBD><EFBFBD>ͷ1 <EFBFBD>ɼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͳһ<EFBFBD>ص<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
|
||||
IFX_INTERRUPT(dma_ch7_isr, 0, DMA_INT_PRIO_2)
|
||||
{
|
||||
interrupt_global_enable(0); // <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
|
||||
camera_dma_handler_2(); // <20><><EFBFBD><EFBFBD>ͷ2<CDB7>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD>ͳһ<CDB3>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
||||
camera_dma_handler_2(); // <20><><EFBFBD><EFBFBD>ͷ2 <EFBFBD>ɼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͳһ<EFBFBD>ص<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
// **************************** DMA<4D>жϺ<D0B6><CFBA><EFBFBD> ****************************
|
||||
|
||||
@@ -196,7 +224,7 @@ IFX_INTERRUPT(uart1_tx_isr, 0, UART1_TX_INT_PRIO)
|
||||
IFX_INTERRUPT(uart1_rx_isr, 0, UART1_RX_INT_PRIO)
|
||||
{
|
||||
interrupt_global_enable(0); // <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
|
||||
camera_uart_handler(); // <20><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͳһ<CDB3>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
||||
camera_uart_handler_1(); // <20><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͳһ<CDB3>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>2Ĭ<32><C4AC><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>
|
||||
@@ -228,6 +256,7 @@ IFX_INTERRUPT(uart3_tx_isr, 0, UART3_TX_INT_PRIO)
|
||||
IFX_INTERRUPT(uart3_rx_isr, 0, UART3_RX_INT_PRIO)
|
||||
{
|
||||
interrupt_global_enable(0); // <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
|
||||
|
||||
gnss_uart_callback(); // GNSS<53><53><EFBFBD>ڻص<DABB><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
|
||||
@@ -51,64 +51,64 @@
|
||||
// <20><><EFBFBD><EFBFBD>INT_SERVICE<43><45><EFBFBD><EFBFBD>ΪIfxSrc_Tos_dma<6D>Ļ<EFBFBD><C4BB><EFBFBD>ISR_PRIORITY<54>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD>÷<EFBFBD>Χ<EFBFBD><CEA7><EFBFBD><EFBFBD>0-47<34><37>
|
||||
|
||||
//================================================PIT<49>жϲ<D0B6><CFB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><D8B6><EFBFBD>===============================================
|
||||
#define CCU6_0_CH0_INT_SERVICE IfxSrc_Tos_cpu0 // <20><><EFBFBD><EFBFBD>CCU6_0 PITͨ<54><CDA8>0<EFBFBD>жϷ<D0B6><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>˭<EFBFBD><CBAD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD> IfxSrc_Tos_cpu0 IfxSrc_Tos_cpu1 IfxSrc_Tos_dma <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>ֵ
|
||||
#define CCU6_0_CH0_ISR_PRIORITY 30 // <20><><EFBFBD><EFBFBD>CCU6_0 PITͨ<54><CDA8>0<EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ȼ<EFBFBD> <20><><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD>Χ1-255 Խ<><D4BD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD>Խ<EFBFBD><D4BD> <20><>ƽʱʹ<CAB1>õĵ<C3B5>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
|
||||
#define CCU6_0_CH0_INT_SERVICE IfxSrc_Tos_cpu0 // <20><><EFBFBD><EFBFBD>CCU6_0 PITͨ<54><CDA8>0<EFBFBD>жϷ<D0B6><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>˭<EFBFBD><CBAD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD> IfxSrc_Tos_cpu0 IfxSrc_Tos_cpu1 IfxSrc_Tos_dma <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>ֵ
|
||||
#define CCU6_0_CH0_ISR_PRIORITY 30 // <20><><EFBFBD><EFBFBD>CCU6_0 PITͨ<54><CDA8>0<EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ȼ<EFBFBD> <20><><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD>Χ1-255 Խ<><D4BD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD>Խ<EFBFBD><D4BD> <20><>ƽʱʹ<CAB1>õĵ<C3B5>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
|
||||
|
||||
#define CCU6_0_CH1_INT_SERVICE IfxSrc_Tos_cpu0
|
||||
#define CCU6_0_CH1_INT_SERVICE IfxSrc_Tos_cpu0
|
||||
#define CCU6_0_CH1_ISR_PRIORITY 31
|
||||
|
||||
#define CCU6_1_CH0_INT_SERVICE IfxSrc_Tos_cpu0
|
||||
#define CCU6_1_CH0_INT_SERVICE IfxSrc_Tos_cpu0
|
||||
#define CCU6_1_CH0_ISR_PRIORITY 32
|
||||
|
||||
#define CCU6_1_CH1_INT_SERVICE IfxSrc_Tos_cpu0
|
||||
#define CCU6_1_CH1_INT_SERVICE IfxSrc_Tos_cpu0
|
||||
#define CCU6_1_CH1_ISR_PRIORITY 33
|
||||
|
||||
|
||||
|
||||
//================================================GPIO<49>жϲ<D0B6><CFB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><D8B6><EFBFBD>===============================================
|
||||
// ͨ<><CDA8>0<EFBFBD><30>ͨ<EFBFBD><CDA8>4<EFBFBD>ǹ<EFBFBD><C7B9><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>жϺ<D0B6><CFBA><EFBFBD> <20><><EFBFBD>ж<EFBFBD><D0B6>ڲ<EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>־λ<D6BE>ж<EFBFBD><D0B6><EFBFBD>˭<EFBFBD><CBAD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
#define EXTI_CH0_CH4_INT_SERVICE IfxSrc_Tos_cpu0 // <20><><EFBFBD><EFBFBD>ERUͨ<55><CDA8>0<EFBFBD><30>ͨ<EFBFBD><CDA8>4<EFBFBD>жϷ<D0B6><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>˭<EFBFBD><CBAD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD> IfxSrc_Tos_cpu0 IfxSrc_Tos_cpu1 IfxSrc_Tos_dma <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>ֵ
|
||||
#define EXTI_CH0_CH4_INT_PRIO 40 // <20><><EFBFBD><EFBFBD>ERUͨ<55><CDA8>0<EFBFBD><30>ͨ<EFBFBD><CDA8>4<EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ȼ<EFBFBD> <20><><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD>Χ1-255 Խ<><D4BD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD>Խ<EFBFBD><D4BD> <20><>ƽʱʹ<CAB1>õĵ<C3B5>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
|
||||
#define EXTI_CH0_CH4_INT_SERVICE IfxSrc_Tos_cpu0 // <20><><EFBFBD><EFBFBD>ERUͨ<55><CDA8>0<EFBFBD><30>ͨ<EFBFBD><CDA8>4<EFBFBD>жϷ<D0B6><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>˭<EFBFBD><CBAD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD> IfxSrc_Tos_cpu0 IfxSrc_Tos_cpu1 IfxSrc_Tos_dma <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>ֵ
|
||||
#define EXTI_CH0_CH4_INT_PRIO 255 // <20><><EFBFBD><EFBFBD>ERUͨ<55><CDA8>0<EFBFBD><30>ͨ<EFBFBD><CDA8>4<EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ȼ<EFBFBD> <20><><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD>Χ1-255 Խ<><D4BD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD>Խ<EFBFBD><D4BD> <20><>ƽʱʹ<CAB1>õĵ<C3B5>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
|
||||
|
||||
// ͨ<><CDA8>1<EFBFBD><31>ͨ<EFBFBD><CDA8>5<EFBFBD>ǹ<EFBFBD><C7B9><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>жϺ<D0B6><CFBA><EFBFBD> <20><><EFBFBD>ж<EFBFBD><D0B6>ڲ<EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>־λ <20>ж<EFBFBD><D0B6><EFBFBD>˭<EFBFBD><CBAD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
#define EXTI_CH1_CH5_INT_SERVICE IfxSrc_Tos_dma // <20><><EFBFBD><EFBFBD>ERUͨ<55><CDA8>1<EFBFBD><31>ͨ<EFBFBD><CDA8>5<EFBFBD>жϷ<D0B6><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD>ͬ<EFBFBD><CDAC>
|
||||
#define EXTI_CH1_CH5_INT_PRIO 7 // <20><><EFBFBD><EFBFBD>ERUͨ<55><CDA8>1<EFBFBD><31>ͨ<EFBFBD><CDA8>5<EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ȼ<EFBFBD> ͬ<><CDAC>
|
||||
#define EXTI_CH1_CH5_INT_SERVICE IfxSrc_Tos_dma // <20><><EFBFBD><EFBFBD>ERUͨ<55><CDA8>1<EFBFBD><31>ͨ<EFBFBD><CDA8>5<EFBFBD>жϷ<D0B6><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD>ͬ<EFBFBD><CDAC>
|
||||
#define EXTI_CH1_CH5_INT_PRIO 7 // <20><><EFBFBD><EFBFBD>ERUͨ<55><CDA8>1<EFBFBD><31>ͨ<EFBFBD><CDA8>5<EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ȼ<EFBFBD> ͬ<><CDAC>
|
||||
|
||||
// ͨ<><CDA8>2<EFBFBD><32>ͨ<EFBFBD><CDA8>6<EFBFBD>ǹ<EFBFBD><C7B9><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>жϺ<D0B6><CFBA><EFBFBD> <20><><EFBFBD>ж<EFBFBD><D0B6>ڲ<EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>־λ <20>ж<EFBFBD><D0B6><EFBFBD>˭<EFBFBD><CBAD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
#define EXTI_CH2_CH6_INT_SERVICE IfxSrc_Tos_dma // <20><><EFBFBD><EFBFBD>ERUͨ<55><CDA8>2<EFBFBD><32>ͨ<EFBFBD><CDA8>6<EFBFBD>жϷ<D0B6><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD>ͬ<EFBFBD><CDAC>
|
||||
#define EXTI_CH2_CH6_INT_PRIO 6 // <20><><EFBFBD><EFBFBD>ERUͨ<55><CDA8>2<EFBFBD><32>ͨ<EFBFBD><CDA8>6<EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ȼ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>÷<EFBFBD>ΧΪ0-47
|
||||
#define EXTI_CH2_CH6_INT_SERVICE IfxSrc_Tos_dma // <20><><EFBFBD><EFBFBD>ERUͨ<55><CDA8>2<EFBFBD><32>ͨ<EFBFBD><CDA8>6<EFBFBD>жϷ<D0B6><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD>ͬ<EFBFBD><CDAC>
|
||||
#define EXTI_CH2_CH6_INT_PRIO 6 // <20><><EFBFBD><EFBFBD>ERUͨ<55><CDA8>2<EFBFBD><32>ͨ<EFBFBD><CDA8>6<EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ȼ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>÷<EFBFBD>ΧΪ0-47
|
||||
|
||||
// ͨ<><CDA8>3<EFBFBD><33>ͨ<EFBFBD><CDA8>7<EFBFBD>ǹ<EFBFBD><C7B9><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>жϺ<D0B6><CFBA><EFBFBD> <20><><EFBFBD>ж<EFBFBD><D0B6>ڲ<EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>־λ <20>ж<EFBFBD><D0B6><EFBFBD>˭<EFBFBD><CBAD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
#define EXTI_CH3_CH7_INT_SERVICE IfxSrc_Tos_cpu0 // <20><><EFBFBD><EFBFBD>ERUͨ<55><CDA8>3<EFBFBD><33>ͨ<EFBFBD><CDA8>7<EFBFBD>жϷ<D0B6><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD>ͬ<EFBFBD><CDAC>
|
||||
#define EXTI_CH3_CH7_INT_PRIO 43 // <20><><EFBFBD><EFBFBD>ERUͨ<55><CDA8>3<EFBFBD><33>ͨ<EFBFBD><CDA8>7<EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ȼ<EFBFBD> ͬ<><CDAC>
|
||||
#define EXTI_CH3_CH7_INT_SERVICE IfxSrc_Tos_cpu0 // <20><><EFBFBD><EFBFBD>ERUͨ<55><CDA8>3<EFBFBD><33>ͨ<EFBFBD><CDA8>7<EFBFBD>жϷ<D0B6><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD>ͬ<EFBFBD><CDAC>
|
||||
#define EXTI_CH3_CH7_INT_PRIO 254 // <20><><EFBFBD><EFBFBD>ERUͨ<55><CDA8>3<EFBFBD><33>ͨ<EFBFBD><CDA8>7<EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ȼ<EFBFBD> ͬ<><CDAC>
|
||||
|
||||
|
||||
//===================================================DMA<4D>жϲ<D0B6><CFB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><D8B6><EFBFBD>===============================================
|
||||
#define DMA_INT_SERVICE IfxSrc_Tos_cpu0 // ERU<52><55><EFBFBD><EFBFBD>DMA<4D>жϷ<D0B6><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>˭<EFBFBD><CBAD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD> IfxSrc_Tos_cpu0 IfxSrc_Tos_cpu1 IfxSrc_Tos_dma <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>ֵ
|
||||
#define DMA_INT_PRIO 70 // ERU<52><55><EFBFBD><EFBFBD>DMA<4D>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ȼ<EFBFBD> <20><><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD>Χ1-255 Խ<><D4BD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD>Խ<EFBFBD><D4BD> <20><>ƽʱʹ<CAB1>õĵ<C3B5>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
|
||||
#define DMA_INT_SERVICE_1 IfxSrc_Tos_cpu0 // ERU<52><55><EFBFBD><EFBFBD>DMA<4D>жϷ<D0B6><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>˭<EFBFBD><CBAD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD> IfxSrc_Tos_cpu0 IfxSrc_Tos_cpu1 IfxSrc_Tos_dma <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>ֵ
|
||||
#define DMA_INT_PRIO_1 0 // ERU<52><55><EFBFBD><EFBFBD>DMA<4D>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ȼ<EFBFBD> <20><><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD>Χ1-255 Խ<><D4BD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD>Խ<EFBFBD><D4BD> <20><>ƽʱʹ<CAB1>õĵ<C3B5>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
|
||||
|
||||
//===================================================DMA<4D>жϲ<D0B6><CFB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><D8B6><EFBFBD>===============================================
|
||||
#define DMA_INT_SERVICE_2 IfxSrc_Tos_cpu0 // ERU<52><55><EFBFBD><EFBFBD>DMA<4D>жϷ<D0B6><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>˭<EFBFBD><CBAD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD> IfxSrc_Tos_cpu0 IfxSrc_Tos_cpu1 IfxSrc_Tos_dma <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>ֵ
|
||||
#define DMA_INT_PRIO_2 72 // ERU<52><55><EFBFBD><EFBFBD>DMA<4D>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ȼ<EFBFBD> <20><><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD>Χ1-255 Խ<><D4BD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD>Խ<EFBFBD><D4BD> <20><>ƽʱʹ<CAB1>õĵ<C3B5>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
|
||||
#define DMA_INT_PRIO_2 0 // ERU<52><55><EFBFBD><EFBFBD>DMA<4D>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ȼ<EFBFBD> <20><><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD>Χ1-255 Խ<><D4BD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD>Խ<EFBFBD><D4BD> <20><>ƽʱʹ<CAB1>õĵ<C3B5>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
|
||||
|
||||
|
||||
//===================================================<3D><><EFBFBD><EFBFBD><EFBFBD>жϲ<D0B6><CFB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><D8B6><EFBFBD>===============================================
|
||||
#define UART0_INT_SERVICE IfxSrc_Tos_cpu0 // <20><><EFBFBD>崮<EFBFBD><E5B4AE>0<EFBFBD>жϷ<D0B6><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>˭<EFBFBD><CBAD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD> IfxSrc_Tos_cpu0 IfxSrc_Tos_cpu1 IfxSrc_Tos_dma <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>ֵ
|
||||
#define UART0_TX_INT_PRIO 11 // <20><><EFBFBD>崮<EFBFBD><E5B4AE>0<EFBFBD><30><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ȼ<EFBFBD> <20><><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD>Χ1-255 Խ<><D4BD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD>Խ<EFBFBD><D4BD> <20><>ƽʱʹ<CAB1>õĵ<C3B5>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
|
||||
#define UART0_RX_INT_PRIO 10 // <20><><EFBFBD>崮<EFBFBD><E5B4AE>0<EFBFBD><30><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ȼ<EFBFBD> <20><><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD>Χ1-255 Խ<><D4BD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD>Խ<EFBFBD><D4BD> <20><>ƽʱʹ<CAB1>õĵ<C3B5>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
|
||||
#define UART0_ER_INT_PRIO 12 // <20><><EFBFBD>崮<EFBFBD><E5B4AE>0<EFBFBD><30><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ȼ<EFBFBD> <20><><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD>Χ1-255 Խ<><D4BD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD>Խ<EFBFBD><D4BD> <20><>ƽʱʹ<CAB1>õĵ<C3B5>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
|
||||
#define UART0_INT_SERVICE IfxSrc_Tos_cpu0 // <20><><EFBFBD>崮<EFBFBD><E5B4AE>0<EFBFBD>жϷ<D0B6><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>˭<EFBFBD><CBAD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD> IfxSrc_Tos_cpu0 IfxSrc_Tos_cpu1 IfxSrc_Tos_dma <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>ֵ
|
||||
#define UART0_TX_INT_PRIO 11 // <20><><EFBFBD>崮<EFBFBD><E5B4AE>0<EFBFBD><30><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ȼ<EFBFBD> <20><><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD>Χ1-255 Խ<><D4BD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD>Խ<EFBFBD><D4BD> <20><>ƽʱʹ<CAB1>õĵ<C3B5>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
|
||||
#define UART0_RX_INT_PRIO 10 // <20><><EFBFBD>崮<EFBFBD><E5B4AE>0<EFBFBD><30><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ȼ<EFBFBD> <20><><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD>Χ1-255 Խ<><D4BD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD>Խ<EFBFBD><D4BD> <20><>ƽʱʹ<CAB1>õĵ<C3B5>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
|
||||
#define UART0_ER_INT_PRIO 12 // <20><><EFBFBD>崮<EFBFBD><E5B4AE>0<EFBFBD><30><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ȼ<EFBFBD> <20><><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD>Χ1-255 Խ<><D4BD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD>Խ<EFBFBD><D4BD> <20><>ƽʱʹ<CAB1>õĵ<C3B5>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
|
||||
|
||||
#define UART1_INT_SERVICE IfxSrc_Tos_cpu0
|
||||
#define UART1_INT_SERVICE IfxSrc_Tos_cpu0
|
||||
#define UART1_TX_INT_PRIO 13
|
||||
#define UART1_RX_INT_PRIO 14
|
||||
#define UART1_ER_INT_PRIO 15
|
||||
|
||||
#define UART2_INT_SERVICE IfxSrc_Tos_cpu0
|
||||
#define UART2_INT_SERVICE IfxSrc_Tos_cpu0
|
||||
#define UART2_TX_INT_PRIO 16
|
||||
#define UART2_RX_INT_PRIO 17
|
||||
#define UART2_ER_INT_PRIO 18
|
||||
|
||||
#define UART3_INT_SERVICE IfxSrc_Tos_cpu0
|
||||
#define UART3_INT_SERVICE IfxSrc_Tos_cpu0
|
||||
#define UART3_TX_INT_PRIO 19
|
||||
#define UART3_RX_INT_PRIO 20
|
||||
#define UART3_ER_INT_PRIO 21
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
V3.4.1
|
||||
<09>Ĵ<DEB8><C4B4>ڷ<EFBFBD><DAB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>麯<EFBFBD><E9BAAF><EFBFBD>еķ<D0B5><C4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<09><EFBFBD>ips200proע<6F><D7A2>
|
||||
<09><EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>غ<EFBFBD><D8BA><EFBFBD>
|
||||
V3.4.0
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><D8B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>zf_components/printf_redirect.h<>ļ<EFBFBD><C4BC>ڵĺ궨<C4BA>弴<EFBFBD><E5BCB4><EFBFBD><EFBFBD>printf<74><66><EFBFBD><EFBFBD>
|
||||
<20>Ż<EFBFBD><C5BB><EFBFBD><EFBFBD><EFBFBD>ͨѶʱ<D1B6><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>115200<30><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨѶ<CDA8><D1B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1.388ms<EFBFBD><EFBFBD>ʱ
|
||||
|
||||
@@ -410,7 +410,7 @@ uint32 IfxAsclin_write8(Ifx_ASCLIN *asclin,const uint8 *data, uint32 count)
|
||||
{
|
||||
txData->U = *data++;
|
||||
count--;
|
||||
while(asclin->TXFIFOCON.B.FILL == 16);
|
||||
while(asclin->TXFIFOCON.B.FILL > 0);
|
||||
}
|
||||
|
||||
return count;
|
||||
|
||||
@@ -55,6 +55,8 @@
|
||||
* ------------------------------------
|
||||
********************************************************************************************************************/
|
||||
|
||||
|
||||
|
||||
#include "zf_common_debug.h"
|
||||
#include "zf_driver_delay.h"
|
||||
#include "zf_driver_spi.h"
|
||||
@@ -65,6 +67,7 @@
|
||||
|
||||
int16 imu660ra_gyro_x = 0, imu660ra_gyro_y = 0, imu660ra_gyro_z = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> gyro (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
int16 imu660ra_acc_x = 0, imu660ra_acc_y = 0, imu660ra_acc_z = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> acc (accelerometer <20><><EFBFBD>ٶȼ<D9B6>)
|
||||
float imu660ra_transition_factor[2] = {4096, 16.4};
|
||||
|
||||
#if IMU660RA_USE_SOFT_IIC
|
||||
static soft_iic_info_struct imu660ra_iic_struct;
|
||||
@@ -82,7 +85,7 @@ static soft_iic_info_struct imu660ra_iic_struct;
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> imu660ra_write_register(IMU660RA_PWR_CONF, 0x00); // <20>رո<D5B8>ʡ<EFBFBD><CAA1>ģʽ
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
static void imu660ra_write_register(uint8 reg, uint8 data)
|
||||
static void imu660ra_write_register (uint8 reg, uint8 data)
|
||||
{
|
||||
IMU660RA_CS(0);
|
||||
spi_write_8bit_register(IMU660RA_SPI, reg | IMU660RA_SPI_W, data);
|
||||
@@ -97,7 +100,7 @@ static void imu660ra_write_register(uint8 reg, uint8 data)
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> imu660ra_write_registers(IMU660RA_INIT_DATA, imu660ra_config_file, sizeof(imu660ra_config_file));
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
static void imu660ra_write_registers(uint8 reg, const uint8 *data, uint32 len)
|
||||
static void imu660ra_write_registers (uint8 reg, const uint8 *data, uint32 len)
|
||||
{
|
||||
IMU660RA_CS(0);
|
||||
spi_write_8bit_registers(IMU660RA_SPI, reg | IMU660RA_SPI_W, data, len);
|
||||
@@ -111,7 +114,7 @@ static void imu660ra_write_registers(uint8 reg, const uint8 *data, uint32 len)
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> imu660ra_read_register(IMU660RA_CHIP_ID);
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
static uint8 imu660ra_read_register(uint8 reg)
|
||||
static uint8 imu660ra_read_register (uint8 reg)
|
||||
{
|
||||
uint8 data[2];
|
||||
IMU660RA_CS(0);
|
||||
@@ -129,13 +132,12 @@ static uint8 imu660ra_read_register(uint8 reg)
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> imu660ra_read_registers(IMU660RA_ACC_ADDRESS, dat, 6);
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
static void imu660ra_read_registers(uint8 reg, uint8 *data, uint32 len)
|
||||
static void imu660ra_read_registers (uint8 reg, uint8 *data, uint32 len)
|
||||
{
|
||||
uint8 temp_data[8];
|
||||
IMU660RA_CS(0);
|
||||
spi_read_8bit_registers(IMU660RA_SPI, reg | IMU660RA_SPI_R, temp_data, len + 1);
|
||||
IMU660RA_CS(1);
|
||||
|
||||
for(int i = 0; i < len; i ++)
|
||||
{
|
||||
*(data ++) = temp_data[i + 1];
|
||||
@@ -156,7 +158,7 @@ static uint8 imu660ra_self_check (void)
|
||||
uint16 timeout_count = 0;
|
||||
do
|
||||
{
|
||||
if(timeout_count ++ > IMU660RA_TIMEOUT_COUNT)
|
||||
if(IMU660RA_TIMEOUT_COUNT < timeout_count ++)
|
||||
{
|
||||
return_state = 1;
|
||||
break;
|
||||
@@ -180,9 +182,9 @@ void imu660ra_get_acc (void)
|
||||
uint8 dat[6];
|
||||
|
||||
imu660ra_read_registers(IMU660RA_ACC_ADDRESS, dat, 6);
|
||||
imu660ra_acc_x = (int16)(((uint16)dat[1]<<8 | dat[0]));
|
||||
imu660ra_acc_y = (int16)(((uint16)dat[3]<<8 | dat[2]));
|
||||
imu660ra_acc_z = (int16)(((uint16)dat[5]<<8 | dat[4]));
|
||||
imu660ra_acc_x = (int16)(((uint16)dat[1] << 8 | dat[0]));
|
||||
imu660ra_acc_y = (int16)(((uint16)dat[3] << 8 | dat[2]));
|
||||
imu660ra_acc_z = (int16)(((uint16)dat[5] << 8 | dat[4]));
|
||||
}
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȡ IMU660RA <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
@@ -197,52 +199,9 @@ void imu660ra_get_gyro (void)
|
||||
uint8 dat[6];
|
||||
|
||||
imu660ra_read_registers(IMU660RA_GYRO_ADDRESS, dat, 6);
|
||||
imu660ra_gyro_x = (int16)(((uint16)dat[1]<<8 | dat[0]));
|
||||
imu660ra_gyro_y = (int16)(((uint16)dat[3]<<8 | dat[2]));
|
||||
imu660ra_gyro_z = (int16)(((uint16)dat[5]<<8 | dat[4]));
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> IMU660RA <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊʵ<CEAA><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> gyro_value <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> float data = imu660ra_acc_transition(imu660ra_acc_x); // <20><>λΪ g(m/s^2)
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
float imu660ra_acc_transition (int16 acc_value)
|
||||
{
|
||||
float acc_data = 0;
|
||||
switch(IMU660RA_ACC_SAMPLE)
|
||||
{
|
||||
case 0x00: acc_data = (float)acc_value / 16384; break; // 0x00 <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>2g <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 16384 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
case 0x01: acc_data = (float)acc_value / 8192; break; // 0x01 <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>4g <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 8192 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
case 0x02: acc_data = (float)acc_value / 4096; break; // 0x02 <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>8g <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 4096 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
case 0x03: acc_data = (float)acc_value / 2048; break; // 0x03 <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>16g <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 2048 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
default: break;
|
||||
}
|
||||
return acc_data;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> IMU660RA <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊʵ<CEAA><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> gyro_value <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> float data = imu660ra_gyro_transition(imu660ra_gyro_x); // <20><>λΪ<CEBB><CEAA>/s
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
float imu660ra_gyro_transition (int16 gyro_value)
|
||||
{
|
||||
float gyro_data = 0;
|
||||
switch(IMU660RA_GYR_SAMPLE)
|
||||
{
|
||||
case 0x00: gyro_data = (float)gyro_value / 16.4f; break; // 0x00 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>2000dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD> 16.4 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
case 0x01: gyro_data = (float)gyro_value / 32.8f; break; // 0x01 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>1000dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD> 32.8 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
case 0x02: gyro_data = (float)gyro_value / 65.6f; break; // 0x02 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>500 dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD> 65.6 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
case 0x03: gyro_data = (float)gyro_value / 131.2f; break; // 0x03 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>250 dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD> 131.2 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
case 0x04: gyro_data = (float)gyro_value / 262.4f; break; // 0x04 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>125 dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD> 262.4 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
default: break;
|
||||
}
|
||||
return gyro_data;
|
||||
imu660ra_gyro_x = (int16)(((uint16)dat[1] << 8 | dat[0]));
|
||||
imu660ra_gyro_y = (int16)(((uint16)dat[3] << 8 | dat[2]));
|
||||
imu660ra_gyro_z = (int16)(((uint16)dat[5] << 8 | dat[4]));
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
@@ -258,6 +217,7 @@ uint8 imu660ra_init (void)
|
||||
system_delay_ms(20); // <20>ȴ<EFBFBD><C8B4>豸<EFBFBD>ϵ<EFBFBD><CFB5>ɹ<EFBFBD>
|
||||
#if IMU660RA_USE_SOFT_IIC
|
||||
soft_iic_init(&imu660ra_iic_struct, IMU660RA_DEV_ADDR, IMU660RA_SOFT_IIC_DELAY, IMU660RA_SCL_PIN, IMU660RA_SDA_PIN); // <20><><EFBFBD><EFBFBD> IMU660RA <20><> IIC <20>˿<EFBFBD>
|
||||
|
||||
#else
|
||||
spi_init(IMU660RA_SPI, SPI_MODE0, IMU660RA_SPI_SPEED, IMU660RA_SPC_PIN, IMU660RA_SDI_PIN, IMU660RA_SDO_PIN, SPI_CS_NULL); // <20><><EFBFBD><EFBFBD> IMU660RA <20><> SPI <20>˿<EFBFBD>
|
||||
gpio_init(IMU660RA_CS_PIN, GPO, GPIO_HIGH, GPO_PUSH_PULL); // <20><><EFBFBD><EFBFBD> IMU660RA <20><>CS<43>˿<EFBFBD>
|
||||
@@ -280,7 +240,7 @@ uint8 imu660ra_init (void)
|
||||
imu660ra_write_registers(IMU660RA_INIT_DATA, imu660ra_config_file, sizeof(imu660ra_config_file)); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
||||
imu660ra_write_register(IMU660RA_INIT_CTRL, 0x01); // <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>ý<EFBFBD><C3BD><EFBFBD>
|
||||
system_delay_ms(20);
|
||||
if(imu660ra_read_register(IMU660RA_INT_STA) == 0) // <20><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if(1 != imu660ra_read_register(IMU660RA_INT_STA)) // <20><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD><CBB6><EFBFBD><EFBFBD><EFBFBD>Ϣ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><>ô<EFBFBD><C3B4><EFBFBD><EFBFBD> IMU660RA <20><><EFBFBD>ó<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
@@ -292,23 +252,88 @@ uint8 imu660ra_init (void)
|
||||
imu660ra_write_register(IMU660RA_PWR_CTRL, 0x0E); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǡ<EFBFBD><C7A1><EFBFBD><EFBFBD>ٶȡ<D9B6><C8A1>¶ȴ<C2B6><C8B4><EFBFBD><EFBFBD><EFBFBD>
|
||||
imu660ra_write_register(IMU660RA_ACC_CONF, 0xA7); // <20><><EFBFBD>ٶȲɼ<C8B2><C9BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ģʽ <20><><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD> 50Hz <20><><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>
|
||||
imu660ra_write_register(IMU660RA_GYR_CONF, 0xA9); // <20><><EFBFBD><EFBFBD><EFBFBD>Dzɼ<C7B2><C9BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ģʽ <20><><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD> 200Hz <20><><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>
|
||||
imu660ra_write_register(IMU660RA_ACC_RANGE, IMU660RA_ACC_SAMPLE); // <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>8g
|
||||
imu660ra_write_register(IMU660RA_GYR_RANGE, IMU660RA_GYR_SAMPLE); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>2000dps
|
||||
|
||||
// IMU660RA_ACC_SAMPLE <20>Ĵ<EFBFBD><C4B4><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x00 <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>2g <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD> 16384 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x01 <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>4g <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD> 8192 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x02 <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>8g <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD> 4096 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x03 <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>16g <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD> 2048 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x00 <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>2 g <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 16384 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (g <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD> <20><><EFBFBD><EFBFBD>ѧ<EFBFBD><D1A7><EFBFBD><EFBFBD> һ<><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> g ȡ 9.8 m/s^2 Ϊ<><CEAA>ֵ)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x01 <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>4 g <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 8192 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (g <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD> <20><><EFBFBD><EFBFBD>ѧ<EFBFBD><D1A7><EFBFBD><EFBFBD> һ<><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> g ȡ 9.8 m/s^2 Ϊ<><CEAA>ֵ)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x02 <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>8 g <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 4096 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (g <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD> <20><><EFBFBD><EFBFBD>ѧ<EFBFBD><D1A7><EFBFBD><EFBFBD> һ<><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> g ȡ 9.8 m/s^2 Ϊ<><CEAA>ֵ)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x03 <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>16 g <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 2048 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (g <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD> <20><><EFBFBD><EFBFBD>ѧ<EFBFBD><D1A7><EFBFBD><EFBFBD> һ<><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> g ȡ 9.8 m/s^2 Ϊ<><CEAA>ֵ)
|
||||
switch(IMU660RA_ACC_SAMPLE_DEFAULT)
|
||||
{
|
||||
default:
|
||||
{
|
||||
zf_log(0, "IMU660RA_ACC_SAMPLE_DEFAULT set error.");
|
||||
return_state = 1;
|
||||
}break;
|
||||
case IMU660RA_ACC_SAMPLE_SGN_2G:
|
||||
{
|
||||
imu660ra_write_register(IMU660RA_ACC_RANGE, 0x00);
|
||||
imu660ra_transition_factor[0] = 16384;
|
||||
}break;
|
||||
case IMU660RA_ACC_SAMPLE_SGN_4G:
|
||||
{
|
||||
imu660ra_write_register(IMU660RA_ACC_RANGE, 0x01);
|
||||
imu660ra_transition_factor[0] = 8192;
|
||||
}break;
|
||||
case IMU660RA_ACC_SAMPLE_SGN_8G:
|
||||
{
|
||||
imu660ra_write_register(IMU660RA_ACC_RANGE, 0x02);
|
||||
imu660ra_transition_factor[0] = 4096;
|
||||
}break;
|
||||
case IMU660RA_ACC_SAMPLE_SGN_16G:
|
||||
{
|
||||
imu660ra_write_register(IMU660RA_ACC_RANGE, 0x03);
|
||||
imu660ra_transition_factor[0] = 2048;
|
||||
}break;
|
||||
}
|
||||
if(1 == return_state)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
// IMU660RA_GYR_RANGE <20>Ĵ<EFBFBD><C4B4><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x00 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>2000dps <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD> 16.4 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x01 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>1000dps <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD> 32.8 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x02 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>500 dps <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD> 65.6 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x03 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>250 dps <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD> 131.2 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x04 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>125 dps <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD> 262.4 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x04 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>125 dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 262.4 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ <EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x03 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>250 dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 131.2 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ <EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x02 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>500 dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 65.6 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ <EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x01 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>1000 dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 32.8 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ <EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x00 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>2000 dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 16.4 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ <EFBFBD><EFBFBD>/s
|
||||
switch(IMU660RA_GYRO_SAMPLE_DEFAULT)
|
||||
{
|
||||
default:
|
||||
{
|
||||
zf_log(0, "IMU660RA_GYRO_SAMPLE_DEFAULT set error.");
|
||||
return_state = 1;
|
||||
}break;
|
||||
case IMU660RA_GYRO_SAMPLE_SGN_125DPS:
|
||||
{
|
||||
imu660ra_write_register(IMU660RA_GYR_RANGE, 0x04);
|
||||
imu660ra_transition_factor[1] = 262.4;
|
||||
}break;
|
||||
case IMU660RA_GYRO_SAMPLE_SGN_250DPS:
|
||||
{
|
||||
imu660ra_write_register(IMU660RA_GYR_RANGE, 0x03);
|
||||
imu660ra_transition_factor[1] = 131.2;
|
||||
}break;
|
||||
case IMU660RA_GYRO_SAMPLE_SGN_500DPS:
|
||||
{
|
||||
imu660ra_write_register(IMU660RA_GYR_RANGE, 0x02);
|
||||
imu660ra_transition_factor[1] = 65.6;
|
||||
}break;
|
||||
case IMU660RA_GYRO_SAMPLE_SGN_1000DPS:
|
||||
{
|
||||
imu660ra_write_register(IMU660RA_GYR_RANGE, 0x01);
|
||||
imu660ra_transition_factor[1] = 32.8;
|
||||
}break;
|
||||
case IMU660RA_GYRO_SAMPLE_SGN_2000DPS:
|
||||
{
|
||||
imu660ra_write_register(IMU660RA_GYR_RANGE, 0x00);
|
||||
imu660ra_transition_factor[1] = 16.4;
|
||||
}break;
|
||||
}
|
||||
if(1 == return_state)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}while(0);
|
||||
return return_state;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -54,7 +54,6 @@
|
||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* ------------------------------------
|
||||
********************************************************************************************************************/
|
||||
|
||||
#ifndef _zf_device_imu660ra_h_
|
||||
#define _zf_device_imu660ra_h_
|
||||
|
||||
@@ -64,71 +63,91 @@
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IMU660RA_USE_SOFT_IIC<49><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>ȱ<EFBFBD><C8B1>벢<EFBFBD><EBB2A2><EFBFBD>س<EFBFBD><D8B3><EFBFBD>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD>Ҫ<EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨѶ
|
||||
#define IMU660RA_USE_SOFT_IIC (0) // Ĭ<><C4AC>ʹ<EFBFBD><CAB9>Ӳ<EFBFBD><D3B2> SPI <20><>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
#if IMU660RA_USE_SOFT_IIC // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7> <20><>ɫ<EFBFBD>ҵľ<D2B5><C4BE><EFBFBD>û<EFBFBD><C3BB><EFBFBD>õ<EFBFBD>
|
||||
//====================================================<3D><><EFBFBD><EFBFBD> IIC <20><><EFBFBD><EFBFBD>====================================================
|
||||
#define IMU660RA_SOFT_IIC_DELAY (59) // <20><><EFBFBD><EFBFBD> IIC <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD> <20><>ֵԽС IIC ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD>
|
||||
#define IMU660RA_SCL_PIN (P20_11) // <20><><EFBFBD><EFBFBD> IIC SCL <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> IMU660RA <20><> SCL <20><><EFBFBD><EFBFBD>
|
||||
#define IMU660RA_SDA_PIN (P20_14) // <20><><EFBFBD><EFBFBD> IIC SDA <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> IMU660RA <20><> SDA <20><><EFBFBD><EFBFBD>
|
||||
#define IMU660RA_SOFT_IIC_DELAY (59) // <20><><EFBFBD><EFBFBD> IIC <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD> <20><>ֵԽС IIC ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD>
|
||||
#define IMU660RA_SCL_PIN (P20_11) // <20><><EFBFBD><EFBFBD> IIC SCL <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> IMU660RA <20><> SCL <20><><EFBFBD><EFBFBD>
|
||||
#define IMU660RA_SDA_PIN (P20_14) // <20><><EFBFBD><EFBFBD> IIC SDA <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> IMU660RA <20><> SDA <20><><EFBFBD><EFBFBD>
|
||||
//====================================================<3D><><EFBFBD><EFBFBD> IIC <20><><EFBFBD><EFBFBD>====================================================
|
||||
#else
|
||||
|
||||
//====================================================Ӳ<><D3B2> SPI <20><><EFBFBD><EFBFBD>====================================================
|
||||
#define IMU660RA_SPI_SPEED (10 * 1000 * 1000) // Ӳ<><D3B2> SPI <20><><EFBFBD><EFBFBD>
|
||||
#define IMU660RA_SPI (SPI_0) // Ӳ<><D3B2> SPI <20><>
|
||||
#define IMU660RA_SPC_PIN (SPI0_SCLK_P20_11) // Ӳ<><D3B2> SPI SCK <20><><EFBFBD><EFBFBD>
|
||||
#define IMU660RA_SDI_PIN (SPI0_MOSI_P20_14) // Ӳ<><D3B2> SPI MOSI <20><><EFBFBD><EFBFBD>
|
||||
#define IMU660RA_SDO_PIN (SPI0_MISO_P20_12) // Ӳ<><D3B2> SPI MISO <20><><EFBFBD><EFBFBD>
|
||||
#define IMU660RA_SPC_PIN (SPI0_SCLK_P20_11 ) // Ӳ<><D3B2> SPI SCK <20><><EFBFBD><EFBFBD>
|
||||
#define IMU660RA_SDI_PIN (SPI0_MOSI_P20_14) // Ӳ<><D3B2> SPI MOSI <20><><EFBFBD><EFBFBD>
|
||||
#define IMU660RA_SDO_PIN (SPI0_MISO_P20_12) // Ӳ<><D3B2> SPI MISO <20><><EFBFBD><EFBFBD>
|
||||
//====================================================Ӳ<><D3B2> SPI <20><><EFBFBD><EFBFBD>====================================================
|
||||
#endif
|
||||
#define IMU660RA_CS_PIN (P20_13) // CS Ƭѡ<C6AC><D1A1><EFBFBD><EFBFBD>
|
||||
#define IMU660RA_CS_PIN (P20_13) // CS Ƭѡ<C6AC><D1A1><EFBFBD><EFBFBD>
|
||||
#define IMU660RA_CS(x) ((x) ? (gpio_high(IMU660RA_CS_PIN)) : (gpio_low(IMU660RA_CS_PIN)))
|
||||
|
||||
#define IMU660RA_TIMEOUT_COUNT (0x00FF) // IMU660 <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
||||
typedef enum
|
||||
{
|
||||
IMU660RA_ACC_SAMPLE_SGN_2G , // <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><>2G (ACC = Accelerometer <20><><EFBFBD>ٶȼ<D9B6>) (SGN = signum <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ) (G = g <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD> g<><67>9.80 m/s^2)
|
||||
IMU660RA_ACC_SAMPLE_SGN_4G , // <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><>4G (ACC = Accelerometer <20><><EFBFBD>ٶȼ<D9B6>) (SGN = signum <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ) (G = g <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD> g<><67>9.80 m/s^2)
|
||||
IMU660RA_ACC_SAMPLE_SGN_8G , // <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><>8G (ACC = Accelerometer <20><><EFBFBD>ٶȼ<D9B6>) (SGN = signum <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ) (G = g <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD> g<><67>9.80 m/s^2)
|
||||
IMU660RA_ACC_SAMPLE_SGN_16G, // <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><>16G (ACC = Accelerometer <20><><EFBFBD>ٶȼ<D9B6>) (SGN = signum <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ) (G = g <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD> g<><67>9.80 m/s^2)
|
||||
}imu660ra_acc_sample_config;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
IMU660RA_GYRO_SAMPLE_SGN_125DPS , // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>125DPS (GYRO = Gyroscope <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) (SGN = signum <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ) (DPS = Degree Per Second <20><><EFBFBD>ٶȵ<D9B6>λ <20><>/S)
|
||||
IMU660RA_GYRO_SAMPLE_SGN_250DPS , // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>250DPS (GYRO = Gyroscope <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) (SGN = signum <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ) (DPS = Degree Per Second <20><><EFBFBD>ٶȵ<D9B6>λ <20><>/S)
|
||||
IMU660RA_GYRO_SAMPLE_SGN_500DPS , // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>500DPS (GYRO = Gyroscope <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) (SGN = signum <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ) (DPS = Degree Per Second <20><><EFBFBD>ٶȵ<D9B6>λ <20><>/S)
|
||||
IMU660RA_GYRO_SAMPLE_SGN_1000DPS, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>1000DPS (GYRO = Gyroscope <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) (SGN = signum <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ) (DPS = Degree Per Second <20><><EFBFBD>ٶȵ<D9B6>λ <20><>/S)
|
||||
IMU660RA_GYRO_SAMPLE_SGN_2000DPS, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>2000DPS (GYRO = Gyroscope <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) (SGN = signum <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ) (DPS = Degree Per Second <20><><EFBFBD>ٶȵ<D9B6>λ <20><>/S)
|
||||
}imu660ra_gyro_sample_config;
|
||||
|
||||
//================================================<3D><><EFBFBD><EFBFBD> imu660ra <20>ڲ<EFBFBD><DAB2><EFBFBD>ַ================================================
|
||||
#define IMU660RA_DEV_ADDR (0x69) // SA0<41>ӵأ<D3B5>0x68 SA0<41><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0x69 ģ<EFBFBD><EFBFBD>Ĭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define IMU660RA_SPI_W (0x00)
|
||||
#define IMU660RA_SPI_R (0x80)
|
||||
#define IMU660RA_ACC_SAMPLE_DEFAULT ( IMU660RA_ACC_SAMPLE_SGN_8G ) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD>ϵ<EFBFBD> <20><><EFBFBD>ٶȼ<D9B6> <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define IMU660RA_GYRO_SAMPLE_DEFAULT ( IMU660RA_GYRO_SAMPLE_SGN_2000DPS ) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD>ϵ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
#define IMU660RA_CHIP_ID (0x00)
|
||||
#define IMU660RA_TIMEOUT_COUNT ( 0x00FF ) // IMU660RA <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
||||
|
||||
#define IMU660RA_PWR_CONF (0x7C)
|
||||
#define IMU660RA_PWR_CTRL (0x7D)
|
||||
#define IMU660RA_INIT_CTRL (0x59)
|
||||
#define IMU660RA_INIT_DATA (0x5E)
|
||||
#define IMU660RA_INT_STA (0x21)
|
||||
#define IMU660RA_ACC_ADDRESS (0x0C)
|
||||
#define IMU660RA_GYRO_ADDRESS (0x12)
|
||||
#define IMU660RA_ACC_CONF (0x40)
|
||||
#define IMU660RA_ACC_RANGE (0x41)
|
||||
#define IMU660RA_GYR_CONF (0x42)
|
||||
#define IMU660RA_GYR_RANGE (0x43)
|
||||
//================================================<3D><><EFBFBD><EFBFBD> IMU660RA <20>ڲ<EFBFBD><DAB2><EFBFBD>ַ================================================
|
||||
#define IMU660RA_DEV_ADDR ( 0x69 ) // SA0<41>ӵأ<D3B5>0x68 SA0<41><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0x69 ģ<><C4A3>Ĭ<EFBFBD><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define IMU660RA_SPI_W ( 0x00 )
|
||||
#define IMU660RA_SPI_R ( 0x80 )
|
||||
|
||||
#define IMU660RA_ACC_SAMPLE (0x02) // <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x00 <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>2g <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 16384 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x01 <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>4g <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 8192 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x02 <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>8g <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 4096 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x03 <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>16g <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 2048 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
#define IMU660RA_CHIP_ID ( 0x00 )
|
||||
#define IMU660RA_PWR_CONF ( 0x7C )
|
||||
#define IMU660RA_PWR_CTRL ( 0x7D )
|
||||
#define IMU660RA_INIT_CTRL ( 0x59 )
|
||||
#define IMU660RA_INIT_DATA ( 0x5E )
|
||||
#define IMU660RA_INT_STA ( 0x21 )
|
||||
#define IMU660RA_ACC_ADDRESS ( 0x0C )
|
||||
#define IMU660RA_GYRO_ADDRESS ( 0x12 )
|
||||
#define IMU660RA_ACC_CONF ( 0x40 )
|
||||
#define IMU660RA_ACC_RANGE ( 0x41 )
|
||||
#define IMU660RA_GYR_CONF ( 0x42 )
|
||||
#define IMU660RA_GYR_RANGE ( 0x43 )
|
||||
//================================================<3D><><EFBFBD><EFBFBD> IMU660RA <20>ڲ<EFBFBD><DAB2><EFBFBD>ַ================================================
|
||||
|
||||
#define IMU660RA_GYR_SAMPLE (0x00) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x00 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>2000dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 16.4 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>λΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x01 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>1000dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 32.8 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x02 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>500 dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 65.6 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x03 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>250 dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 131.2 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x04 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>125 dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 262.4 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
extern int16 imu660ra_gyro_x, imu660ra_gyro_y, imu660ra_gyro_z; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> gyro (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
extern int16 imu660ra_acc_x, imu660ra_acc_y, imu660ra_acc_z; // <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> acc (accelerometer <20><><EFBFBD>ٶȼ<D9B6>)
|
||||
extern float imu660ra_transition_factor[2];
|
||||
|
||||
void imu660ra_get_acc (void); // <20><>ȡ IMU660RA <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
void imu660ra_get_gyro (void); // <20><>ȡ IMU660RA <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> IMU660RA <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊʵ<CEAA><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> acc_value <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> float data = imu660ra_acc_transition(imu660ra_acc_x); // <20><>λΪ g(m/s^2)
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
#define imu660ra_acc_transition(acc_value) ((float)(acc_value) / imu660ra_transition_factor[0])
|
||||
|
||||
extern int16 imu660ra_gyro_x, imu660ra_gyro_y, imu660ra_gyro_z; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> gyro (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
extern int16 imu660ra_acc_x, imu660ra_acc_y, imu660ra_acc_z; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> acc (accelerometer <20><><EFBFBD>ٶȼ<D9B6>)
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> IMU660RA <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD>Ϊʵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> gyro_value <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> float data = imu660ra_gyro_transition(imu660ra_gyro_x); // <20><>λΪ <20><>/s
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
#define imu660ra_gyro_transition(gyro_value) ((float)(gyro_value) / imu660ra_transition_factor[1])
|
||||
|
||||
void imu660ra_get_acc (void); // <20><>ȡ IMU660RA <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
void imu660ra_get_gyro (void); // <20><>ȡ IMU660RA <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
float imu660ra_acc_transition (int16 acc_value); // <20><> IMU660RA <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊʵ<CEAA><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
float imu660ra_gyro_transition (int16 gyro_value); // <20><> IMU660RA <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊʵ<CEAA><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
uint8 imu660ra_init (void); // <20><>ʼ<EFBFBD><CABC> IMU660RA
|
||||
uint8 imu660ra_init (void); // <20><>ʼ<EFBFBD><EFBFBD> IMU660RA
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -33,213 +33,184 @@
|
||||
* 2022-09-15 pudding first version
|
||||
* 2023-04-28 pudding <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2>˵<EFBFBD><CBB5>
|
||||
********************************************************************************************************************/
|
||||
/*********************************************************************************************************************
|
||||
/********************************************************************************************************************
|
||||
* <20><><EFBFBD>߶<EFBFBD><DFB6>壺
|
||||
* ------------------------------------
|
||||
* ģ<EFBFBD><EFBFBD><EFBFBD>ܽ<EFBFBD> <20><>Ƭ<EFBFBD><C6AC><EFBFBD>ܽ<EFBFBD>
|
||||
* // Ӳ<><D3B2> SPI <20><><EFBFBD><EFBFBD>
|
||||
* SCL/SPC <20>鿴 zf_device_imu660rb.h <20><> IMU660RB_SPC_PIN <20>궨<EFBFBD><EAB6A8>
|
||||
* SDA/DSI <20>鿴 zf_device_imu660rb.h <20><> IMU660RB_SDI_PIN <20>궨<EFBFBD><EAB6A8>
|
||||
* SA0/SDO <20>鿴 zf_device_imu660rb.h <20><> IMU660RB_SDO_PIN <20>궨<EFBFBD><EAB6A8>
|
||||
* CS <20>鿴 zf_device_imu660rb.h <20><> IMU660RB_CS_PIN <20>궨<EFBFBD><EAB6A8>
|
||||
* VCC 3.3V<EFBFBD><EFBFBD>Դ
|
||||
* GND <20><>Դ<EFBFBD><D4B4>
|
||||
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* ------------------------------------
|
||||
* ģ<><C4A3><EFBFBD>ܽ<EFBFBD> <20><>Ƭ<EFBFBD><C6AC><EFBFBD>ܽ<EFBFBD>
|
||||
* // Ӳ<><D3B2> SPI <20><><EFBFBD><EFBFBD>
|
||||
* SCL/SPC <EFBFBD>鿴 zf_device_imu660rb.h <20><> IMU660RB_SPC_PIN <20>궨<EFBFBD><EAB6A8>
|
||||
* SDA/DSI <EFBFBD>鿴 zf_device_imu660rb.h <20><> IMU660RB_SDI_PIN <20>궨<EFBFBD><EAB6A8>
|
||||
* SA0/SDO <EFBFBD>鿴 zf_device_imu660rb.h <20><> IMU660RB_SDO_PIN <20>궨<EFBFBD><EAB6A8>
|
||||
* CS <EFBFBD>鿴 zf_device_imu660rb.h <20><> IMU660RB_CS_PIN <EFBFBD>궨<EFBFBD><EFBFBD>
|
||||
* VCC 3.3V<EFBFBD><EFBFBD>Դ
|
||||
* GND <EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD>
|
||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
*
|
||||
* // <20><><EFBFBD><EFBFBD> IIC <20><><EFBFBD><EFBFBD>
|
||||
* SCL/SPC <20>鿴 zf_device_imu660rb.h <20><> IMU660RB_SCL_PIN <20>궨<EFBFBD><EAB6A8>
|
||||
* SDA/DSI <20>鿴 zf_device_imu660rb.h <20><> IMU660RB_SDA_PIN <20>궨<EFBFBD><EAB6A8>
|
||||
* VCC 3.3V<EFBFBD><EFBFBD>Դ
|
||||
* GND <20><>Դ<EFBFBD><D4B4>
|
||||
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* ------------------------------------
|
||||
* // <20><><EFBFBD><EFBFBD> IIC <20><><EFBFBD><EFBFBD>
|
||||
* SCL/SPC <EFBFBD>鿴 zf_device_imu660rb.h <20><> IMU660RB_SCL_PIN <20>궨<EFBFBD><EAB6A8>
|
||||
* SDA/DSI <EFBFBD>鿴 zf_device_imu660rb.h <20><> IMU660RB_SDA_PIN <20>궨<EFBFBD><EAB6A8>
|
||||
* VCC 3.3V<EFBFBD><EFBFBD>Դ
|
||||
* GND <EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD>
|
||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* ------------------------------------
|
||||
********************************************************************************************************************/
|
||||
|
||||
#include "zf_common_debug.h"
|
||||
#include "zf_driver_delay.h"
|
||||
#include "zf_driver_spi.h"
|
||||
#include "zf_driver_gpio.h"
|
||||
#include "zf_driver_soft_iic.h"
|
||||
#include "zf_device_config.h"
|
||||
#include "zf_device_imu660rb.h"
|
||||
|
||||
int16 imu660rb_gyro_x = 0, imu660rb_gyro_y = 0, imu660rb_gyro_z = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> gyro (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
int16 imu660rb_acc_x = 0, imu660rb_acc_y = 0, imu660rb_acc_z = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> acc (accelerometer <20><><EFBFBD>ٶȼ<D9B6>)
|
||||
int16 imu660rb_gyro_x = 0, imu660rb_gyro_y = 0, imu660rb_gyro_z = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> GYRO (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
int16 imu660rb_acc_x = 0, imu660rb_acc_y = 0, imu660rb_acc_z = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> ACC (accelerometer <20><><EFBFBD>ٶȼ<D9B6>)
|
||||
float imu660rb_transition_factor[2] = {4098, 14.3}; // ת<><D7AA>ʵ<EFBFBD><CAB5>ֵ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD>
|
||||
|
||||
#if IMU660RB_USE_SOFT_IIC
|
||||
static soft_iic_info_struct imu660rb_iic_struct;
|
||||
|
||||
#define imu660rb_write_register(reg, data) (soft_iic_write_8bit_register (&imu660rb_iic_struct, (reg), (data)))
|
||||
#define imu660rb_write_registers(reg, data, len) (soft_iic_write_8bit_registers(&imu660rb_iic_struct, (reg), (data), (len)))
|
||||
#define imu660rb_read_register(reg) (soft_iic_read_8bit_register (&imu660rb_iic_struct, (reg)))
|
||||
#define imu660rb_read_registers(reg, data, len) (soft_iic_read_8bit_registers (&imu660rb_iic_struct, (reg), (data), (len)))
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IMU660RB д<>Ĵ<EFBFBD><C4B4><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> reg <20>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>ַ
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> data <20><><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> imu660rb_write_acc_gyro_register(IMU660RB_SLV0_CONFIG, 0x00);
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
#define imu660rb_write_acc_gyro_register(reg,data) (soft_iic_write_8bit_register(&imu660rb_iic_struct,reg,data))
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IMU660RB <20><><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> reg <20>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>ַ
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> uint8 <20><><EFBFBD><EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> imu660rb_read_acc_gyro_register(IMU660RB_STATUS_MASTER);
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
#define imu660rb_read_acc_gyro_register(reg) (soft_iic_sccb_read_register(&imu660rb_iic_struct,reg))
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IMU660RB <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> reg <20>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>ַ
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> data <20><><EFBFBD>ݻ<EFBFBD><DDBB><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> len <20><><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> imu660rb_read_acc_gyro_registers(IMU660RB_OUTX_L_A, dat, 6);
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
#define imu660rb_read_acc_gyro_registers(reg,data,len) (soft_iic_read_8bit_registers(&imu660rb_iic_struct,reg,data,len))
|
||||
#else
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IMU660RB д<>Ĵ<EFBFBD><C4B4><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> reg <20>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>ַ
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> data <20><><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> imu660rb_write_register(IMU660RB_PWR_CONF, 0x00); // <20>رո<D5B8>ʡ<EFBFBD><CAA1>ģʽ
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> imu660rb_write_acc_gyro_register(IMU660RB_SLV0_CONFIG, 0x00);
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
static void imu660rb_write_register(uint8 reg, uint8 data)
|
||||
static void imu660rb_write_acc_gyro_register (uint8 reg, uint8 data)
|
||||
{
|
||||
IMU660RB_CS(0);
|
||||
spi_write_8bit_register(IMU660RB_SPI, reg | IMU660RB_SPI_W, data);
|
||||
|
||||
IMU660RB_CS(1);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IMU660RB д<><D0B4><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> reg <20>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>ַ
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> data <20><><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> imu660rb_write_registers(IMU660RB_INIT_DATA, imu660rb_config_file, sizeof(imu660rb_config_file));
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// static void imu660rb_write_registers(uint8 reg, const uint8 *data, uint32 len)
|
||||
// {
|
||||
// IMU660RB_CS(0);
|
||||
// spi_write_8bit_registers(IMU660RB_SPI, reg | IMU660RB_SPI_W, data, len);
|
||||
// IMU660RB_CS(1);
|
||||
// }
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IMU660RB <20><><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> reg <20>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>ַ
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> uint8 <20><><EFBFBD><EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> imu660rb_read_register(IMU660RB_CHIP_ID);
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> imu660rb_read_acc_gyro_register(IMU660RB_STATUS_MASTER);
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
static uint8 imu660rb_read_register(uint8 reg)
|
||||
static uint8 imu660rb_read_acc_gyro_register (uint8 reg)
|
||||
{
|
||||
uint8 data;
|
||||
uint8 data = 0;
|
||||
IMU660RB_CS(0);
|
||||
data = spi_read_8bit_register(IMU660RB_SPI, reg | IMU660RB_SPI_R);
|
||||
|
||||
IMU660RB_CS(1);
|
||||
return data;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IMU660RB <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IMU660RB <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> reg <20>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>ַ
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> data <20><><EFBFBD>ݻ<EFBFBD><DDBB><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> len <20><><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> imu660rb_read_registers(IMU660RB_ACC_ADDRESS, dat, 6);
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> imu660rb_read_acc_gyro_registers(IMU660RB_OUTX_L_A, dat, 6);
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
static void imu660rb_read_registers(uint8 reg, uint8 *data, uint32 len)
|
||||
static void imu660rb_read_acc_gyro_registers (uint8 reg, uint8 *data, uint32 len)
|
||||
{
|
||||
IMU660RB_CS(0);
|
||||
spi_read_8bit_registers(IMU660RB_SPI, reg | IMU660RB_SPI_R, data, len);
|
||||
IMU660RB_CS(1);
|
||||
|
||||
IMU660RB_CS(1);
|
||||
}
|
||||
#endif
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IMU660RB <20>Լ<EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IMU660RB <20><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD> <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> void
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> uint8 1-<2D>Լ<EFBFBD>ʧ<EFBFBD><CAA7> 0-<2D>Լ<EFBFBD><D4BC>ɹ<EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> imu660rb_self_check();
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> imu660rb_acc_gyro_self_check();
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
static uint8 imu660rb_self_check (void)
|
||||
static uint8 imu660rb_acc_gyro_self_check (void)
|
||||
{
|
||||
uint8 dat = 0, return_state = 0;
|
||||
uint8 return_state = 0;
|
||||
uint8 dat = 0;
|
||||
uint16 timeout_count = 0;
|
||||
do
|
||||
|
||||
while(0x6B != dat) // <20>ж<EFBFBD> ID <20>Ƿ<EFBFBD><C7B7><EFBFBD>ȷ
|
||||
{
|
||||
if(timeout_count ++ > IMU660RB_TIMEOUT_COUNT)
|
||||
if(IMU660RB_TIMEOUT_COUNT < timeout_count ++)
|
||||
{
|
||||
return_state = 1;
|
||||
return_state = 1;
|
||||
break;
|
||||
}
|
||||
dat = imu660rb_read_register(IMU660RB_CHIP_ID);
|
||||
system_delay_ms(1);
|
||||
}while(0x6B != dat); // <20><>ȡ<EFBFBD>豸ID<49>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>0X24<32><34><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0X24<32><34><EFBFBD><EFBFBD>Ϊû<CEAA><C3BB><EFBFBD><EFBFBD>豸
|
||||
dat = imu660rb_read_acc_gyro_register(IMU660RB_WHO_AM_I);
|
||||
system_delay_ms(10);
|
||||
}
|
||||
return return_state;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȡ IMU660RB <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> void
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> imu660rb_get_acc(); // ִ<>иú<D0B8><C3BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>Ӳ鿴<D3B2><E9BFB4>Ӧ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ ʹ<EFBFBD><EFBFBD> SPI <20>IJɼ<C4B2>ʱ<EFBFBD><CAB1>Ϊ69us
|
||||
// ʹ<><CAB9> IIC <20>IJɼ<C4B2>ʱ<EFBFBD><CAB1>Ϊ126us <20>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD>ٶȼƵ<C8BC>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǵ<EFBFBD>ʱ<EFBFBD><CAB1>һ<EFBFBD>µ<EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD>Ƕ<EFBFBD>ֻ<EFBFBD>Ƕ<EFBFBD>ȡ<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> imu660rb_get_acc();
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ ִ<EFBFBD>иú<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>Ӳ鿴<EFBFBD><EFBFBD>Ӧ<EFBFBD>ı<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void imu660rb_get_acc (void)
|
||||
{
|
||||
uint8 dat[6];
|
||||
|
||||
imu660rb_read_registers(IMU660RB_ACC_ADDRESS, dat, 6);
|
||||
imu660rb_read_acc_gyro_registers(IMU660RB_OUTX_L_A, dat, 6);
|
||||
imu660rb_acc_x = (int16)(((uint16)dat[1]<<8 | dat[0]));
|
||||
imu660rb_acc_y = (int16)(((uint16)dat[3]<<8 | dat[2]));
|
||||
imu660rb_acc_z = (int16)(((uint16)dat[5]<<8 | dat[4]));
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȡ IMU660RB <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> void
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> imu660rb_get_gyro(); // ִ<>иú<D0B8><C3BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>Ӳ鿴<D3B2><E9BFB4>Ӧ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ ʹ<EFBFBD><EFBFBD> SPI <20>IJɼ<C4B2>ʱ<EFBFBD><CAB1>Ϊ69us
|
||||
// ʹ<><CAB9> IIC <20>IJɼ<C4B2>ʱ<EFBFBD><CAB1>Ϊ126us
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> imu660rb_get_gyro();
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ ִ<EFBFBD>иú<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>Ӳ鿴<EFBFBD><EFBFBD>Ӧ<EFBFBD>ı<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void imu660rb_get_gyro (void)
|
||||
{
|
||||
uint8 dat[6];
|
||||
|
||||
imu660rb_read_registers(IMU660RB_GYRO_ADDRESS, dat, 6);
|
||||
imu660rb_read_acc_gyro_registers(IMU660RB_OUTX_L_G, dat, 6);
|
||||
imu660rb_gyro_x = (int16)(((uint16)dat[1]<<8 | dat[0]));
|
||||
imu660rb_gyro_y = (int16)(((uint16)dat[3]<<8 | dat[2]));
|
||||
imu660rb_gyro_z = (int16)(((uint16)dat[5]<<8 | dat[4]));
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> IMU660RB <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊʵ<CEAA><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> gyro_value <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> float data = imu660rb_acc_transition(imu660rb_acc_x); // <20><>λΪ g(m/s^2)
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
float imu660rb_acc_transition (int16 acc_value)
|
||||
{
|
||||
float acc_data = 0;
|
||||
switch(IMU660RB_ACC_SAMPLE)
|
||||
{
|
||||
case 0x30: acc_data = (float)acc_value / 16393; break; // 0x30 <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>2G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 16393 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
case 0x38: acc_data = (float)acc_value / 8197; break; // 0x38 <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>4G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 8197 <20><> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
case 0x3C: acc_data = (float)acc_value / 4098; break; // 0x3C <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>8G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 4098 <20><> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
case 0x34: acc_data = (float)acc_value / 2049; break; // 0x34 <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>16G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 2049 <20><> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
default: break;
|
||||
}
|
||||
return acc_data;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> IMU660RB <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊʵ<CEAA><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> gyro_value <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> float data = imu660rb_gyro_transition(imu660rb_gyro_x); // <20><>λΪ<CEBB><CEAA>/s
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
float imu660rb_gyro_transition (int16 gyro_value)
|
||||
{
|
||||
float gyro_data = 0;
|
||||
switch(IMU660RB_GYR_SAMPLE)
|
||||
{
|
||||
case 0x52: gyro_data = (float)gyro_value / 228.6f; break; // 0x52 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>125dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD> 228.6<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
case 0x50: gyro_data = (float)gyro_value / 114.3f; break; // 0x50 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>250dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD> 114.3<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
case 0x54: gyro_data = (float)gyro_value / 57.1f; break; // 0x54 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>500dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD> 57.1<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
case 0x58: gyro_data = (float)gyro_value / 28.6f; break; // 0x58 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>1000dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD> 28.6<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
case 0x5C: gyro_data = (float)gyro_value / 14.3f; break; // 0x5C <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>2000dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD> 14.3<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
case 0x51: gyro_data = (float)gyro_value / 7.1f; break; // 0x51 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>4000dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD> 7.1<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
default: break;
|
||||
}
|
||||
return gyro_data;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ʼ<EFBFBD><CABC> IMU660RB
|
||||
@@ -251,53 +222,125 @@ float imu660rb_gyro_transition (int16 gyro_value)
|
||||
uint8 imu660rb_init (void)
|
||||
{
|
||||
uint8 return_state = 0;
|
||||
system_delay_ms(20); // <20>ȴ<EFBFBD><EFBFBD>豸<EFBFBD>ϵ<EFBFBD><EFBFBD>ɹ<EFBFBD>
|
||||
system_delay_ms(10); // <20>ϵ<EFBFBD><CFB5><EFBFBD>ʱ
|
||||
|
||||
#if IMU660RB_USE_SOFT_IIC
|
||||
soft_iic_init(&imu660rb_iic_struct, IMU660RB_DEV_ADDR, IMU660RB_SOFT_IIC_DELAY, IMU660RB_SCL_PIN, IMU660RB_SDA_PIN); // <20><><EFBFBD><EFBFBD> IMU660RB <20><> IIC <20>˿<EFBFBD>
|
||||
soft_iic_init(&imu660rb_iic_struct, IMU660RB_DEV_ADDR, IMU660RB_SOFT_IIC_DELAY, IMU660RB_SCL_PIN, IMU660RB_SDA_PIN);
|
||||
#else
|
||||
spi_init(IMU660RB_SPI, SPI_MODE0, IMU660RB_SPI_SPEED, IMU660RB_SPC_PIN, IMU660RB_SDI_PIN, IMU660RB_SDO_PIN, SPI_CS_NULL); // <20><><EFBFBD><EFBFBD> IMU660RB <20><> SPI <20>˿<EFBFBD>
|
||||
gpio_init(IMU660RB_CS_PIN, GPO, GPIO_HIGH, GPO_PUSH_PULL); // <20><><EFBFBD><EFBFBD> IMU660RB <20><> CS <20>˿<EFBFBD>
|
||||
// imu660rb_read_register(IMU660RB_CHIP_ID); // <20><>ȡһ<C8A1><D2BB><EFBFBD>豸ID <20><><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>ΪSPIģʽ
|
||||
spi_init(IMU660RB_SPI, SPI_MODE0, IMU660RB_SPI_SPEED, IMU660RB_SPC_PIN, IMU660RB_SDI_PIN, IMU660RB_SDO_PIN, SPI_CS_NULL);
|
||||
gpio_init(IMU660RB_CS_PIN, GPO, GPIO_LOW, GPO_PUSH_PULL);
|
||||
#endif
|
||||
|
||||
do{
|
||||
if(imu660rb_self_check()) // IMU660RB <20>Լ<EFBFBD>
|
||||
do
|
||||
{
|
||||
imu660rb_write_acc_gyro_register(IMU660RB_FUNC_CFG_ACCESS, 0x00); // <20>ر<EFBFBD>HUB<55>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
imu660rb_write_acc_gyro_register(IMU660RB_CTRL3_C, 0x01); // <20><>λ<EFBFBD>豸
|
||||
system_delay_ms(2);
|
||||
imu660rb_write_acc_gyro_register(IMU660RB_FUNC_CFG_ACCESS, 0x00); // <20>ر<EFBFBD>HUB<55>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if(imu660rb_acc_gyro_self_check())
|
||||
{
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD><CBB6><EFBFBD><EFBFBD><EFBFBD>Ϣ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><>ô<EFBFBD><C3B4><EFBFBD><EFBFBD> IMU660RB <20>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>˳<EFBFBD><CBB3><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>һ<EFBFBD>½<EFBFBD><C2BD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܾ<EFBFBD><DCBE>ǻ<EFBFBD><C7BB><EFBFBD>
|
||||
zf_log(0, "imu660rb self check error.");
|
||||
zf_log(0, "IMU660RB acc and gyro self check error.");
|
||||
return_state = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
imu660rb_write_register(IMU660RB_INT1_CTRL, 0x03); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD>ݾ<EFBFBD><DDBE><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
imu660rb_write_register(IMU660RB_CTRL1_XL, IMU660RB_ACC_SAMPLE); // <20><><EFBFBD>ü<EFBFBD><C3BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><>8G <20>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 52hz <20>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD>Ϣ<EFBFBD>ӵ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD>˲<EFBFBD><CBB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
imu660rb_write_acc_gyro_register(IMU660RB_INT1_CTRL, 0x03); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD>ݾ<EFBFBD><DDBE><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
|
||||
// IMU660RB_CTRL1_XL <20>Ĵ<EFBFBD><C4B4><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x30 <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>2G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD>16393<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x38 <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>4G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD>8197<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x3C <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>8G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD>4098<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x34 <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>16G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD>2049<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x30 <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>2 G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 16393 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>λ g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x38 <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>4 G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 8197 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>λ g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x3C <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>8 G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 4098 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>λ g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x34 <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>16 G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 2049 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>λ g(m/s^2)
|
||||
switch(IMU660RB_ACC_SAMPLE_DEFAULT)
|
||||
{
|
||||
default:
|
||||
{
|
||||
zf_log(0, "IMU660RB_ACC_SAMPLE_DEFAULT set error.");
|
||||
return_state = 1;
|
||||
}break;
|
||||
case IMU660RB_ACC_SAMPLE_SGN_2G:
|
||||
{
|
||||
imu660rb_write_acc_gyro_register(IMU660RB_CTRL1_XL, 0x30);
|
||||
imu660rb_transition_factor[0] = 16393;
|
||||
}break;
|
||||
case IMU660RB_ACC_SAMPLE_SGN_4G:
|
||||
{
|
||||
imu660rb_write_acc_gyro_register(IMU660RB_CTRL1_XL, 0x38);
|
||||
imu660rb_transition_factor[0] = 8197;
|
||||
}break;
|
||||
case IMU660RB_ACC_SAMPLE_SGN_8G:
|
||||
{
|
||||
imu660rb_write_acc_gyro_register(IMU660RB_CTRL1_XL, 0x3C);
|
||||
imu660rb_transition_factor[0] = 4098;
|
||||
}break;
|
||||
case IMU660RB_ACC_SAMPLE_SGN_16G:
|
||||
{
|
||||
imu660rb_write_acc_gyro_register(IMU660RB_CTRL1_XL, 0x34);
|
||||
imu660rb_transition_factor[0] = 2049;
|
||||
}break;
|
||||
}
|
||||
if(1 == return_state)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
imu660rb_write_register(IMU660RB_CTRL2_G, IMU660RB_GYR_SAMPLE); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǽ<EFBFBD><C7BC><EFBFBD><EFBFBD><EFBFBD> <20><>2000dps <20>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 208hz
|
||||
// IMU660RB_CTRL2_G <20>Ĵ<EFBFBD><C4B4><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x52 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>125dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>228.6<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD>λΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x50 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>250dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>114.3<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD>λΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x54 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>500dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>57.1<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD>λΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x58 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>1000dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>28.6<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD>λΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x5C <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>2000dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>14.3<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD>λΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x51 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>4000dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>7.1<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD>λΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x52 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>125 dps <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 228.6 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>λΪ <EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x50 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>250 dps <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 114.3 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>λΪ <EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x54 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>500 dps <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 57.1 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>λΪ <EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x58 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>1000 dps <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 28.6 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>λΪ <EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x5C <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>2000 dps <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 14.3 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>λΪ <EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x51 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>4000 dps <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 7.1 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>λΪ <EFBFBD><EFBFBD>/s
|
||||
switch(IMU660RB_GYRO_SAMPLE_DEFAULT)
|
||||
{
|
||||
default:
|
||||
{
|
||||
zf_log(0, "IMU660RB_GYRO_SAMPLE_DEFAULT set error.");
|
||||
return_state = 1;
|
||||
}break;
|
||||
case IMU660RB_GYRO_SAMPLE_SGN_125DPS:
|
||||
{
|
||||
imu660rb_write_acc_gyro_register(IMU660RB_CTRL2_G, 0x52);
|
||||
imu660rb_transition_factor[1] = 228.6;
|
||||
}break;
|
||||
case IMU660RB_GYRO_SAMPLE_SGN_250DPS:
|
||||
{
|
||||
imu660rb_write_acc_gyro_register(IMU660RB_CTRL2_G, 0x50);
|
||||
imu660rb_transition_factor[1] = 114.3;
|
||||
}break;
|
||||
case IMU660RB_GYRO_SAMPLE_SGN_500DPS:
|
||||
{
|
||||
imu660rb_write_acc_gyro_register(IMU660RB_CTRL2_G, 0x54);
|
||||
imu660rb_transition_factor[1] = 57.1;
|
||||
}break;
|
||||
case IMU660RB_GYRO_SAMPLE_SGN_1000DPS:
|
||||
{
|
||||
imu660rb_write_acc_gyro_register(IMU660RB_CTRL2_G, 0x58);
|
||||
imu660rb_transition_factor[1] = 28.6;
|
||||
}break;
|
||||
case IMU660RB_GYRO_SAMPLE_SGN_2000DPS:
|
||||
{
|
||||
imu660rb_write_acc_gyro_register(IMU660RB_CTRL2_G, 0x5C);
|
||||
imu660rb_transition_factor[1] = 14.3;
|
||||
}break;
|
||||
case IMU660RB_GYRO_SAMPLE_SGN_4000DPS:
|
||||
{
|
||||
imu660rb_write_acc_gyro_register(IMU660RB_CTRL2_G, 0x51);
|
||||
imu660rb_transition_factor[1] = 7.1;
|
||||
}break;
|
||||
}
|
||||
if(1 == return_state)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
imu660rb_write_register(IMU660RB_CTRL3_C, 0x44); // ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ͨ<EFBFBD>˲<EFBFBD><CBB2><EFBFBD>
|
||||
imu660rb_write_register(IMU660RB_CTRL4_C, 0x02); // ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ͨ<EFBFBD>˲<EFBFBD><CBB2><EFBFBD>
|
||||
imu660rb_write_register(IMU660RB_CTRL5_C, 0x00); // <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
imu660rb_write_register(IMU660RB_CTRL6_C, 0x00); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶȼƸ<C8BC><C6B8><EFBFBD><EFBFBD><EFBFBD>ģʽ <20><><EFBFBD><EFBFBD><EFBFBD>ǵ<EFBFBD>ͨ<EFBFBD>˲<EFBFBD> 133hz
|
||||
imu660rb_write_register(IMU660RB_CTRL7_G, 0x00); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǹ<EFBFBD><C7B8><EFBFBD><EFBFBD><EFBFBD>ģʽ <20>رո<D8B1>ͨ<EFBFBD>˲<EFBFBD>
|
||||
imu660rb_write_register(IMU660RB_CTRL9_XL, 0x01); // <20>ر<EFBFBD>I3C<33>ӿ<EFBFBD>
|
||||
imu660rb_write_acc_gyro_register(IMU660RB_CTRL3_C, 0x44); // ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ͨ<EFBFBD>˲<EFBFBD><CBB2><EFBFBD>
|
||||
imu660rb_write_acc_gyro_register(IMU660RB_CTRL4_C, 0x02); // ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ͨ<EFBFBD>˲<EFBFBD><CBB2><EFBFBD>
|
||||
imu660rb_write_acc_gyro_register(IMU660RB_CTRL5_C, 0x00); // <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
imu660rb_write_acc_gyro_register(IMU660RB_CTRL6_C, 0x00); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶȼƸ<C8BC><C6B8><EFBFBD><EFBFBD><EFBFBD>ģʽ <20><><EFBFBD><EFBFBD><EFBFBD>ǵ<EFBFBD>ͨ<EFBFBD>˲<EFBFBD> 133hz
|
||||
imu660rb_write_acc_gyro_register(IMU660RB_CTRL7_G, 0x00); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǹ<EFBFBD><C7B8><EFBFBD><EFBFBD><EFBFBD>ģʽ <20>رո<D8B1>ͨ<EFBFBD>˲<EFBFBD>
|
||||
imu660rb_write_acc_gyro_register(IMU660RB_CTRL9_XL, 0x01); // <20>ر<EFBFBD>I3C<33>ӿ<EFBFBD>
|
||||
|
||||
}while(0);
|
||||
return return_state;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -32,27 +32,28 @@
|
||||
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
|
||||
* 2022-09-15 pudding first version
|
||||
* 2023-04-28 pudding <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2>˵<EFBFBD><CBB5>
|
||||
* 2024-01-30 pudding <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
********************************************************************************************************************/
|
||||
/*********************************************************************************************************************
|
||||
/********************************************************************************************************************
|
||||
* <20><><EFBFBD>߶<EFBFBD><DFB6>壺
|
||||
* ------------------------------------
|
||||
* ģ<EFBFBD><EFBFBD><EFBFBD>ܽ<EFBFBD> <20><>Ƭ<EFBFBD><C6AC><EFBFBD>ܽ<EFBFBD>
|
||||
* // Ӳ<><D3B2> SPI <20><><EFBFBD><EFBFBD>
|
||||
* SCL/SPC <20>鿴 zf_device_imu660rb.h <20><> IMU660RB_SPC_PIN <20>궨<EFBFBD><EAB6A8>
|
||||
* SDA/DSI <20>鿴 zf_device_imu660rb.h <20><> IMU660RB_SDI_PIN <20>궨<EFBFBD><EAB6A8>
|
||||
* SA0/SDO <20>鿴 zf_device_imu660rb.h <20><> IMU660RB_SDO_PIN <20>궨<EFBFBD><EAB6A8>
|
||||
* CS <20>鿴 zf_device_imu660rb.h <20><> IMU660RB_CS_PIN <20>궨<EFBFBD><EAB6A8>
|
||||
* VCC 3.3V<EFBFBD><EFBFBD>Դ
|
||||
* GND <20><>Դ<EFBFBD><D4B4>
|
||||
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* ------------------------------------
|
||||
* ģ<><C4A3><EFBFBD>ܽ<EFBFBD> <20><>Ƭ<EFBFBD><C6AC><EFBFBD>ܽ<EFBFBD>
|
||||
* // Ӳ<><D3B2> SPI <20><><EFBFBD><EFBFBD>
|
||||
* SCL/SPC <EFBFBD>鿴 zf_device_imu660rb.h <20><> IMU660RB_SPC_PIN <20>궨<EFBFBD><EAB6A8>
|
||||
* SDA/DSI <EFBFBD>鿴 zf_device_imu660rb.h <20><> IMU660RB_SDI_PIN <20>궨<EFBFBD><EAB6A8>
|
||||
* SA0/SDO <EFBFBD>鿴 zf_device_imu660rb.h <20><> IMU660RB_SDO_PIN <20>궨<EFBFBD><EAB6A8>
|
||||
* CS <EFBFBD>鿴 zf_device_imu660rb.h <20><> IMU660RB_CS_PIN <EFBFBD>궨<EFBFBD><EFBFBD>
|
||||
* VCC 3.3V<EFBFBD><EFBFBD>Դ
|
||||
* GND <EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD>
|
||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
*
|
||||
* // <20><><EFBFBD><EFBFBD> IIC <20><><EFBFBD><EFBFBD>
|
||||
* SCL/SPC <20>鿴 zf_device_imu660rb.h <20><> IMU660RB_SCL_PIN <20>궨<EFBFBD><EAB6A8>
|
||||
* SDA/DSI <20>鿴 zf_device_imu660rb.h <20><> IMU660RB_SDA_PIN <20>궨<EFBFBD><EAB6A8>
|
||||
* VCC 3.3V<EFBFBD><EFBFBD>Դ
|
||||
* GND <20><>Դ<EFBFBD><D4B4>
|
||||
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* ------------------------------------
|
||||
* // <20><><EFBFBD><EFBFBD> IIC <20><><EFBFBD><EFBFBD>
|
||||
* SCL/SPC <EFBFBD>鿴 zf_device_imu660rb.h <20><> IMU660RB_SCL_PIN <20>궨<EFBFBD><EAB6A8>
|
||||
* SDA/DSI <EFBFBD>鿴 zf_device_imu660rb.h <20><> IMU660RB_SDA_PIN <20>궨<EFBFBD><EAB6A8>
|
||||
* VCC 3.3V<EFBFBD><EFBFBD>Դ
|
||||
* GND <EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD>
|
||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* ------------------------------------
|
||||
********************************************************************************************************************/
|
||||
|
||||
#ifndef _zf_device_imu660rb_h_
|
||||
@@ -60,59 +61,96 @@
|
||||
|
||||
#include "zf_common_typedef.h"
|
||||
|
||||
// IMU660RB_USE_SOFT_IIC<49><43><EFBFBD><EFBFBD>Ϊ0<CEAA><30>ʾʹ<CABE><CAB9>Ӳ<EFBFBD><D3B2>SPI<50><49><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ϊ1<CEAA><31>ʾʹ<CABE><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IIC<49><43><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IMU660RB_USE_SOFT_IIC<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>ȱ<EFBFBD><EFBFBD>벢<EFBFBD><EFBFBD><EFBFBD>س<EFBFBD><EFBFBD><EFBFBD>Ƭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>ϵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨѶ
|
||||
#define IMU660RB_USE_SOFT_IIC (0) // Ĭ<><C4AC>ʹ<EFBFBD><CAB9>Ӳ<EFBFBD><D3B2> SPI <20><>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
//================================================<3D><><EFBFBD><EFBFBD> IMU660RB <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>================================================
|
||||
#define IMU660RB_USE_SOFT_IIC (0) // Ĭ<EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD>Ӳ<EFBFBD><EFBFBD> SPI <EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#if IMU660RB_USE_SOFT_IIC // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7> <20><>ɫ<EFBFBD>ҵľ<D2B5><C4BE><EFBFBD>û<EFBFBD><C3BB><EFBFBD>õ<EFBFBD>
|
||||
//====================================================<3D><><EFBFBD><EFBFBD> IIC <20><><EFBFBD><EFBFBD>====================================================
|
||||
#define IMU660RB_SOFT_IIC_DELAY (59) // <20><><EFBFBD><EFBFBD> IIC <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD> <20><>ֵԽС IIC ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD>
|
||||
#define IMU660RB_SCL_PIN (P20_11) // <20><><EFBFBD><EFBFBD> IIC SCL <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> IMU660RB <20><> SCL <20><><EFBFBD><EFBFBD>
|
||||
#define IMU660RB_SDA_PIN (P20_14) // <20><><EFBFBD><EFBFBD> IIC SDA <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> IMU660RB <20><> SDA <20><><EFBFBD><EFBFBD>
|
||||
#define IMU660RB_SOFT_IIC_DELAY (59 ) // <20><><EFBFBD><EFBFBD> IIC <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD> <20><>ֵԽС IIC ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD>
|
||||
#define IMU660RB_SCL_PIN (P20_11) // <20><><EFBFBD><EFBFBD> IIC SCL <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> IMU660RB <20><> SCL <20><><EFBFBD><EFBFBD>
|
||||
#define IMU660RB_SDA_PIN (P20_14) // <20><><EFBFBD><EFBFBD> IIC SDA <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> IMU660RB <20><> SDA <20><><EFBFBD><EFBFBD>
|
||||
//====================================================<3D><><EFBFBD><EFBFBD> IIC <20><><EFBFBD><EFBFBD>====================================================
|
||||
#else
|
||||
|
||||
//====================================================Ӳ<><D3B2> SPI <20><><EFBFBD><EFBFBD>====================================================
|
||||
#define IMU660RB_SPI_SPEED (10 * 1000 * 1000) // Ӳ<><D3B2> SPI <20><><EFBFBD><EFBFBD>
|
||||
#define IMU660RB_SPI (SPI_0) // Ӳ<><D3B2> SPI <20><>
|
||||
#define IMU660RB_SPC_PIN (SPI0_SCLK_P20_11 ) // Ӳ<><D3B2> SPI SCK <20><><EFBFBD><EFBFBD>
|
||||
#define IMU660RB_SDI_PIN (SPI0_MOSI_P20_14) // Ӳ<><D3B2> SPI MOSI <20><><EFBFBD><EFBFBD>
|
||||
#define IMU660RB_SDO_PIN (SPI0_MISO_P20_12) // Ӳ<><D3B2> SPI MISO <20><><EFBFBD><EFBFBD>
|
||||
#define IMU660RB_SPI_SPEED (10 * 1000 * 1000) // Ӳ<><D3B2> SPI <20><><EFBFBD><EFBFBD>
|
||||
#define IMU660RB_SPI (SPI_0 ) // Ӳ<><D3B2> SPI <20><>
|
||||
#define IMU660RB_SPC_PIN (SPI0_SCLK_P20_11) // Ӳ<><D3B2> SPI SCK <20><><EFBFBD><EFBFBD>
|
||||
#define IMU660RB_SDI_PIN (SPI0_MOSI_P20_14) // Ӳ<><D3B2> SPI MOSI <20><><EFBFBD><EFBFBD>
|
||||
#define IMU660RB_SDO_PIN (SPI0_MISO_P20_12) // Ӳ<><D3B2> SPI MISO <20><><EFBFBD><EFBFBD>
|
||||
//====================================================Ӳ<><D3B2> SPI <20><><EFBFBD><EFBFBD>====================================================
|
||||
#endif
|
||||
#define IMU660RB_CS_PIN (P20_13) // CS Ƭѡ<C6AC><D1A1><EFBFBD><EFBFBD>
|
||||
#define IMU660RB_CS(x) ((x) ? (gpio_high(IMU660RB_CS_PIN)) : (gpio_low(IMU660RB_CS_PIN)))
|
||||
|
||||
#define IMU660RB_TIMEOUT_COUNT (0x00FF) // IMU660 <20><>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define IMU660RB_CS_PIN (P20_13) // CS Ƭѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define IMU660RB_CS(x) (x? (gpio_high(IMU660RB_CS_PIN)): (gpio_low(IMU660RB_CS_PIN)))
|
||||
|
||||
//================================================<3D><><EFBFBD><EFBFBD> imu660rb <20>ڲ<EFBFBD><DAB2><EFBFBD>ַ================================================
|
||||
#define IMU660RB_DEV_ADDR (0x6B) // SA0<41>ӵأ<D3B5>0x68 SA0<41><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0x69 ģ<><C4A3>Ĭ<EFBFBD><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define IMU660RB_SPI_W (0x00)
|
||||
#define IMU660RB_SPI_R (0x80)
|
||||
typedef enum
|
||||
{
|
||||
IMU660RB_ACC_SAMPLE_SGN_2G , // <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><>2G (ACC = Accelerometer <20><><EFBFBD>ٶȼ<D9B6>) (SGN = signum <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ) (G = g <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD> g<><67>9.80 m/s^2)
|
||||
IMU660RB_ACC_SAMPLE_SGN_4G , // <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><>4G (ACC = Accelerometer <20><><EFBFBD>ٶȼ<D9B6>) (SGN = signum <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ) (G = g <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD> g<><67>9.80 m/s^2)
|
||||
IMU660RB_ACC_SAMPLE_SGN_8G , // <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><>8G (ACC = Accelerometer <20><><EFBFBD>ٶȼ<D9B6>) (SGN = signum <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ) (G = g <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD> g<><67>9.80 m/s^2)
|
||||
IMU660RB_ACC_SAMPLE_SGN_16G, // <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><>16G (ACC = Accelerometer <20><><EFBFBD>ٶȼ<D9B6>) (SGN = signum <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ) (G = g <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD> g<><67>9.80 m/s^2)
|
||||
}imu660rb_acc_sample_config;
|
||||
|
||||
#define IMU660RB_CHIP_ID (0x0F)
|
||||
typedef enum
|
||||
{
|
||||
IMU660RB_GYRO_SAMPLE_SGN_125DPS , // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>125DPS (GYRO = Gyroscope <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) (SGN = signum <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ) (DPS = Degree Per Second <20><><EFBFBD>ٶȵ<D9B6>λ <20><>/S)
|
||||
IMU660RB_GYRO_SAMPLE_SGN_250DPS , // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>250DPS (GYRO = Gyroscope <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) (SGN = signum <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ) (DPS = Degree Per Second <20><><EFBFBD>ٶȵ<D9B6>λ <20><>/S)
|
||||
IMU660RB_GYRO_SAMPLE_SGN_500DPS , // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>500DPS (GYRO = Gyroscope <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) (SGN = signum <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ) (DPS = Degree Per Second <20><><EFBFBD>ٶȵ<D9B6>λ <20><>/S)
|
||||
IMU660RB_GYRO_SAMPLE_SGN_1000DPS, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>1000DPS (GYRO = Gyroscope <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) (SGN = signum <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ) (DPS = Degree Per Second <20><><EFBFBD>ٶȵ<D9B6>λ <20><>/S)
|
||||
IMU660RB_GYRO_SAMPLE_SGN_2000DPS, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>2000DPS (GYRO = Gyroscope <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) (SGN = signum <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ) (DPS = Degree Per Second <20><><EFBFBD>ٶȵ<D9B6>λ <20><>/S)
|
||||
IMU660RB_GYRO_SAMPLE_SGN_4000DPS, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>4000DPS (GYRO = Gyroscope <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) (SGN = signum <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ) (DPS = Degree Per Second <20><><EFBFBD>ٶȵ<D9B6>λ <20><>/S)
|
||||
}imu660rb_gyro_sample_config;
|
||||
|
||||
#define IMU660RB_INT1_CTRL (0x0D)
|
||||
#define IMU660RB_CTRL1_XL (0x10)
|
||||
#define IMU660RB_CTRL2_G (0x11)
|
||||
#define IMU660RB_CTRL3_C (0x12)
|
||||
#define IMU660RB_CTRL4_C (0x13)
|
||||
#define IMU660RB_CTRL5_C (0x14)
|
||||
#define IMU660RB_CTRL6_C (0x15)
|
||||
#define IMU660RB_CTRL7_G (0x16)
|
||||
#define IMU660RB_CTRL9_XL (0x18)
|
||||
|
||||
#define IMU660RB_ACC_ADDRESS (0x28)
|
||||
#define IMU660RB_GYRO_ADDRESS (0x22)
|
||||
|
||||
#define IMU660RB_ACC_SAMPLE (0x3C) // <20><><EFBFBD>ٶȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define IMU660RB_ACC_SAMPLE_DEFAULT ( IMU660RB_ACC_SAMPLE_SGN_8G ) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD>ϵ<EFBFBD> <20><><EFBFBD>ٶȼ<D9B6> <20><>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define IMU660RB_GYRO_SAMPLE_DEFAULT ( IMU660RB_GYRO_SAMPLE_SGN_2000DPS ) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD>ϵ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define IMU660RB_TIMEOUT_COUNT (0x00FF) // IMU660RB <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
||||
//================================================<3D><><EFBFBD><EFBFBD> IMU660RB <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>================================================
|
||||
|
||||
|
||||
//================================================<3D><><EFBFBD><EFBFBD> IMU660RB <20>ڲ<EFBFBD><DAB2><EFBFBD>ַ================================================
|
||||
#define IMU660RB_DEV_ADDR (0x6B) // SA0<41>ӵأ<D3B5>0x6A SA0<41><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0x6B ģ<><C4A3>Ĭ<EFBFBD><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define IMU660RB_SPI_W (0x00)
|
||||
#define IMU660RB_SPI_R (0x80)
|
||||
|
||||
#define IMU660RB_FUNC_CFG_ACCESS (0x01)
|
||||
#define IMU660RB_INT1_CTRL (0x0D)
|
||||
#define IMU660RB_WHO_AM_I (0x0F)
|
||||
#define IMU660RB_CTRL1_XL (0x10)
|
||||
#define IMU660RB_CTRL2_G (0x11)
|
||||
#define IMU660RB_CTRL3_C (0x12)
|
||||
#define IMU660RB_CTRL4_C (0x13)
|
||||
#define IMU660RB_CTRL5_C (0x14)
|
||||
#define IMU660RB_CTRL6_C (0x15)
|
||||
#define IMU660RB_CTRL7_G (0x16)
|
||||
#define IMU660RB_CTRL9_XL (0x18)
|
||||
#define IMU660RB_OUTX_L_G (0x22)
|
||||
#define IMU660RB_OUTX_L_A (0x28)
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؼĴ<D8BC><C4B4><EFBFBD> <20><>Ҫ<EFBFBD><D2AA>FUNC_CFG_ACCESS<53><53>SHUB_REG_ACCESSλ<53><CEBB><EFBFBD><EFBFBD>Ϊ1<CEAA><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD>
|
||||
#define IMU660RB_SENSOR_HUB_1 (0x02)
|
||||
#define IMU660RB_MASTER_CONFIG (0x14)
|
||||
#define IMU660RB_SLV0_ADD (0x15)
|
||||
#define IMU660RB_SLV0_SUBADD (0x16)
|
||||
#define IMU660RB_SLV0_CONFIG (0x17)
|
||||
#define IMU660RB_DATAWRITE_SLV0 (0x21)
|
||||
#define IMU660RB_STATUS_MASTER (0x22)
|
||||
|
||||
#define IMU660RB_MAG_ADDR (0x0D) // 7λIIC<49><43>ַ
|
||||
#define IMU660RB_MAG_OUTX_L (0x00)
|
||||
#define IMU660RB_MAG_CONTROL1 (0x09)
|
||||
#define IMU660RB_MAG_CONTROL2 (0x0A)
|
||||
#define IMU660RB_MAG_FBR (0x0B)
|
||||
#define IMU660RB_MAG_CHIP_ID (0x0D)
|
||||
|
||||
#define IMU660RB_ACC_SAMPLE (0x3C) // <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x30 <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>2G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>16393<39><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x38 <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>4G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>8197<39><37> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x3C <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>8G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>4098<39><38> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x34 <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>16G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>2049<34><39> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
|
||||
#define IMU660RB_GYR_SAMPLE (0x5C) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define IMU660RB_GYR_SAMPLE (0x5C) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x52 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>125dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>228.6<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x50 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>250dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>114.3<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x54 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>500dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>57.1<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
@@ -121,21 +159,38 @@
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x51 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>4000dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>7.1<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
|
||||
|
||||
|
||||
//================================================<3D><><EFBFBD><EFBFBD> IMU963RB ȫ<>ֱ<EFBFBD><D6B1><EFBFBD>================================================
|
||||
extern int16 imu660rb_gyro_x, imu660rb_gyro_y, imu660rb_gyro_z; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> gyro (<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
extern int16 imu660rb_acc_x, imu660rb_acc_y, imu660rb_acc_z; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> acc (accelerometer <20><><EFBFBD>ٶȼ<D9B6>)
|
||||
//================================================<3D><><EFBFBD><EFBFBD> IMU963RB ȫ<>ֱ<EFBFBD><D6B1><EFBFBD>================================================
|
||||
//================================================<3D><><EFBFBD><EFBFBD> IMU660RB ȫ<>ֱ<EFBFBD><D6B1><EFBFBD>================================================
|
||||
extern int16 imu660rb_acc_x, imu660rb_acc_y, imu660rb_acc_z; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> GYRO (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
extern int16 imu660rb_gyro_x, imu660rb_gyro_y, imu660rb_gyro_z; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ACC (accelerometer <EFBFBD><EFBFBD><EFBFBD>ٶȼ<EFBFBD>)
|
||||
extern float imu660rb_transition_factor[2]; // ת<><D7AA>ʵ<EFBFBD><CAB5>ֵ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD>
|
||||
//================================================<3D><><EFBFBD><EFBFBD> IMU660RB ȫ<>ֱ<EFBFBD><D6B1><EFBFBD>================================================
|
||||
|
||||
|
||||
//================================================<3D><><EFBFBD><EFBFBD> IMU963RB <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>================================================
|
||||
void imu660rb_get_acc (void); // <20><>ȡ IMU660RB <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
void imu660rb_get_gyro (void); // <20><>ȡ IMU660RB <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
float imu660rb_acc_transition (int16 acc_value); // <20><> IMU660RB <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊʵ<CEAA><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
float imu660rb_gyro_transition (int16 gyro_value); // <20><> IMU660RB <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊʵ<CEAA><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
uint8 imu660rb_init (void); // <20><>ʼ<EFBFBD><CABC> IMU660RB
|
||||
//================================================<3D><><EFBFBD><EFBFBD> IMU963RB <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>================================================
|
||||
//================================================<3D><><EFBFBD><EFBFBD> IMU660RB <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>================================================
|
||||
void imu660rb_get_acc (void); // <20><>ȡ IMU660RB <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
void imu660rb_get_gyro (void); // <20><>ȡ IMU660RB <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
uint8 imu660rb_init (void); // <20><>ʼ<EFBFBD><EFBFBD> IMU660RB
|
||||
//================================================<3D><><EFBFBD><EFBFBD> IMU660RB <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>================================================
|
||||
|
||||
|
||||
//================================================<3D><><EFBFBD><EFBFBD> IMU660RB <20><>չ<EFBFBD><D5B9><EFBFBD><EFBFBD>================================================
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> IMU660RB <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊʵ<CEAA><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> acc_value <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> float data = imu660rb_acc_transition(imu660rb_acc_x); // <20><>λΪ g(m/s^2)
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
#define imu660rb_acc_transition(acc_value) ((float)(acc_value) / imu660rb_transition_factor[0])
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> IMU660RB <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊʵ<CEAA><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> gyro_value <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> float data = imu660rb_gyro_transition(imu660rb_gyro_x); // <20><>λΪ <20><>/s
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
#define imu660rb_gyro_transition(gyro_value) ((float)(gyro_value) / imu660rb_transition_factor[1])
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -68,6 +68,8 @@
|
||||
|
||||
int16 imu660rx_gyro_x = 0, imu660rx_gyro_y = 0, imu660rx_gyro_z = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> gyro (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
int16 imu660rx_acc_x = 0, imu660rx_acc_y = 0, imu660rx_acc_z = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> acc (accelerometer <20><><EFBFBD>ٶȼ<D9B6>)
|
||||
float imu660rx_transition_factor[2] = {4096, 16.4};
|
||||
|
||||
|
||||
uint8 imu660rx_self_check_id = 0;
|
||||
uint8 imu660rx_acc_address = 0, imu660rx_gyro_address = 0;
|
||||
@@ -124,11 +126,11 @@ static void imu660rx_read_registers(uint8 reg, uint8 *data, uint32 len)
|
||||
{
|
||||
uint8 temp_data[8];
|
||||
|
||||
IMU660RB_CS(0);
|
||||
IMU660RX_CS(0);
|
||||
if (imu660rx_self_check_id == IMU660RX_CHIP_IDA)
|
||||
{
|
||||
spi_read_8bit_registers(IMU660RX_SPI, reg | IMU660RX_SPI_R, temp_data, len + 1);
|
||||
IMU660RB_CS(1);
|
||||
IMU660RX_CS(1);
|
||||
for(int i = 0; i < len; i ++)
|
||||
{
|
||||
*(data ++) = temp_data[i + 1];
|
||||
@@ -137,7 +139,7 @@ static void imu660rx_read_registers(uint8 reg, uint8 *data, uint32 len)
|
||||
else if (imu660rx_self_check_id == IMU660RX_CHIP_IDB)
|
||||
{
|
||||
spi_read_8bit_registers(IMU660RX_SPI, reg | IMU660RX_SPI_R, data, len);
|
||||
IMU660RB_CS(1);
|
||||
IMU660RX_CS(1);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -246,82 +248,6 @@ void imu660rx_get_gyro (void)
|
||||
}
|
||||
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> IMU660RX <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊʵ<CEAA><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> gyro_value <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> float data = imu660rx_acc_transition(imu660rx_acc_x); // <20><>λΪ g(m/s^2)
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
float imu660rx_acc_transition (int16 acc_value)
|
||||
{
|
||||
float acc_data = 0;
|
||||
|
||||
if (imu660rx_self_check_id == IMU660RX_CHIP_IDA)
|
||||
{
|
||||
switch(IMU660RA_ACC_SAMPLE)
|
||||
{
|
||||
case 0x00: acc_data = (float)acc_value / 16384; break; // 0x00 <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>2g <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 16384 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
case 0x01: acc_data = (float)acc_value / 8192; break; // 0x01 <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>4g <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 8192 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
case 0x02: acc_data = (float)acc_value / 4096; break; // 0x02 <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>8g <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 4096 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
case 0x03: acc_data = (float)acc_value / 2048; break; // 0x03 <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>16g <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 2048 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
else if(imu660rx_self_check_id == IMU660RX_CHIP_IDB)
|
||||
{
|
||||
switch(IMU660RB_ACC_SAMPLE)
|
||||
{
|
||||
case 0x30: acc_data = (float)acc_value / 16393; break; // 0x30 <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>2G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 16393 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
case 0x38: acc_data = (float)acc_value / 8197; break; // 0x38 <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>4G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 8197 <20><> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
case 0x3C: acc_data = (float)acc_value / 4098; break; // 0x3C <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>8G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 4098 <20><> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
case 0x34: acc_data = (float)acc_value / 2049; break; // 0x34 <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>16G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 2049 <20><> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
return acc_data;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> IMU660RX <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊʵ<CEAA><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> gyro_value <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> float data = imu660rx_gyro_transition(imu660rx_gyro_x); // <20><>λΪ<CEBB><CEAA>/s
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
float imu660rx_gyro_transition (int16 gyro_value)
|
||||
{
|
||||
float gyro_data = 0;
|
||||
if (imu660rx_self_check_id == IMU660RX_CHIP_IDA)
|
||||
{
|
||||
switch(IMU660RA_GYR_SAMPLE)
|
||||
{
|
||||
case 0x00: gyro_data = (float)gyro_value / 16.4f; break; // 0x00 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>2000dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD> 16.4 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
case 0x01: gyro_data = (float)gyro_value / 32.8f; break; // 0x01 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>1000dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD> 32.8 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
case 0x02: gyro_data = (float)gyro_value / 65.6f; break; // 0x02 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>500 dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD> 65.6 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
case 0x03: gyro_data = (float)gyro_value / 131.2f; break; // 0x03 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>250 dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD> 131.2 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
case 0x04: gyro_data = (float)gyro_value / 262.4f; break; // 0x04 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>125 dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD> 262.4 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
else if (imu660rx_self_check_id == IMU660RX_CHIP_IDB)
|
||||
{
|
||||
switch(IMU660RB_GYR_SAMPLE)
|
||||
{
|
||||
case 0x52: gyro_data = (float)gyro_value / 228.6f; break; // 0x52 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>125dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD> 228.6<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
case 0x50: gyro_data = (float)gyro_value / 114.3f; break; // 0x50 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>250dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD> 114.3<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
case 0x54: gyro_data = (float)gyro_value / 57.1f; break; // 0x54 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>500dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD> 57.1<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
case 0x58: gyro_data = (float)gyro_value / 28.6f; break; // 0x58 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>1000dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD> 28.6<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
case 0x5C: gyro_data = (float)gyro_value / 14.3f; break; // 0x5C <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>2000dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD> 14.3<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
case 0x51: gyro_data = (float)gyro_value / 7.1f; break; // 0x51 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>4000dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD> 7.1<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
return gyro_data;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ʼ<EFBFBD><CABC> IMU660RX
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> void
|
||||
@@ -357,13 +283,14 @@ uint8 imu660rx_init (void)
|
||||
{
|
||||
imu660rx_acc_address = IMU660RA_ACC_ADDRESS;
|
||||
imu660rx_gyro_address = IMU660RA_GYRO_ADDRESS;
|
||||
|
||||
imu660rx_write_register(IMU660RA_PWR_CONF, 0x00); // <20>رո<D5B8>ʡ<EFBFBD><CAA1>ģʽ
|
||||
system_delay_ms(1);
|
||||
imu660rx_write_register(IMU660RA_INIT_CTRL, 0x00); // <20><>ʼ<EFBFBD><CABC>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD>г<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
imu660rx_write_registers(IMU660RA_INIT_DATA, imu660ra_config_file, sizeof(imu660ra_config_file)); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
||||
imu660rx_write_register(IMU660RA_INIT_CTRL, 0x01); // <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>ý<EFBFBD><C3BD><EFBFBD>
|
||||
system_delay_ms(20);
|
||||
if(imu660rx_read_register(IMU660RA_INT_STA,2) == 0) // <20><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if(1 != imu660rx_read_register(IMU660RA_INT_STA,2)) // <20><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD><CBB6><EFBFBD><EFBFBD><EFBFBD>Ϣ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><>ô<EFBFBD><C3B4><EFBFBD><EFBFBD> IMU660RA <20><><EFBFBD>ó<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
@@ -375,53 +302,196 @@ uint8 imu660rx_init (void)
|
||||
imu660rx_write_register(IMU660RA_PWR_CTRL, 0x0E); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǡ<EFBFBD><C7A1><EFBFBD><EFBFBD>ٶȡ<D9B6><C8A1>¶ȴ<C2B6><C8B4><EFBFBD><EFBFBD><EFBFBD>
|
||||
imu660rx_write_register(IMU660RA_ACC_CONF, 0xA7); // <20><><EFBFBD>ٶȲɼ<C8B2><C9BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ģʽ <20><><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD> 50Hz <20><><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>
|
||||
imu660rx_write_register(IMU660RA_GYR_CONF, 0xA9); // <20><><EFBFBD><EFBFBD><EFBFBD>Dzɼ<C7B2><C9BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ģʽ <20><><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD> 200Hz <20><><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>
|
||||
imu660rx_write_register(IMU660RA_ACC_RANGE, IMU660RA_ACC_SAMPLE); // <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>8g
|
||||
imu660rx_write_register(IMU660RA_GYR_RANGE, IMU660RA_GYR_SAMPLE); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<3A><>2000dps
|
||||
|
||||
// IMU660RA_ACC_SAMPLE <20>Ĵ<EFBFBD><C4B4><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x00 <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>2g <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD> 16384 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x01 <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>4g <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD> 8192 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x02 <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>8g <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD> 4096 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x03 <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>16g <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD> 2048 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x00 <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>2 g <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 16384 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (g <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD> <20><><EFBFBD><EFBFBD>ѧ<EFBFBD><D1A7><EFBFBD><EFBFBD> һ<><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> g ȡ 9.8 m/s^2 Ϊ<><CEAA>ֵ)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x01 <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>4 g <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 8192 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (g <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD> <20><><EFBFBD><EFBFBD>ѧ<EFBFBD><D1A7><EFBFBD><EFBFBD> һ<><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> g ȡ 9.8 m/s^2 Ϊ<><CEAA>ֵ)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x02 <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>8 g <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 4096 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (g <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD> <20><><EFBFBD><EFBFBD>ѧ<EFBFBD><D1A7><EFBFBD><EFBFBD> һ<><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> g ȡ 9.8 m/s^2 Ϊ<><CEAA>ֵ)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x03 <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>16 g <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 2048 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (g <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD> <20><><EFBFBD><EFBFBD>ѧ<EFBFBD><D1A7><EFBFBD><EFBFBD> һ<><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> g ȡ 9.8 m/s^2 Ϊ<><CEAA>ֵ)
|
||||
switch(IMU660RA_ACC_SAMPLE_DEFAULT)
|
||||
{
|
||||
default:
|
||||
{
|
||||
zf_log(0, "IMU660RA_ACC_SAMPLE_DEFAULT set error.");
|
||||
return_state = 1;
|
||||
}break;
|
||||
case IMU660RA_ACC_SAMPLE_SGN_2G:
|
||||
{
|
||||
imu660rx_write_register(IMU660RA_ACC_RANGE, 0x00);
|
||||
imu660rx_transition_factor[0] = 16384;
|
||||
}break;
|
||||
case IMU660RA_ACC_SAMPLE_SGN_4G:
|
||||
{
|
||||
imu660rx_write_register(IMU660RA_ACC_RANGE, 0x01);
|
||||
imu660rx_transition_factor[0] = 8192;
|
||||
}break;
|
||||
case IMU660RA_ACC_SAMPLE_SGN_8G:
|
||||
{
|
||||
imu660rx_write_register(IMU660RA_ACC_RANGE, 0x02);
|
||||
imu660rx_transition_factor[0] = 4096;
|
||||
}break;
|
||||
case IMU660RA_ACC_SAMPLE_SGN_16G:
|
||||
{
|
||||
imu660rx_write_register(IMU660RA_ACC_RANGE, 0x03);
|
||||
imu660rx_transition_factor[0] = 2048;
|
||||
}break;
|
||||
}
|
||||
if(1 == return_state)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
// IMU660RA_GYR_RANGE <20>Ĵ<EFBFBD><C4B4><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x00 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>2000dps <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD> 16.4 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x01 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>1000dps <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD> 32.8 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x02 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>500 dps <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD> 65.6 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x03 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>250 dps <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD> 131.2 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x04 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>125 dps <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD> 262.4 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/s
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x04 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>125 dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 262.4 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ <EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x03 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>250 dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 131.2 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ <EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x02 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>500 dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 65.6 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ <EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x01 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>1000 dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 32.8 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ <EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x00 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>2000 dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 16.4 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ <EFBFBD><EFBFBD>/s
|
||||
switch(IMU660RA_GYRO_SAMPLE_DEFAULT)
|
||||
{
|
||||
default:
|
||||
{
|
||||
zf_log(0, "IMU660RA_GYRO_SAMPLE_DEFAULT set error.");
|
||||
return_state = 1;
|
||||
}break;
|
||||
case IMU660RA_GYRO_SAMPLE_SGN_125DPS:
|
||||
{
|
||||
imu660rx_write_register(IMU660RA_GYR_RANGE, 0x04);
|
||||
imu660rx_transition_factor[1] = 262.4;
|
||||
}break;
|
||||
case IMU660RA_GYRO_SAMPLE_SGN_250DPS:
|
||||
{
|
||||
imu660rx_write_register(IMU660RA_GYR_RANGE, 0x03);
|
||||
imu660rx_transition_factor[1] = 131.2;
|
||||
}break;
|
||||
case IMU660RA_GYRO_SAMPLE_SGN_500DPS:
|
||||
{
|
||||
imu660rx_write_register(IMU660RA_GYR_RANGE, 0x02);
|
||||
imu660rx_transition_factor[1] = 65.6;
|
||||
}break;
|
||||
case IMU660RA_GYRO_SAMPLE_SGN_1000DPS:
|
||||
{
|
||||
imu660rx_write_register(IMU660RA_GYR_RANGE, 0x01);
|
||||
imu660rx_transition_factor[1] = 32.8;
|
||||
}break;
|
||||
case IMU660RA_GYRO_SAMPLE_SGN_2000DPS:
|
||||
{
|
||||
imu660rx_write_register(IMU660RA_GYR_RANGE, 0x00);
|
||||
imu660rx_transition_factor[1] = 16.4;
|
||||
}break;
|
||||
}
|
||||
if(1 == return_state)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if (imu660rx_self_check_id == IMU660RX_CHIP_IDB)
|
||||
{
|
||||
imu660rx_acc_address = IMU660RB_OUTX_L_A;
|
||||
imu660rx_gyro_address = IMU660RB_OUTX_L_G;
|
||||
|
||||
imu660rx_write_register(IMU660RB_FUNC_CFG_ACCESS, 0x00); // <20>ر<EFBFBD>HUB<55>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
imu660rx_write_register(IMU660RB_CTRL3_C, 0x01); // <20><>λ<EFBFBD>豸
|
||||
system_delay_ms(2);
|
||||
imu660rx_write_register(IMU660RB_FUNC_CFG_ACCESS, 0x00); // <20>ر<EFBFBD>HUB<55>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
imu660rx_write_register(IMU660RB_INT1_CTRL, 0x03); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD>ݾ<EFBFBD><DDBE><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
|
||||
imu660rx_acc_address = IMU660RB_ACC_ADDRESS;
|
||||
imu660rx_gyro_address = IMU660RB_GYRO_ADDRESS;
|
||||
imu660rx_write_register(IMU660RB_INT1_CTRL, 0x03); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD>ݾ<EFBFBD><DDBE><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
imu660rx_write_register(IMU660RB_CTRL1_XL, IMU660RB_ACC_SAMPLE); // <20><><EFBFBD>ü<EFBFBD><C3BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><>8G <20>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 52hz <20>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD>Ϣ<EFBFBD>ӵ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD>˲<EFBFBD><CBB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// IMU660RB_CTRL1_XL <20>Ĵ<EFBFBD><C4B4><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x30 <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>2G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD>16393<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x38 <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>4G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD>8197<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x3C <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>8G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD>4098<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x34 <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>16G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD>2049<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x30 <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>2 G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 16393 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>λ g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x38 <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>4 G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 8197 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>λ g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x3C <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>8 G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 4098 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>λ g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x34 <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>16 G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 2049 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>λ g(m/s^2)
|
||||
switch(IMU660RB_ACC_SAMPLE_DEFAULT)
|
||||
{
|
||||
default:
|
||||
{
|
||||
zf_log(0, "IMU660RB_ACC_SAMPLE_DEFAULT set error.");
|
||||
return_state = 1;
|
||||
}break;
|
||||
case IMU660RB_ACC_SAMPLE_SGN_2G:
|
||||
{
|
||||
imu660rx_write_register(IMU660RB_CTRL1_XL, 0x30);
|
||||
imu660rx_transition_factor[0] = 16393;
|
||||
}break;
|
||||
case IMU660RB_ACC_SAMPLE_SGN_4G:
|
||||
{
|
||||
imu660rx_write_register(IMU660RB_CTRL1_XL, 0x38);
|
||||
imu660rx_transition_factor[0] = 8197;
|
||||
}break;
|
||||
case IMU660RB_ACC_SAMPLE_SGN_8G:
|
||||
{
|
||||
imu660rx_write_register(IMU660RB_CTRL1_XL, 0x3C);
|
||||
imu660rx_transition_factor[0] = 4098;
|
||||
}break;
|
||||
case IMU660RB_ACC_SAMPLE_SGN_16G:
|
||||
{
|
||||
imu660rx_write_register(IMU660RB_CTRL1_XL, 0x34);
|
||||
imu660rx_transition_factor[0] = 2049;
|
||||
}break;
|
||||
}
|
||||
if(1 == return_state)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
imu660rx_write_register(IMU660RB_CTRL2_G, IMU660RB_GYR_SAMPLE); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǽ<EFBFBD><C7BC><EFBFBD><EFBFBD><EFBFBD> <20><>2000dps <20>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 208hz
|
||||
// IMU660RB_CTRL2_G <20>Ĵ<EFBFBD><C4B4><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x52 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>125dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>228.6<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD>λΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x50 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>250dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>114.3<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD>λΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x54 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>500dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>57.1<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD>λΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x58 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>1000dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>28.6<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD>λΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x5C <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>2000dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>14.3<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD>λΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x51 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:<EFBFBD><EFBFBD>4000dps <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>7.1<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD>λΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x52 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>125 dps <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 228.6 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>λΪ <EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x50 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>250 dps <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 114.3 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>λΪ <EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x54 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>500 dps <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 57.1 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>λΪ <EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x58 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>1000 dps <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 28.6 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>λΪ <EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x5C <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>2000 dps <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 14.3 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>λΪ <EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ 0x51 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ <EFBFBD><EFBFBD>4000 dps <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD> 7.1 <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>λΪ <EFBFBD><EFBFBD>/s
|
||||
switch(IMU660RB_GYRO_SAMPLE_DEFAULT)
|
||||
{
|
||||
default:
|
||||
{
|
||||
zf_log(0, "IMU660RB_GYRO_SAMPLE_DEFAULT set error.");
|
||||
return_state = 1;
|
||||
}break;
|
||||
case IMU660RB_GYRO_SAMPLE_SGN_125DPS:
|
||||
{
|
||||
imu660rx_write_register(IMU660RB_CTRL2_G, 0x52);
|
||||
imu660rx_transition_factor[1] = 228.6;
|
||||
}break;
|
||||
case IMU660RB_GYRO_SAMPLE_SGN_250DPS:
|
||||
{
|
||||
imu660rx_write_register(IMU660RB_CTRL2_G, 0x50);
|
||||
imu660rx_transition_factor[1] = 114.3;
|
||||
}break;
|
||||
case IMU660RB_GYRO_SAMPLE_SGN_500DPS:
|
||||
{
|
||||
imu660rx_write_register(IMU660RB_CTRL2_G, 0x54);
|
||||
imu660rx_transition_factor[1] = 57.1;
|
||||
}break;
|
||||
case IMU660RB_GYRO_SAMPLE_SGN_1000DPS:
|
||||
{
|
||||
imu660rx_write_register(IMU660RB_CTRL2_G, 0x58);
|
||||
imu660rx_transition_factor[1] = 28.6;
|
||||
}break;
|
||||
case IMU660RB_GYRO_SAMPLE_SGN_2000DPS:
|
||||
{
|
||||
imu660rx_write_register(IMU660RB_CTRL2_G, 0x5C);
|
||||
imu660rx_transition_factor[1] = 14.3;
|
||||
}break;
|
||||
case IMU660RB_GYRO_SAMPLE_SGN_4000DPS:
|
||||
{
|
||||
imu660rx_write_register(IMU660RB_CTRL2_G, 0x51);
|
||||
imu660rx_transition_factor[1] = 7.1;
|
||||
}break;
|
||||
}
|
||||
if(1 == return_state)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
imu660rx_write_register(IMU660RB_CTRL3_C, 0x44); // ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ͨ<EFBFBD>˲<EFBFBD><CBB2><EFBFBD>
|
||||
imu660rx_write_register(IMU660RB_CTRL4_C, 0x02); // ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ͨ<EFBFBD>˲<EFBFBD><CBB2><EFBFBD>
|
||||
imu660rx_write_register(IMU660RB_CTRL5_C, 0x00); // <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
imu660rx_write_register(IMU660RB_CTRL6_C, 0x00); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶȼƸ<C8BC><C6B8><EFBFBD><EFBFBD><EFBFBD>ģʽ <20><><EFBFBD><EFBFBD><EFBFBD>ǵ<EFBFBD>ͨ<EFBFBD>˲<EFBFBD> 133hz
|
||||
imu660rx_write_register(IMU660RB_CTRL7_G, 0x00); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǹ<EFBFBD><C7B8><EFBFBD><EFBFBD><EFBFBD>ģʽ <20>رո<D8B1>ͨ<EFBFBD>˲<EFBFBD>
|
||||
imu660rx_write_register(IMU660RB_CTRL9_XL, 0x01); // <20>ر<EFBFBD>I3C<33>ӿ<EFBFBD>
|
||||
imu660rx_write_register(IMU660RB_CTRL3_C, 0x44); // ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ͨ<EFBFBD>˲<EFBFBD><CBB2><EFBFBD>
|
||||
imu660rx_write_register(IMU660RB_CTRL4_C, 0x02); // ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ͨ<EFBFBD>˲<EFBFBD><CBB2><EFBFBD>
|
||||
imu660rx_write_register(IMU660RB_CTRL5_C, 0x00); // <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
imu660rx_write_register(IMU660RB_CTRL6_C, 0x00); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶȼƸ<C8BC><C6B8><EFBFBD><EFBFBD><EFBFBD>ģʽ <20><><EFBFBD><EFBFBD><EFBFBD>ǵ<EFBFBD>ͨ<EFBFBD>˲<EFBFBD> 133hz
|
||||
imu660rx_write_register(IMU660RB_CTRL7_G, 0x00); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǹ<EFBFBD><C7B8><EFBFBD><EFBFBD><EFBFBD>ģʽ <20>رո<D8B1>ͨ<EFBFBD>˲<EFBFBD>
|
||||
imu660rx_write_register(IMU660RB_CTRL9_XL, 0x01); // <20>ر<EFBFBD>I3C<33>ӿ<EFBFBD>
|
||||
}
|
||||
|
||||
}while(0);
|
||||
return return_state;
|
||||
}
|
||||
|
||||
@@ -56,7 +56,8 @@
|
||||
|
||||
#ifndef _zf_device_imu660rx_h_
|
||||
#define _zf_device_imu660rx_h_
|
||||
|
||||
#include "zf_device_imu660rb.h"
|
||||
#include "zf_device_imu660ra.h"
|
||||
#include "zf_common_typedef.h"
|
||||
|
||||
// IMU660RX_USE_SOFT_IIC<49><43><EFBFBD><EFBFBD>Ϊ0<CEAA><30>ʾʹ<CABE><CAB9>Ӳ<EFBFBD><D3B2>SPI<50><49><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ϊ1<CEAA><31>ʾʹ<CABE><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IIC<49><43><EFBFBD><EFBFBD>
|
||||
@@ -85,27 +86,47 @@
|
||||
|
||||
//================================================<3D><><EFBFBD><EFBFBD> IMU660RX <20>ڲ<EFBFBD><DAB2><EFBFBD>ַ================================================
|
||||
#define IMU660RX_DEV_ADDR (0x6B) // SA0<41>ӵأ<D3B5>0x6B SA0<41><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0x69 ģ<><C4A3>Ĭ<EFBFBD><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
#define IMU660RX_SPI_W (0x00)
|
||||
#define IMU660RX_SPI_R (0x80)
|
||||
|
||||
#define IMU660RX_CHIP_IDA (0x00) //660RAID
|
||||
#define IMU660RX_CHIP_IDB (0x0F) //660RBID
|
||||
#define IMU660RX_CHIP_IDA (0x00) //660RAID
|
||||
#define IMU660RX_CHIP_IDB (0x0F) //660RBID
|
||||
|
||||
|
||||
//================================================<3D><><EFBFBD><EFBFBD> IMU660RX ȫ<>ֱ<EFBFBD><D6B1><EFBFBD>================================================
|
||||
extern int16 imu660rx_gyro_x, imu660rx_gyro_y, imu660rx_gyro_z; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> gyro (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
extern int16 imu660rx_acc_x, imu660rx_acc_y, imu660rx_acc_z; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> acc (accelerometer <20><><EFBFBD>ٶȼ<D9B6>)
|
||||
extern float imu660ra_transition_factor[2];
|
||||
//================================================<3D><><EFBFBD><EFBFBD> IMU660RX ȫ<>ֱ<EFBFBD><D6B1><EFBFBD>================================================
|
||||
|
||||
|
||||
//================================================<3D><><EFBFBD><EFBFBD> IMU660RX <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>================================================
|
||||
void imu660rx_get_acc (void); // <20><>ȡ IMU660RX <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
void imu660rx_get_gyro (void); // <20><>ȡ IMU660RX <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
float imu660rx_acc_transition (int16 acc_value); // <20><> IMU660RX <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊʵ<CEAA><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
float imu660rx_gyro_transition (int16 gyro_value); // <20><> IMU660RX <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊʵ<CEAA><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
uint8 imu660rx_init (void); // <20><>ʼ<EFBFBD><CABC> IMU660RX
|
||||
//================================================<3D><><EFBFBD><EFBFBD> IMU660RX <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>================================================
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> IMU660RX <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊʵ<CEAA><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> acc_value <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> float data = imu660ra_acc_transition(imu660ra_acc_x); // <20><>λΪ g(m/s^2)
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
#define imu660rx_acc_transition(acc_value) ((float)(acc_value) / imu660rx_transition_factor[0])
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> IMU660RA <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊʵ<CEAA><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> gyro_value <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> float data = imu660ra_gyro_transition(imu660ra_gyro_x); // <20><>λΪ <20><>/s
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
#define imu660rx_gyro_transition(gyro_value) ((float)(gyro_value) / imu660rx_transition_factor[1])
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -65,7 +65,7 @@
|
||||
#define IMU963RA_USE_SOFT_IIC (0) // Ĭ<><C4AC>ʹ<EFBFBD><CAB9>Ӳ<EFBFBD><D3B2> SPI <20><>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
|
||||
#if IMU963RA_USE_SOFT_IIC // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7> <20><>ɫ<EFBFBD>ҵľ<D2B5><C4BE><EFBFBD>û<EFBFBD><C3BB><EFBFBD>õ<EFBFBD>
|
||||
//====================================================<3D><><EFBFBD><EFBFBD> IIC <20><><EFBFBD><EFBFBD>====================================================
|
||||
#define IMU963RA_SOFT_IIC_DELAY (59 ) // <20><><EFBFBD><EFBFBD> IIC <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD> <20><>ֵԽС IIC ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD>
|
||||
#define IMU963RA_SOFT_IIC_DELAY (59) // <20><><EFBFBD><EFBFBD> IIC <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD> <20><>ֵԽС IIC ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD>
|
||||
#define IMU963RA_SCL_PIN (P20_11) // <20><><EFBFBD><EFBFBD> IIC SCL <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> IMU963RA <20><> SCL <20><><EFBFBD><EFBFBD>
|
||||
#define IMU963RA_SDA_PIN (P20_14) // <20><><EFBFBD><EFBFBD> IIC SDA <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> IMU963RA <20><> SDA <20><><EFBFBD><EFBFBD>
|
||||
//====================================================<3D><><EFBFBD><EFBFBD> IIC <20><><EFBFBD><EFBFBD>====================================================
|
||||
|
||||
@@ -347,9 +347,9 @@ uint8 ips200pro_set_backlight (uint8 backlight);
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> dir <20><><EFBFBD><EFBFBD>1-255
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> dir <20><>Ļ<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> uint8 ״̬ 0<><30><EFBFBD><EFBFBD><EFBFBD>óɹ<C3B3> 1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> ips200pro_set_backlight(100); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ100
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> ips200pro_set_direction(IPS200PRO_PORTRAIT); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ100
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint8 ips200pro_set_direction (ips200pro_display_direction_enum dir);
|
||||
|
||||
@@ -388,7 +388,7 @@ uint8 ips200pro_get_date (ips200pro_time_struct *time);
|
||||
uint8 ips200pro_get_time (ips200pro_time_struct *time);
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ջ<EFBFBD><EFBFBD>С
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȡϵͳ<EFBFBD><EFBFBD>Ϣ
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> *information <20><><EFBFBD><EFBFBD>ϵͳ<CFB5><CDB3>Ϣ<EFBFBD><CFA2>ָ<EFBFBD><D6B8>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> uint8 ״̬ 0<><30><EFBFBD><EFBFBD><EFBFBD>óɹ<C3B3> 1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> ips200pro_get_information(&ips200pro_information); //
|
||||
@@ -396,7 +396,7 @@ uint8 ips200pro_get_time (ips200pro_time_struct *time);
|
||||
uint8 ips200pro_get_information (ips200pro_information_struct *information);
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȡϵͳ<EFBFBD><EFBFBD>Ϣ
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ջ<EFBFBD><EFBFBD>С
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> *stack_size <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ջ<EFBFBD><D5BB>С<EFBFBD><D0A1>ָ<EFBFBD><D6B8>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> uint8 ״̬ 0<><30><EFBFBD><EFBFBD><EFBFBD>óɹ<C3B3> 1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> ips200pro_get_free_stack_size(&stack_size); //
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
* <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> zf_device_wifi_spi
|
||||
* <20><>˾<EFBFBD><CBBE><EFBFBD><EFBFBD> <20>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD><EFBFBD>˾
|
||||
* <20>汾<EFBFBD><E6B1BE>Ϣ <20>鿴 libraries/doc <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> version <20>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
|
||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ADS v1.10.2
|
||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ADS v1.9.20
|
||||
* <20><><EFBFBD><EFBFBD>ƽ̨ TC264D
|
||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> https://seekfree.taobao.com/
|
||||
*
|
||||
@@ -271,6 +271,8 @@ static uint8 wifi_spi_get_version (void)
|
||||
{
|
||||
memcpy(wifi_spi_version, temp_packets.buffer, temp_packets.head.length);
|
||||
}
|
||||
return_state = (return_state == 0) ? (WIFI_SPI_REPLY_VERSION != temp_packets.head.command) : 1;
|
||||
|
||||
return return_state;
|
||||
}
|
||||
|
||||
@@ -291,6 +293,8 @@ static uint8 wifi_spi_get_mac_addr (void)
|
||||
{
|
||||
memcpy(wifi_spi_mac_addr, temp_packets.buffer, temp_packets.head.length);
|
||||
}
|
||||
return_state = (return_state == 0) ? (WIFI_SPI_REPLY_MAC_ADDR != temp_packets.head.command) : 1;
|
||||
|
||||
return return_state;
|
||||
}
|
||||
|
||||
@@ -312,6 +316,8 @@ static uint8 wifi_spi_get_ip_addr_port (void)
|
||||
{
|
||||
memcpy(wifi_spi_ip_addr_port, temp_packets.buffer, temp_packets.head.length);
|
||||
}
|
||||
return_state = (return_state == 0) ? (WIFI_SPI_REPLY_IP_ADDR != temp_packets.head.command) : 1;
|
||||
|
||||
return return_state;
|
||||
}
|
||||
|
||||
|
||||
@@ -34,14 +34,12 @@
|
||||
* 2022-07-06 pudding <20><EFBFBD> soft_iic transfer <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>Ϊ 0 ʱ<><CAB1><EFBFBD><EFBFBD> restart <20>źŵ<C5BA> bug
|
||||
********************************************************************************************************************/
|
||||
|
||||
|
||||
#include "zf_common_debug.h"
|
||||
#include "zf_driver_delay.h"
|
||||
|
||||
#include "zf_driver_soft_iic.h"
|
||||
|
||||
#define soft_iic_gpio_high_scl() ((Ifx_P *)soft_iic_obj->iic_scl)->OMR.U = 1 << ((soft_iic_obj->scl_pin)&0x1f)
|
||||
#define soft_iic_gpio_high_sda() ((Ifx_P *)soft_iic_obj->iic_sda)->OMR.U = 1 << ((soft_iic_obj->sda_pin)&0x1f)
|
||||
#define soft_iic_gpio_low_scl() ((Ifx_P *)soft_iic_obj->iic_scl)->OMR.U = 65536 << ((soft_iic_obj->scl_pin)&0x1f)
|
||||
#define soft_iic_gpio_low_sda() ((Ifx_P *)soft_iic_obj->iic_sda)->OMR.U = 65536 << ((soft_iic_obj->sda_pin)&0x1f)
|
||||
#define SOFT_IIC_SDA_IO_SWITCH (1) // <20>Ƿ<EFBFBD><C7B7><EFBFBD>Ҫ SDA <20><><EFBFBD><EFBFBD> I/O <20>л<EFBFBD> 0-<2D><><EFBFBD><EFBFBD>Ҫ 1-<2D><>Ҫ
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> IIC <20><>ʱ
|
||||
@@ -50,17 +48,12 @@
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> soft_iic_delay(1);
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
#define soft_iic_delay(x) for(vuint32 i = x; i--; )
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> IIC GPIO<49><4F><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> x <20><><EFBFBD>ź<EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> soft_iic_soft_iic_gpio_high_scl();
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
#define soft_iic_gpio_high(x) soft_iic_obj->iic_scl->OMR.U = 1 << ((x)&0x1f)
|
||||
|
||||
//static void soft_iic_delay (vuint32 delay)
|
||||
//{
|
||||
// volatile uint32 count = delay;
|
||||
// while(count --);
|
||||
//}
|
||||
#define soft_iic_delay(x) for(vuint32 i = x; i --; )
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> IIC START <20>ź<EFBFBD>
|
||||
@@ -71,13 +64,15 @@
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
static void soft_iic_start (soft_iic_info_struct *soft_iic_obj)
|
||||
{
|
||||
soft_iic_gpio_high_scl(); // SCL <20>ߵ<EFBFBD>ƽ
|
||||
soft_iic_gpio_high_sda(); // SDA <20>ߵ<EFBFBD>ƽ
|
||||
zf_assert(NULL != soft_iic_obj);
|
||||
gpio_high(soft_iic_obj->scl_pin); // SCL <20>ߵ<EFBFBD>ƽ
|
||||
gpio_high(soft_iic_obj->sda_pin); // SDA <20>ߵ<EFBFBD>ƽ
|
||||
|
||||
soft_iic_delay(soft_iic_obj->delay);
|
||||
soft_iic_gpio_low_sda(); // SDA <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
gpio_low(soft_iic_obj->sda_pin); // SDA <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
soft_iic_delay(soft_iic_obj->delay);
|
||||
gpio_low(soft_iic_obj->scl_pin); // SCL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
soft_iic_delay(soft_iic_obj->delay);
|
||||
soft_iic_gpio_low_scl(); // SCL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
@@ -89,13 +84,14 @@ static void soft_iic_start (soft_iic_info_struct *soft_iic_obj)
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
static void soft_iic_stop (soft_iic_info_struct *soft_iic_obj)
|
||||
{
|
||||
soft_iic_gpio_low_sda(); // SDA <20>͵<EFBFBD>ƽ
|
||||
soft_iic_gpio_low_scl(); // SCL <20>͵<EFBFBD>ƽ
|
||||
zf_assert(NULL != soft_iic_obj);
|
||||
gpio_low(soft_iic_obj->sda_pin); // SDA <20>͵<EFBFBD>ƽ
|
||||
gpio_low(soft_iic_obj->scl_pin); // SCL <20>͵<EFBFBD>ƽ
|
||||
|
||||
soft_iic_delay(soft_iic_obj->delay);
|
||||
soft_iic_gpio_high_scl(); // SCL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
gpio_high(soft_iic_obj->scl_pin); // SCL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
soft_iic_delay(soft_iic_obj->delay);
|
||||
soft_iic_gpio_high_sda(); // SDA <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
gpio_high(soft_iic_obj->sda_pin); // SDA <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
soft_iic_delay(soft_iic_obj->delay);
|
||||
}
|
||||
|
||||
@@ -109,22 +105,23 @@ static void soft_iic_stop (soft_iic_info_struct *soft_iic_obj)
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
static void soft_iic_send_ack (soft_iic_info_struct *soft_iic_obj, uint8 ack)
|
||||
{
|
||||
soft_iic_gpio_low_scl(); // SCL <20>͵<EFBFBD>ƽ
|
||||
zf_assert(NULL != soft_iic_obj);
|
||||
gpio_low(soft_iic_obj->scl_pin); // SCL <20>͵<EFBFBD>ƽ
|
||||
|
||||
if(ack)
|
||||
{
|
||||
soft_iic_gpio_high_sda(); // SDA <20><><EFBFBD><EFBFBD>
|
||||
gpio_high(soft_iic_obj->sda_pin); // SDA <20><><EFBFBD><EFBFBD>
|
||||
}
|
||||
else
|
||||
{
|
||||
soft_iic_gpio_low_sda(); // SDA <20><><EFBFBD><EFBFBD>
|
||||
gpio_low(soft_iic_obj->sda_pin); // SDA <20><><EFBFBD><EFBFBD>
|
||||
}
|
||||
|
||||
soft_iic_delay(soft_iic_obj->delay);
|
||||
soft_iic_gpio_high_scl(); // SCL <20><><EFBFBD><EFBFBD>
|
||||
gpio_high(soft_iic_obj->scl_pin); // SCL <20><><EFBFBD><EFBFBD>
|
||||
soft_iic_delay(soft_iic_obj->delay);
|
||||
soft_iic_gpio_low_scl(); // SCL <20><><EFBFBD><EFBFBD>
|
||||
soft_iic_gpio_high_sda(); // SDA <20><><EFBFBD><EFBFBD>
|
||||
gpio_low(soft_iic_obj->scl_pin); // SCL <20><><EFBFBD><EFBFBD>
|
||||
gpio_high(soft_iic_obj->sda_pin); // SDA <20><><EFBFBD><EFBFBD>
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
@@ -136,24 +133,25 @@ static void soft_iic_send_ack (soft_iic_info_struct *soft_iic_obj, uint8 ack)
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
static uint8 soft_iic_wait_ack (soft_iic_info_struct *soft_iic_obj)
|
||||
{
|
||||
zf_assert(NULL != soft_iic_obj);
|
||||
uint8 temp = 0;
|
||||
soft_iic_gpio_low_scl(); // SCL <20>͵<EFBFBD>ƽ
|
||||
soft_iic_gpio_high_sda(); // SDA <20>ߵ<EFBFBD>ƽ <20>ͷ<EFBFBD> SDA
|
||||
gpio_low(soft_iic_obj->scl_pin); // SCL <20>͵<EFBFBD>ƽ
|
||||
gpio_high(soft_iic_obj->sda_pin); // SDA <20>ߵ<EFBFBD>ƽ <20>ͷ<EFBFBD> SDA
|
||||
#if SOFT_IIC_SDA_IO_SWITCH
|
||||
gpio_set_dir(soft_iic_obj->sda_pin, GPI, GPI_FLOATING_IN);
|
||||
gpio_set_dir((gpio_pin_enum)soft_iic_obj->sda_pin, GPI, GPI_FLOATING_IN);
|
||||
#endif
|
||||
soft_iic_delay(soft_iic_obj->delay);
|
||||
|
||||
soft_iic_gpio_high_scl(); // SCL <20>ߵ<EFBFBD>ƽ
|
||||
gpio_high(soft_iic_obj->scl_pin); // SCL <20>ߵ<EFBFBD>ƽ
|
||||
soft_iic_delay(soft_iic_obj->delay);
|
||||
|
||||
if(gpio_get_level(soft_iic_obj->sda_pin))
|
||||
if(gpio_get_level((gpio_pin_enum)soft_iic_obj->sda_pin))
|
||||
{
|
||||
temp = 1;
|
||||
}
|
||||
soft_iic_gpio_low_scl(); // SCL <20>͵<EFBFBD>ƽ
|
||||
gpio_low(soft_iic_obj->scl_pin); // SCL <20>͵<EFBFBD>ƽ
|
||||
#if SOFT_IIC_SDA_IO_SWITCH
|
||||
gpio_set_dir(soft_iic_obj->sda_pin, GPO, GPO_OPEN_DTAIN);
|
||||
gpio_set_dir((gpio_pin_enum)soft_iic_obj->sda_pin, GPO, GPO_OPEN_DTAIN);
|
||||
#endif
|
||||
soft_iic_delay(soft_iic_obj->delay);
|
||||
|
||||
@@ -169,16 +167,19 @@ static uint8 soft_iic_wait_ack (soft_iic_info_struct *soft_iic_obj)
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
static uint8 soft_iic_send_data (soft_iic_info_struct *soft_iic_obj, const uint8 data)
|
||||
{
|
||||
zf_assert(NULL != soft_iic_obj);
|
||||
uint8 temp = 0x80;
|
||||
while(temp)
|
||||
{
|
||||
gpio_set_level(soft_iic_obj->sda_pin, data & temp);
|
||||
// gpio_set_level(soft_iic_obj->sda_pin, data & temp);
|
||||
((data & temp) ? (gpio_high(soft_iic_obj->sda_pin)) : (gpio_low(soft_iic_obj->sda_pin)));
|
||||
temp >>= 1;
|
||||
|
||||
soft_iic_delay(soft_iic_obj->delay / 2);
|
||||
gpio_high(soft_iic_obj->scl_pin); // SCL <20><><EFBFBD><EFBFBD>
|
||||
soft_iic_delay(soft_iic_obj->delay);
|
||||
soft_iic_gpio_high_scl(); // SCL <20><><EFBFBD><EFBFBD>
|
||||
soft_iic_delay(soft_iic_obj->delay);
|
||||
soft_iic_gpio_low_scl(); // SCL <20><><EFBFBD><EFBFBD>
|
||||
gpio_low(soft_iic_obj->scl_pin); // SCL <20><><EFBFBD><EFBFBD>
|
||||
soft_iic_delay(soft_iic_obj->delay / 2);
|
||||
}
|
||||
return ((soft_iic_wait_ack(soft_iic_obj) == 1) ? 0 : 1 );
|
||||
}
|
||||
@@ -192,26 +193,27 @@ static uint8 soft_iic_send_data (soft_iic_info_struct *soft_iic_obj, const uint8
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
static uint8 soft_iic_read_data (soft_iic_info_struct *soft_iic_obj, uint8 ack)
|
||||
{
|
||||
zf_assert(NULL != soft_iic_obj);
|
||||
uint8 data = 0x00;
|
||||
uint8 temp = 8;
|
||||
soft_iic_gpio_low_scl(); // SCL <20>͵<EFBFBD>ƽ
|
||||
gpio_low(soft_iic_obj->scl_pin); // SCL <20>͵<EFBFBD>ƽ
|
||||
soft_iic_delay(soft_iic_obj->delay);
|
||||
soft_iic_gpio_high_sda(); // SDA <20>ߵ<EFBFBD>ƽ <20>ͷ<EFBFBD> SDA
|
||||
gpio_high(soft_iic_obj->sda_pin); // SDA <20>ߵ<EFBFBD>ƽ <20>ͷ<EFBFBD> SDA
|
||||
#if SOFT_IIC_SDA_IO_SWITCH
|
||||
gpio_set_dir(soft_iic_obj->sda_pin, GPI, GPI_FLOATING_IN);
|
||||
gpio_set_dir((gpio_pin_enum)soft_iic_obj->sda_pin, GPI, GPI_FLOATING_IN);
|
||||
#endif
|
||||
|
||||
while(temp --)
|
||||
{
|
||||
soft_iic_gpio_low_scl(); // SCL <20><><EFBFBD><EFBFBD>
|
||||
gpio_low(soft_iic_obj->scl_pin); // SCL <20><><EFBFBD><EFBFBD>
|
||||
soft_iic_delay(soft_iic_obj->delay);
|
||||
soft_iic_gpio_high_scl(); // SCL <20><><EFBFBD><EFBFBD>
|
||||
gpio_high(soft_iic_obj->scl_pin); // SCL <20><><EFBFBD><EFBFBD>
|
||||
soft_iic_delay(soft_iic_obj->delay);
|
||||
data = ((data << 1) | gpio_get_level(soft_iic_obj->sda_pin));
|
||||
data = ((data << 1) | gpio_get_level((gpio_pin_enum)soft_iic_obj->sda_pin));
|
||||
}
|
||||
soft_iic_gpio_low_scl(); // SCL <20>͵<EFBFBD>ƽ
|
||||
gpio_low(soft_iic_obj->scl_pin); // SCL <20>͵<EFBFBD>ƽ
|
||||
#if SOFT_IIC_SDA_IO_SWITCH
|
||||
gpio_set_dir(soft_iic_obj->sda_pin, GPO, GPO_OPEN_DTAIN);
|
||||
gpio_set_dir((gpio_pin_enum)soft_iic_obj->sda_pin, GPO, GPO_OPEN_DTAIN);
|
||||
#endif
|
||||
soft_iic_delay(soft_iic_obj->delay);
|
||||
soft_iic_send_ack(soft_iic_obj, ack);
|
||||
@@ -228,6 +230,7 @@ static uint8 soft_iic_read_data (soft_iic_info_struct *soft_iic_obj, uint8 ack)
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void soft_iic_write_8bit (soft_iic_info_struct *soft_iic_obj, const uint8 data)
|
||||
{
|
||||
zf_assert(NULL != soft_iic_obj);
|
||||
soft_iic_start(soft_iic_obj);
|
||||
soft_iic_send_data(soft_iic_obj, soft_iic_obj->addr << 1);
|
||||
soft_iic_send_data(soft_iic_obj, data);
|
||||
@@ -245,6 +248,8 @@ void soft_iic_write_8bit (soft_iic_info_struct *soft_iic_obj, const uint8 data)
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void soft_iic_write_8bit_array (soft_iic_info_struct *soft_iic_obj, const uint8 *data, uint32 len)
|
||||
{
|
||||
zf_assert(NULL != soft_iic_obj);
|
||||
zf_assert(NULL != data);
|
||||
soft_iic_start(soft_iic_obj);
|
||||
soft_iic_send_data(soft_iic_obj, soft_iic_obj->addr << 1);
|
||||
while(len --)
|
||||
@@ -264,6 +269,7 @@ void soft_iic_write_8bit_array (soft_iic_info_struct *soft_iic_obj, const uint8
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void soft_iic_write_16bit (soft_iic_info_struct *soft_iic_obj, const uint16 data)
|
||||
{
|
||||
zf_assert(NULL != soft_iic_obj);
|
||||
soft_iic_start(soft_iic_obj);
|
||||
soft_iic_send_data(soft_iic_obj, soft_iic_obj->addr << 1);
|
||||
soft_iic_send_data(soft_iic_obj, (uint8)((data & 0xFF00) >> 8));
|
||||
@@ -282,6 +288,8 @@ void soft_iic_write_16bit (soft_iic_info_struct *soft_iic_obj, const uint16 data
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void soft_iic_write_16bit_array (soft_iic_info_struct *soft_iic_obj, const uint16 *data, uint32 len)
|
||||
{
|
||||
zf_assert(NULL != soft_iic_obj);
|
||||
zf_assert(NULL != data);
|
||||
soft_iic_start(soft_iic_obj);
|
||||
soft_iic_send_data(soft_iic_obj, soft_iic_obj->addr << 1);
|
||||
while(len --)
|
||||
@@ -303,6 +311,7 @@ void soft_iic_write_16bit_array (soft_iic_info_struct *soft_iic_obj, const uint1
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void soft_iic_write_8bit_register (soft_iic_info_struct *soft_iic_obj, const uint8 register_name, const uint8 data)
|
||||
{
|
||||
zf_assert(NULL != soft_iic_obj);
|
||||
soft_iic_start(soft_iic_obj);
|
||||
soft_iic_send_data(soft_iic_obj, soft_iic_obj->addr << 1);
|
||||
soft_iic_send_data(soft_iic_obj, register_name);
|
||||
@@ -322,6 +331,8 @@ void soft_iic_write_8bit_register (soft_iic_info_struct *soft_iic_obj, const uin
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void soft_iic_write_8bit_registers (soft_iic_info_struct *soft_iic_obj, const uint8 register_name, const uint8 *data, uint32 len)
|
||||
{
|
||||
zf_assert(NULL != soft_iic_obj);
|
||||
zf_assert(NULL != data);
|
||||
soft_iic_start(soft_iic_obj);
|
||||
soft_iic_send_data(soft_iic_obj, soft_iic_obj->addr << 1);
|
||||
soft_iic_send_data(soft_iic_obj, register_name);
|
||||
@@ -343,6 +354,7 @@ void soft_iic_write_8bit_registers (soft_iic_info_struct *soft_iic_obj, const ui
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void soft_iic_write_16bit_register (soft_iic_info_struct *soft_iic_obj, const uint16 register_name, const uint16 data)
|
||||
{
|
||||
zf_assert(NULL != soft_iic_obj);
|
||||
soft_iic_start(soft_iic_obj);
|
||||
soft_iic_send_data(soft_iic_obj, soft_iic_obj->addr << 1);
|
||||
soft_iic_send_data(soft_iic_obj, (uint8)((register_name & 0xFF00) >> 8));
|
||||
@@ -364,11 +376,13 @@ void soft_iic_write_16bit_register (soft_iic_info_struct *soft_iic_obj, const ui
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void soft_iic_write_16bit_registers (soft_iic_info_struct *soft_iic_obj, const uint16 register_name, const uint16 *data, uint32 len)
|
||||
{
|
||||
zf_assert(NULL != soft_iic_obj);
|
||||
zf_assert(NULL != data);
|
||||
soft_iic_start(soft_iic_obj);
|
||||
soft_iic_send_data(soft_iic_obj, soft_iic_obj->addr << 1);
|
||||
soft_iic_send_data(soft_iic_obj, (uint8)((register_name & 0xFF00) >> 8));
|
||||
soft_iic_send_data(soft_iic_obj, (uint8)(register_name & 0x00FF));
|
||||
while(len--)
|
||||
while(len --)
|
||||
{
|
||||
soft_iic_send_data(soft_iic_obj, (uint8)((*data & 0xFF00) >> 8));
|
||||
soft_iic_send_data(soft_iic_obj, (uint8)(*data ++ & 0x00FF));
|
||||
@@ -385,6 +399,7 @@ void soft_iic_write_16bit_registers (soft_iic_info_struct *soft_iic_obj, const u
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint8 soft_iic_read_8bit (soft_iic_info_struct *soft_iic_obj)
|
||||
{
|
||||
zf_assert(NULL != soft_iic_obj);
|
||||
uint8 temp = 0;
|
||||
soft_iic_start(soft_iic_obj);
|
||||
soft_iic_send_data(soft_iic_obj, soft_iic_obj->addr << 1 | 0x01);
|
||||
@@ -405,6 +420,8 @@ uint8 soft_iic_read_8bit (soft_iic_info_struct *soft_iic_obj)
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void soft_iic_read_8bit_array (soft_iic_info_struct *soft_iic_obj, uint8 *data, uint32 len)
|
||||
{
|
||||
zf_assert(NULL != soft_iic_obj);
|
||||
zf_assert(NULL != data);
|
||||
soft_iic_start(soft_iic_obj);
|
||||
soft_iic_send_data(soft_iic_obj, soft_iic_obj->addr << 1 | 0x01);
|
||||
while(len --)
|
||||
@@ -424,6 +441,7 @@ void soft_iic_read_8bit_array (soft_iic_info_struct *soft_iic_obj, uint8 *data,
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint16 soft_iic_read_16bit (soft_iic_info_struct *soft_iic_obj)
|
||||
{
|
||||
zf_assert(NULL != soft_iic_obj);
|
||||
uint16 temp = 0;
|
||||
soft_iic_start(soft_iic_obj);
|
||||
soft_iic_send_data(soft_iic_obj, soft_iic_obj->addr << 1 | 0x01);
|
||||
@@ -444,12 +462,14 @@ uint16 soft_iic_read_16bit (soft_iic_info_struct *soft_iic_obj)
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void soft_iic_read_16bit_array (soft_iic_info_struct *soft_iic_obj, uint16 *data, uint32 len)
|
||||
{
|
||||
zf_assert(NULL != soft_iic_obj);
|
||||
zf_assert(NULL != data);
|
||||
soft_iic_start(soft_iic_obj);
|
||||
soft_iic_send_data(soft_iic_obj, soft_iic_obj->addr << 1 | 0x01);
|
||||
while(len --)
|
||||
{
|
||||
*data = soft_iic_read_data(soft_iic_obj, 0);
|
||||
*data = ((*data << 8)| soft_iic_read_data(soft_iic_obj, len == 0));
|
||||
*data = ((*data << 8)| soft_iic_read_data(soft_iic_obj, 0 == len));
|
||||
data ++;
|
||||
}
|
||||
soft_iic_stop(soft_iic_obj);
|
||||
@@ -465,6 +485,7 @@ void soft_iic_read_16bit_array (soft_iic_info_struct *soft_iic_obj, uint16 *data
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint8 soft_iic_read_8bit_register (soft_iic_info_struct *soft_iic_obj, const uint8 register_name)
|
||||
{
|
||||
zf_assert(NULL != soft_iic_obj);
|
||||
uint8 temp = 0;
|
||||
soft_iic_start(soft_iic_obj);
|
||||
soft_iic_send_data(soft_iic_obj, soft_iic_obj->addr << 1);
|
||||
@@ -488,6 +509,8 @@ uint8 soft_iic_read_8bit_register (soft_iic_info_struct *soft_iic_obj, const uin
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void soft_iic_read_8bit_registers (soft_iic_info_struct *soft_iic_obj, const uint8 register_name, uint8 *data, uint32 len)
|
||||
{
|
||||
zf_assert(NULL != soft_iic_obj);
|
||||
zf_assert(NULL != data);
|
||||
soft_iic_start(soft_iic_obj);
|
||||
soft_iic_send_data(soft_iic_obj, soft_iic_obj->addr << 1);
|
||||
soft_iic_send_data(soft_iic_obj, register_name);
|
||||
@@ -510,6 +533,7 @@ void soft_iic_read_8bit_registers (soft_iic_info_struct *soft_iic_obj, const uin
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint16 soft_iic_read_16bit_register (soft_iic_info_struct *soft_iic_obj, const uint16 register_name)
|
||||
{
|
||||
zf_assert(NULL != soft_iic_obj);
|
||||
uint16 temp = 0;
|
||||
soft_iic_start(soft_iic_obj);
|
||||
soft_iic_send_data(soft_iic_obj, soft_iic_obj->addr << 1);
|
||||
@@ -535,6 +559,8 @@ uint16 soft_iic_read_16bit_register (soft_iic_info_struct *soft_iic_obj, const u
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void soft_iic_read_16bit_registers (soft_iic_info_struct *soft_iic_obj, const uint16 register_name, uint16 *data, uint32 len)
|
||||
{
|
||||
zf_assert(NULL != soft_iic_obj);
|
||||
zf_assert(NULL != data);
|
||||
soft_iic_start(soft_iic_obj);
|
||||
soft_iic_send_data(soft_iic_obj, soft_iic_obj->addr << 1);
|
||||
soft_iic_send_data(soft_iic_obj, (uint8)((register_name & 0xFF00) >> 8));
|
||||
@@ -544,7 +570,7 @@ void soft_iic_read_16bit_registers (soft_iic_info_struct *soft_iic_obj, const ui
|
||||
while(len --)
|
||||
{
|
||||
*data = soft_iic_read_data(soft_iic_obj, 0);
|
||||
*data = ((*data << 8)| soft_iic_read_data(soft_iic_obj, len == 0));
|
||||
*data = ((*data << 8)| soft_iic_read_data(soft_iic_obj, 0 == len));
|
||||
data ++;
|
||||
}
|
||||
soft_iic_stop(soft_iic_obj);
|
||||
@@ -563,6 +589,9 @@ void soft_iic_read_16bit_registers (soft_iic_info_struct *soft_iic_obj, const ui
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void soft_iic_transfer_8bit_array (soft_iic_info_struct *soft_iic_obj, const uint8 *write_data, uint32 write_len, uint8 *read_data, uint32 read_len)
|
||||
{
|
||||
zf_assert(NULL != soft_iic_obj);
|
||||
zf_assert(NULL != write_data);
|
||||
zf_assert(NULL != read_data);
|
||||
soft_iic_start(soft_iic_obj);
|
||||
soft_iic_send_data(soft_iic_obj, soft_iic_obj->addr << 1);
|
||||
while(write_len --)
|
||||
@@ -579,7 +608,6 @@ void soft_iic_transfer_8bit_array (soft_iic_info_struct *soft_iic_obj, const uin
|
||||
}
|
||||
}
|
||||
soft_iic_stop(soft_iic_obj);
|
||||
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
@@ -595,6 +623,9 @@ void soft_iic_transfer_8bit_array (soft_iic_info_struct *soft_iic_obj, const uin
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void soft_iic_transfer_16bit_array (soft_iic_info_struct *soft_iic_obj, const uint16 *write_data, uint32 write_len, uint16 *read_data, uint32 read_len)
|
||||
{
|
||||
zf_assert(NULL != soft_iic_obj);
|
||||
zf_assert(NULL != write_data);
|
||||
zf_assert(NULL != read_data);
|
||||
soft_iic_start(soft_iic_obj);
|
||||
soft_iic_send_data(soft_iic_obj, soft_iic_obj->addr << 1);
|
||||
while(write_len--)
|
||||
@@ -627,6 +658,7 @@ void soft_iic_transfer_16bit_array (soft_iic_info_struct *soft_iic_obj, const ui
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void soft_iic_sccb_write_register (soft_iic_info_struct *soft_iic_obj, const uint8 register_name, uint8 data)
|
||||
{
|
||||
zf_assert(NULL != soft_iic_obj);
|
||||
soft_iic_start(soft_iic_obj);
|
||||
soft_iic_send_data(soft_iic_obj, soft_iic_obj->addr << 1);
|
||||
soft_iic_send_data(soft_iic_obj, register_name);
|
||||
@@ -644,6 +676,7 @@ void soft_iic_sccb_write_register (soft_iic_info_struct *soft_iic_obj, const uin
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint8 soft_iic_sccb_read_register (soft_iic_info_struct *soft_iic_obj, const uint8 register_name)
|
||||
{
|
||||
zf_assert(NULL != soft_iic_obj);
|
||||
uint8 temp = 0;
|
||||
soft_iic_start(soft_iic_obj);
|
||||
soft_iic_send_data(soft_iic_obj, soft_iic_obj->addr << 1);
|
||||
@@ -670,13 +703,12 @@ uint8 soft_iic_sccb_read_register (soft_iic_info_struct *soft_iic_obj, const uin
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void soft_iic_init (soft_iic_info_struct *soft_iic_obj, uint8 addr, uint32 delay, gpio_pin_enum scl_pin, gpio_pin_enum sda_pin)
|
||||
{
|
||||
zf_assert(NULL != soft_iic_obj);
|
||||
zf_assert(scl_pin != sda_pin); // <20><><EFBFBD>ѣ<EFBFBD> scl_pin <20><> sda_pin <20><>ô<EFBFBD><C3B4><EFBFBD><EFBFBD>ͬһ<CDAC><D2BB><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD>
|
||||
soft_iic_obj->scl_pin = scl_pin;
|
||||
soft_iic_obj->sda_pin = sda_pin;
|
||||
soft_iic_obj->addr = addr;
|
||||
soft_iic_obj->delay = delay;
|
||||
soft_iic_obj->iic_scl = (void *)get_port(scl_pin);
|
||||
soft_iic_obj->iic_sda = (void *)get_port(sda_pin);
|
||||
gpio_init(scl_pin, GPO, GPIO_HIGH, GPO_PUSH_PULL); // <20><>ȡ<EFBFBD><C8A1>ӦIO<49><4F><EFBFBD><EFBFBD> AF<41><46><EFBFBD>ܱ<EFBFBD><DCB1><EFBFBD>
|
||||
gpio_init(sda_pin, GPO, GPIO_HIGH, GPO_OPEN_DTAIN); // <20><>ȡ<EFBFBD><C8A1>ӦIO<49><4F><EFBFBD><EFBFBD> AF<41><46><EFBFBD>ܱ<EFBFBD><DCB1><EFBFBD>
|
||||
}
|
||||
|
||||
@@ -32,11 +32,9 @@
|
||||
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
|
||||
* 2022-09-15 pudding first version
|
||||
********************************************************************************************************************/
|
||||
|
||||
#ifndef _zf_driver_soft_iic_h_
|
||||
#define _zf_driver_soft_iic_h_
|
||||
|
||||
#include "zf_common_typedef.h"
|
||||
#include "zf_driver_gpio.h"
|
||||
|
||||
typedef struct
|
||||
@@ -44,12 +42,9 @@ typedef struct
|
||||
uint32 scl_pin; // <20><><EFBFBD>ڼ<EFBFBD>¼<EFBFBD><C2BC>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD><C5B1><EFBFBD>
|
||||
uint32 sda_pin; // <20><><EFBFBD>ڼ<EFBFBD>¼<EFBFBD><C2BC>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD><C5B1><EFBFBD>
|
||||
uint8 addr; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ <20><>λ<EFBFBD><CEBB>ַģʽ
|
||||
uint32 delay; // ģ<><C4A3> IIC <20><><EFBFBD><EFBFBD>ʱʱ<CAB1><CAB1> 0<><30>1370KHz 10<31><30>1020KHz 20<32><30>757KHz 30: 633KHz 40: 532Khz 50: 448KHz 60: 395KHz 70: 359KHz 80: 324KHz 100: 268KHz 1000<30><30>32KHz
|
||||
void *iic_scl; // <20><>¼ SCL <20>˿ڵ<CBBF>ַ
|
||||
void *iic_sda; // <20><>¼ SDA <20>˿ڵ<CBBF>ַ
|
||||
uint32 delay; // ģ<><C4A3> IIC <20><><EFBFBD><EFBFBD>ʱʱ<CAB1><CAB1>
|
||||
}soft_iic_info_struct;
|
||||
|
||||
//==================================================SOFT_IIC <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||
void soft_iic_write_8bit (soft_iic_info_struct *soft_iic_obj, const uint8 data);
|
||||
void soft_iic_write_8bit_array (soft_iic_info_struct *soft_iic_obj, const uint8 *data, uint32 len);
|
||||
|
||||
@@ -81,7 +76,5 @@ void soft_iic_sccb_write_register (soft_iic_info_struct *soft_iic_obj,
|
||||
uint8 soft_iic_sccb_read_register (soft_iic_info_struct *soft_iic_obj, const uint8 register_name);
|
||||
|
||||
void soft_iic_init (soft_iic_info_struct *soft_iic_obj, uint8 addr, uint32 delay, gpio_pin_enum scl_pin, gpio_pin_enum sda_pin);
|
||||
//==================================================SOFT_IIC <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user