mirror of
https://gitee.com/seekfree/TC264_Library.git
synced 2026-06-04 03:32:56 +00:00
V3.1.0
修复GPS精度不够的问题
修复部分驱动文件注释错误问题
新增覆盖用户接口的断言机制 增强 V3 库的健壮性 主要针对空指针
This commit is contained in:
@@ -1,3 +1,7 @@
|
||||
V3.1.0
|
||||
<20><EFBFBD>GPS<50><53><EFBFBD>Ȳ<EFBFBD><C8B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>ע<EFBFBD>ʹ<EFBFBD><CDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB>ӿڵĶ<DAB5><C4B6>Ի<EFBFBD><D4BB><EFBFBD> <20><>ǿ V3 <20><><EFBFBD>Ľ<EFBFBD>׳<EFBFBD><D7B3> <20><>Ҫ<EFBFBD><D2AA><EFBFBD>Կ<EFBFBD>ָ<EFBFBD><D6B8>
|
||||
V3.0.1
|
||||
<20><EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>絥<EFBFBD><E7B5A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD><D8B9>ȹ<EFBFBD><C8B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
V3.0.0
|
||||
|
||||
@@ -33,18 +33,18 @@
|
||||
* 2022-09-15 pudding first version
|
||||
********************************************************************************************************************/
|
||||
|
||||
#include "zf_common_debug.h"
|
||||
#include "zf_common_function.h"
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> num1 <20><><EFBFBD><EFBFBD>1
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> num2 <20><><EFBFBD><EFBFBD>2
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> uint32 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> return get_greatest_common_divisor(144, 36); // <20><>ȡ 144 <20><> 36 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> return func_get_greatest_common_divisor(144, 36); // <20><>ȡ 144 <20><> 36 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint32 get_greatest_common_divisor (uint32 num1, uint32 num2)
|
||||
uint32 func_get_greatest_common_divisor (uint32 num1, uint32 num2)
|
||||
{
|
||||
while(num1 != num2)
|
||||
{
|
||||
@@ -64,10 +64,10 @@ uint32 get_greatest_common_divisor (uint32 num1, uint32 num2)
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> t <20><>ʱʱ<CAB1><CAB1>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> my_delay(100);
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> func_soft_delay(100);
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void my_delay (volatile long t)
|
||||
void func_soft_delay (volatile long t)
|
||||
{
|
||||
while(t --);
|
||||
}
|
||||
@@ -76,11 +76,12 @@ void my_delay (volatile long t)
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ַ<EFBFBD><D6B7><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ݷ<EFBFBD>Χ<EFBFBD><CEA7> [-32768,32767]
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> *str <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> <20>ɴ<EFBFBD><C9B4><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> int32 ת<><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> int32 dat = str_to_int("-100");
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> int32 dat = func_str_to_int("-100");
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
int32 str_to_int (char *str)
|
||||
int32 func_str_to_int (char *str)
|
||||
{
|
||||
zf_assert(str != NULL);
|
||||
uint8 sign = 0; // <20><><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD> 0-<2D><><EFBFBD><EFBFBD> 1-<2D><><EFBFBD><EFBFBD>
|
||||
int32 temp = 0; // <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
do
|
||||
@@ -119,11 +120,12 @@ int32 str_to_int (char *str)
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> *str <20>ַ<EFBFBD><D6B7><EFBFBD>ָ<EFBFBD><D6B8>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> number <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> int_to_str(data_buffer, -300);
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> func_int_to_str(data_buffer, -300);
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void int_to_str (char *str, int32 number)
|
||||
void func_int_to_str (char *str, int32 number)
|
||||
{
|
||||
zf_assert(str != NULL);
|
||||
uint8 data_temp[16]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
uint8 bit = 0; // <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
|
||||
int32 number_temp = 0;
|
||||
@@ -149,7 +151,7 @@ void int_to_str (char *str, int32 number)
|
||||
while(0 != number) // ѭ<><D1AD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>
|
||||
{
|
||||
number_temp = number % 10;
|
||||
data_temp[bit ++] = myabs(number_temp); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
|
||||
data_temp[bit ++] = func_abs(number_temp); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
|
||||
number /= 10; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD>ĸ<EFBFBD>λ<EFBFBD><CEBB>
|
||||
}
|
||||
while(0 != bit) // <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>ݼ<EFBFBD><DDBC><EFBFBD><EFBFBD><EFBFBD>
|
||||
@@ -164,11 +166,12 @@ void int_to_str (char *str, int32 number)
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ַ<EFBFBD><D6B7><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ݷ<EFBFBD>Χ<EFBFBD><CEA7> [0,65535]
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> *str <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> <20><EFBFBD><DEB7><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> uint32 ת<><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> uint32 dat = str_to_uint("100");
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> uint32 dat = func_str_to_uint("100");
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint32 str_to_uint (char *str)
|
||||
uint32 func_str_to_uint (char *str)
|
||||
{
|
||||
zf_assert(str != NULL);
|
||||
uint32 temp = 0; // <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
do
|
||||
@@ -193,11 +196,12 @@ uint32 str_to_uint (char *str)
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> *str <20>ַ<EFBFBD><D6B7><EFBFBD>ָ<EFBFBD><D6B8>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> number <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> uint_to_str(data_buffer, 300);
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> func_uint_to_str(data_buffer, 300);
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void uint_to_str (char *str, uint32 number)
|
||||
void func_uint_to_str (char *str, uint32 number)
|
||||
{
|
||||
zf_assert(str != NULL);
|
||||
int8 data_temp[16]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
uint8 bit = 0; // <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
|
||||
|
||||
@@ -231,11 +235,12 @@ void uint_to_str (char *str, uint32 number)
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ַ<EFBFBD><D6B7><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>Ч<EFBFBD>ۼƾ<DBBC><C6BE><EFBFBD>ΪС<CEAA><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> *str <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> <20>ɴ<EFBFBD><C9B4><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> float ת<><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> float dat = str_to_float("-100.2");
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> float dat = func_str_to_float("-100.2");
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
float str_to_float (char *str)
|
||||
float func_str_to_float (char *str)
|
||||
{
|
||||
zf_assert(str != NULL);
|
||||
uint8 sign = 0; // <20><><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD> 0-<2D><><EFBFBD><EFBFBD> 1-<2D><><EFBFBD><EFBFBD>
|
||||
float temp = 0.0; // <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
float temp_point = 0.0; // <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> С<><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
@@ -291,11 +296,12 @@ float str_to_float (char *str)
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> number <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> point_bit С<><D0A1><EFBFBD>㾫<EFBFBD><E3BEAB>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> float_to_str(data_buffer, 3.1415, 2); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> data_buffer = "3.14"
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> func_float_to_str(data_buffer, 3.1415, 2); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> data_buffer = "3.14"
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void float_to_str (char *str, float number, uint8 point_bit)
|
||||
void func_float_to_str (char *str, float number, uint8 point_bit)
|
||||
{
|
||||
zf_assert(str != NULL);
|
||||
int data_int = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int data_float = 0.0; // С<><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int data_temp[8]; // <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>
|
||||
@@ -340,7 +346,7 @@ void float_to_str (char *str, float number, uint8 point_bit)
|
||||
}while(0 != data_int);
|
||||
while(0 != bit)
|
||||
{
|
||||
*str ++ = (myabs(data_temp[bit - 1]) + 0x30); // <20>ٵ<EFBFBD><D9B5><EFBFBD><F2BDABB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵд<D6B5><D0B4><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> <20>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
||||
*str ++ = (func_abs(data_temp[bit - 1]) + 0x30); // <20>ٵ<EFBFBD><D9B5><EFBFBD><F2BDABB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵд<D6B5><D0B4><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> <20>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
||||
bit --;
|
||||
}
|
||||
|
||||
@@ -363,7 +369,7 @@ void float_to_str (char *str, float number, uint8 point_bit)
|
||||
}
|
||||
while(0 != bit)
|
||||
{
|
||||
*str ++ = (myabs(data_temp_point[bit - 1]) + 0x30); // <20>ٵ<EFBFBD><D9B5><EFBFBD><F2BDABB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵд<D6B5><D0B4><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> <20>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
||||
*str ++ = (func_abs(data_temp_point[bit - 1]) + 0x30); // <20>ٵ<EFBFBD><D9B5><EFBFBD><F2BDABB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵд<D6B5><D0B4><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> <20>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
||||
bit --;
|
||||
}
|
||||
}
|
||||
@@ -375,11 +381,12 @@ void float_to_str (char *str, float number, uint8 point_bit)
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ַ<EFBFBD><D6B7><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>Ч<EFBFBD>ۼƾ<DBBC><C6BE><EFBFBD>ΪС<CEAA><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> str <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> <20>ɴ<EFBFBD><C9B4><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> double ת<><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> double dat = str_to_double("-100.2");
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> double dat = func_str_to_double("-100.2");
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
double str_to_double (char *str)
|
||||
double func_str_to_double (char *str)
|
||||
{
|
||||
zf_assert(str != NULL);
|
||||
uint8 sign = 0; // <20><><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD> 0-<2D><><EFBFBD><EFBFBD> 1-<2D><><EFBFBD><EFBFBD>
|
||||
double temp = 0.0; // <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
double temp_point = 0.0; // <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> С<><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
@@ -436,11 +443,12 @@ double str_to_double (char *str)
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> number <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> point_bit С<><D0A1><EFBFBD>㾫<EFBFBD><E3BEAB>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> double_to_str(data_buffer, 3.1415, 2); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> data_buffer = "3.14"
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> func_double_to_str(data_buffer, 3.1415, 2); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> data_buffer = "3.14"
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void double_to_str (char *str, double number, uint8 point_bit)
|
||||
void func_double_to_str (char *str, double number, uint8 point_bit)
|
||||
{
|
||||
zf_assert(str != NULL);
|
||||
int data_int = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int data_float = 0.0; // С<><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int data_temp[12]; // <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>
|
||||
@@ -485,7 +493,7 @@ void double_to_str (char *str, double number, uint8 point_bit)
|
||||
}while(0 != data_int);
|
||||
while(0 != bit)
|
||||
{
|
||||
*str ++ = (myabs(data_temp[bit - 1]) + 0x30); // <20>ٵ<EFBFBD><D9B5><EFBFBD><F2BDABB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵд<D6B5><D0B4><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> <20>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
||||
*str ++ = (func_abs(data_temp[bit - 1]) + 0x30); // <20>ٵ<EFBFBD><D9B5><EFBFBD><F2BDABB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵд<D6B5><D0B4><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> <20>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
||||
bit --;
|
||||
}
|
||||
|
||||
@@ -506,7 +514,7 @@ void double_to_str (char *str, double number, uint8 point_bit)
|
||||
}
|
||||
while(0 != bit)
|
||||
{
|
||||
*str ++ = (myabs(data_temp_point[bit - 1]) + 0x30); // <20>ٵ<EFBFBD><D9B5><EFBFBD><F2BDABB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵд<D6B5><D0B4><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> <20>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
||||
*str ++ = (func_abs(data_temp_point[bit - 1]) + 0x30); // <20>ٵ<EFBFBD><D9B5><EFBFBD><F2BDABB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵд<D6B5><D0B4><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> <20>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
||||
bit --;
|
||||
}
|
||||
}
|
||||
@@ -518,11 +526,12 @@ void double_to_str (char *str, double number, uint8 point_bit)
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ַ<EFBFBD><D6B7><EFBFBD>ת Hex
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> str <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> <20><EFBFBD><DEB7><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> uint32 ת<><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> uint32 dat = str_to_hex("0x11");
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> uint32 dat = func_str_to_hex("0x11");
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint32 str_to_hex (char *str)
|
||||
uint32 func_str_to_hex (char *str)
|
||||
{
|
||||
zf_assert(str != NULL);
|
||||
uint32 str_len = strlen(str); // <20>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>
|
||||
uint32 result_data = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
uint8 temp = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
@@ -575,11 +584,12 @@ uint32 str_to_hex (char *str)
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> *str <20>ַ<EFBFBD><D6B7><EFBFBD>ָ<EFBFBD><D6B8>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> number <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> hex_to_str(data_buffer, 0x11); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> data_buffer = "0x11"
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> func_hex_to_str(data_buffer, 0x11); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> data_buffer = "0x11"
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void hex_to_str (char *str, uint32 number)
|
||||
void func_hex_to_str (char *str, uint32 number)
|
||||
{
|
||||
zf_assert(str != NULL);
|
||||
const char hex_index[16] = {
|
||||
'0', '1', '2', '3',
|
||||
'4', '5', '6', '7',
|
||||
@@ -861,7 +871,6 @@ uint32 zf_sprintf (int8 *buff, const int8 *format, ...)
|
||||
uint32 ival = (uint32)va_arg(arg, uint32);
|
||||
uint8 vlen = 0;
|
||||
vlen = number_conversion_ascii(ival, vstr, 0, 16);
|
||||
|
||||
printf_reverse_order(vstr, 8);
|
||||
memcpy(buff, vstr, 8);
|
||||
buff += 8;
|
||||
@@ -893,3 +902,4 @@ uint32 zf_sprintf (int8 *buff, const int8 *format, ...)
|
||||
|
||||
return buff_len;
|
||||
}
|
||||
|
||||
|
||||
@@ -38,26 +38,25 @@
|
||||
|
||||
#include "zf_common_typedef.h"
|
||||
|
||||
|
||||
//====================================================<3D>궨<EFBFBD>庯<EFBFBD><E5BAAF><EFBFBD><EFBFBD>====================================================
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD> <20><><EFBFBD>ݷ<EFBFBD>Χ<EFBFBD><CEA7> [-32767,32767]
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> dat <20><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> int <20><><EFBFBD>ؾ<EFBFBD><D8BE><EFBFBD>ֵ
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> dat = myabs(dat); // <20><>dat<61><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> dat = func_abs(dat); // <20><>dat<61><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
#define myabs(x) ((x) >= 0 ? (x): -(x))
|
||||
#define func_abs(x) ((x) >= 0 ? (x): -(x))
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD> <20><><EFBFBD>ݷ<EFBFBD>Χ<EFBFBD><CEA7> [-32768,32767]
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> x <20><><EFBFBD><EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> y <20><EFBFBD><DEB7><EFBFBD>Χ(<28><><EFBFBD>ݻᱻ<DDBB><E1B1BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-y<><79>+y֮<79><D6AE>)
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> int <20><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> int dat = limit(500, 300); // <20><><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-300<30><30>+300֮<30><D6AE> <20><><EFBFBD>˷<EFBFBD><CBB7>صĽ<D8B5><C4BD><EFBFBD><EFBFBD><EFBFBD>300
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> int dat = func_limit(500, 300); // <20><><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-300<30><30>+300֮<30><D6AE> <20><><EFBFBD>˷<EFBFBD><CBB7>صĽ<D8B5><C4BD><EFBFBD><EFBFBD><EFBFBD>300
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
#define limit(x, y) ((x) > (y) ? (y) : ((x) < -(y) ? -(y) : (x)))
|
||||
#define func_limit(x, y) ((x) > (y) ? (y) : ((x) < -(y) ? -(y) : (x)))
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ˫<><CBAB><EFBFBD><EFBFBD> <20><><EFBFBD>ݷ<EFBFBD>Χ<EFBFBD><CEA7> [-32768,32767]
|
||||
@@ -65,32 +64,33 @@
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> a <20><EFBFBD><DEB7><EFBFBD>Χ<EFBFBD><CEA7><EFBFBD>߽<EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> b <20><EFBFBD><DEB7><EFBFBD>Χ<EFBFBD>ұ߽<D2B1>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> int <20><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> int dat = limit_ab(500, -300, 400); //<2F><><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-300<30><30>+400֮<30><D6AE> <20><><EFBFBD>˷<EFBFBD><CBB7>صĽ<D8B5><C4BD><EFBFBD><EFBFBD><EFBFBD>400
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> int dat = func_limit_ab(500, -300, 400); //<2F><><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-300<30><30>+400֮<30><D6AE> <20><><EFBFBD>˷<EFBFBD><CBB7>صĽ<D8B5><C4BD><EFBFBD><EFBFBD><EFBFBD>400
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
#define limit_ab(x, a, b) ((x) < (a) ? (a) : ((x) > (b) ? (b) : (x)))
|
||||
#define func_limit_ab(x, a, b) ((x) < (a) ? (a) : ((x) > (b) ? (b) : (x)))
|
||||
|
||||
//====================================================<3D>궨<EFBFBD>庯<EFBFBD><E5BAAF><EFBFBD><EFBFBD>====================================================
|
||||
|
||||
//=====================================================<3D><><EFBFBD>溯<EFBFBD><E6BAAF><EFBFBD><EFBFBD>=====================================================
|
||||
uint32 get_greatest_common_divisor (uint32 num1, uint32 num2);
|
||||
uint32 func_get_greatest_common_divisor (uint32 num1, uint32 num2);
|
||||
|
||||
void my_delay (volatile long t);
|
||||
void func_soft_delay (volatile long t);
|
||||
|
||||
int32 str_to_int (char *str);
|
||||
void int_to_str (char *str, int32 number);
|
||||
uint32 str_to_uint (char *str);
|
||||
void uint_to_str (char *str, uint32 number);
|
||||
float str_to_float (char *str);
|
||||
void float_to_str (char *str, float number, uint8 point_bit);
|
||||
double str_to_double (char *str);
|
||||
void double_to_str (char *str, double number, uint8 point_bit);
|
||||
uint32 str_to_hex (char *str);
|
||||
void hex_to_str (char *str, uint32 number);
|
||||
int32 func_str_to_int (char *str);
|
||||
void func_int_to_str (char *str, int32 number);
|
||||
uint32 func_str_to_uint (char *str);
|
||||
void func_uint_to_str (char *str, uint32 number);
|
||||
float func_str_to_float (char *str);
|
||||
void func_float_to_str (char *str, float number, uint8 point_bit);
|
||||
double func_str_to_double (char *str);
|
||||
void func_double_to_str (char *str, double number, uint8 point_bit);
|
||||
uint32 func_str_to_hex (char *str);
|
||||
void func_hex_to_str (char *str, uint32 number);
|
||||
|
||||
uint32 zf_sprintf (int8 *buff, const int8 *format, ...);
|
||||
//=====================================================<3D><><EFBFBD>溯<EFBFBD><E6BAAF><EFBFBD><EFBFBD>=====================================================
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
@@ -45,13 +45,14 @@
|
||||
* ------------------------------------
|
||||
********************************************************************************************************************/
|
||||
|
||||
|
||||
#include "zf_common_debug.h"
|
||||
#include "zf_common_function.h"
|
||||
#include "zf_driver_delay.h"
|
||||
#include "zf_driver_soft_spi.h"
|
||||
#include "zf_driver_spi.h"
|
||||
#include "zf_device_absolute_encoder.h"
|
||||
|
||||
#include "zf_device_absolute_encoder.h"
|
||||
|
||||
static int16 now_location = 0;
|
||||
static int16 last_location = 0;
|
||||
@@ -76,7 +77,7 @@ static soft_spi_info_struct absolute_encoder_spi;
|
||||
static void absolute_encoder_write_register(uint8 reg, uint8 data)
|
||||
{
|
||||
ABSOLUTE_ENCODER_CSN(0); // Ƭѡ<C6AC><D1A1><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>
|
||||
absolute_encoder_write(reg | ABS_ENCODER_SPI_W); // <20>Ĵ<EFBFBD><C4B4><EFBFBD>
|
||||
absolute_encoder_write(reg | ABSOLUTE_ENCODER_SPI_W); // <20>Ĵ<EFBFBD><C4B4><EFBFBD>
|
||||
absolute_encoder_write(data); // <20><><EFBFBD><EFBFBD>
|
||||
ABSOLUTE_ENCODER_CSN(1); // Ƭѡ<C6AC><D1A1><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>
|
||||
system_delay_us(1); // <20><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>
|
||||
@@ -97,7 +98,7 @@ static uint8 absolute_encoder_read_register(uint8 reg)
|
||||
{
|
||||
uint8 data = 0;
|
||||
ABSOLUTE_ENCODER_CSN(0); // Ƭѡ<C6AC><D1A1><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>
|
||||
absolute_encoder_write(reg | ABS_ENCODER_SPI_R); // <20>Ĵ<EFBFBD><C4B4><EFBFBD>
|
||||
absolute_encoder_write(reg | ABSOLUTE_ENCODER_SPI_R); // <20>Ĵ<EFBFBD><C4B4><EFBFBD>
|
||||
absolute_encoder_write(0x00); // ռλ
|
||||
ABSOLUTE_ENCODER_CSN(1); // Ƭѡ<C6AC><D1A1><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>
|
||||
system_delay_us(1); // <20><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>
|
||||
@@ -177,16 +178,16 @@ int16 absolute_encoder_get_location (void)
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
int16 absolute_encoder_get_offset (void)
|
||||
{
|
||||
int16 offset_num = 0;
|
||||
if(myabs(now_location-last_location) > 2048)
|
||||
int16 result_data = 0;
|
||||
if(func_abs(now_location - last_location) > 2048)
|
||||
{
|
||||
offset_num = (now_location > 2048 ? (now_location - 4096 - last_location) : (now_location + 4096 - last_location));
|
||||
result_data = (now_location > 2048 ? (now_location - 4096 - last_location) : (now_location + 4096 - last_location));
|
||||
}
|
||||
else
|
||||
{
|
||||
offset_num = (now_location - last_location);
|
||||
result_data = (now_location - last_location);
|
||||
}
|
||||
return offset_num;
|
||||
return result_data;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
@@ -198,6 +199,7 @@ int16 absolute_encoder_get_offset (void)
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint8 absolute_encoder_init (void)
|
||||
{
|
||||
uint8 return_state = 0;
|
||||
uint16 zero_position = ABSOLUTE_ENCODER_DEFAULT_ZERO;
|
||||
#if ABSOLUTE_ENCODER_USE_SOFT_SPI
|
||||
soft_spi_init(&absolute_encoder_spi, 0, ABSOLUTE_ENCODER_SOFT_SPI_DELAY, ABSOLUTE_ENCODER_SCLK_PIN, ABSOLUTE_ENCODER_MOSI_PIN, ABSOLUTE_ENCODER_MISO_PIN, SOFT_SPI_PIN_NULL);
|
||||
@@ -206,17 +208,22 @@ uint8 absolute_encoder_init (void)
|
||||
#endif
|
||||
gpio_init(ABSOLUTE_ENCODER_CS_PIN, GPO, GPIO_LOW, GPO_PUSH_PULL);
|
||||
|
||||
if(absolute_encoder_self_check())
|
||||
do
|
||||
{
|
||||
// <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><C7BE><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>˳<EFBFBD><CBB3><EFBFBD>
|
||||
// <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>ܾ<EFBFBD><EFBFBD>ǻ<EFBFBD><EFBFBD><EFBFBD>
|
||||
zf_assert(0);
|
||||
}
|
||||
absolute_encoder_write_register(DIR_REG, 0x00); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD> <20><>ת<EFBFBD><D7AA>ֵ<EFBFBD><D6B5>С<EFBFBD><D0A1>0x00 <20><>ת<EFBFBD><D7AA>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0x80
|
||||
zero_position = (uint16)(4096 - zero_position);
|
||||
zero_position = zero_position << 4;
|
||||
absolute_encoder_write_register(ZERO_L_REG, (uint8)zero_position); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ
|
||||
absolute_encoder_write_register(ZERO_H_REG, zero_position >> 8);
|
||||
return 0;
|
||||
if(absolute_encoder_self_check())
|
||||
{
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><>ô<EFBFBD><C3B4><EFBFBD>Ǿ<EFBFBD><C7BE><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<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>
|
||||
return_state = 1;
|
||||
zf_log(0, "absolute encoder init errror.");
|
||||
break;
|
||||
}
|
||||
absolute_encoder_write_register(ABSOLUTE_ENCODER_DIR_REG, 0x00); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD> <20><>ת<EFBFBD><D7AA>ֵ<EFBFBD><D6B5>С<EFBFBD><D0A1>0x00 <20><>ת<EFBFBD><D7AA>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0x80
|
||||
zero_position = (uint16)(4096 - zero_position);
|
||||
zero_position = zero_position << 4;
|
||||
absolute_encoder_write_register(ABSOLUTE_ENCODER_ZERO_L_REG, (uint8)zero_position); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ
|
||||
absolute_encoder_write_register(ABSOLUTE_ENCODER_ZERO_H_REG, zero_position >> 8);
|
||||
}while(0);
|
||||
return return_state;
|
||||
}
|
||||
|
||||
@@ -75,12 +75,12 @@
|
||||
#define ABSOLUTE_ENCODER_DEFAULT_ZERO (0)
|
||||
|
||||
//====================================================<3D>Ƕȴ<C7B6><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||
#define ABS_ENCODER_SPI_W (0x80)
|
||||
#define ABS_ENCODER_SPI_R (0x40)
|
||||
#define ABSOLUTE_ENCODER_SPI_W (0x80)
|
||||
#define ABSOLUTE_ENCODER_SPI_R (0x40)
|
||||
|
||||
#define ZERO_L_REG (0x00)
|
||||
#define ZERO_H_REG (0x01)
|
||||
#define DIR_REG (0X09)
|
||||
#define ABSOLUTE_ENCODER_ZERO_L_REG (0x00)
|
||||
#define ABSOLUTE_ENCODER_ZERO_H_REG (0x01)
|
||||
#define ABSOLUTE_ENCODER_DIR_REG (0X09)
|
||||
//====================================================<3D>Ƕȴ<C7B6><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||
|
||||
|
||||
|
||||
@@ -49,6 +49,8 @@
|
||||
#include "zf_driver_gpio.h"
|
||||
#include "zf_driver_uart.h"
|
||||
#include "zf_driver_delay.h"
|
||||
#include "zf_device_type.h"
|
||||
|
||||
#include "zf_device_bluetooth_ch9141.h"
|
||||
|
||||
static fifo_struct bluetooth_ch9141_fifo;
|
||||
@@ -57,11 +59,172 @@ static uint8 bluetooth_ch9141_buffer[BLUETOOTH_CH9141_BUFFER_SIZE];
|
||||
static uint8 bluetooth_ch9141_data;
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><><EFBFBD><EFBFBD><EFBFBD>жϻص<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// @param void
|
||||
// @return void
|
||||
// Sample usage:
|
||||
// @note <20>ú<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ISR<EFBFBD>ļ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>жϳ<D0B6><CFB3><EFBFBD><F2B1BBB5><EFBFBD>
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD>鷢<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD> uart_n <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> zf_driver_uart.h <20><> uart_index_enum ö<><C3B6><EFBFBD>嶨<EFBFBD><E5B6A8>
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD> *buff Ҫ<><D2AA><EFBFBD>͵<EFBFBD><CDB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD> len <20><><EFBFBD>ͳ<EFBFBD><CDB3><EFBFBD>
|
||||
// <EFBFBD><EFBFBD><EFBFBD>ز<EFBFBD><EFBFBD><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> bluetooth_ch9141_write_buffer(UART_1, &a[0], 5);
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
static void bluetooth_ch9141_write_buffer (uart_index_enum uart_n, const uint8 *buff, uint32 len)
|
||||
{
|
||||
while(len)
|
||||
{
|
||||
uart_write_byte_wait(uart_n, *buff);
|
||||
len--;
|
||||
buff++;
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> data 8bit <20><><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> uint32 ʣ<><EFBFBD>ͳ<EFBFBD><CDB3><EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> bluetooth_ch9141_send_byte(0x5A);
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint32 bluetooth_ch9141_send_byte (const uint8 data)
|
||||
{
|
||||
uint16 time_count = BLUETOOTH_CH9141_TIMEOUT_COUNT;
|
||||
while(time_count)
|
||||
{
|
||||
if(!gpio_get_level(BLUETOOTH_CH9141_RTS_PIN))
|
||||
{
|
||||
uart_write_byte_wait(BLUETOOTH_CH9141_INDEX, data); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
break;
|
||||
}
|
||||
time_count --;
|
||||
system_delay_ms(1);
|
||||
}
|
||||
return (0 < time_count);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><><EFBFBD>ͺ<EFBFBD><CDBA><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> buff <20><>Ҫ<EFBFBD><D2AA><EFBFBD>͵<EFBFBD><CDB5><EFBFBD><EFBFBD>ݵ<EFBFBD>ַ
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> len <20><><EFBFBD>ͳ<EFBFBD><CDB3><EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> uint32 ʣ<><CAA3>δ<EFBFBD><CEB4><EFBFBD>͵<EFBFBD><CDB5>ֽ<EFBFBD><D6BD><EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> bluetooth_ch9141_send_buff(buff, 16);
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint32 bluetooth_ch9141_send_buff (const uint8 *buff, uint32 len)
|
||||
{
|
||||
zf_assert(buff != NULL);
|
||||
uint16 time_count = 0;
|
||||
while(0 != len)
|
||||
{
|
||||
if(!gpio_get_level(BLUETOOTH_CH9141_RTS_PIN)) // <20><><EFBFBD><EFBFBD>RTSΪ<53>͵<EFBFBD>ƽ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
if(30 <= len) // <20><><EFBFBD>ݷ<EFBFBD> 30byte ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
bluetooth_ch9141_write_buffer(BLUETOOTH_CH9141_INDEX, buff, 30); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
buff += 30; // <20><>ַƫ<D6B7><C6AB>
|
||||
len -= 30; // <20><><EFBFBD><EFBFBD>
|
||||
time_count = 0;
|
||||
}
|
||||
else // <20><><EFBFBD><EFBFBD> 30byte <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>Է<EFBFBD><D4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
bluetooth_ch9141_write_buffer(BLUETOOTH_CH9141_INDEX, buff, len); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
len = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else // <20><><EFBFBD><EFBFBD>RTSΪ<53>ߵ<EFBFBD>ƽ <20><>ģ<EFBFBD><C4A3>æ
|
||||
{
|
||||
if(BLUETOOTH_CH9141_TIMEOUT_COUNT <= (++ time_count)) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
{
|
||||
break; // <20>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
system_delay_ms(1);
|
||||
}
|
||||
}
|
||||
return len;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> *str Ҫ<><D2AA><EFBFBD>͵<EFBFBD><CDB5>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>ַ
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> uint32 ʣ<><EFBFBD>ͳ<EFBFBD><CDB3><EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> bluetooth_ch9141_send_string("Trust yourself.");
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint32 bluetooth_ch9141_send_string (const char *str)
|
||||
{
|
||||
zf_assert(str != NULL);
|
||||
uint16 time_count = 0;
|
||||
uint32 len = strlen(str);
|
||||
while(0 != len)
|
||||
{
|
||||
if(!gpio_get_level(BLUETOOTH_CH9141_RTS_PIN)) // <20><><EFBFBD><EFBFBD>RTSΪ<53>͵<EFBFBD>ƽ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
if(30 <= len) // <20><><EFBFBD>ݷ<EFBFBD> 30byte ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
bluetooth_ch9141_write_buffer(BLUETOOTH_CH9141_INDEX, (const uint8 *)str, 30); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
str += 30; // <20><>ַƫ<D6B7><C6AB>
|
||||
len -= 30; // <20><><EFBFBD><EFBFBD>
|
||||
time_count = 0;
|
||||
}
|
||||
else // <20><><EFBFBD><EFBFBD> 30byte <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>Է<EFBFBD><D4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
bluetooth_ch9141_write_buffer(BLUETOOTH_CH9141_INDEX, (const uint8 *)str, len);// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
len = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else // <20><><EFBFBD><EFBFBD>RTSΪ<53>ߵ<EFBFBD>ƽ <20><>ģ<EFBFBD><C4A3>æ
|
||||
{
|
||||
if(BLUETOOTH_CH9141_TIMEOUT_COUNT <= (++ time_count)) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
{
|
||||
break; // <20>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
system_delay_ms(1);
|
||||
}
|
||||
}
|
||||
return len;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷͼ<CDB7><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD>鿴ͼ<E9BFB4><CDBC>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> *image_addr <20><>Ҫ<EFBFBD><D2AA><EFBFBD>͵<EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>ַ
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> image_size ͼ<><CDBC><EFBFBD>Ĵ<EFBFBD>С
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> bluetooth_ch9141_send_image(&mt9v03x_image[0][0], MT9V03X_IMAGE_SIZE);
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void bluetooth_ch9141_send_image (const uint8 *image_addr, uint32 image_size)
|
||||
{
|
||||
zf_assert(image_addr != NULL);
|
||||
|
||||
extern uint8 camera_send_image_frame_header[4];
|
||||
bluetooth_ch9141_send_buff(camera_send_image_frame_header, 4);
|
||||
bluetooth_ch9141_send_buff((uint8 *)image_addr, image_size);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> buff <20>洢<EFBFBD><E6B4A2><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD>ַ
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> len <20><><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> uint32 ʵ<>ʶ<EFBFBD>ȡ<EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> bluetooth_ch9141_read_buff(buff, 16);
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint32 bluetooth_ch9141_read_buff (uint8 *buff, uint32 len)
|
||||
{
|
||||
zf_assert(buff != NULL);
|
||||
uint32 data_len = len;
|
||||
fifo_read_buffer(&bluetooth_ch9141_fifo, buff, &data_len, FIFO_READ_AND_CLEAN);
|
||||
return data_len;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><><EFBFBD><EFBFBD><EFBFBD>жϻص<CFBB><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> void
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE>
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ <20>ú<EFBFBD><C3BA><EFBFBD><EFBFBD><EFBFBD> ISR <20>ļ<EFBFBD><C4BC>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD>жϳ<D0B6><CFB3><EFBFBD><F2B1BBB5><EFBFBD>
|
||||
// <20>ɴ<EFBFBD><C9B4><EFBFBD><EFBFBD>жϷ<D0B6><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> wireless_module_uart_handler() <20><><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD> wireless_module_uart_handler() <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD><EFBFBD><EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void bluetooth_ch9141_uart_callback (void)
|
||||
{
|
||||
@@ -70,131 +233,15 @@ void bluetooth_ch9141_uart_callback (void)
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// @param data 8bit <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// @return uint32 ʣ<EFBFBD><EFBFBD>ͳ<EFBFBD><EFBFBD><EFBFBD>
|
||||
// Sample usage:
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint32 bluetooth_ch9141_send_byte (const uint8 data)
|
||||
{
|
||||
uint16 time_count = 0;
|
||||
while(gpio_get_level(BLUETOOTH_CH9141_RTS_PIN)) // <20><><EFBFBD><EFBFBD>RTSΪ<53>͵<EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
if(BLUETOOTH_CH9141_TIMEOUT_COUNT < time_count ++)
|
||||
return 1; // ģ<><C4A3>æ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>while<6C>ȴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ú<EFBFBD><C3BA><EFBFBD>ע<EFBFBD>͵<EFBFBD>while<6C>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>滻<EFBFBD><E6BBBB>if<69><66><EFBFBD><EFBFBD>
|
||||
system_delay_ms(1);
|
||||
}
|
||||
uart_write_byte(BLUETOOTH_CH9141_INDEX, data); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><><EFBFBD>ͺ<EFBFBD><CDBA><EFBFBD>
|
||||
// @param buff <20><>Ҫ<EFBFBD><D2AA><EFBFBD>͵<EFBFBD><CDB5><EFBFBD><EFBFBD>ݵ<EFBFBD>ַ
|
||||
// @param len <20><><EFBFBD>ͳ<EFBFBD><CDB3><EFBFBD>
|
||||
// @return uint32 ʣ<><CAA3>δ<EFBFBD><CEB4><EFBFBD>͵<EFBFBD><CDB5>ֽ<EFBFBD><D6BD><EFBFBD>
|
||||
// Sample usage:
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint32 bluetooth_ch9141_send_buff (const uint8 *buff, uint32 len)
|
||||
{
|
||||
uint16 time_count = 0;
|
||||
while(30 < len)
|
||||
{
|
||||
time_count = 0;
|
||||
while(gpio_get_level(BLUETOOTH_CH9141_RTS_PIN) && BLUETOOTH_CH9141_TIMEOUT_COUNT > time_count ++) // <20><><EFBFBD><EFBFBD>RTSΪ<53>͵<EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
system_delay_ms(1);
|
||||
if(BLUETOOTH_CH9141_TIMEOUT_COUNT <= time_count)
|
||||
return len; // ģ<><C4A3>æ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>while<6C>ȴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ú<EFBFBD><C3BA><EFBFBD>ע<EFBFBD>͵<EFBFBD>while<6C>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>滻<EFBFBD><E6BBBB>if<69><66><EFBFBD><EFBFBD>
|
||||
uart_write_buffer(BLUETOOTH_CH9141_INDEX, buff, 30);
|
||||
|
||||
buff += 30; // <20><>ַƫ<D6B7><C6AB>
|
||||
len -= 30; // <20><><EFBFBD><EFBFBD>
|
||||
}
|
||||
|
||||
time_count = 0;
|
||||
while(gpio_get_level(BLUETOOTH_CH9141_RTS_PIN) && BLUETOOTH_CH9141_TIMEOUT_COUNT > time_count ++) // <20><><EFBFBD><EFBFBD>RTSΪ<53>͵<EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
system_delay_ms(1);
|
||||
if(time_count >= BLUETOOTH_CH9141_TIMEOUT_COUNT)
|
||||
return len; // ģ<><C4A3>æ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>while<6C>ȴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ú<EFBFBD><C3BA><EFBFBD>ע<EFBFBD>͵<EFBFBD>while<6C>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>滻<EFBFBD><E6BBBB>if<69><66><EFBFBD><EFBFBD>
|
||||
uart_write_buffer(BLUETOOTH_CH9141_INDEX, buff, len); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
|
||||
// @param *str Ҫ<><D2AA><EFBFBD>͵<EFBFBD><CDB5>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>ַ
|
||||
// @return uint32 ʣ<><EFBFBD>ͳ<EFBFBD><CDB3><EFBFBD>
|
||||
// Sample usage: bluetooth_ch9141_send_string("Believe in yourself.");
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint32 bluetooth_ch9141_send_string (const char *str)
|
||||
{
|
||||
uint16 time_count = 0;
|
||||
uint32 len = strlen(str);
|
||||
while(30 < len)
|
||||
{
|
||||
time_count = 0;
|
||||
while(gpio_get_level(BLUETOOTH_CH9141_RTS_PIN)) // <20><><EFBFBD><EFBFBD>RTSΪ<53>͵<EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
if(BLUETOOTH_CH9141_TIMEOUT_COUNT > time_count ++)
|
||||
return len; // ģ<><C4A3>æ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>while<6C>ȴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ú<EFBFBD><C3BA><EFBFBD>ע<EFBFBD>͵<EFBFBD>while<6C>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>滻<EFBFBD><E6BBBB>if<69><66><EFBFBD><EFBFBD>
|
||||
system_delay_ms(1);
|
||||
}
|
||||
uart_write_buffer(BLUETOOTH_CH9141_INDEX, (const uint8 *)str, 30);
|
||||
|
||||
str += 30; // <20><>ַƫ<D6B7><C6AB>
|
||||
len -= 30; // <20><><EFBFBD><EFBFBD>
|
||||
}
|
||||
|
||||
time_count = 0;
|
||||
while(gpio_get_level(BLUETOOTH_CH9141_RTS_PIN)) // <20><><EFBFBD><EFBFBD>RTSΪ<53>͵<EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
if(BLUETOOTH_CH9141_TIMEOUT_COUNT > time_count ++)
|
||||
return len; // ģ<><C4A3>æ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>while<6C>ȴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ú<EFBFBD><C3BA><EFBFBD>ע<EFBFBD>͵<EFBFBD>while<6C>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>滻<EFBFBD><E6BBBB>if<69><66><EFBFBD><EFBFBD>
|
||||
system_delay_ms(1);
|
||||
}
|
||||
uart_write_buffer(BLUETOOTH_CH9141_INDEX, (const uint8 *)str, len); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷͼ<CDB7><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD>鿴ͼ<E9BFB4><CDBC>
|
||||
// @param *image_addr <20><>Ҫ<EFBFBD><D2AA><EFBFBD>͵<EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>ַ
|
||||
// @param image_size ͼ<><CDBC><EFBFBD>Ĵ<EFBFBD>С
|
||||
// @return void
|
||||
// Sample usage: bluetooth_ch9141_send_image(&mt9v03x_image[0][0], MT9V03X_IMAGE_SIZE);
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void bluetooth_ch9141_send_image (const uint8 *image_addr, uint32 image_size)
|
||||
{
|
||||
extern uint8 camera_send_image_frame_header[4];
|
||||
bluetooth_ch9141_send_buff(camera_send_image_frame_header, 4);
|
||||
bluetooth_ch9141_send_buff((uint8 *)image_addr, image_size);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
|
||||
// @param buff <20>洢<EFBFBD><E6B4A2><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD>ַ
|
||||
// @param len <20><><EFBFBD><EFBFBD>
|
||||
// @return uint32 ʵ<>ʶ<EFBFBD>ȡ<EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD>
|
||||
// Sample usage:
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint32 bluetooth_ch9141_read_buff (uint8 *buff, uint32 len)
|
||||
{
|
||||
uint32 data_len = len;
|
||||
fifo_read_buffer(&bluetooth_ch9141_fifo, buff, &data_len, FIFO_READ_AND_CLEAN);
|
||||
return data_len;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><>ʼ<EFBFBD><CABC>
|
||||
// @param mode <20><><EFBFBD><EFBFBD>ģʽ MASTER_MODE(<28><><EFBFBD><EFBFBD>)<29><><EFBFBD><EFBFBD>SLAVE_MODE(<28>ӻ<EFBFBD>)
|
||||
// @return uint8 <20><>ʼ<EFBFBD><CABC>״̬ 0-<2D>ɹ<EFBFBD> 1-ʧ<><CAA7>
|
||||
// Sample usage:
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><>ʼ<EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD> void
|
||||
// <EFBFBD><EFBFBD><EFBFBD>ز<EFBFBD><EFBFBD><EFBFBD> uint8 <20><>ʼ<EFBFBD><CABC>״̬ 0-<2D>ɹ<EFBFBD> 1-ʧ<EFBFBD><EFBFBD>
|
||||
// ʹ<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD> bluetooth_ch9141_init();
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint8 bluetooth_ch9141_init (void)
|
||||
{
|
||||
uint8 return_state = 0;
|
||||
set_wireless_type(BLUETOOTH_CH9141, bluetooth_ch9141_uart_callback);
|
||||
|
||||
fifo_init(&bluetooth_ch9141_fifo, FIFO_DATA_8BIT, bluetooth_ch9141_buffer, BLUETOOTH_CH9141_BUFFER_SIZE);
|
||||
@@ -203,5 +250,5 @@ uint8 bluetooth_ch9141_init (void)
|
||||
uart_init(BLUETOOTH_CH9141_INDEX, BLUETOOTH_CH9141_BUAD_RATE, BLUETOOTH_CH9141_RX_PIN, BLUETOOTH_CH9141_TX_PIN);
|
||||
uart_rx_interrupt(BLUETOOTH_CH9141_INDEX, 1);
|
||||
|
||||
return 0;
|
||||
return return_state;
|
||||
}
|
||||
|
||||
@@ -48,7 +48,6 @@
|
||||
#define _zf_device_bluetooth_ch9141_h_
|
||||
|
||||
#include "zf_common_typedef.h"
|
||||
#include "zf_device_type.h"
|
||||
|
||||
|
||||
//=================================================9141<34><31><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||
|
||||
@@ -33,6 +33,7 @@
|
||||
* 2022-09-15 pudding first version
|
||||
********************************************************************************************************************/
|
||||
|
||||
#include "zf_common_debug.h"
|
||||
#include "zf_common_interrupt.h"
|
||||
#include "zf_driver_gpio.h"
|
||||
#include "zf_driver_dma.h"
|
||||
@@ -58,7 +59,8 @@ uint8 camera_send_image_frame_header[4] = {0x00, 0xFF, 0x01, 0x01};
|
||||
void camera_binary_image_decompression (const uint8 *data1, uint8 *data2, uint32 image_size)
|
||||
{
|
||||
uint8 i = 8;
|
||||
|
||||
zf_assert(data1 != NULL);
|
||||
zf_assert(data2 != NULL);
|
||||
while(image_size --)
|
||||
{
|
||||
i = 8;
|
||||
@@ -80,6 +82,7 @@ void camera_binary_image_decompression (const uint8 *data1, uint8 *data2, uint32
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void camera_send_image (uart_index_enum uartn, const uint8 *image_addr, uint32 image_size)
|
||||
{
|
||||
zf_assert(image_addr != NULL);
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
uart_write_buffer(uartn, camera_send_image_frame_header, 4);
|
||||
|
||||
@@ -157,7 +160,7 @@ uint8 camera_init (void)
|
||||
EXTI_TRIGGER_RISING,
|
||||
SCC8660_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_RISING); // <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>жϣ<D0B6><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>½<EFBFBD><C2BD>ش<EFBFBD><D8B4><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
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;
|
||||
|
||||
@@ -45,7 +45,6 @@
|
||||
|
||||
#include "zf_common_function.h"
|
||||
#include "zf_common_fifo.h"
|
||||
#include "zf_common_interrupt.h"
|
||||
#include "zf_driver_delay.h"
|
||||
#include "zf_driver_uart.h"
|
||||
#include "zf_device_type.h"
|
||||
@@ -53,7 +52,7 @@
|
||||
|
||||
#define GPS_TAU1201_BUFFER_SIZE (128)
|
||||
|
||||
vuint8 gps_tau1201_flag; // 1<><31><EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD>ɵȴ<C9B5><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0<><30>û<EFBFBD>вɼ<D0B2><C9BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
uint8 gps_tau1201_flag; // 1<><31><EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD>ɵȴ<C9B5><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0<><30>û<EFBFBD>вɼ<D0B2><C9BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
gps_info_struct gps_tau1201; // GPS<50><53><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
static uint8 gps_tau1201_state = 0; // 1<><31>GPS<50><53>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
@@ -118,7 +117,7 @@ static int get_int_number (char *s)
|
||||
i = i - 1;
|
||||
strncpy(buf, s, i);
|
||||
buf[i] = 0;
|
||||
return_value = str_to_int(buf);
|
||||
return_value = func_str_to_int(buf);
|
||||
return return_value;
|
||||
}
|
||||
|
||||
@@ -139,7 +138,7 @@ static float get_float_number (char *s)
|
||||
i = i - 1;
|
||||
strncpy(buf, s, i);
|
||||
buf[i] = 0;
|
||||
return_value = (float)str_to_double(buf);
|
||||
return_value = (float)func_str_to_double(buf);
|
||||
return return_value;
|
||||
}
|
||||
|
||||
@@ -160,7 +159,7 @@ static double get_double_number (char *s)
|
||||
i = i - 1;
|
||||
strncpy(buf, s, i);
|
||||
buf[i] = 0;
|
||||
return_value = str_to_double(buf);
|
||||
return_value = func_str_to_double(buf);
|
||||
return return_value;
|
||||
}
|
||||
|
||||
@@ -186,12 +185,12 @@ static void utc_to_btc (gps_time_struct *time)
|
||||
day_num = 28;
|
||||
if((time->year % 4 == 0 && time->year % 100 != 0) || time->year % 400 == 0) // <20>ж<EFBFBD><D0B6>Ƿ<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>
|
||||
{
|
||||
day_num ++; // <20><><EFBFBD><EFBFBD> 2<><32>Ϊ29<32><39>
|
||||
day_num ++; // <20><><EFBFBD><EFBFBD> 2<><32>Ϊ29<32><39>
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
day_num = 31; // 1 3 5 7 8 10 12<31><32>Щ<EFBFBD>·<EFBFBD>Ϊ31<33><31>
|
||||
day_num = 31; // 1 3 5 7 8 10 12<31><32>Щ<EFBFBD>·<EFBFBD>Ϊ31<33><31>
|
||||
if(4 == time->month || 6 == time->month || 9 == time->month || 11 == time->month )
|
||||
{
|
||||
day_num = 30;
|
||||
@@ -297,7 +296,7 @@ static uint8 gps_gngga_parse (char *line, gps_info_struct *gps)
|
||||
|
||||
if (state != ',')
|
||||
{
|
||||
gps->satellite_used = (uint8)(get_int_number(&buf[get_parameter_index(7, buf)]));
|
||||
gps->satellite_used = (uint8)get_int_number(&buf[get_parameter_index(7, buf)]);
|
||||
gps->height = get_float_number(&buf[get_parameter_index(9, buf)]) + get_float_number(&buf[get_parameter_index(11, buf)]); // <20>߶<EFBFBD> = <20><><EFBFBD>θ߶<CEB8> + <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD>ˮ<CBAE><D7BC><EFBFBD>ĸ߶<C4B8>
|
||||
return_state = 1;
|
||||
}
|
||||
@@ -384,7 +383,7 @@ uint8 gps_data_parse (void)
|
||||
{
|
||||
gps_rmc_state = GPS_STATE_PARSING;
|
||||
strncpy((char *)&check_buffer[2], strchr((const char *)gps_rmc_buffer, '*')+1, 2);
|
||||
bbc_xor_origin = (uint8)str_to_hex((char *)check_buffer);
|
||||
bbc_xor_origin = (uint8)func_str_to_hex((char *)check_buffer);
|
||||
for(bbc_xor_calculation = gps_rmc_buffer[1], data_len = 2; gps_rmc_buffer[data_len] != '*'; data_len ++)
|
||||
{
|
||||
bbc_xor_calculation ^= gps_rmc_buffer[data_len];
|
||||
@@ -404,7 +403,7 @@ uint8 gps_data_parse (void)
|
||||
{
|
||||
gps_gga_state = GPS_STATE_PARSING;
|
||||
strncpy((char *)&check_buffer[2], strchr((const char *)gps_gga_buffer, '*')+1, 2);
|
||||
bbc_xor_origin = (uint8)str_to_hex((char *)check_buffer);
|
||||
bbc_xor_origin = (uint8)func_str_to_hex((char *)check_buffer);
|
||||
|
||||
for(bbc_xor_calculation = gps_gga_buffer[1], data_len = 2; gps_gga_buffer[data_len] != '*'; data_len ++)
|
||||
{
|
||||
@@ -505,10 +504,12 @@ uint8 gps_init (void)
|
||||
const uint8 close_txt[] = {0xF1, 0xD9, 0x06, 0x01, 0x03, 0x00, 0xF0, 0x40, 0x00, 0x3A, 0x8F};
|
||||
const uint8 close_txt_ant[] = {0xF1, 0xD9, 0x06, 0x01, 0x03, 0x00, 0xF0, 0x20, 0x00, 0x1A, 0x4F};
|
||||
|
||||
set_wireless_type(GPS_TAU1201, gps_uart_callback);
|
||||
fifo_init(&gps_tau1201_receiver_fifo, FIFO_DATA_8BIT, gps_tau1201_receiver_buffer, GPS_TAU1201_BUFFER_SIZE);
|
||||
system_delay_ms(500); // <20>ȴ<EFBFBD>GPS<50><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>ʼ<EFBFBD><CABC>
|
||||
uart_init(GPS_TAU1201_UART, 115200, GPS_TAU1201_RX, GPS_TAU1201_TX);
|
||||
|
||||
set_wireless_type(GPS_TAU1201, gps_uart_callback);
|
||||
|
||||
uart_write_buffer(GPS_TAU1201_UART, (uint8 *)set_rate, sizeof(set_rate)); // <20><><EFBFBD><EFBFBD>GPS<50><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ10hz <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>Ϊ1hz
|
||||
system_delay_ms(200);
|
||||
|
||||
|
||||
@@ -100,7 +100,7 @@ typedef enum
|
||||
|
||||
//==============================================<3D><><EFBFBD><EFBFBD> GPS <20><><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD>===================================================
|
||||
extern gps_info_struct gps_tau1201;
|
||||
extern vuint8 gps_tau1201_flag;
|
||||
extern uint8 gps_tau1201_flag;
|
||||
//==============================================<3D><><EFBFBD><EFBFBD> GPS <20><><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD>===================================================
|
||||
|
||||
//================================================GPS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||
|
||||
@@ -236,7 +236,7 @@ float icm20602_acc_transition (int16 acc_value)
|
||||
float icm20602_gyro_transition (int16 gyro_value)
|
||||
{
|
||||
float gyro_data = 0;
|
||||
switch(ICM20602_GYRO_SAMPLE)
|
||||
switch(ICM20602_GYR_SAMPLE)
|
||||
{
|
||||
case 0x00: gyro_data = (float)gyro_value / 131.2f; break; // 0x00 <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 <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 0x08: gyro_data = (float)gyro_value / 65.6f; break; // 0x08 <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.5 <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
|
||||
@@ -305,7 +305,7 @@ uint8 icm20602_init (void)
|
||||
icm20602_write_register(ICM20602_PWR_MGMT_2, 0x00); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǻͼ<C7BA><CDBC>ٶȼ<D9B6>
|
||||
icm20602_write_register(ICM20602_CONFIG, 0x01); // 176HZ 1KHZ
|
||||
icm20602_write_register(ICM20602_SMPLRT_DIV, 0x07); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SAMPLE_RATE = INTERNAL_SAMPLE_RATE / (1 + SMPLRT_DIV)
|
||||
icm20602_write_register(ICM20602_GYRO_CONFIG, ICM20602_GYRO_SAMPLE); // <20><>2000 dps
|
||||
icm20602_write_register(ICM20602_GYRO_CONFIG, ICM20602_GYR_SAMPLE); // <20><>2000 dps
|
||||
icm20602_write_register(ICM20602_ACCEL_CONFIG, ICM20602_ACC_SAMPLE); // <20><>8g
|
||||
icm20602_write_register(ICM20602_ACCEL_CONFIG_2, 0x03); // Average 4 samples 44.8HZ //0x23 Average 16 samples
|
||||
// ICM20602_GYRO_CONFIG<49>Ĵ<EFBFBD><C4B4><EFBFBD>
|
||||
|
||||
@@ -103,9 +103,7 @@
|
||||
#define ICM20602_SMPLRT_DIV (0x19)
|
||||
#define ICM20602_CONFIG (0x1A)
|
||||
#define ICM20602_GYRO_CONFIG (0x1B)
|
||||
#define ICM20602_GYRO_SAMPLE (0x18) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define ICM20602_ACCEL_CONFIG (0x1C)
|
||||
#define ICM20602_ACC_SAMPLE (0x10) // <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define ICM20602_ACCEL_CONFIG_2 (0x1D)
|
||||
#define ICM20602_LP_MODE_CFG (0x1E)
|
||||
#define ICM20602_ACCEL_WOM_X_THR (0x20)
|
||||
@@ -152,6 +150,19 @@
|
||||
#define ICM20602_YA_OFFSET_L (0x7B)
|
||||
#define ICM20602_ZA_OFFSET_H (0x7D)
|
||||
#define ICM20602_ZA_OFFSET_L (0x7E)
|
||||
|
||||
#define ICM20602_ACC_SAMPLE (0x10) // <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><DDA3><EFBFBD>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x08 <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><DDA3><EFBFBD>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x10 <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><DDA3><EFBFBD>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x18 <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><DDA3><EFBFBD>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
|
||||
#define ICM20602_GYR_SAMPLE (0x18) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x00 <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 <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>Ϊ:0x08 <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.5 <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>Ϊ:0x10 <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><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x18 <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><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
|
||||
//================================================<3D><><EFBFBD><EFBFBD> ICM20602 <20>ڲ<EFBFBD><DAB2><EFBFBD>ַ================================================
|
||||
|
||||
//===============================================<3D><><EFBFBD><EFBFBD> ICM20602 <20><><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD>==============================================
|
||||
|
||||
@@ -98,10 +98,21 @@
|
||||
#define IMU660RA_GYRO_ADDRESS (0x12)
|
||||
#define IMU660RA_ACC_CONF (0x40)
|
||||
#define IMU660RA_ACC_RANGE (0x41)
|
||||
#define IMU660RA_ACC_SAMPLE (0x02) // <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
#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><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
|
||||
|
||||
#define IMU660RA_GYR_SAMPLE (0x00) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><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)
|
||||
|
||||
//================================================<3D><><EFBFBD><EFBFBD> IMU660RA <20>ڲ<EFBFBD><DAB2><EFBFBD>ַ================================================
|
||||
|
||||
//===============================================<3D><><EFBFBD><EFBFBD> IMU660RA <20><><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD>===============================================
|
||||
|
||||
@@ -375,7 +375,7 @@ float imu963ra_acc_transition (int16 acc_value)
|
||||
float imu963ra_gyro_transition (int16 gyro_value)
|
||||
{
|
||||
float gyro_data = 0;
|
||||
switch(IMU963RA_GYRO_SAMPLE)
|
||||
switch(IMU963RA_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
|
||||
@@ -440,14 +440,14 @@ uint8 imu963ra_init (void)
|
||||
}
|
||||
|
||||
imu963ra_write_acc_gyro_register(IMU963RA_INT1_CTRL, 0x03); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD>ݾ<EFBFBD><DDBE><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
imu963ra_write_acc_gyro_register(IMU963RA_CTRL1_XL, 0x3C); // <20><><EFBFBD>ü<EFBFBD><C3BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD>̡<EFBFBD>8G<38>Լ<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>
|
||||
imu963ra_write_acc_gyro_register(IMU963RA_CTRL1_XL, IMU963RA_ACC_SAMPLE); // <20><><EFBFBD>ü<EFBFBD><C3BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD>̡<EFBFBD>8G<38>Լ<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>
|
||||
// IMU963RA_CTRL1_XL <20>Ĵ<EFBFBD><C4B4><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)
|
||||
|
||||
imu963ra_write_acc_gyro_register(IMU963RA_CTRL2_G, 0x5C); // <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
|
||||
imu963ra_write_acc_gyro_register(IMU963RA_CTRL2_G, IMU963RA_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
|
||||
// IMU963RA_CTRL2_G <20>Ĵ<EFBFBD><C4B4><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
|
||||
@@ -482,7 +482,7 @@ uint8 imu963ra_init (void)
|
||||
break;
|
||||
}
|
||||
|
||||
imu963ra_write_mag_register(IMU963RA_MAG_ADDR, IMU963RA_MAG_CONTROL1, 0x19); // <20><><EFBFBD>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>8G <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>100hz <20><><EFBFBD><EFBFBD>ģʽ
|
||||
imu963ra_write_mag_register(IMU963RA_MAG_ADDR, IMU963RA_MAG_CONTROL1, IMU963RA_MAG_SAMPLE); // <20><><EFBFBD>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>8G <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>100hz <20><><EFBFBD><EFBFBD>ģʽ
|
||||
// IMU963RA_MAG_ADDR <20>Ĵ<EFBFBD><C4B4><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x19 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:8G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>3000<30><30> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λ<EFBFBD><CEBB>G(<28><>˹)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x09 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:2G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>12000<30><30><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(<28><>˹)
|
||||
|
||||
@@ -90,9 +90,7 @@
|
||||
#define IMU963RA_INT1_CTRL (0x0D)
|
||||
#define IMU963RA_WHO_AM_I (0x0F)
|
||||
#define IMU963RA_CTRL1_XL (0x10)
|
||||
#define IMU963RA_ACC_SAMPLE (0x3C) // <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define IMU963RA_CTRL2_G (0x11)
|
||||
#define IMU963RA_GYRO_SAMPLE (0x5C) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define IMU963RA_CTRL3_C (0x12)
|
||||
#define IMU963RA_CTRL4_C (0x13)
|
||||
#define IMU963RA_CTRL5_C (0x14)
|
||||
@@ -114,10 +112,28 @@
|
||||
#define IMU963RA_MAG_ADDR (0x0D) // 7λIIC<49><43>ַ
|
||||
#define IMU963RA_MAG_OUTX_L (0x00)
|
||||
#define IMU963RA_MAG_CONTROL1 (0x09)
|
||||
#define IMU963RA_MAG_SAMPLE (0x19) // <20>شż<D8B4><C5BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define IMU963RA_MAG_CONTROL2 (0x0A)
|
||||
#define IMU963RA_MAG_FBR (0x0B)
|
||||
#define IMU963RA_MAG_CHIP_ID (0x0D)
|
||||
|
||||
#define IMU963RA_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 IMU963RA_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
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ: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
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ: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
|
||||
// <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
|
||||
|
||||
#define IMU963RA_MAG_SAMPLE (0x19) // <20>شż<D8B4><C5BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x19 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:8G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>3000<30><30> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λ<EFBFBD><CEBB>G(<28><>˹)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x09 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:2G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>12000<30><30><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(<28><>˹)
|
||||
|
||||
//================================================<3D><><EFBFBD><EFBFBD> IMU963RA <20>ڲ<EFBFBD><DAB2><EFBFBD>ַ================================================
|
||||
|
||||
//===============================================<3D><><EFBFBD><EFBFBD> IMU963RA <20><><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD>===============================================
|
||||
|
||||
@@ -366,7 +366,7 @@ void ips114_draw_line (uint16 x_start, uint16 y_start, uint16 x_end, uint16 y_en
|
||||
}
|
||||
break;
|
||||
}
|
||||
if(myabs(y_start - y_end) > myabs(x_start - x_end))
|
||||
if(func_abs(y_start - y_end) > func_abs(x_start - x_end))
|
||||
{
|
||||
while(y_start != y_end)
|
||||
{
|
||||
@@ -538,7 +538,7 @@ void ips114_show_int (uint16 x, uint16 y, const int32 dat, uint8 num)
|
||||
}
|
||||
dat_temp %= offset;
|
||||
}
|
||||
int_to_str(data_buffer, dat_temp);
|
||||
func_int_to_str(data_buffer, dat_temp);
|
||||
ips114_show_string(x, y, (const char *)&data_buffer);
|
||||
}
|
||||
|
||||
@@ -575,7 +575,7 @@ void ips114_show_uint (uint16 x, uint16 y, const uint32 dat, uint8 num)
|
||||
}
|
||||
dat_temp %= offset;
|
||||
}
|
||||
uint_to_str(data_buffer, dat_temp);
|
||||
func_uint_to_str(data_buffer, dat_temp);
|
||||
ips114_show_string(x, y, (const char *)&data_buffer);
|
||||
}
|
||||
|
||||
@@ -584,7 +584,7 @@ void ips114_show_uint (uint16 x, uint16 y, const uint32 dat, uint8 num)
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ [0, ips114_x_max-1]
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ [0, ips114_y_max-1]
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> float <20><> double
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> num <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>10λ
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> num <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>8λ
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> pointnum С<><D0A1>λ<EFBFBD><CEBB>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>6λ
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> ips114_show_float(0, 0, x, 2, 3); // <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ 2 λ С<><D0A1><EFBFBD><EFBFBD>ʾ 3 λ
|
||||
@@ -618,7 +618,7 @@ void ips114_show_float (uint16 x, uint16 y, const float dat, uint8 num, uint8 po
|
||||
}
|
||||
dat_temp = dat_temp - ((int)dat_temp / (int)offset) * offset;
|
||||
}
|
||||
float_to_str(data_buffer, dat_temp, pointnum);
|
||||
func_float_to_str(data_buffer, dat_temp, pointnum);
|
||||
ips114_show_string(x, y, data_buffer);
|
||||
}
|
||||
|
||||
@@ -641,6 +641,7 @@ void ips114_show_binary_image (uint16 x, uint16 y, const uint8 *image, uint16 wi
|
||||
// <20><>ôһ<C3B4><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE>ʱ<EFBFBD><EFBFBD><F2B3ACB9><EFBFBD>Ļ<EFBFBD>ֱ<EFBFBD><D6B1>ʷ<EFBFBD>Χ<EFBFBD><CEA7>
|
||||
zf_assert(x < ips114_x_max);
|
||||
zf_assert(y < ips114_y_max);
|
||||
zf_assert(image != NULL);
|
||||
|
||||
uint32 i = 0, j = 0;
|
||||
uint8 temp = 0;
|
||||
@@ -689,6 +690,7 @@ void ips114_show_gray_image (uint16 x, uint16 y, const uint8 *image, uint16 widt
|
||||
// <20><>ôһ<C3B4><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE>ʱ<EFBFBD><EFBFBD><F2B3ACB9><EFBFBD>Ļ<EFBFBD>ֱ<EFBFBD><D6B1>ʷ<EFBFBD>Χ<EFBFBD><CEA7>
|
||||
zf_assert(x < ips114_x_max);
|
||||
zf_assert(y < ips114_y_max);
|
||||
zf_assert(image != NULL);
|
||||
|
||||
uint32 i = 0, j = 0;
|
||||
uint16 color = 0,temp = 0;
|
||||
@@ -744,6 +746,7 @@ void ips114_show_rgb565_image (uint16 x, uint16 y, const uint16 *image, uint16 w
|
||||
// <20><>ôһ<C3B4><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE>ʱ<EFBFBD><EFBFBD><F2B3ACB9><EFBFBD>Ļ<EFBFBD>ֱ<EFBFBD><D6B1>ʷ<EFBFBD>Χ<EFBFBD><CEA7>
|
||||
zf_assert(x < ips114_x_max);
|
||||
zf_assert(y < ips114_y_max);
|
||||
zf_assert(image != NULL);
|
||||
|
||||
uint32 i = 0, j = 0;
|
||||
uint16 color = 0;
|
||||
@@ -788,6 +791,7 @@ void ips114_show_wave (uint16 x, uint16 y, const uint16 *wave, uint16 width, uin
|
||||
// <20><>ôһ<C3B4><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE>ʱ<EFBFBD><EFBFBD><F2B3ACB9><EFBFBD>Ļ<EFBFBD>ֱ<EFBFBD><D6B1>ʷ<EFBFBD>Χ<EFBFBD><CEA7>
|
||||
zf_assert(x < ips114_x_max);
|
||||
zf_assert(y < ips114_y_max);
|
||||
zf_assert(wave != NULL);
|
||||
|
||||
uint32 i = 0, j = 0;
|
||||
uint32 width_index = 0, value_max_index = 0;
|
||||
@@ -829,6 +833,7 @@ void ips114_show_chinese (uint16 x, uint16 y, uint8 size, const uint8 *chinese_b
|
||||
// <20><>ôһ<C3B4><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE>ʱ<EFBFBD><EFBFBD><F2B3ACB9><EFBFBD>Ļ<EFBFBD>ֱ<EFBFBD><D6B1>ʷ<EFBFBD>Χ<EFBFBD><CEA7>
|
||||
zf_assert(x < ips114_x_max);
|
||||
zf_assert(y < ips114_y_max);
|
||||
zf_assert(chinese_buffer != NULL);
|
||||
|
||||
int i, j, k;
|
||||
uint8 temp, temp1, temp2;
|
||||
@@ -882,9 +887,9 @@ void ips114_init (void)
|
||||
spi_init(IPS114_SPI, SPI_MODE0, IPS114_SPI_SPEED, IPS114_SCL_PIN, IPS114_SDA_PIN, IPS114_SDA_IN_PIN, SPI_CS_NULL);
|
||||
#endif
|
||||
|
||||
gpio_init(IPS114_DC_PIN, GPO, GPIO_LOW, GPO_PUSH_PULL);
|
||||
gpio_init(IPS114_RST_PIN, GPO, GPIO_LOW, GPO_PUSH_PULL);
|
||||
gpio_init(IPS114_CS_PIN, GPO, GPIO_HIGH, GPO_PUSH_PULL);
|
||||
gpio_init(IPS114_DC_PIN, GPO, GPIO_LOW, GPO_PUSH_PULL);
|
||||
gpio_init(IPS114_RST_PIN, GPO, GPIO_LOW, GPO_PUSH_PULL);
|
||||
gpio_init(IPS114_CS_PIN, GPO, GPIO_HIGH, GPO_PUSH_PULL);
|
||||
gpio_init(IPS114_BLK_PIN, GPO, GPIO_HIGH, GPO_PUSH_PULL);
|
||||
|
||||
ips114_set_dir(ips114_display_dir);
|
||||
|
||||
@@ -452,7 +452,7 @@ void ips200_draw_line (uint16 x_start, uint16 y_start, uint16 x_end, uint16 y_en
|
||||
}
|
||||
break;
|
||||
}
|
||||
if(myabs(y_start - y_end) > myabs(x_start - x_end))
|
||||
if(func_abs(y_start - y_end) > func_abs(x_start - x_end))
|
||||
{
|
||||
while(y_start != y_end)
|
||||
{
|
||||
@@ -630,7 +630,7 @@ void ips200_show_int (uint16 x, uint16 y, const int32 dat, uint8 num)
|
||||
}
|
||||
dat_temp %= offset;
|
||||
}
|
||||
int_to_str(data_buffer, dat_temp);
|
||||
func_int_to_str(data_buffer, dat_temp);
|
||||
ips200_show_string(x, y, (const char *)&data_buffer);
|
||||
}
|
||||
|
||||
@@ -667,7 +667,7 @@ void ips200_show_uint (uint16 x, uint16 y, const uint32 dat, uint8 num)
|
||||
}
|
||||
dat_temp %= offset;
|
||||
}
|
||||
uint_to_str(data_buffer, dat_temp);
|
||||
func_uint_to_str(data_buffer, dat_temp);
|
||||
ips200_show_string(x, y, (const char *)&data_buffer);
|
||||
}
|
||||
|
||||
@@ -710,7 +710,7 @@ void ips200_show_float (uint16 x, uint16 y, const float dat, uint8 num, uint8 po
|
||||
}
|
||||
dat_temp = dat_temp - ((int)dat_temp / (int)offset) * offset;
|
||||
}
|
||||
float_to_str(data_buffer, dat_temp, pointnum);
|
||||
func_float_to_str(data_buffer, dat_temp, pointnum);
|
||||
ips200_show_string(x, y, data_buffer);
|
||||
}
|
||||
|
||||
@@ -733,6 +733,7 @@ void ips200_show_binary_image (uint16 x, uint16 y, const uint8 *image, uint16 wi
|
||||
// <20><>ôһ<C3B4><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE>ʱ<EFBFBD><EFBFBD><F2B3ACB9><EFBFBD>Ļ<EFBFBD>ֱ<EFBFBD><D6B1>ʷ<EFBFBD>Χ<EFBFBD><CEA7>
|
||||
zf_assert(x < ips200_x_max);
|
||||
zf_assert(y < ips200_y_max);
|
||||
zf_assert(image != NULL);
|
||||
|
||||
uint32 i = 0, j = 0;
|
||||
uint8 temp = 0;
|
||||
@@ -787,6 +788,7 @@ void ips200_show_gray_image (uint16 x, uint16 y, const uint8 *image, uint16 widt
|
||||
// <20><>ôһ<C3B4><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE>ʱ<EFBFBD><EFBFBD><F2B3ACB9><EFBFBD>Ļ<EFBFBD>ֱ<EFBFBD><D6B1>ʷ<EFBFBD>Χ<EFBFBD><CEA7>
|
||||
zf_assert(x < ips200_x_max);
|
||||
zf_assert(y < ips200_y_max);
|
||||
zf_assert(image != NULL);
|
||||
|
||||
uint32 i = 0, j = 0;
|
||||
uint16 color = 0,temp = 0;
|
||||
@@ -848,6 +850,7 @@ void ips200_show_rgb565_image (uint16 x, uint16 y, const uint16 *image, uint16 w
|
||||
// <20><>ôһ<C3B4><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE>ʱ<EFBFBD><EFBFBD><F2B3ACB9><EFBFBD>Ļ<EFBFBD>ֱ<EFBFBD><D6B1>ʷ<EFBFBD>Χ<EFBFBD><CEA7>
|
||||
zf_assert(x < ips200_x_max);
|
||||
zf_assert(y < ips200_y_max);
|
||||
zf_assert(image != NULL);
|
||||
|
||||
uint32 i = 0, j = 0;
|
||||
uint16 color = 0;
|
||||
@@ -898,6 +901,7 @@ void ips200_show_wave (uint16 x, uint16 y, const uint16 *wave, uint16 width, uin
|
||||
// <20><>ôһ<C3B4><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE>ʱ<EFBFBD><EFBFBD><F2B3ACB9><EFBFBD>Ļ<EFBFBD>ֱ<EFBFBD><D6B1>ʷ<EFBFBD>Χ<EFBFBD><CEA7>
|
||||
zf_assert(x < ips200_x_max);
|
||||
zf_assert(y < ips200_y_max);
|
||||
zf_assert(wave != NULL);
|
||||
|
||||
uint32 i = 0, j = 0;
|
||||
uint32 width_index = 0, value_max_index = 0;
|
||||
@@ -945,6 +949,7 @@ void ips200_show_chinese (uint16 x, uint16 y, uint8 size, const uint8 *chinese_b
|
||||
// <20><>ôһ<C3B4><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE>ʱ<EFBFBD><EFBFBD><F2B3ACB9><EFBFBD>Ļ<EFBFBD>ֱ<EFBFBD><D6B1>ʷ<EFBFBD>Χ<EFBFBD><CEA7>
|
||||
zf_assert(x < ips200_x_max);
|
||||
zf_assert(y < ips200_y_max);
|
||||
zf_assert(chinese_buffer != NULL);
|
||||
|
||||
int i, j, k;
|
||||
uint8 temp, temp1, temp2;
|
||||
|
||||
@@ -160,7 +160,7 @@ float mpu6050_acc_transition (int16 acc_value)
|
||||
float mpu6050_gyro_transition (int16 gyro_value)
|
||||
{
|
||||
float gyro_data = 0;
|
||||
switch(MPU6050_GYRO_SAMPLE)
|
||||
switch(MPU6050_GYR_SAMPLE)
|
||||
{
|
||||
case 0x00: gyro_data = (float)gyro_value / 131.2f; break; // 0x00 <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 <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 0x08: gyro_data = (float)gyro_value / 65.6f; break; // 0x08 <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.5 <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
|
||||
@@ -202,7 +202,7 @@ uint8 mpu6050_init (void)
|
||||
mpu6050_write_register(MPU6050_PWR_MGMT_1, 0x00); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
||||
mpu6050_write_register(MPU6050_SMPLRT_DIV, 0x07); // 125HZ<48><5A><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
mpu6050_write_register(MPU6050_CONFIG, 0x04);
|
||||
mpu6050_write_register(MPU6050_GYRO_CONFIG, MPU6050_GYRO_SAMPLE); // 2000<30><30>/s
|
||||
mpu6050_write_register(MPU6050_GYRO_CONFIG, MPU6050_GYR_SAMPLE); // 2000<30><30>/s
|
||||
mpu6050_write_register(MPU6050_ACCEL_CONFIG, MPU6050_ACC_SAMPLE); // 8g(m/s^2)
|
||||
mpu6050_write_register(MPU6050_USER_CONTROL, 0x00);
|
||||
mpu6050_write_register(MPU6050_INT_PIN_CFG, 0x02);
|
||||
|
||||
@@ -74,14 +74,26 @@
|
||||
#define MPU6050_SMPLRT_DIV (0x19) // <20><><EFBFBD><EFBFBD><EFBFBD>Dz<EFBFBD><C7B2><EFBFBD><EFBFBD>ʣ<EFBFBD><CAA3><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>0x07(125Hz)
|
||||
#define MPU6050_CONFIG (0x1A) // <20><>ͨ<EFBFBD>˲<EFBFBD>Ƶ<EFBFBD>ʣ<EFBFBD><CAA3><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>0x06(5Hz)
|
||||
#define MPU6050_GYRO_CONFIG (0x1B) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ켰<D4BC><ECBCB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ<EFBFBD><CEA7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>0x18(<28><><EFBFBD>Լ죬2000deg/s)
|
||||
#define MPU6050_GYRO_SAMPLE (0x18) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define MPU6050_ACCEL_CONFIG (0x1C) // <20><><EFBFBD>ټ<EFBFBD><D9BC>Լ졢<D4BC><ECA1A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ<EFBFBD><CEA7><EFBFBD><EFBFBD>ͨ<EFBFBD>˲<EFBFBD>Ƶ<EFBFBD>ʣ<EFBFBD><CAA3><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>0x01(<28><><EFBFBD>Լ죬2G<32><47>5Hz)
|
||||
#define MPU6050_ACC_SAMPLE (0x10) // <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define MPU6050_INT_PIN_CFG (0x37) // <20><><EFBFBD><EFBFBD>6050<35><30><EFBFBD><EFBFBD>I2CΪֱͨģʽ<C4A3>Ĵ<EFBFBD><C4B4><EFBFBD>
|
||||
#define MPU6050_ACCEL_XOUT_H (0x3B)
|
||||
#define MPU6050_GYRO_XOUT_H (0x43)
|
||||
#define MPU6050_USER_CONTROL (0x6A) // <20>ر<EFBFBD>6050<35>Ը<EFBFBD><D4B8><EFBFBD>I2C<32>豸<EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD>
|
||||
#define MPU6050_PWR_MGMT_1 (0x6B) // <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>0x00(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
#define MPU6050_WHO_AM_I (0x75) // IIC<49><43>ַ<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>(Ĭ<><C4AC><EFBFBD><EFBFBD>ֵ0x68<36><38>ֻ<EFBFBD><D6BB>)
|
||||
|
||||
#define MPU6050_ACC_SAMPLE (0x10) // <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x00 <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><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x08 <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><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x10 <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><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x18 <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><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
|
||||
#define MPU6050_GYR_SAMPLE (0x18) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x00 <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><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x08 <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><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x10 <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><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x18 <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><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
|
||||
//================================================<3D><><EFBFBD><EFBFBD> MPU6050 <20>ڲ<EFBFBD><DAB2><EFBFBD>ַ================================================
|
||||
|
||||
//================================================<3D><><EFBFBD><EFBFBD> MPU6050 <20><><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD>==============================================
|
||||
|
||||
@@ -350,7 +350,7 @@ void oled_show_int (uint16 x, uint16 y, const int32 dat, uint8 num)
|
||||
}
|
||||
dat_temp %= offset;
|
||||
}
|
||||
int_to_str(data_buffer, dat_temp);
|
||||
func_int_to_str(data_buffer, dat_temp);
|
||||
oled_show_string(x, y, (const char *)&data_buffer);
|
||||
}
|
||||
|
||||
@@ -389,7 +389,7 @@ void oled_show_uint (uint16 x,uint16 y,const uint32 dat,uint8 num)
|
||||
}
|
||||
dat_temp %= offset;
|
||||
}
|
||||
uint_to_str(data_buffer, dat_temp);
|
||||
func_uint_to_str(data_buffer, dat_temp);
|
||||
oled_show_string(x, y, (const char *)&data_buffer);
|
||||
}
|
||||
|
||||
@@ -398,7 +398,7 @@ void oled_show_uint (uint16 x,uint16 y,const uint32 dat,uint8 num)
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> x x <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0-127
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> y y <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0-7
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>float<61><74>double
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> num <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>10λ
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> num <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>8λ
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> pointnum С<><D0A1>λ<EFBFBD><CEBB>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>6λ
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> oled_show_float(0, 0, x, 2, 3); // <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ2λ С<><D0A1><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>λ
|
||||
@@ -434,7 +434,7 @@ void oled_show_float (uint16 x,uint16 y,const float dat,uint8 num,uint8 pointnum
|
||||
}
|
||||
dat_temp = dat_temp - ((int)dat_temp / (int)offset) * offset;
|
||||
}
|
||||
float_to_str(data_buffer, dat_temp, pointnum);
|
||||
func_float_to_str(data_buffer, dat_temp, pointnum);
|
||||
oled_show_string(x, y, data_buffer);
|
||||
}
|
||||
|
||||
@@ -458,6 +458,7 @@ void oled_show_binary_image (uint16 x, uint16 y, const uint8 *image, uint16 widt
|
||||
// <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD>õĺ<C3B5><C4BA><EFBFBD> <20>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ﳬ<EFBFBD><EFB3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE>Χ
|
||||
zf_assert(x < 128);
|
||||
zf_assert(y < 8);
|
||||
zf_assert(image != NULL);
|
||||
|
||||
uint32 i = 0, j = 0, z = 0;
|
||||
uint8 dat;
|
||||
@@ -536,6 +537,7 @@ void oled_show_gray_image (uint16 x, uint16 y, const uint8 *image, uint16 width,
|
||||
// <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD>õĺ<C3B5><C4BA><EFBFBD> <20>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ﳬ<EFBFBD><EFB3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE>Χ
|
||||
zf_assert(x < 128);
|
||||
zf_assert(y < 8);
|
||||
zf_assert(image != NULL);
|
||||
|
||||
int16 i, j;
|
||||
uint8 dat;
|
||||
@@ -609,6 +611,7 @@ void oled_show_wave (uint16 x, uint16 y, const uint16 *wave, uint16 width, uint1
|
||||
// <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD>õĺ<C3B5><C4BA><EFBFBD> <20>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ﳬ<EFBFBD><EFB3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE>Χ
|
||||
zf_assert(x < 128);
|
||||
zf_assert(y < 8);
|
||||
zf_assert(wave != NULL);
|
||||
|
||||
uint32 i = 0;
|
||||
uint32 width_index = 0, value_max_index = 0;
|
||||
@@ -655,6 +658,7 @@ void oled_show_chinese (uint16 x, uint16 y, uint8 size, const uint8 *chinese_buf
|
||||
// <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD>õĺ<C3B5><C4BA><EFBFBD> <20>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ﳬ<EFBFBD><EFB3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE>Χ
|
||||
zf_assert(x < 128);
|
||||
zf_assert(y < 8);
|
||||
zf_assert(chinese_buffer != NULL);
|
||||
|
||||
int16 i, j, k;
|
||||
|
||||
@@ -686,8 +690,6 @@ void oled_init (void)
|
||||
#if OLED_USE_SOFT_SPI
|
||||
soft_spi_init(&oled_spi, 0, OLED_SOFT_SPI_DELAY, OLED_D0_PIN, OLED_D1_PIN, SOFT_SPI_PIN_NULL, SOFT_SPI_PIN_NULL);
|
||||
#else
|
||||
|
||||
|
||||
spi_init(OLED_SPI, SPI_MODE0, OLED_SPI_SPEED, OLED_D0_PIN, OLED_D1_PIN, OLED_D1_PIN_IN, SPI_CS_NULL);
|
||||
#endif
|
||||
gpio_init(OLED_RES_PIN, GPO, GPIO_HIGH, GPO_PUSH_PULL);
|
||||
|
||||
@@ -63,10 +63,10 @@
|
||||
vuint8 ov7725_finish_flag = 0;
|
||||
uint8 ov7725_image_binary [OV7725_H][OV7725_W / 8]; // ͼ<><EFBFBD><F1B1A3B4><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
vuint8 ov7725_uart_dma_init_flag; // <20><><EFBFBD>³<EFBFBD>ʼ<EFBFBD><CABC>DMA<4D>ı<EFBFBD>־λ
|
||||
vuint8 ov7725_dma_int_num = 0;
|
||||
vuint8 ov7725_lost_flag = 1;
|
||||
vuint8 ov7725_link_list_num = 0;
|
||||
uint8 ov7725_uart_dma_init_flag; // <20><><EFBFBD>³<EFBFBD>ʼ<EFBFBD><CABC>DMA<4D>ı<EFBFBD>־λ
|
||||
uint8 ov7725_dma_int_num = 0;
|
||||
uint8 ov7725_lost_flag = 1;
|
||||
uint8 ov7725_link_list_num = 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 uint16 ov7725_set_confing_buffer [OV7725_CONFIG_FINISH][2]=
|
||||
{
|
||||
@@ -341,7 +341,7 @@ static void ov7725_vsync_handler(void)
|
||||
OV7725_DATA_ADD,
|
||||
ov7725_image_binary[0],
|
||||
OV7725_PCLK_PIN,
|
||||
EXTI_TRIGGER_FALLING,
|
||||
EXTI_TRIGGER_RISING,
|
||||
OV7725_IMAGE_SIZE);
|
||||
dma_enable(OV7725_DMA_CH);
|
||||
}
|
||||
|
||||
@@ -207,7 +207,6 @@ static void scc8660_uart_callback (void)
|
||||
{
|
||||
uint8 data = 0;
|
||||
uart_query_byte(SCC8660_COF_UART, &data);
|
||||
uart_write_byte(UART_0, data);
|
||||
if(0xA5 == data)
|
||||
{
|
||||
fifo_clear(&camera_receiver_fifo);
|
||||
|
||||
@@ -354,7 +354,7 @@ void tft180_draw_line (uint16 x_start, uint16 y_start, uint16 x_end, uint16 y_en
|
||||
return;
|
||||
}
|
||||
|
||||
if(myabs(y_start - y_end) > myabs(x_start - x_end))
|
||||
if(func_abs(y_start - y_end) > func_abs(x_start - x_end))
|
||||
{
|
||||
while(y_start != y_end)
|
||||
{
|
||||
@@ -523,7 +523,7 @@ void tft180_show_int (uint16 x, uint16 y, const int32 dat, uint8 num)
|
||||
offset *= 10;
|
||||
dat_temp %= offset;
|
||||
}
|
||||
int_to_str(data_buffer, dat_temp);
|
||||
func_int_to_str(data_buffer, dat_temp);
|
||||
tft180_show_string(x, y, (const char *)&data_buffer);
|
||||
}
|
||||
|
||||
@@ -558,7 +558,7 @@ void tft180_show_uint (uint16 x, uint16 y, const uint32 dat, uint8 num)
|
||||
offset *= 10;
|
||||
dat_temp %= offset;
|
||||
}
|
||||
uint_to_str(data_buffer, dat_temp);
|
||||
func_uint_to_str(data_buffer, dat_temp);
|
||||
tft180_show_string(x, y, (const char *)&data_buffer);
|
||||
}
|
||||
|
||||
@@ -567,7 +567,7 @@ void tft180_show_uint (uint16 x, uint16 y, const uint32 dat, uint8 num)
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ [0, tft180_x_max-1]
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ [0, tft180_y_max-1]
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>float<61><74>double
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> num <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>10λ
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> num <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>8λ
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> pointnum С<><D0A1>λ<EFBFBD><CEBB>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>6λ
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> tft180_show_float(0, 0, x, 2, 3); // <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ2λ С<><D0A1><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>λ
|
||||
@@ -599,7 +599,7 @@ void tft180_show_float (uint16 x, uint16 y, const float dat, uint8 num, uint8 po
|
||||
offset *= 10;
|
||||
dat_temp = dat_temp - ((int)dat_temp / (int)offset) * offset;
|
||||
}
|
||||
float_to_str(data_buffer, dat_temp, pointnum);
|
||||
func_float_to_str(data_buffer, dat_temp, pointnum);
|
||||
tft180_show_string(x, y, data_buffer);
|
||||
}
|
||||
|
||||
@@ -622,6 +622,7 @@ void tft180_show_binary_image (uint16 x, uint16 y, const uint8 *image, uint16 wi
|
||||
// <20><>ôһ<C3B4><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE>ʱ<EFBFBD><EFBFBD><F2B3ACB9><EFBFBD>Ļ<EFBFBD>ֱ<EFBFBD><D6B1>ʷ<EFBFBD>Χ<EFBFBD><CEA7>
|
||||
zf_assert(x < tft180_x_max);
|
||||
zf_assert(y < tft180_y_max);
|
||||
zf_assert(image != NULL);
|
||||
|
||||
uint32 i = 0, j = 0;
|
||||
uint8 temp = 0;
|
||||
@@ -666,6 +667,7 @@ void tft180_show_gray_image (uint16 x, uint16 y, const uint8 *image, uint16 widt
|
||||
// <20><>ôһ<C3B4><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE>ʱ<EFBFBD><EFBFBD><F2B3ACB9><EFBFBD>Ļ<EFBFBD>ֱ<EFBFBD><D6B1>ʷ<EFBFBD>Χ<EFBFBD><CEA7>
|
||||
zf_assert(x < tft180_x_max);
|
||||
zf_assert(y < tft180_y_max);
|
||||
zf_assert(image != NULL);
|
||||
|
||||
uint32 i = 0, j = 0;
|
||||
uint16 color = 0,temp = 0;
|
||||
@@ -717,6 +719,7 @@ void tft180_show_rgb565_image (uint16 x, uint16 y, const uint16 *image, uint16 w
|
||||
// <20><>ôһ<C3B4><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE>ʱ<EFBFBD><EFBFBD><F2B3ACB9><EFBFBD>Ļ<EFBFBD>ֱ<EFBFBD><D6B1>ʷ<EFBFBD>Χ<EFBFBD><CEA7>
|
||||
zf_assert(x < tft180_x_max);
|
||||
zf_assert(y < tft180_y_max);
|
||||
zf_assert(image != NULL);
|
||||
|
||||
uint32 i = 0, j = 0;
|
||||
uint16 color = 0;
|
||||
@@ -759,6 +762,7 @@ void tft180_show_wave (uint16 x, uint16 y, const uint16 *wave, uint16 width, uin
|
||||
// <20><>ôһ<C3B4><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE>ʱ<EFBFBD><EFBFBD><F2B3ACB9><EFBFBD>Ļ<EFBFBD>ֱ<EFBFBD><D6B1>ʷ<EFBFBD>Χ<EFBFBD><CEA7>
|
||||
zf_assert(x < tft180_x_max);
|
||||
zf_assert(y < tft180_y_max);
|
||||
zf_assert(wave != NULL);
|
||||
|
||||
uint32 i = 0, j = 0;
|
||||
uint32 width_index = 0, value_max_index = 0;
|
||||
@@ -800,6 +804,7 @@ void tft180_show_chinese (uint16 x, uint16 y, uint8 size, const uint8 *chinese_b
|
||||
// <20><>ôһ<C3B4><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE>ʱ<EFBFBD><EFBFBD><F2B3ACB9><EFBFBD>Ļ<EFBFBD>ֱ<EFBFBD><D6B1>ʷ<EFBFBD>Χ<EFBFBD><CEA7>
|
||||
zf_assert(x < tft180_x_max);
|
||||
zf_assert(y < tft180_y_max);
|
||||
zf_assert(chinese_buffer != NULL);
|
||||
|
||||
int i, j, k;
|
||||
uint8 temp, temp1, temp2;
|
||||
|
||||
@@ -38,12 +38,12 @@
|
||||
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_dma_handler = type_default_callback; // <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>ת
|
||||
callback_function camera_vsync_handler = type_default_callback;; // <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>ת
|
||||
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_dma_handler = type_default_callback; // 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>ת
|
||||
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_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>ת
|
||||
|
||||
wireless_type_enum wireless_type = NO_WIRELESS;
|
||||
callback_function wireless_module_uart_handler = type_default_callback;; // <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>ת
|
||||
callback_function wireless_module_uart_handler = type_default_callback; // <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>ת
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ĭ<>ϻص<CFBB><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
||||
@@ -84,6 +84,7 @@ void set_camera_type (camera_type_enum type_set, callback_function vsync_callbac
|
||||
void set_wireless_type (wireless_type_enum type_set, callback_function uart_callback)
|
||||
{
|
||||
wireless_type = type_set;
|
||||
wireless_module_uart_handler = uart_callback;
|
||||
if(uart_callback == NULL) wireless_module_uart_handler = type_default_callback;
|
||||
else wireless_module_uart_handler = uart_callback;
|
||||
}
|
||||
|
||||
|
||||
@@ -53,14 +53,18 @@ static uint16 crc_check (uint8 *buff, uint8 crc_cnt)
|
||||
|
||||
for(i = 0; i < crc_cnt; i ++)
|
||||
{
|
||||
crc_temp ^= buff[i];
|
||||
for(j = 0; j < 8; j ++)
|
||||
{
|
||||
if (crc_temp & 0x01)
|
||||
crc_temp = (crc_temp >> 1) ^ 0xa001;
|
||||
else
|
||||
crc_temp = crc_temp >> 1;
|
||||
}
|
||||
crc_temp ^= buff[i];
|
||||
for(j = 0; j < 8; j ++)
|
||||
{
|
||||
if (crc_temp & 0x01)
|
||||
{
|
||||
crc_temp = (crc_temp >> 1) ^ 0xa001;
|
||||
}
|
||||
else
|
||||
{
|
||||
crc_temp = crc_temp >> 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
return(crc_temp);
|
||||
}
|
||||
|
||||
@@ -598,6 +598,8 @@ uint8 wifi_uart_exit_serianet (void)
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
uint8 wifi_uart_connect_tcp_servers (char *ip, char *port, wifi_uart_transfer_mode_enum mode)
|
||||
{
|
||||
zf_assert(ip != NULL);
|
||||
zf_assert(port != NULL);
|
||||
|
||||
uint8 return_state = 0;
|
||||
|
||||
@@ -689,6 +691,9 @@ uint8 wifi_uart_connect_tcp_servers (char *ip, char *port, wifi_uart_transfer_mo
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
uint8 wifi_uart_connect_udp_client (char *ip, char *port, char *local_port, wifi_uart_transfer_mode_enum mode)
|
||||
{
|
||||
zf_assert(ip != NULL);
|
||||
zf_assert(port != NULL);
|
||||
zf_assert(local_port != NULL);
|
||||
uint8 return_state = 0;
|
||||
|
||||
wifi_uart_clear_receive_buffer(); // <20><><EFBFBD><EFBFBD>WiFi<46><69><EFBFBD>ջ<EFBFBD><D5BB><EFBFBD><EFBFBD><EFBFBD>
|
||||
@@ -827,6 +832,7 @@ uint8 wifi_uart_disconnect_link_with_id (wifi_uart_link_id_enum link_id)
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
uint8 wifi_uart_entry_tcp_servers (char *port)
|
||||
{
|
||||
zf_assert(port != NULL);
|
||||
uint8 return_state = 0;
|
||||
|
||||
wifi_uart_clear_receive_buffer(); // <20><><EFBFBD><EFBFBD>WiFi<46><69><EFBFBD>ջ<EFBFBD><D5BB><EFBFBD><EFBFBD><EFBFBD>
|
||||
@@ -948,6 +954,7 @@ uint8 wifi_uart_tcp_servers_check_link (void)
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint32 wifi_uart_send_buffer (uint8 *buff, uint32 len)
|
||||
{
|
||||
zf_assert(buff != NULL);
|
||||
int32 timeout = WAIT_TIME_OUT;
|
||||
|
||||
char lenth[32] = {0};
|
||||
@@ -958,7 +965,7 @@ uint32 wifi_uart_send_buffer (uint8 *buff, uint32 len)
|
||||
{
|
||||
wifi_uart_clear_receive_buffer(); // <20><><EFBFBD><EFBFBD>WiFi<46><69><EFBFBD>ջ<EFBFBD><D5BB><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
int_to_str(lenth,len);
|
||||
func_int_to_str(lenth,len);
|
||||
if(len > 8192)
|
||||
{
|
||||
uart_write_string(WIFI_UART_INDEX, "AT+CIPSENDL=");
|
||||
@@ -1002,6 +1009,7 @@ uint32 wifi_uart_send_buffer (uint8 *buff, uint32 len)
|
||||
}
|
||||
}
|
||||
}
|
||||
wifi_uart_clear_receive_buffer(); // <20><><EFBFBD><EFBFBD>WiFi<46><69><EFBFBD>ջ<EFBFBD><D5BB><EFBFBD><EFBFBD><EFBFBD>
|
||||
return len;
|
||||
}
|
||||
|
||||
@@ -1016,6 +1024,7 @@ uint32 wifi_uart_send_buffer (uint8 *buff, uint32 len)
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint32 wifi_uart_tcp_servers_send_buffer (uint8 *buff, uint32 len, wifi_uart_link_id_enum id)
|
||||
{
|
||||
zf_assert(buff != NULL);
|
||||
char lenth[32] = {0};
|
||||
|
||||
if( wifi_uart_information.wifi_uart_transfer_mode == WIFI_UART_COMMAND && \
|
||||
@@ -1023,7 +1032,7 @@ uint32 wifi_uart_tcp_servers_send_buffer (uint8 *buff, uint32 len, wifi_uart_lin
|
||||
{
|
||||
wifi_uart_clear_receive_buffer(); // <20><><EFBFBD><EFBFBD>WiFi<46><69><EFBFBD>ջ<EFBFBD><D5BB><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
int_to_str(lenth,len);
|
||||
func_int_to_str(lenth,len);
|
||||
if(len > 8192)
|
||||
{
|
||||
uart_write_string(WIFI_UART_INDEX, "AT+CIPSENDL=");
|
||||
@@ -1064,6 +1073,7 @@ uint32 wifi_uart_tcp_servers_send_buffer (uint8 *buff, uint32 len, wifi_uart_lin
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint32 wifi_uart_read_buffer (uint8 *buffer, uint32 len)
|
||||
{
|
||||
zf_assert(buffer != NULL);
|
||||
uint32 read_len = len;
|
||||
fifo_read_buffer(&wifi_uart_fifo, buffer, &read_len, FIFO_READ_AND_CLEAN);
|
||||
return read_len;
|
||||
@@ -1096,6 +1106,8 @@ void wifi_uart_callback (void)
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint8 wifi_uart_init (char *wifi_ssid, char *pass_word, wifi_uart_mode_enum wifi_mode)
|
||||
{
|
||||
zf_assert(wifi_ssid != NULL);
|
||||
zf_assert(pass_word != NULL);
|
||||
char uart_baud[32] = {0};
|
||||
uint8 return_state = 0;
|
||||
|
||||
@@ -1121,7 +1133,7 @@ uint8 wifi_uart_init (char *wifi_ssid, char *pass_word, wifi_uart_mode_enum wifi
|
||||
return_state = 1;
|
||||
break;
|
||||
}
|
||||
int_to_str(uart_baud, WIFI_UART_BAUD); // <20><><EFBFBD><EFBFBD>WiFiģ<69><C4A3><EFBFBD><EFBFBD>ʹ<EFBFBD>õIJ<C3B5><C4B2><EFBFBD><EFBFBD>ʲ<EFBFBD><CAB2><EFBFBD>
|
||||
func_int_to_str(uart_baud, WIFI_UART_BAUD); // <20><><EFBFBD><EFBFBD>WiFiģ<69><C4A3><EFBFBD><EFBFBD>ʹ<EFBFBD>õIJ<C3B5><C4B2><EFBFBD><EFBFBD>ʲ<EFBFBD><CAB2><EFBFBD>
|
||||
if(wifi_uart_uart_config_set(uart_baud, "8", "1", "0", "1")) // <20><><EFBFBD>ýӿ<C3BD><D3BF><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>
|
||||
{
|
||||
zf_log(0, "set config failed");
|
||||
|
||||
@@ -93,6 +93,7 @@ uint32 wireless_uart_send_byte (const uint8 data)
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint32 wireless_uart_send_buff (const uint8 *buff, uint32 len)
|
||||
{
|
||||
zf_assert(buff != NULL);
|
||||
uint16 time_count = 0;
|
||||
while(0 != len)
|
||||
{
|
||||
@@ -133,6 +134,7 @@ uint32 wireless_uart_send_buff (const uint8 *buff, uint32 len)
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint32 wireless_uart_send_string (const char *str)
|
||||
{
|
||||
zf_assert(str != NULL);
|
||||
uint16 time_count = 0;
|
||||
uint32 len = strlen(str);
|
||||
while(0 != len)
|
||||
@@ -175,6 +177,7 @@ uint32 wireless_uart_send_string (const char *str)
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void wireless_uart_send_image (const uint8 *image_addr, uint32 image_size)
|
||||
{
|
||||
zf_assert(image_addr != NULL);
|
||||
extern uint8 camera_send_image_frame_header[4];
|
||||
wireless_uart_send_buff(camera_send_image_frame_header, 4);
|
||||
wireless_uart_send_buff((uint8 *)image_addr, image_size);
|
||||
@@ -190,6 +193,7 @@ void wireless_uart_send_image (const uint8 *image_addr, uint32 image_size)
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint32 wireless_uart_read_buff (uint8 *buff, uint32 len)
|
||||
{
|
||||
zf_assert(buff != NULL);
|
||||
uint32 data_len = len;
|
||||
fifo_read_buffer(&wireless_uart_fifo, buff, &data_len, FIFO_READ_AND_CLEAN);
|
||||
return data_len;
|
||||
@@ -244,22 +248,22 @@ uint8 wireless_uart_init (void)
|
||||
wireless_auto_baud_data[1] = 1;
|
||||
wireless_auto_baud_data[2] = 3;
|
||||
|
||||
rts_init_status = gpio_get(WIRELESS_UART_RTS_PIN);
|
||||
rts_init_status = gpio_get_level(WIRELESS_UART_RTS_PIN);
|
||||
gpio_init(WIRELESS_UART_RTS_PIN, GPO, rts_init_status, GPO_PUSH_PULL); // <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
uart_init (WIRELESS_UART_INDEX, WIRELESS_UART_BUAD_RATE, WIRELESS_UART_RX_PIN, WIRELESS_UART_TX_PIN); // <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
uart_rx_irq(WIRELESS_UART_INDEX, 1);
|
||||
uart_rx_interrupt(WIRELESS_UART_INDEX, 1);
|
||||
|
||||
system_delay_ms(5); // ģ<><C4A3><EFBFBD>ϵ<EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA>ʱ<EFBFBD>ȴ<EFBFBD>
|
||||
gpio_set(WIRELESS_UART_RTS_PIN, !rts_init_status); // RTS<54><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߣ<EFBFBD><DFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
|
||||
gpio_set_level(WIRELESS_UART_RTS_PIN, !rts_init_status); // RTS<54><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߣ<EFBFBD><DFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
|
||||
system_delay_ms(100); // RTS<54><53><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ20ms
|
||||
gpio_toggle(WIRELESS_UART_RTS_PIN); // RTS<54><53><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1>
|
||||
|
||||
wireless_auto_baud_flag = 1;
|
||||
|
||||
uart_putchar(WIRELESS_UART_INDEX, wireless_auto_baud_data[0]); // <20><><EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><D8B6><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD>Զ<EFBFBD><D4B6>жϲ<D0B6><CFB2><EFBFBD><EFBFBD><EFBFBD>
|
||||
uart_putchar(WIRELESS_UART_INDEX, wireless_auto_baud_data[1]); // <20><><EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><D8B6><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD>Զ<EFBFBD><D4B6>жϲ<D0B6><CFB2><EFBFBD><EFBFBD><EFBFBD>
|
||||
uart_putchar(WIRELESS_UART_INDEX, wireless_auto_baud_data[2]); // <20><><EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><D8B6><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD>Զ<EFBFBD><D4B6>жϲ<D0B6><CFB2><EFBFBD><EFBFBD><EFBFBD>
|
||||
uart_write_byte(WIRELESS_UART_INDEX, wireless_auto_baud_data[0]); // <20><><EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><D8B6><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD>Զ<EFBFBD><D4B6>жϲ<D0B6><CFB2><EFBFBD><EFBFBD><EFBFBD>
|
||||
uart_write_byte(WIRELESS_UART_INDEX, wireless_auto_baud_data[1]); // <20><><EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><D8B6><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD>Զ<EFBFBD><D4B6>жϲ<D0B6><CFB2><EFBFBD><EFBFBD><EFBFBD>
|
||||
uart_write_byte(WIRELESS_UART_INDEX, wireless_auto_baud_data[2]); // <20><><EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><D8B6><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD>Զ<EFBFBD><D4B6>жϲ<D0B6><CFB2><EFBFBD><EFBFBD><EFBFBD>
|
||||
system_delay_ms(20);
|
||||
|
||||
time_count = 0;
|
||||
|
||||
@@ -254,32 +254,32 @@ void uart_mux (uart_index_enum uartn, uart_tx_pin_enum tx_pin, uart_rx_pin_enum
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ڵȴ<DAB5><C8B4><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> uart_n <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> zf_driver_uart.h <20><> uart_index_enum ö<><C3B6><EFBFBD>嶨<EFBFBD><E5B6A8>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> dat <20><>Ҫ<EFBFBD><D2AA><EFBFBD>͵<EFBFBD><CDB5>ֽ<EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> uart_write_byte_wait(UART_1, 0xA5); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD>ķ<EFBFBD><C4B7>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4>0xA5<41><35><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD>ݷ<EFBFBD><DDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void uart_write_byte_wait (uart_index_enum uart_n, const uint8 dat)
|
||||
{
|
||||
Ifx_SizeT count = 1;
|
||||
(void)IfxAsclin_Asc_write(uart_get_handle(uart_n), &dat, &count, TIME_INFINITE);
|
||||
while(TRUE == uart_get_handle(uart_n)->txInProgress);
|
||||
}
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ڷ<EFBFBD><DAB7><EFBFBD>д<EFBFBD><D0B4>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> uart_n <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> zf_driver_uart.h <20><> uart_index_enum ö<><C3B6><EFBFBD>嶨<EFBFBD><E5B6A8>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> dat <20><>Ҫ<EFBFBD><D2AA><EFBFBD>͵<EFBFBD><CDB5>ֽ<EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> uart_write_tx_buffer(UART_1, 0xA5); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD>ķ<EFBFBD><C4B7>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4>0xA5<41><35>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD>ᷢ<EFBFBD><E1B7A2><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD>ǻ<EFBFBD><C7BB><EFBFBD><EFBFBD><EFBFBD>CPU<50>ڴ<EFBFBD><DAB4>ڵ<EFBFBD>ִ<EFBFBD><D6B4>ʱ<EFBFBD><EFBFBD>
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void uart_write_tx_buffer (uart_index_enum uart_n, const uint8 dat)
|
||||
{
|
||||
Ifx_SizeT count = 1;
|
||||
(void)IfxAsclin_Asc_write(uart_get_handle(uart_n), &dat, &count, TIME_INFINITE);
|
||||
}
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> uart_n <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> zf_driver_uart.h <20><> uart_index_enum ö<><C3B6><EFBFBD>嶨<EFBFBD><E5B6A8>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> dat <20><>Ҫ<EFBFBD><D2AA><EFBFBD>͵<EFBFBD><CDB5>ֽ<EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> uart_write_byte(UART_1, 0xA5); // <20><><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD>0xA5
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> uart_write_byte(UART_1, 0xA5); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD>ķ<EFBFBD><C4B7>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4>0xA5<41><35>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD>ᷢ<EFBFBD><E1B7A2><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD>ǻ<EFBFBD><C7BB><EFBFBD><EFBFBD><EFBFBD>CPU<50>ڴ<EFBFBD><DAB4>ڵ<EFBFBD>ִ<EFBFBD><D6B4>ʱ
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void uart_write_byte (uart_index_enum uart_n, const uint8 dat)
|
||||
{
|
||||
Ifx_SizeT count = 1;
|
||||
(void)IfxAsclin_Asc_write(uart_get_handle(uart_n), &dat, &count, TIME_INFINITE);
|
||||
while(TRUE == uart_get_handle(uart_n)->txInProgress);
|
||||
}
|
||||
|
||||
|
||||
@@ -296,7 +296,7 @@ void uart_write_buffer (uart_index_enum uart_n, const uint8 *buff, uint32 len)
|
||||
{
|
||||
while(len)
|
||||
{
|
||||
uart_write_tx_buffer(uart_n, *buff);
|
||||
uart_write_byte(uart_n, *buff);
|
||||
len--;
|
||||
buff++;
|
||||
}
|
||||
|
||||
@@ -127,7 +127,7 @@ extern IfxAsclin_Asc uart2_handle;
|
||||
extern IfxAsclin_Asc uart3_handle;
|
||||
|
||||
//====================================================<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||
void uart_write_tx_buffer (uart_index_enum uart_n, const uint8 dat);
|
||||
void uart_write_byte_wait (uart_index_enum uart_n, const uint8 dat);
|
||||
void uart_write_byte (uart_index_enum uartn, const uint8 dat);
|
||||
void uart_write_buffer (uart_index_enum uartn, const uint8 *buff, uint32 len);
|
||||
void uart_write_string (uart_index_enum uartn, const char *str);
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
V3.1.0
|
||||
<20><EFBFBD>GPS<50><53><EFBFBD>Ȳ<EFBFBD><C8B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>ע<EFBFBD>ʹ<EFBFBD><CDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB>ӿڵĶ<DAB5><C4B6>Ի<EFBFBD><D4BB><EFBFBD> <20><>ǿ V3 <20><><EFBFBD>Ľ<EFBFBD>׳<EFBFBD><D7B3> <20><>Ҫ<EFBFBD><D2AA><EFBFBD>Կ<EFBFBD>ָ<EFBFBD><D6B8>
|
||||
V3.0.1
|
||||
<20><EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>絥<EFBFBD><E7B5A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD><D8B9>ȹ<EFBFBD><C8B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
V3.0.0
|
||||
|
||||
@@ -33,18 +33,18 @@
|
||||
* 2022-09-15 pudding first version
|
||||
********************************************************************************************************************/
|
||||
|
||||
#include "zf_common_debug.h"
|
||||
#include "zf_common_function.h"
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> num1 <20><><EFBFBD><EFBFBD>1
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> num2 <20><><EFBFBD><EFBFBD>2
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> uint32 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> return get_greatest_common_divisor(144, 36); // <20><>ȡ 144 <20><> 36 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> return func_get_greatest_common_divisor(144, 36); // <20><>ȡ 144 <20><> 36 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint32 get_greatest_common_divisor (uint32 num1, uint32 num2)
|
||||
uint32 func_get_greatest_common_divisor (uint32 num1, uint32 num2)
|
||||
{
|
||||
while(num1 != num2)
|
||||
{
|
||||
@@ -64,10 +64,10 @@ uint32 get_greatest_common_divisor (uint32 num1, uint32 num2)
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> t <20><>ʱʱ<CAB1><CAB1>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> my_delay(100);
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> func_soft_delay(100);
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void my_delay (volatile long t)
|
||||
void func_soft_delay (volatile long t)
|
||||
{
|
||||
while(t --);
|
||||
}
|
||||
@@ -76,11 +76,12 @@ void my_delay (volatile long t)
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ַ<EFBFBD><D6B7><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ݷ<EFBFBD>Χ<EFBFBD><CEA7> [-32768,32767]
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> *str <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> <20>ɴ<EFBFBD><C9B4><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> int32 ת<><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> int32 dat = str_to_int("-100");
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> int32 dat = func_str_to_int("-100");
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
int32 str_to_int (char *str)
|
||||
int32 func_str_to_int (char *str)
|
||||
{
|
||||
zf_assert(str != NULL);
|
||||
uint8 sign = 0; // <20><><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD> 0-<2D><><EFBFBD><EFBFBD> 1-<2D><><EFBFBD><EFBFBD>
|
||||
int32 temp = 0; // <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
do
|
||||
@@ -119,11 +120,12 @@ int32 str_to_int (char *str)
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> *str <20>ַ<EFBFBD><D6B7><EFBFBD>ָ<EFBFBD><D6B8>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> number <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> int_to_str(data_buffer, -300);
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> func_int_to_str(data_buffer, -300);
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void int_to_str (char *str, int32 number)
|
||||
void func_int_to_str (char *str, int32 number)
|
||||
{
|
||||
zf_assert(str != NULL);
|
||||
uint8 data_temp[16]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
uint8 bit = 0; // <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
|
||||
int32 number_temp = 0;
|
||||
@@ -149,7 +151,7 @@ void int_to_str (char *str, int32 number)
|
||||
while(0 != number) // ѭ<><D1AD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>
|
||||
{
|
||||
number_temp = number % 10;
|
||||
data_temp[bit ++] = myabs(number_temp); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
|
||||
data_temp[bit ++] = func_abs(number_temp); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
|
||||
number /= 10; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD>ĸ<EFBFBD>λ<EFBFBD><CEBB>
|
||||
}
|
||||
while(0 != bit) // <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>ݼ<EFBFBD><DDBC><EFBFBD><EFBFBD><EFBFBD>
|
||||
@@ -164,11 +166,12 @@ void int_to_str (char *str, int32 number)
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ַ<EFBFBD><D6B7><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ݷ<EFBFBD>Χ<EFBFBD><CEA7> [0,65535]
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> *str <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> <20><EFBFBD><DEB7><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> uint32 ת<><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> uint32 dat = str_to_uint("100");
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> uint32 dat = func_str_to_uint("100");
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint32 str_to_uint (char *str)
|
||||
uint32 func_str_to_uint (char *str)
|
||||
{
|
||||
zf_assert(str != NULL);
|
||||
uint32 temp = 0; // <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
do
|
||||
@@ -193,11 +196,12 @@ uint32 str_to_uint (char *str)
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> *str <20>ַ<EFBFBD><D6B7><EFBFBD>ָ<EFBFBD><D6B8>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> number <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> uint_to_str(data_buffer, 300);
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> func_uint_to_str(data_buffer, 300);
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void uint_to_str (char *str, uint32 number)
|
||||
void func_uint_to_str (char *str, uint32 number)
|
||||
{
|
||||
zf_assert(str != NULL);
|
||||
int8 data_temp[16]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
uint8 bit = 0; // <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
|
||||
|
||||
@@ -231,11 +235,12 @@ void uint_to_str (char *str, uint32 number)
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ַ<EFBFBD><D6B7><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>Ч<EFBFBD>ۼƾ<DBBC><C6BE><EFBFBD>ΪС<CEAA><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> *str <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> <20>ɴ<EFBFBD><C9B4><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> float ת<><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> float dat = str_to_float("-100.2");
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> float dat = func_str_to_float("-100.2");
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
float str_to_float (char *str)
|
||||
float func_str_to_float (char *str)
|
||||
{
|
||||
zf_assert(str != NULL);
|
||||
uint8 sign = 0; // <20><><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD> 0-<2D><><EFBFBD><EFBFBD> 1-<2D><><EFBFBD><EFBFBD>
|
||||
float temp = 0.0; // <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
float temp_point = 0.0; // <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> С<><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
@@ -291,11 +296,12 @@ float str_to_float (char *str)
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> number <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> point_bit С<><D0A1><EFBFBD>㾫<EFBFBD><E3BEAB>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> float_to_str(data_buffer, 3.1415, 2); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> data_buffer = "3.14"
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> func_float_to_str(data_buffer, 3.1415, 2); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> data_buffer = "3.14"
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void float_to_str (char *str, float number, uint8 point_bit)
|
||||
void func_float_to_str (char *str, float number, uint8 point_bit)
|
||||
{
|
||||
zf_assert(str != NULL);
|
||||
int data_int = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int data_float = 0.0; // С<><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int data_temp[8]; // <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>
|
||||
@@ -340,7 +346,7 @@ void float_to_str (char *str, float number, uint8 point_bit)
|
||||
}while(0 != data_int);
|
||||
while(0 != bit)
|
||||
{
|
||||
*str ++ = (myabs(data_temp[bit - 1]) + 0x30); // <20>ٵ<EFBFBD><D9B5><EFBFBD><F2BDABB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵд<D6B5><D0B4><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> <20>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
||||
*str ++ = (func_abs(data_temp[bit - 1]) + 0x30); // <20>ٵ<EFBFBD><D9B5><EFBFBD><F2BDABB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵд<D6B5><D0B4><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> <20>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
||||
bit --;
|
||||
}
|
||||
|
||||
@@ -363,7 +369,7 @@ void float_to_str (char *str, float number, uint8 point_bit)
|
||||
}
|
||||
while(0 != bit)
|
||||
{
|
||||
*str ++ = (myabs(data_temp_point[bit - 1]) + 0x30); // <20>ٵ<EFBFBD><D9B5><EFBFBD><F2BDABB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵд<D6B5><D0B4><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> <20>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
||||
*str ++ = (func_abs(data_temp_point[bit - 1]) + 0x30); // <20>ٵ<EFBFBD><D9B5><EFBFBD><F2BDABB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵд<D6B5><D0B4><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> <20>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
||||
bit --;
|
||||
}
|
||||
}
|
||||
@@ -375,11 +381,12 @@ void float_to_str (char *str, float number, uint8 point_bit)
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ַ<EFBFBD><D6B7><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>Ч<EFBFBD>ۼƾ<DBBC><C6BE><EFBFBD>ΪС<CEAA><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> str <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> <20>ɴ<EFBFBD><C9B4><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> double ת<><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> double dat = str_to_double("-100.2");
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> double dat = func_str_to_double("-100.2");
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
double str_to_double (char *str)
|
||||
double func_str_to_double (char *str)
|
||||
{
|
||||
zf_assert(str != NULL);
|
||||
uint8 sign = 0; // <20><><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD> 0-<2D><><EFBFBD><EFBFBD> 1-<2D><><EFBFBD><EFBFBD>
|
||||
double temp = 0.0; // <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
double temp_point = 0.0; // <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> С<><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
@@ -436,11 +443,12 @@ double str_to_double (char *str)
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> number <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> point_bit С<><D0A1><EFBFBD>㾫<EFBFBD><E3BEAB>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> double_to_str(data_buffer, 3.1415, 2); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> data_buffer = "3.14"
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> func_double_to_str(data_buffer, 3.1415, 2); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> data_buffer = "3.14"
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void double_to_str (char *str, double number, uint8 point_bit)
|
||||
void func_double_to_str (char *str, double number, uint8 point_bit)
|
||||
{
|
||||
zf_assert(str != NULL);
|
||||
int data_int = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int data_float = 0.0; // С<><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int data_temp[12]; // <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>
|
||||
@@ -485,7 +493,7 @@ void double_to_str (char *str, double number, uint8 point_bit)
|
||||
}while(0 != data_int);
|
||||
while(0 != bit)
|
||||
{
|
||||
*str ++ = (myabs(data_temp[bit - 1]) + 0x30); // <20>ٵ<EFBFBD><D9B5><EFBFBD><F2BDABB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵд<D6B5><D0B4><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> <20>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
||||
*str ++ = (func_abs(data_temp[bit - 1]) + 0x30); // <20>ٵ<EFBFBD><D9B5><EFBFBD><F2BDABB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵд<D6B5><D0B4><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> <20>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
||||
bit --;
|
||||
}
|
||||
|
||||
@@ -506,7 +514,7 @@ void double_to_str (char *str, double number, uint8 point_bit)
|
||||
}
|
||||
while(0 != bit)
|
||||
{
|
||||
*str ++ = (myabs(data_temp_point[bit - 1]) + 0x30); // <20>ٵ<EFBFBD><D9B5><EFBFBD><F2BDABB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵд<D6B5><D0B4><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> <20>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
||||
*str ++ = (func_abs(data_temp_point[bit - 1]) + 0x30); // <20>ٵ<EFBFBD><D9B5><EFBFBD><F2BDABB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵд<D6B5><D0B4><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> <20>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
||||
bit --;
|
||||
}
|
||||
}
|
||||
@@ -518,11 +526,12 @@ void double_to_str (char *str, double number, uint8 point_bit)
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ַ<EFBFBD><D6B7><EFBFBD>ת Hex
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> str <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> <20><EFBFBD><DEB7><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> uint32 ת<><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> uint32 dat = str_to_hex("0x11");
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> uint32 dat = func_str_to_hex("0x11");
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint32 str_to_hex (char *str)
|
||||
uint32 func_str_to_hex (char *str)
|
||||
{
|
||||
zf_assert(str != NULL);
|
||||
uint32 str_len = strlen(str); // <20>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>
|
||||
uint32 result_data = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
uint8 temp = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
@@ -575,11 +584,12 @@ uint32 str_to_hex (char *str)
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> *str <20>ַ<EFBFBD><D6B7><EFBFBD>ָ<EFBFBD><D6B8>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> number <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> hex_to_str(data_buffer, 0x11); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> data_buffer = "0x11"
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> func_hex_to_str(data_buffer, 0x11); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> data_buffer = "0x11"
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void hex_to_str (char *str, uint32 number)
|
||||
void func_hex_to_str (char *str, uint32 number)
|
||||
{
|
||||
zf_assert(str != NULL);
|
||||
const char hex_index[16] = {
|
||||
'0', '1', '2', '3',
|
||||
'4', '5', '6', '7',
|
||||
@@ -861,7 +871,6 @@ uint32 zf_sprintf (int8 *buff, const int8 *format, ...)
|
||||
uint32 ival = (uint32)va_arg(arg, uint32);
|
||||
uint8 vlen = 0;
|
||||
vlen = number_conversion_ascii(ival, vstr, 0, 16);
|
||||
|
||||
printf_reverse_order(vstr, 8);
|
||||
memcpy(buff, vstr, 8);
|
||||
buff += 8;
|
||||
@@ -893,3 +902,4 @@ uint32 zf_sprintf (int8 *buff, const int8 *format, ...)
|
||||
|
||||
return buff_len;
|
||||
}
|
||||
|
||||
|
||||
@@ -38,26 +38,25 @@
|
||||
|
||||
#include "zf_common_typedef.h"
|
||||
|
||||
|
||||
//====================================================<3D>궨<EFBFBD>庯<EFBFBD><E5BAAF><EFBFBD><EFBFBD>====================================================
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD> <20><><EFBFBD>ݷ<EFBFBD>Χ<EFBFBD><CEA7> [-32767,32767]
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> dat <20><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> int <20><><EFBFBD>ؾ<EFBFBD><D8BE><EFBFBD>ֵ
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> dat = myabs(dat); // <20><>dat<61><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> dat = func_abs(dat); // <20><>dat<61><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
#define myabs(x) ((x) >= 0 ? (x): -(x))
|
||||
#define func_abs(x) ((x) >= 0 ? (x): -(x))
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD> <20><><EFBFBD>ݷ<EFBFBD>Χ<EFBFBD><CEA7> [-32768,32767]
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> x <20><><EFBFBD><EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> y <20><EFBFBD><DEB7><EFBFBD>Χ(<28><><EFBFBD>ݻᱻ<DDBB><E1B1BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-y<><79>+y֮<79><D6AE>)
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> int <20><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> int dat = limit(500, 300); // <20><><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-300<30><30>+300֮<30><D6AE> <20><><EFBFBD>˷<EFBFBD><CBB7>صĽ<D8B5><C4BD><EFBFBD><EFBFBD><EFBFBD>300
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> int dat = func_limit(500, 300); // <20><><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-300<30><30>+300֮<30><D6AE> <20><><EFBFBD>˷<EFBFBD><CBB7>صĽ<D8B5><C4BD><EFBFBD><EFBFBD><EFBFBD>300
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
#define limit(x, y) ((x) > (y) ? (y) : ((x) < -(y) ? -(y) : (x)))
|
||||
#define func_limit(x, y) ((x) > (y) ? (y) : ((x) < -(y) ? -(y) : (x)))
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ˫<><CBAB><EFBFBD><EFBFBD> <20><><EFBFBD>ݷ<EFBFBD>Χ<EFBFBD><CEA7> [-32768,32767]
|
||||
@@ -65,32 +64,33 @@
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> a <20><EFBFBD><DEB7><EFBFBD>Χ<EFBFBD><CEA7><EFBFBD>߽<EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> b <20><EFBFBD><DEB7><EFBFBD>Χ<EFBFBD>ұ߽<D2B1>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> int <20><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> int dat = limit_ab(500, -300, 400); //<2F><><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-300<30><30>+400֮<30><D6AE> <20><><EFBFBD>˷<EFBFBD><CBB7>صĽ<D8B5><C4BD><EFBFBD><EFBFBD><EFBFBD>400
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> int dat = func_limit_ab(500, -300, 400); //<2F><><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-300<30><30>+400֮<30><D6AE> <20><><EFBFBD>˷<EFBFBD><CBB7>صĽ<D8B5><C4BD><EFBFBD><EFBFBD><EFBFBD>400
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
#define limit_ab(x, a, b) ((x) < (a) ? (a) : ((x) > (b) ? (b) : (x)))
|
||||
#define func_limit_ab(x, a, b) ((x) < (a) ? (a) : ((x) > (b) ? (b) : (x)))
|
||||
|
||||
//====================================================<3D>궨<EFBFBD>庯<EFBFBD><E5BAAF><EFBFBD><EFBFBD>====================================================
|
||||
|
||||
//=====================================================<3D><><EFBFBD>溯<EFBFBD><E6BAAF><EFBFBD><EFBFBD>=====================================================
|
||||
uint32 get_greatest_common_divisor (uint32 num1, uint32 num2);
|
||||
uint32 func_get_greatest_common_divisor (uint32 num1, uint32 num2);
|
||||
|
||||
void my_delay (volatile long t);
|
||||
void func_soft_delay (volatile long t);
|
||||
|
||||
int32 str_to_int (char *str);
|
||||
void int_to_str (char *str, int32 number);
|
||||
uint32 str_to_uint (char *str);
|
||||
void uint_to_str (char *str, uint32 number);
|
||||
float str_to_float (char *str);
|
||||
void float_to_str (char *str, float number, uint8 point_bit);
|
||||
double str_to_double (char *str);
|
||||
void double_to_str (char *str, double number, uint8 point_bit);
|
||||
uint32 str_to_hex (char *str);
|
||||
void hex_to_str (char *str, uint32 number);
|
||||
int32 func_str_to_int (char *str);
|
||||
void func_int_to_str (char *str, int32 number);
|
||||
uint32 func_str_to_uint (char *str);
|
||||
void func_uint_to_str (char *str, uint32 number);
|
||||
float func_str_to_float (char *str);
|
||||
void func_float_to_str (char *str, float number, uint8 point_bit);
|
||||
double func_str_to_double (char *str);
|
||||
void func_double_to_str (char *str, double number, uint8 point_bit);
|
||||
uint32 func_str_to_hex (char *str);
|
||||
void func_hex_to_str (char *str, uint32 number);
|
||||
|
||||
uint32 zf_sprintf (int8 *buff, const int8 *format, ...);
|
||||
//=====================================================<3D><><EFBFBD>溯<EFBFBD><E6BAAF><EFBFBD><EFBFBD>=====================================================
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
@@ -45,13 +45,14 @@
|
||||
* ------------------------------------
|
||||
********************************************************************************************************************/
|
||||
|
||||
|
||||
#include "zf_common_debug.h"
|
||||
#include "zf_common_function.h"
|
||||
#include "zf_driver_delay.h"
|
||||
#include "zf_driver_soft_spi.h"
|
||||
#include "zf_driver_spi.h"
|
||||
#include "zf_device_absolute_encoder.h"
|
||||
|
||||
#include "zf_device_absolute_encoder.h"
|
||||
|
||||
static int16 now_location = 0;
|
||||
static int16 last_location = 0;
|
||||
@@ -76,7 +77,7 @@ static soft_spi_info_struct absolute_encoder_spi;
|
||||
static void absolute_encoder_write_register(uint8 reg, uint8 data)
|
||||
{
|
||||
ABSOLUTE_ENCODER_CSN(0); // Ƭѡ<C6AC><D1A1><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>
|
||||
absolute_encoder_write(reg | ABS_ENCODER_SPI_W); // <20>Ĵ<EFBFBD><C4B4><EFBFBD>
|
||||
absolute_encoder_write(reg | ABSOLUTE_ENCODER_SPI_W); // <20>Ĵ<EFBFBD><C4B4><EFBFBD>
|
||||
absolute_encoder_write(data); // <20><><EFBFBD><EFBFBD>
|
||||
ABSOLUTE_ENCODER_CSN(1); // Ƭѡ<C6AC><D1A1><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>
|
||||
system_delay_us(1); // <20><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>
|
||||
@@ -97,7 +98,7 @@ static uint8 absolute_encoder_read_register(uint8 reg)
|
||||
{
|
||||
uint8 data = 0;
|
||||
ABSOLUTE_ENCODER_CSN(0); // Ƭѡ<C6AC><D1A1><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>
|
||||
absolute_encoder_write(reg | ABS_ENCODER_SPI_R); // <20>Ĵ<EFBFBD><C4B4><EFBFBD>
|
||||
absolute_encoder_write(reg | ABSOLUTE_ENCODER_SPI_R); // <20>Ĵ<EFBFBD><C4B4><EFBFBD>
|
||||
absolute_encoder_write(0x00); // ռλ
|
||||
ABSOLUTE_ENCODER_CSN(1); // Ƭѡ<C6AC><D1A1><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>
|
||||
system_delay_us(1); // <20><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>
|
||||
@@ -177,16 +178,16 @@ int16 absolute_encoder_get_location (void)
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
int16 absolute_encoder_get_offset (void)
|
||||
{
|
||||
int16 offset_num = 0;
|
||||
if(myabs(now_location-last_location) > 2048)
|
||||
int16 result_data = 0;
|
||||
if(func_abs(now_location - last_location) > 2048)
|
||||
{
|
||||
offset_num = (now_location > 2048 ? (now_location - 4096 - last_location) : (now_location + 4096 - last_location));
|
||||
result_data = (now_location > 2048 ? (now_location - 4096 - last_location) : (now_location + 4096 - last_location));
|
||||
}
|
||||
else
|
||||
{
|
||||
offset_num = (now_location - last_location);
|
||||
result_data = (now_location - last_location);
|
||||
}
|
||||
return offset_num;
|
||||
return result_data;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
@@ -198,6 +199,7 @@ int16 absolute_encoder_get_offset (void)
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint8 absolute_encoder_init (void)
|
||||
{
|
||||
uint8 return_state = 0;
|
||||
uint16 zero_position = ABSOLUTE_ENCODER_DEFAULT_ZERO;
|
||||
#if ABSOLUTE_ENCODER_USE_SOFT_SPI
|
||||
soft_spi_init(&absolute_encoder_spi, 0, ABSOLUTE_ENCODER_SOFT_SPI_DELAY, ABSOLUTE_ENCODER_SCLK_PIN, ABSOLUTE_ENCODER_MOSI_PIN, ABSOLUTE_ENCODER_MISO_PIN, SOFT_SPI_PIN_NULL);
|
||||
@@ -206,17 +208,22 @@ uint8 absolute_encoder_init (void)
|
||||
#endif
|
||||
gpio_init(ABSOLUTE_ENCODER_CS_PIN, GPO, GPIO_LOW, GPO_PUSH_PULL);
|
||||
|
||||
if(absolute_encoder_self_check())
|
||||
do
|
||||
{
|
||||
// <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><C7BE><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>˳<EFBFBD><CBB3><EFBFBD>
|
||||
// <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>ܾ<EFBFBD><EFBFBD>ǻ<EFBFBD><EFBFBD><EFBFBD>
|
||||
zf_assert(0);
|
||||
}
|
||||
absolute_encoder_write_register(DIR_REG, 0x00); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD> <20><>ת<EFBFBD><D7AA>ֵ<EFBFBD><D6B5>С<EFBFBD><D0A1>0x00 <20><>ת<EFBFBD><D7AA>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0x80
|
||||
zero_position = (uint16)(4096 - zero_position);
|
||||
zero_position = zero_position << 4;
|
||||
absolute_encoder_write_register(ZERO_L_REG, (uint8)zero_position); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ
|
||||
absolute_encoder_write_register(ZERO_H_REG, zero_position >> 8);
|
||||
return 0;
|
||||
if(absolute_encoder_self_check())
|
||||
{
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><>ô<EFBFBD><C3B4><EFBFBD>Ǿ<EFBFBD><C7BE><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<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>
|
||||
return_state = 1;
|
||||
zf_log(0, "absolute encoder init errror.");
|
||||
break;
|
||||
}
|
||||
absolute_encoder_write_register(ABSOLUTE_ENCODER_DIR_REG, 0x00); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD> <20><>ת<EFBFBD><D7AA>ֵ<EFBFBD><D6B5>С<EFBFBD><D0A1>0x00 <20><>ת<EFBFBD><D7AA>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0x80
|
||||
zero_position = (uint16)(4096 - zero_position);
|
||||
zero_position = zero_position << 4;
|
||||
absolute_encoder_write_register(ABSOLUTE_ENCODER_ZERO_L_REG, (uint8)zero_position); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ
|
||||
absolute_encoder_write_register(ABSOLUTE_ENCODER_ZERO_H_REG, zero_position >> 8);
|
||||
}while(0);
|
||||
return return_state;
|
||||
}
|
||||
|
||||
@@ -75,12 +75,12 @@
|
||||
#define ABSOLUTE_ENCODER_DEFAULT_ZERO (0)
|
||||
|
||||
//====================================================<3D>Ƕȴ<C7B6><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||
#define ABS_ENCODER_SPI_W (0x80)
|
||||
#define ABS_ENCODER_SPI_R (0x40)
|
||||
#define ABSOLUTE_ENCODER_SPI_W (0x80)
|
||||
#define ABSOLUTE_ENCODER_SPI_R (0x40)
|
||||
|
||||
#define ZERO_L_REG (0x00)
|
||||
#define ZERO_H_REG (0x01)
|
||||
#define DIR_REG (0X09)
|
||||
#define ABSOLUTE_ENCODER_ZERO_L_REG (0x00)
|
||||
#define ABSOLUTE_ENCODER_ZERO_H_REG (0x01)
|
||||
#define ABSOLUTE_ENCODER_DIR_REG (0X09)
|
||||
//====================================================<3D>Ƕȴ<C7B6><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||
|
||||
|
||||
|
||||
@@ -49,6 +49,8 @@
|
||||
#include "zf_driver_gpio.h"
|
||||
#include "zf_driver_uart.h"
|
||||
#include "zf_driver_delay.h"
|
||||
#include "zf_device_type.h"
|
||||
|
||||
#include "zf_device_bluetooth_ch9141.h"
|
||||
|
||||
static fifo_struct bluetooth_ch9141_fifo;
|
||||
@@ -57,11 +59,172 @@ static uint8 bluetooth_ch9141_buffer[BLUETOOTH_CH9141_BUFFER_SIZE];
|
||||
static uint8 bluetooth_ch9141_data;
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><><EFBFBD><EFBFBD><EFBFBD>жϻص<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// @param void
|
||||
// @return void
|
||||
// Sample usage:
|
||||
// @note <20>ú<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ISR<EFBFBD>ļ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>жϳ<D0B6><CFB3><EFBFBD><F2B1BBB5><EFBFBD>
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD>鷢<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD> uart_n <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> zf_driver_uart.h <20><> uart_index_enum ö<><C3B6><EFBFBD>嶨<EFBFBD><E5B6A8>
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD> *buff Ҫ<><D2AA><EFBFBD>͵<EFBFBD><CDB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD> len <20><><EFBFBD>ͳ<EFBFBD><CDB3><EFBFBD>
|
||||
// <EFBFBD><EFBFBD><EFBFBD>ز<EFBFBD><EFBFBD><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> bluetooth_ch9141_write_buffer(UART_1, &a[0], 5);
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
static void bluetooth_ch9141_write_buffer (uart_index_enum uart_n, const uint8 *buff, uint32 len)
|
||||
{
|
||||
while(len)
|
||||
{
|
||||
uart_write_byte_wait(uart_n, *buff);
|
||||
len--;
|
||||
buff++;
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> data 8bit <20><><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> uint32 ʣ<><EFBFBD>ͳ<EFBFBD><CDB3><EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> bluetooth_ch9141_send_byte(0x5A);
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint32 bluetooth_ch9141_send_byte (const uint8 data)
|
||||
{
|
||||
uint16 time_count = BLUETOOTH_CH9141_TIMEOUT_COUNT;
|
||||
while(time_count)
|
||||
{
|
||||
if(!gpio_get_level(BLUETOOTH_CH9141_RTS_PIN))
|
||||
{
|
||||
uart_write_byte_wait(BLUETOOTH_CH9141_INDEX, data); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
break;
|
||||
}
|
||||
time_count --;
|
||||
system_delay_ms(1);
|
||||
}
|
||||
return (0 < time_count);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><><EFBFBD>ͺ<EFBFBD><CDBA><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> buff <20><>Ҫ<EFBFBD><D2AA><EFBFBD>͵<EFBFBD><CDB5><EFBFBD><EFBFBD>ݵ<EFBFBD>ַ
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> len <20><><EFBFBD>ͳ<EFBFBD><CDB3><EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> uint32 ʣ<><CAA3>δ<EFBFBD><CEB4><EFBFBD>͵<EFBFBD><CDB5>ֽ<EFBFBD><D6BD><EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> bluetooth_ch9141_send_buff(buff, 16);
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint32 bluetooth_ch9141_send_buff (const uint8 *buff, uint32 len)
|
||||
{
|
||||
zf_assert(buff != NULL);
|
||||
uint16 time_count = 0;
|
||||
while(0 != len)
|
||||
{
|
||||
if(!gpio_get_level(BLUETOOTH_CH9141_RTS_PIN)) // <20><><EFBFBD><EFBFBD>RTSΪ<53>͵<EFBFBD>ƽ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
if(30 <= len) // <20><><EFBFBD>ݷ<EFBFBD> 30byte ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
bluetooth_ch9141_write_buffer(BLUETOOTH_CH9141_INDEX, buff, 30); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
buff += 30; // <20><>ַƫ<D6B7><C6AB>
|
||||
len -= 30; // <20><><EFBFBD><EFBFBD>
|
||||
time_count = 0;
|
||||
}
|
||||
else // <20><><EFBFBD><EFBFBD> 30byte <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>Է<EFBFBD><D4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
bluetooth_ch9141_write_buffer(BLUETOOTH_CH9141_INDEX, buff, len); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
len = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else // <20><><EFBFBD><EFBFBD>RTSΪ<53>ߵ<EFBFBD>ƽ <20><>ģ<EFBFBD><C4A3>æ
|
||||
{
|
||||
if(BLUETOOTH_CH9141_TIMEOUT_COUNT <= (++ time_count)) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
{
|
||||
break; // <20>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
system_delay_ms(1);
|
||||
}
|
||||
}
|
||||
return len;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> *str Ҫ<><D2AA><EFBFBD>͵<EFBFBD><CDB5>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>ַ
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> uint32 ʣ<><EFBFBD>ͳ<EFBFBD><CDB3><EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> bluetooth_ch9141_send_string("Trust yourself.");
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint32 bluetooth_ch9141_send_string (const char *str)
|
||||
{
|
||||
zf_assert(str != NULL);
|
||||
uint16 time_count = 0;
|
||||
uint32 len = strlen(str);
|
||||
while(0 != len)
|
||||
{
|
||||
if(!gpio_get_level(BLUETOOTH_CH9141_RTS_PIN)) // <20><><EFBFBD><EFBFBD>RTSΪ<53>͵<EFBFBD>ƽ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
if(30 <= len) // <20><><EFBFBD>ݷ<EFBFBD> 30byte ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
bluetooth_ch9141_write_buffer(BLUETOOTH_CH9141_INDEX, (const uint8 *)str, 30); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
str += 30; // <20><>ַƫ<D6B7><C6AB>
|
||||
len -= 30; // <20><><EFBFBD><EFBFBD>
|
||||
time_count = 0;
|
||||
}
|
||||
else // <20><><EFBFBD><EFBFBD> 30byte <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>Է<EFBFBD><D4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
bluetooth_ch9141_write_buffer(BLUETOOTH_CH9141_INDEX, (const uint8 *)str, len);// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
len = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else // <20><><EFBFBD><EFBFBD>RTSΪ<53>ߵ<EFBFBD>ƽ <20><>ģ<EFBFBD><C4A3>æ
|
||||
{
|
||||
if(BLUETOOTH_CH9141_TIMEOUT_COUNT <= (++ time_count)) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
{
|
||||
break; // <20>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
system_delay_ms(1);
|
||||
}
|
||||
}
|
||||
return len;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷͼ<CDB7><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD>鿴ͼ<E9BFB4><CDBC>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> *image_addr <20><>Ҫ<EFBFBD><D2AA><EFBFBD>͵<EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>ַ
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> image_size ͼ<><CDBC><EFBFBD>Ĵ<EFBFBD>С
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> bluetooth_ch9141_send_image(&mt9v03x_image[0][0], MT9V03X_IMAGE_SIZE);
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void bluetooth_ch9141_send_image (const uint8 *image_addr, uint32 image_size)
|
||||
{
|
||||
zf_assert(image_addr != NULL);
|
||||
|
||||
extern uint8 camera_send_image_frame_header[4];
|
||||
bluetooth_ch9141_send_buff(camera_send_image_frame_header, 4);
|
||||
bluetooth_ch9141_send_buff((uint8 *)image_addr, image_size);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> buff <20>洢<EFBFBD><E6B4A2><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD>ַ
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> len <20><><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> uint32 ʵ<>ʶ<EFBFBD>ȡ<EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> bluetooth_ch9141_read_buff(buff, 16);
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint32 bluetooth_ch9141_read_buff (uint8 *buff, uint32 len)
|
||||
{
|
||||
zf_assert(buff != NULL);
|
||||
uint32 data_len = len;
|
||||
fifo_read_buffer(&bluetooth_ch9141_fifo, buff, &data_len, FIFO_READ_AND_CLEAN);
|
||||
return data_len;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><><EFBFBD><EFBFBD><EFBFBD>жϻص<CFBB><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> void
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE>
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ <20>ú<EFBFBD><C3BA><EFBFBD><EFBFBD><EFBFBD> ISR <20>ļ<EFBFBD><C4BC>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD>жϳ<D0B6><CFB3><EFBFBD><F2B1BBB5><EFBFBD>
|
||||
// <20>ɴ<EFBFBD><C9B4><EFBFBD><EFBFBD>жϷ<D0B6><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> wireless_module_uart_handler() <20><><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD> wireless_module_uart_handler() <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD><EFBFBD><EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void bluetooth_ch9141_uart_callback (void)
|
||||
{
|
||||
@@ -70,131 +233,15 @@ void bluetooth_ch9141_uart_callback (void)
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// @param data 8bit <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// @return uint32 ʣ<EFBFBD><EFBFBD>ͳ<EFBFBD><EFBFBD><EFBFBD>
|
||||
// Sample usage:
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint32 bluetooth_ch9141_send_byte (const uint8 data)
|
||||
{
|
||||
uint16 time_count = 0;
|
||||
while(gpio_get_level(BLUETOOTH_CH9141_RTS_PIN)) // <20><><EFBFBD><EFBFBD>RTSΪ<53>͵<EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
if(BLUETOOTH_CH9141_TIMEOUT_COUNT < time_count ++)
|
||||
return 1; // ģ<><C4A3>æ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>while<6C>ȴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ú<EFBFBD><C3BA><EFBFBD>ע<EFBFBD>͵<EFBFBD>while<6C>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>滻<EFBFBD><E6BBBB>if<69><66><EFBFBD><EFBFBD>
|
||||
system_delay_ms(1);
|
||||
}
|
||||
uart_write_byte(BLUETOOTH_CH9141_INDEX, data); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><><EFBFBD>ͺ<EFBFBD><CDBA><EFBFBD>
|
||||
// @param buff <20><>Ҫ<EFBFBD><D2AA><EFBFBD>͵<EFBFBD><CDB5><EFBFBD><EFBFBD>ݵ<EFBFBD>ַ
|
||||
// @param len <20><><EFBFBD>ͳ<EFBFBD><CDB3><EFBFBD>
|
||||
// @return uint32 ʣ<><CAA3>δ<EFBFBD><CEB4><EFBFBD>͵<EFBFBD><CDB5>ֽ<EFBFBD><D6BD><EFBFBD>
|
||||
// Sample usage:
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint32 bluetooth_ch9141_send_buff (const uint8 *buff, uint32 len)
|
||||
{
|
||||
uint16 time_count = 0;
|
||||
while(30 < len)
|
||||
{
|
||||
time_count = 0;
|
||||
while(gpio_get_level(BLUETOOTH_CH9141_RTS_PIN) && BLUETOOTH_CH9141_TIMEOUT_COUNT > time_count ++) // <20><><EFBFBD><EFBFBD>RTSΪ<53>͵<EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
system_delay_ms(1);
|
||||
if(BLUETOOTH_CH9141_TIMEOUT_COUNT <= time_count)
|
||||
return len; // ģ<><C4A3>æ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>while<6C>ȴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ú<EFBFBD><C3BA><EFBFBD>ע<EFBFBD>͵<EFBFBD>while<6C>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>滻<EFBFBD><E6BBBB>if<69><66><EFBFBD><EFBFBD>
|
||||
uart_write_buffer(BLUETOOTH_CH9141_INDEX, buff, 30);
|
||||
|
||||
buff += 30; // <20><>ַƫ<D6B7><C6AB>
|
||||
len -= 30; // <20><><EFBFBD><EFBFBD>
|
||||
}
|
||||
|
||||
time_count = 0;
|
||||
while(gpio_get_level(BLUETOOTH_CH9141_RTS_PIN) && BLUETOOTH_CH9141_TIMEOUT_COUNT > time_count ++) // <20><><EFBFBD><EFBFBD>RTSΪ<53>͵<EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
system_delay_ms(1);
|
||||
if(time_count >= BLUETOOTH_CH9141_TIMEOUT_COUNT)
|
||||
return len; // ģ<><C4A3>æ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>while<6C>ȴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ú<EFBFBD><C3BA><EFBFBD>ע<EFBFBD>͵<EFBFBD>while<6C>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>滻<EFBFBD><E6BBBB>if<69><66><EFBFBD><EFBFBD>
|
||||
uart_write_buffer(BLUETOOTH_CH9141_INDEX, buff, len); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
|
||||
// @param *str Ҫ<><D2AA><EFBFBD>͵<EFBFBD><CDB5>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>ַ
|
||||
// @return uint32 ʣ<><EFBFBD>ͳ<EFBFBD><CDB3><EFBFBD>
|
||||
// Sample usage: bluetooth_ch9141_send_string("Believe in yourself.");
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint32 bluetooth_ch9141_send_string (const char *str)
|
||||
{
|
||||
uint16 time_count = 0;
|
||||
uint32 len = strlen(str);
|
||||
while(30 < len)
|
||||
{
|
||||
time_count = 0;
|
||||
while(gpio_get_level(BLUETOOTH_CH9141_RTS_PIN)) // <20><><EFBFBD><EFBFBD>RTSΪ<53>͵<EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
if(BLUETOOTH_CH9141_TIMEOUT_COUNT > time_count ++)
|
||||
return len; // ģ<><C4A3>æ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>while<6C>ȴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ú<EFBFBD><C3BA><EFBFBD>ע<EFBFBD>͵<EFBFBD>while<6C>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>滻<EFBFBD><E6BBBB>if<69><66><EFBFBD><EFBFBD>
|
||||
system_delay_ms(1);
|
||||
}
|
||||
uart_write_buffer(BLUETOOTH_CH9141_INDEX, (const uint8 *)str, 30);
|
||||
|
||||
str += 30; // <20><>ַƫ<D6B7><C6AB>
|
||||
len -= 30; // <20><><EFBFBD><EFBFBD>
|
||||
}
|
||||
|
||||
time_count = 0;
|
||||
while(gpio_get_level(BLUETOOTH_CH9141_RTS_PIN)) // <20><><EFBFBD><EFBFBD>RTSΪ<53>͵<EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
if(BLUETOOTH_CH9141_TIMEOUT_COUNT > time_count ++)
|
||||
return len; // ģ<><C4A3>æ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>while<6C>ȴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ú<EFBFBD><C3BA><EFBFBD>ע<EFBFBD>͵<EFBFBD>while<6C>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>滻<EFBFBD><E6BBBB>if<69><66><EFBFBD><EFBFBD>
|
||||
system_delay_ms(1);
|
||||
}
|
||||
uart_write_buffer(BLUETOOTH_CH9141_INDEX, (const uint8 *)str, len); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷͼ<CDB7><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD>鿴ͼ<E9BFB4><CDBC>
|
||||
// @param *image_addr <20><>Ҫ<EFBFBD><D2AA><EFBFBD>͵<EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>ַ
|
||||
// @param image_size ͼ<><CDBC><EFBFBD>Ĵ<EFBFBD>С
|
||||
// @return void
|
||||
// Sample usage: bluetooth_ch9141_send_image(&mt9v03x_image[0][0], MT9V03X_IMAGE_SIZE);
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void bluetooth_ch9141_send_image (const uint8 *image_addr, uint32 image_size)
|
||||
{
|
||||
extern uint8 camera_send_image_frame_header[4];
|
||||
bluetooth_ch9141_send_buff(camera_send_image_frame_header, 4);
|
||||
bluetooth_ch9141_send_buff((uint8 *)image_addr, image_size);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
|
||||
// @param buff <20>洢<EFBFBD><E6B4A2><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD>ַ
|
||||
// @param len <20><><EFBFBD><EFBFBD>
|
||||
// @return uint32 ʵ<>ʶ<EFBFBD>ȡ<EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD>
|
||||
// Sample usage:
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint32 bluetooth_ch9141_read_buff (uint8 *buff, uint32 len)
|
||||
{
|
||||
uint32 data_len = len;
|
||||
fifo_read_buffer(&bluetooth_ch9141_fifo, buff, &data_len, FIFO_READ_AND_CLEAN);
|
||||
return data_len;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><>ʼ<EFBFBD><CABC>
|
||||
// @param mode <20><><EFBFBD><EFBFBD>ģʽ MASTER_MODE(<28><><EFBFBD><EFBFBD>)<29><><EFBFBD><EFBFBD>SLAVE_MODE(<28>ӻ<EFBFBD>)
|
||||
// @return uint8 <20><>ʼ<EFBFBD><CABC>״̬ 0-<2D>ɹ<EFBFBD> 1-ʧ<><CAA7>
|
||||
// Sample usage:
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><>ʼ<EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD> void
|
||||
// <EFBFBD><EFBFBD><EFBFBD>ز<EFBFBD><EFBFBD><EFBFBD> uint8 <20><>ʼ<EFBFBD><CABC>״̬ 0-<2D>ɹ<EFBFBD> 1-ʧ<EFBFBD><EFBFBD>
|
||||
// ʹ<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD> bluetooth_ch9141_init();
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint8 bluetooth_ch9141_init (void)
|
||||
{
|
||||
uint8 return_state = 0;
|
||||
set_wireless_type(BLUETOOTH_CH9141, bluetooth_ch9141_uart_callback);
|
||||
|
||||
fifo_init(&bluetooth_ch9141_fifo, FIFO_DATA_8BIT, bluetooth_ch9141_buffer, BLUETOOTH_CH9141_BUFFER_SIZE);
|
||||
@@ -203,5 +250,5 @@ uint8 bluetooth_ch9141_init (void)
|
||||
uart_init(BLUETOOTH_CH9141_INDEX, BLUETOOTH_CH9141_BUAD_RATE, BLUETOOTH_CH9141_RX_PIN, BLUETOOTH_CH9141_TX_PIN);
|
||||
uart_rx_interrupt(BLUETOOTH_CH9141_INDEX, 1);
|
||||
|
||||
return 0;
|
||||
return return_state;
|
||||
}
|
||||
|
||||
@@ -48,7 +48,6 @@
|
||||
#define _zf_device_bluetooth_ch9141_h_
|
||||
|
||||
#include "zf_common_typedef.h"
|
||||
#include "zf_device_type.h"
|
||||
|
||||
|
||||
//=================================================9141<34><31><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||
|
||||
@@ -33,6 +33,7 @@
|
||||
* 2022-09-15 pudding first version
|
||||
********************************************************************************************************************/
|
||||
|
||||
#include "zf_common_debug.h"
|
||||
#include "zf_common_interrupt.h"
|
||||
#include "zf_driver_gpio.h"
|
||||
#include "zf_driver_dma.h"
|
||||
@@ -58,7 +59,8 @@ uint8 camera_send_image_frame_header[4] = {0x00, 0xFF, 0x01, 0x01};
|
||||
void camera_binary_image_decompression (const uint8 *data1, uint8 *data2, uint32 image_size)
|
||||
{
|
||||
uint8 i = 8;
|
||||
|
||||
zf_assert(data1 != NULL);
|
||||
zf_assert(data2 != NULL);
|
||||
while(image_size --)
|
||||
{
|
||||
i = 8;
|
||||
@@ -80,6 +82,7 @@ void camera_binary_image_decompression (const uint8 *data1, uint8 *data2, uint32
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void camera_send_image (uart_index_enum uartn, const uint8 *image_addr, uint32 image_size)
|
||||
{
|
||||
zf_assert(image_addr != NULL);
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
uart_write_buffer(uartn, camera_send_image_frame_header, 4);
|
||||
|
||||
@@ -157,7 +160,7 @@ uint8 camera_init (void)
|
||||
EXTI_TRIGGER_RISING,
|
||||
SCC8660_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_RISING); // <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>жϣ<D0B6><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>½<EFBFBD><C2BD>ش<EFBFBD><D8B4><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
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;
|
||||
|
||||
@@ -45,7 +45,6 @@
|
||||
|
||||
#include "zf_common_function.h"
|
||||
#include "zf_common_fifo.h"
|
||||
#include "zf_common_interrupt.h"
|
||||
#include "zf_driver_delay.h"
|
||||
#include "zf_driver_uart.h"
|
||||
#include "zf_device_type.h"
|
||||
@@ -53,7 +52,7 @@
|
||||
|
||||
#define GPS_TAU1201_BUFFER_SIZE (128)
|
||||
|
||||
vuint8 gps_tau1201_flag; // 1<><31><EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD>ɵȴ<C9B5><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0<><30>û<EFBFBD>вɼ<D0B2><C9BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
uint8 gps_tau1201_flag; // 1<><31><EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD>ɵȴ<C9B5><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0<><30>û<EFBFBD>вɼ<D0B2><C9BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
gps_info_struct gps_tau1201; // GPS<50><53><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
static uint8 gps_tau1201_state = 0; // 1<><31>GPS<50><53>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
@@ -118,7 +117,7 @@ static int get_int_number (char *s)
|
||||
i = i - 1;
|
||||
strncpy(buf, s, i);
|
||||
buf[i] = 0;
|
||||
return_value = str_to_int(buf);
|
||||
return_value = func_str_to_int(buf);
|
||||
return return_value;
|
||||
}
|
||||
|
||||
@@ -139,7 +138,7 @@ static float get_float_number (char *s)
|
||||
i = i - 1;
|
||||
strncpy(buf, s, i);
|
||||
buf[i] = 0;
|
||||
return_value = (float)str_to_double(buf);
|
||||
return_value = (float)func_str_to_double(buf);
|
||||
return return_value;
|
||||
}
|
||||
|
||||
@@ -160,7 +159,7 @@ static double get_double_number (char *s)
|
||||
i = i - 1;
|
||||
strncpy(buf, s, i);
|
||||
buf[i] = 0;
|
||||
return_value = str_to_double(buf);
|
||||
return_value = func_str_to_double(buf);
|
||||
return return_value;
|
||||
}
|
||||
|
||||
@@ -186,12 +185,12 @@ static void utc_to_btc (gps_time_struct *time)
|
||||
day_num = 28;
|
||||
if((time->year % 4 == 0 && time->year % 100 != 0) || time->year % 400 == 0) // <20>ж<EFBFBD><D0B6>Ƿ<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>
|
||||
{
|
||||
day_num ++; // <20><><EFBFBD><EFBFBD> 2<><32>Ϊ29<32><39>
|
||||
day_num ++; // <20><><EFBFBD><EFBFBD> 2<><32>Ϊ29<32><39>
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
day_num = 31; // 1 3 5 7 8 10 12<31><32>Щ<EFBFBD>·<EFBFBD>Ϊ31<33><31>
|
||||
day_num = 31; // 1 3 5 7 8 10 12<31><32>Щ<EFBFBD>·<EFBFBD>Ϊ31<33><31>
|
||||
if(4 == time->month || 6 == time->month || 9 == time->month || 11 == time->month )
|
||||
{
|
||||
day_num = 30;
|
||||
@@ -297,7 +296,7 @@ static uint8 gps_gngga_parse (char *line, gps_info_struct *gps)
|
||||
|
||||
if (state != ',')
|
||||
{
|
||||
gps->satellite_used = (uint8)(get_int_number(&buf[get_parameter_index(7, buf)]));
|
||||
gps->satellite_used = (uint8)get_int_number(&buf[get_parameter_index(7, buf)]);
|
||||
gps->height = get_float_number(&buf[get_parameter_index(9, buf)]) + get_float_number(&buf[get_parameter_index(11, buf)]); // <20>߶<EFBFBD> = <20><><EFBFBD>θ߶<CEB8> + <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD>ˮ<CBAE><D7BC><EFBFBD>ĸ߶<C4B8>
|
||||
return_state = 1;
|
||||
}
|
||||
@@ -384,7 +383,7 @@ uint8 gps_data_parse (void)
|
||||
{
|
||||
gps_rmc_state = GPS_STATE_PARSING;
|
||||
strncpy((char *)&check_buffer[2], strchr((const char *)gps_rmc_buffer, '*')+1, 2);
|
||||
bbc_xor_origin = (uint8)str_to_hex((char *)check_buffer);
|
||||
bbc_xor_origin = (uint8)func_str_to_hex((char *)check_buffer);
|
||||
for(bbc_xor_calculation = gps_rmc_buffer[1], data_len = 2; gps_rmc_buffer[data_len] != '*'; data_len ++)
|
||||
{
|
||||
bbc_xor_calculation ^= gps_rmc_buffer[data_len];
|
||||
@@ -404,7 +403,7 @@ uint8 gps_data_parse (void)
|
||||
{
|
||||
gps_gga_state = GPS_STATE_PARSING;
|
||||
strncpy((char *)&check_buffer[2], strchr((const char *)gps_gga_buffer, '*')+1, 2);
|
||||
bbc_xor_origin = (uint8)str_to_hex((char *)check_buffer);
|
||||
bbc_xor_origin = (uint8)func_str_to_hex((char *)check_buffer);
|
||||
|
||||
for(bbc_xor_calculation = gps_gga_buffer[1], data_len = 2; gps_gga_buffer[data_len] != '*'; data_len ++)
|
||||
{
|
||||
@@ -505,10 +504,12 @@ uint8 gps_init (void)
|
||||
const uint8 close_txt[] = {0xF1, 0xD9, 0x06, 0x01, 0x03, 0x00, 0xF0, 0x40, 0x00, 0x3A, 0x8F};
|
||||
const uint8 close_txt_ant[] = {0xF1, 0xD9, 0x06, 0x01, 0x03, 0x00, 0xF0, 0x20, 0x00, 0x1A, 0x4F};
|
||||
|
||||
set_wireless_type(GPS_TAU1201, gps_uart_callback);
|
||||
fifo_init(&gps_tau1201_receiver_fifo, FIFO_DATA_8BIT, gps_tau1201_receiver_buffer, GPS_TAU1201_BUFFER_SIZE);
|
||||
system_delay_ms(500); // <20>ȴ<EFBFBD>GPS<50><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>ʼ<EFBFBD><CABC>
|
||||
uart_init(GPS_TAU1201_UART, 115200, GPS_TAU1201_RX, GPS_TAU1201_TX);
|
||||
|
||||
set_wireless_type(GPS_TAU1201, gps_uart_callback);
|
||||
|
||||
uart_write_buffer(GPS_TAU1201_UART, (uint8 *)set_rate, sizeof(set_rate)); // <20><><EFBFBD><EFBFBD>GPS<50><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ10hz <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>Ϊ1hz
|
||||
system_delay_ms(200);
|
||||
|
||||
|
||||
@@ -100,7 +100,7 @@ typedef enum
|
||||
|
||||
//==============================================<3D><><EFBFBD><EFBFBD> GPS <20><><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD>===================================================
|
||||
extern gps_info_struct gps_tau1201;
|
||||
extern vuint8 gps_tau1201_flag;
|
||||
extern uint8 gps_tau1201_flag;
|
||||
//==============================================<3D><><EFBFBD><EFBFBD> GPS <20><><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD>===================================================
|
||||
|
||||
//================================================GPS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||
|
||||
@@ -236,7 +236,7 @@ float icm20602_acc_transition (int16 acc_value)
|
||||
float icm20602_gyro_transition (int16 gyro_value)
|
||||
{
|
||||
float gyro_data = 0;
|
||||
switch(ICM20602_GYRO_SAMPLE)
|
||||
switch(ICM20602_GYR_SAMPLE)
|
||||
{
|
||||
case 0x00: gyro_data = (float)gyro_value / 131.2f; break; // 0x00 <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 <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 0x08: gyro_data = (float)gyro_value / 65.6f; break; // 0x08 <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.5 <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
|
||||
@@ -305,7 +305,7 @@ uint8 icm20602_init (void)
|
||||
icm20602_write_register(ICM20602_PWR_MGMT_2, 0x00); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǻͼ<C7BA><CDBC>ٶȼ<D9B6>
|
||||
icm20602_write_register(ICM20602_CONFIG, 0x01); // 176HZ 1KHZ
|
||||
icm20602_write_register(ICM20602_SMPLRT_DIV, 0x07); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SAMPLE_RATE = INTERNAL_SAMPLE_RATE / (1 + SMPLRT_DIV)
|
||||
icm20602_write_register(ICM20602_GYRO_CONFIG, ICM20602_GYRO_SAMPLE); // <20><>2000 dps
|
||||
icm20602_write_register(ICM20602_GYRO_CONFIG, ICM20602_GYR_SAMPLE); // <20><>2000 dps
|
||||
icm20602_write_register(ICM20602_ACCEL_CONFIG, ICM20602_ACC_SAMPLE); // <20><>8g
|
||||
icm20602_write_register(ICM20602_ACCEL_CONFIG_2, 0x03); // Average 4 samples 44.8HZ //0x23 Average 16 samples
|
||||
// ICM20602_GYRO_CONFIG<49>Ĵ<EFBFBD><C4B4><EFBFBD>
|
||||
|
||||
@@ -103,9 +103,7 @@
|
||||
#define ICM20602_SMPLRT_DIV (0x19)
|
||||
#define ICM20602_CONFIG (0x1A)
|
||||
#define ICM20602_GYRO_CONFIG (0x1B)
|
||||
#define ICM20602_GYRO_SAMPLE (0x18) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define ICM20602_ACCEL_CONFIG (0x1C)
|
||||
#define ICM20602_ACC_SAMPLE (0x10) // <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define ICM20602_ACCEL_CONFIG_2 (0x1D)
|
||||
#define ICM20602_LP_MODE_CFG (0x1E)
|
||||
#define ICM20602_ACCEL_WOM_X_THR (0x20)
|
||||
@@ -152,6 +150,19 @@
|
||||
#define ICM20602_YA_OFFSET_L (0x7B)
|
||||
#define ICM20602_ZA_OFFSET_H (0x7D)
|
||||
#define ICM20602_ZA_OFFSET_L (0x7E)
|
||||
|
||||
#define ICM20602_ACC_SAMPLE (0x10) // <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><DDA3><EFBFBD>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x08 <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><DDA3><EFBFBD>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x10 <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><DDA3><EFBFBD>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x18 <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><DDA3><EFBFBD>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
|
||||
#define ICM20602_GYR_SAMPLE (0x18) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x00 <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 <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>Ϊ:0x08 <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.5 <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>Ϊ:0x10 <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><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x18 <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><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
|
||||
//================================================<3D><><EFBFBD><EFBFBD> ICM20602 <20>ڲ<EFBFBD><DAB2><EFBFBD>ַ================================================
|
||||
|
||||
//===============================================<3D><><EFBFBD><EFBFBD> ICM20602 <20><><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD>==============================================
|
||||
|
||||
@@ -98,10 +98,21 @@
|
||||
#define IMU660RA_GYRO_ADDRESS (0x12)
|
||||
#define IMU660RA_ACC_CONF (0x40)
|
||||
#define IMU660RA_ACC_RANGE (0x41)
|
||||
#define IMU660RA_ACC_SAMPLE (0x02) // <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
#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><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
|
||||
|
||||
#define IMU660RA_GYR_SAMPLE (0x00) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><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)
|
||||
|
||||
//================================================<3D><><EFBFBD><EFBFBD> IMU660RA <20>ڲ<EFBFBD><DAB2><EFBFBD>ַ================================================
|
||||
|
||||
//===============================================<3D><><EFBFBD><EFBFBD> IMU660RA <20><><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD>===============================================
|
||||
|
||||
@@ -375,7 +375,7 @@ float imu963ra_acc_transition (int16 acc_value)
|
||||
float imu963ra_gyro_transition (int16 gyro_value)
|
||||
{
|
||||
float gyro_data = 0;
|
||||
switch(IMU963RA_GYRO_SAMPLE)
|
||||
switch(IMU963RA_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
|
||||
@@ -440,14 +440,14 @@ uint8 imu963ra_init (void)
|
||||
}
|
||||
|
||||
imu963ra_write_acc_gyro_register(IMU963RA_INT1_CTRL, 0x03); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD>ݾ<EFBFBD><DDBE><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
imu963ra_write_acc_gyro_register(IMU963RA_CTRL1_XL, 0x3C); // <20><><EFBFBD>ü<EFBFBD><C3BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD>̡<EFBFBD>8G<38>Լ<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>
|
||||
imu963ra_write_acc_gyro_register(IMU963RA_CTRL1_XL, IMU963RA_ACC_SAMPLE); // <20><><EFBFBD>ü<EFBFBD><C3BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD>̡<EFBFBD>8G<38>Լ<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>
|
||||
// IMU963RA_CTRL1_XL <20>Ĵ<EFBFBD><C4B4><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)
|
||||
|
||||
imu963ra_write_acc_gyro_register(IMU963RA_CTRL2_G, 0x5C); // <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
|
||||
imu963ra_write_acc_gyro_register(IMU963RA_CTRL2_G, IMU963RA_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
|
||||
// IMU963RA_CTRL2_G <20>Ĵ<EFBFBD><C4B4><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
|
||||
@@ -482,7 +482,7 @@ uint8 imu963ra_init (void)
|
||||
break;
|
||||
}
|
||||
|
||||
imu963ra_write_mag_register(IMU963RA_MAG_ADDR, IMU963RA_MAG_CONTROL1, 0x19); // <20><><EFBFBD>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>8G <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>100hz <20><><EFBFBD><EFBFBD>ģʽ
|
||||
imu963ra_write_mag_register(IMU963RA_MAG_ADDR, IMU963RA_MAG_CONTROL1, IMU963RA_MAG_SAMPLE); // <20><><EFBFBD>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>8G <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>100hz <20><><EFBFBD><EFBFBD>ģʽ
|
||||
// IMU963RA_MAG_ADDR <20>Ĵ<EFBFBD><C4B4><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x19 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:8G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>3000<30><30> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λ<EFBFBD><CEBB>G(<28><>˹)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x09 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:2G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>12000<30><30><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(<28><>˹)
|
||||
|
||||
@@ -90,9 +90,7 @@
|
||||
#define IMU963RA_INT1_CTRL (0x0D)
|
||||
#define IMU963RA_WHO_AM_I (0x0F)
|
||||
#define IMU963RA_CTRL1_XL (0x10)
|
||||
#define IMU963RA_ACC_SAMPLE (0x3C) // <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define IMU963RA_CTRL2_G (0x11)
|
||||
#define IMU963RA_GYRO_SAMPLE (0x5C) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define IMU963RA_CTRL3_C (0x12)
|
||||
#define IMU963RA_CTRL4_C (0x13)
|
||||
#define IMU963RA_CTRL5_C (0x14)
|
||||
@@ -114,10 +112,28 @@
|
||||
#define IMU963RA_MAG_ADDR (0x0D) // 7λIIC<49><43>ַ
|
||||
#define IMU963RA_MAG_OUTX_L (0x00)
|
||||
#define IMU963RA_MAG_CONTROL1 (0x09)
|
||||
#define IMU963RA_MAG_SAMPLE (0x19) // <20>شż<D8B4><C5BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define IMU963RA_MAG_CONTROL2 (0x0A)
|
||||
#define IMU963RA_MAG_FBR (0x0B)
|
||||
#define IMU963RA_MAG_CHIP_ID (0x0D)
|
||||
|
||||
#define IMU963RA_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 IMU963RA_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
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ: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
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ: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
|
||||
// <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
|
||||
|
||||
#define IMU963RA_MAG_SAMPLE (0x19) // <20>شż<D8B4><C5BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x19 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:8G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>3000<30><30> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λ<EFBFBD><CEBB>G(<28><>˹)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x09 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:2G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>12000<30><30><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(<28><>˹)
|
||||
|
||||
//================================================<3D><><EFBFBD><EFBFBD> IMU963RA <20>ڲ<EFBFBD><DAB2><EFBFBD>ַ================================================
|
||||
|
||||
//===============================================<3D><><EFBFBD><EFBFBD> IMU963RA <20><><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD>===============================================
|
||||
|
||||
@@ -366,7 +366,7 @@ void ips114_draw_line (uint16 x_start, uint16 y_start, uint16 x_end, uint16 y_en
|
||||
}
|
||||
break;
|
||||
}
|
||||
if(myabs(y_start - y_end) > myabs(x_start - x_end))
|
||||
if(func_abs(y_start - y_end) > func_abs(x_start - x_end))
|
||||
{
|
||||
while(y_start != y_end)
|
||||
{
|
||||
@@ -538,7 +538,7 @@ void ips114_show_int (uint16 x, uint16 y, const int32 dat, uint8 num)
|
||||
}
|
||||
dat_temp %= offset;
|
||||
}
|
||||
int_to_str(data_buffer, dat_temp);
|
||||
func_int_to_str(data_buffer, dat_temp);
|
||||
ips114_show_string(x, y, (const char *)&data_buffer);
|
||||
}
|
||||
|
||||
@@ -575,7 +575,7 @@ void ips114_show_uint (uint16 x, uint16 y, const uint32 dat, uint8 num)
|
||||
}
|
||||
dat_temp %= offset;
|
||||
}
|
||||
uint_to_str(data_buffer, dat_temp);
|
||||
func_uint_to_str(data_buffer, dat_temp);
|
||||
ips114_show_string(x, y, (const char *)&data_buffer);
|
||||
}
|
||||
|
||||
@@ -584,7 +584,7 @@ void ips114_show_uint (uint16 x, uint16 y, const uint32 dat, uint8 num)
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ [0, ips114_x_max-1]
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ [0, ips114_y_max-1]
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> float <20><> double
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> num <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>10λ
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> num <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>8λ
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> pointnum С<><D0A1>λ<EFBFBD><CEBB>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>6λ
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> ips114_show_float(0, 0, x, 2, 3); // <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ 2 λ С<><D0A1><EFBFBD><EFBFBD>ʾ 3 λ
|
||||
@@ -618,7 +618,7 @@ void ips114_show_float (uint16 x, uint16 y, const float dat, uint8 num, uint8 po
|
||||
}
|
||||
dat_temp = dat_temp - ((int)dat_temp / (int)offset) * offset;
|
||||
}
|
||||
float_to_str(data_buffer, dat_temp, pointnum);
|
||||
func_float_to_str(data_buffer, dat_temp, pointnum);
|
||||
ips114_show_string(x, y, data_buffer);
|
||||
}
|
||||
|
||||
@@ -641,6 +641,7 @@ void ips114_show_binary_image (uint16 x, uint16 y, const uint8 *image, uint16 wi
|
||||
// <20><>ôһ<C3B4><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE>ʱ<EFBFBD><EFBFBD><F2B3ACB9><EFBFBD>Ļ<EFBFBD>ֱ<EFBFBD><D6B1>ʷ<EFBFBD>Χ<EFBFBD><CEA7>
|
||||
zf_assert(x < ips114_x_max);
|
||||
zf_assert(y < ips114_y_max);
|
||||
zf_assert(image != NULL);
|
||||
|
||||
uint32 i = 0, j = 0;
|
||||
uint8 temp = 0;
|
||||
@@ -689,6 +690,7 @@ void ips114_show_gray_image (uint16 x, uint16 y, const uint8 *image, uint16 widt
|
||||
// <20><>ôһ<C3B4><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE>ʱ<EFBFBD><EFBFBD><F2B3ACB9><EFBFBD>Ļ<EFBFBD>ֱ<EFBFBD><D6B1>ʷ<EFBFBD>Χ<EFBFBD><CEA7>
|
||||
zf_assert(x < ips114_x_max);
|
||||
zf_assert(y < ips114_y_max);
|
||||
zf_assert(image != NULL);
|
||||
|
||||
uint32 i = 0, j = 0;
|
||||
uint16 color = 0,temp = 0;
|
||||
@@ -744,6 +746,7 @@ void ips114_show_rgb565_image (uint16 x, uint16 y, const uint16 *image, uint16 w
|
||||
// <20><>ôһ<C3B4><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE>ʱ<EFBFBD><EFBFBD><F2B3ACB9><EFBFBD>Ļ<EFBFBD>ֱ<EFBFBD><D6B1>ʷ<EFBFBD>Χ<EFBFBD><CEA7>
|
||||
zf_assert(x < ips114_x_max);
|
||||
zf_assert(y < ips114_y_max);
|
||||
zf_assert(image != NULL);
|
||||
|
||||
uint32 i = 0, j = 0;
|
||||
uint16 color = 0;
|
||||
@@ -788,6 +791,7 @@ void ips114_show_wave (uint16 x, uint16 y, const uint16 *wave, uint16 width, uin
|
||||
// <20><>ôһ<C3B4><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE>ʱ<EFBFBD><EFBFBD><F2B3ACB9><EFBFBD>Ļ<EFBFBD>ֱ<EFBFBD><D6B1>ʷ<EFBFBD>Χ<EFBFBD><CEA7>
|
||||
zf_assert(x < ips114_x_max);
|
||||
zf_assert(y < ips114_y_max);
|
||||
zf_assert(wave != NULL);
|
||||
|
||||
uint32 i = 0, j = 0;
|
||||
uint32 width_index = 0, value_max_index = 0;
|
||||
@@ -829,6 +833,7 @@ void ips114_show_chinese (uint16 x, uint16 y, uint8 size, const uint8 *chinese_b
|
||||
// <20><>ôһ<C3B4><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE>ʱ<EFBFBD><EFBFBD><F2B3ACB9><EFBFBD>Ļ<EFBFBD>ֱ<EFBFBD><D6B1>ʷ<EFBFBD>Χ<EFBFBD><CEA7>
|
||||
zf_assert(x < ips114_x_max);
|
||||
zf_assert(y < ips114_y_max);
|
||||
zf_assert(chinese_buffer != NULL);
|
||||
|
||||
int i, j, k;
|
||||
uint8 temp, temp1, temp2;
|
||||
@@ -882,9 +887,9 @@ void ips114_init (void)
|
||||
spi_init(IPS114_SPI, SPI_MODE0, IPS114_SPI_SPEED, IPS114_SCL_PIN, IPS114_SDA_PIN, IPS114_SDA_IN_PIN, SPI_CS_NULL);
|
||||
#endif
|
||||
|
||||
gpio_init(IPS114_DC_PIN, GPO, GPIO_LOW, GPO_PUSH_PULL);
|
||||
gpio_init(IPS114_RST_PIN, GPO, GPIO_LOW, GPO_PUSH_PULL);
|
||||
gpio_init(IPS114_CS_PIN, GPO, GPIO_HIGH, GPO_PUSH_PULL);
|
||||
gpio_init(IPS114_DC_PIN, GPO, GPIO_LOW, GPO_PUSH_PULL);
|
||||
gpio_init(IPS114_RST_PIN, GPO, GPIO_LOW, GPO_PUSH_PULL);
|
||||
gpio_init(IPS114_CS_PIN, GPO, GPIO_HIGH, GPO_PUSH_PULL);
|
||||
gpio_init(IPS114_BLK_PIN, GPO, GPIO_HIGH, GPO_PUSH_PULL);
|
||||
|
||||
ips114_set_dir(ips114_display_dir);
|
||||
|
||||
@@ -452,7 +452,7 @@ void ips200_draw_line (uint16 x_start, uint16 y_start, uint16 x_end, uint16 y_en
|
||||
}
|
||||
break;
|
||||
}
|
||||
if(myabs(y_start - y_end) > myabs(x_start - x_end))
|
||||
if(func_abs(y_start - y_end) > func_abs(x_start - x_end))
|
||||
{
|
||||
while(y_start != y_end)
|
||||
{
|
||||
@@ -630,7 +630,7 @@ void ips200_show_int (uint16 x, uint16 y, const int32 dat, uint8 num)
|
||||
}
|
||||
dat_temp %= offset;
|
||||
}
|
||||
int_to_str(data_buffer, dat_temp);
|
||||
func_int_to_str(data_buffer, dat_temp);
|
||||
ips200_show_string(x, y, (const char *)&data_buffer);
|
||||
}
|
||||
|
||||
@@ -667,7 +667,7 @@ void ips200_show_uint (uint16 x, uint16 y, const uint32 dat, uint8 num)
|
||||
}
|
||||
dat_temp %= offset;
|
||||
}
|
||||
uint_to_str(data_buffer, dat_temp);
|
||||
func_uint_to_str(data_buffer, dat_temp);
|
||||
ips200_show_string(x, y, (const char *)&data_buffer);
|
||||
}
|
||||
|
||||
@@ -710,7 +710,7 @@ void ips200_show_float (uint16 x, uint16 y, const float dat, uint8 num, uint8 po
|
||||
}
|
||||
dat_temp = dat_temp - ((int)dat_temp / (int)offset) * offset;
|
||||
}
|
||||
float_to_str(data_buffer, dat_temp, pointnum);
|
||||
func_float_to_str(data_buffer, dat_temp, pointnum);
|
||||
ips200_show_string(x, y, data_buffer);
|
||||
}
|
||||
|
||||
@@ -733,6 +733,7 @@ void ips200_show_binary_image (uint16 x, uint16 y, const uint8 *image, uint16 wi
|
||||
// <20><>ôһ<C3B4><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE>ʱ<EFBFBD><EFBFBD><F2B3ACB9><EFBFBD>Ļ<EFBFBD>ֱ<EFBFBD><D6B1>ʷ<EFBFBD>Χ<EFBFBD><CEA7>
|
||||
zf_assert(x < ips200_x_max);
|
||||
zf_assert(y < ips200_y_max);
|
||||
zf_assert(image != NULL);
|
||||
|
||||
uint32 i = 0, j = 0;
|
||||
uint8 temp = 0;
|
||||
@@ -787,6 +788,7 @@ void ips200_show_gray_image (uint16 x, uint16 y, const uint8 *image, uint16 widt
|
||||
// <20><>ôһ<C3B4><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE>ʱ<EFBFBD><EFBFBD><F2B3ACB9><EFBFBD>Ļ<EFBFBD>ֱ<EFBFBD><D6B1>ʷ<EFBFBD>Χ<EFBFBD><CEA7>
|
||||
zf_assert(x < ips200_x_max);
|
||||
zf_assert(y < ips200_y_max);
|
||||
zf_assert(image != NULL);
|
||||
|
||||
uint32 i = 0, j = 0;
|
||||
uint16 color = 0,temp = 0;
|
||||
@@ -848,6 +850,7 @@ void ips200_show_rgb565_image (uint16 x, uint16 y, const uint16 *image, uint16 w
|
||||
// <20><>ôһ<C3B4><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE>ʱ<EFBFBD><EFBFBD><F2B3ACB9><EFBFBD>Ļ<EFBFBD>ֱ<EFBFBD><D6B1>ʷ<EFBFBD>Χ<EFBFBD><CEA7>
|
||||
zf_assert(x < ips200_x_max);
|
||||
zf_assert(y < ips200_y_max);
|
||||
zf_assert(image != NULL);
|
||||
|
||||
uint32 i = 0, j = 0;
|
||||
uint16 color = 0;
|
||||
@@ -898,6 +901,7 @@ void ips200_show_wave (uint16 x, uint16 y, const uint16 *wave, uint16 width, uin
|
||||
// <20><>ôһ<C3B4><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE>ʱ<EFBFBD><EFBFBD><F2B3ACB9><EFBFBD>Ļ<EFBFBD>ֱ<EFBFBD><D6B1>ʷ<EFBFBD>Χ<EFBFBD><CEA7>
|
||||
zf_assert(x < ips200_x_max);
|
||||
zf_assert(y < ips200_y_max);
|
||||
zf_assert(wave != NULL);
|
||||
|
||||
uint32 i = 0, j = 0;
|
||||
uint32 width_index = 0, value_max_index = 0;
|
||||
@@ -945,6 +949,7 @@ void ips200_show_chinese (uint16 x, uint16 y, uint8 size, const uint8 *chinese_b
|
||||
// <20><>ôһ<C3B4><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE>ʱ<EFBFBD><EFBFBD><F2B3ACB9><EFBFBD>Ļ<EFBFBD>ֱ<EFBFBD><D6B1>ʷ<EFBFBD>Χ<EFBFBD><CEA7>
|
||||
zf_assert(x < ips200_x_max);
|
||||
zf_assert(y < ips200_y_max);
|
||||
zf_assert(chinese_buffer != NULL);
|
||||
|
||||
int i, j, k;
|
||||
uint8 temp, temp1, temp2;
|
||||
|
||||
@@ -160,7 +160,7 @@ float mpu6050_acc_transition (int16 acc_value)
|
||||
float mpu6050_gyro_transition (int16 gyro_value)
|
||||
{
|
||||
float gyro_data = 0;
|
||||
switch(MPU6050_GYRO_SAMPLE)
|
||||
switch(MPU6050_GYR_SAMPLE)
|
||||
{
|
||||
case 0x00: gyro_data = (float)gyro_value / 131.2f; break; // 0x00 <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 <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 0x08: gyro_data = (float)gyro_value / 65.6f; break; // 0x08 <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.5 <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
|
||||
@@ -202,7 +202,7 @@ uint8 mpu6050_init (void)
|
||||
mpu6050_write_register(MPU6050_PWR_MGMT_1, 0x00); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
||||
mpu6050_write_register(MPU6050_SMPLRT_DIV, 0x07); // 125HZ<48><5A><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
mpu6050_write_register(MPU6050_CONFIG, 0x04);
|
||||
mpu6050_write_register(MPU6050_GYRO_CONFIG, MPU6050_GYRO_SAMPLE); // 2000<30><30>/s
|
||||
mpu6050_write_register(MPU6050_GYRO_CONFIG, MPU6050_GYR_SAMPLE); // 2000<30><30>/s
|
||||
mpu6050_write_register(MPU6050_ACCEL_CONFIG, MPU6050_ACC_SAMPLE); // 8g(m/s^2)
|
||||
mpu6050_write_register(MPU6050_USER_CONTROL, 0x00);
|
||||
mpu6050_write_register(MPU6050_INT_PIN_CFG, 0x02);
|
||||
|
||||
@@ -74,14 +74,26 @@
|
||||
#define MPU6050_SMPLRT_DIV (0x19) // <20><><EFBFBD><EFBFBD><EFBFBD>Dz<EFBFBD><C7B2><EFBFBD><EFBFBD>ʣ<EFBFBD><CAA3><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>0x07(125Hz)
|
||||
#define MPU6050_CONFIG (0x1A) // <20><>ͨ<EFBFBD>˲<EFBFBD>Ƶ<EFBFBD>ʣ<EFBFBD><CAA3><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>0x06(5Hz)
|
||||
#define MPU6050_GYRO_CONFIG (0x1B) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ켰<D4BC><ECBCB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ<EFBFBD><CEA7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>0x18(<28><><EFBFBD>Լ죬2000deg/s)
|
||||
#define MPU6050_GYRO_SAMPLE (0x18) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define MPU6050_ACCEL_CONFIG (0x1C) // <20><><EFBFBD>ټ<EFBFBD><D9BC>Լ졢<D4BC><ECA1A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ<EFBFBD><CEA7><EFBFBD><EFBFBD>ͨ<EFBFBD>˲<EFBFBD>Ƶ<EFBFBD>ʣ<EFBFBD><CAA3><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>0x01(<28><><EFBFBD>Լ죬2G<32><47>5Hz)
|
||||
#define MPU6050_ACC_SAMPLE (0x10) // <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define MPU6050_INT_PIN_CFG (0x37) // <20><><EFBFBD><EFBFBD>6050<35><30><EFBFBD><EFBFBD>I2CΪֱͨģʽ<C4A3>Ĵ<EFBFBD><C4B4><EFBFBD>
|
||||
#define MPU6050_ACCEL_XOUT_H (0x3B)
|
||||
#define MPU6050_GYRO_XOUT_H (0x43)
|
||||
#define MPU6050_USER_CONTROL (0x6A) // <20>ر<EFBFBD>6050<35>Ը<EFBFBD><D4B8><EFBFBD>I2C<32>豸<EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD>
|
||||
#define MPU6050_PWR_MGMT_1 (0x6B) // <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>0x00(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
#define MPU6050_WHO_AM_I (0x75) // IIC<49><43>ַ<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>(Ĭ<><C4AC><EFBFBD><EFBFBD>ֵ0x68<36><38>ֻ<EFBFBD><D6BB>)
|
||||
|
||||
#define MPU6050_ACC_SAMPLE (0x10) // <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x00 <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><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x08 <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><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x10 <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><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x18 <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><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
|
||||
#define MPU6050_GYR_SAMPLE (0x18) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x00 <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><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x08 <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><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x10 <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><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x18 <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><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
|
||||
//================================================<3D><><EFBFBD><EFBFBD> MPU6050 <20>ڲ<EFBFBD><DAB2><EFBFBD>ַ================================================
|
||||
|
||||
//================================================<3D><><EFBFBD><EFBFBD> MPU6050 <20><><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD>==============================================
|
||||
|
||||
@@ -350,7 +350,7 @@ void oled_show_int (uint16 x, uint16 y, const int32 dat, uint8 num)
|
||||
}
|
||||
dat_temp %= offset;
|
||||
}
|
||||
int_to_str(data_buffer, dat_temp);
|
||||
func_int_to_str(data_buffer, dat_temp);
|
||||
oled_show_string(x, y, (const char *)&data_buffer);
|
||||
}
|
||||
|
||||
@@ -389,7 +389,7 @@ void oled_show_uint (uint16 x,uint16 y,const uint32 dat,uint8 num)
|
||||
}
|
||||
dat_temp %= offset;
|
||||
}
|
||||
uint_to_str(data_buffer, dat_temp);
|
||||
func_uint_to_str(data_buffer, dat_temp);
|
||||
oled_show_string(x, y, (const char *)&data_buffer);
|
||||
}
|
||||
|
||||
@@ -398,7 +398,7 @@ void oled_show_uint (uint16 x,uint16 y,const uint32 dat,uint8 num)
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> x x <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0-127
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> y y <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0-7
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>float<61><74>double
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> num <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>10λ
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> num <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>8λ
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> pointnum С<><D0A1>λ<EFBFBD><CEBB>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>6λ
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> oled_show_float(0, 0, x, 2, 3); // <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ2λ С<><D0A1><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>λ
|
||||
@@ -434,7 +434,7 @@ void oled_show_float (uint16 x,uint16 y,const float dat,uint8 num,uint8 pointnum
|
||||
}
|
||||
dat_temp = dat_temp - ((int)dat_temp / (int)offset) * offset;
|
||||
}
|
||||
float_to_str(data_buffer, dat_temp, pointnum);
|
||||
func_float_to_str(data_buffer, dat_temp, pointnum);
|
||||
oled_show_string(x, y, data_buffer);
|
||||
}
|
||||
|
||||
@@ -458,6 +458,7 @@ void oled_show_binary_image (uint16 x, uint16 y, const uint8 *image, uint16 widt
|
||||
// <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD>õĺ<C3B5><C4BA><EFBFBD> <20>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ﳬ<EFBFBD><EFB3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE>Χ
|
||||
zf_assert(x < 128);
|
||||
zf_assert(y < 8);
|
||||
zf_assert(image != NULL);
|
||||
|
||||
uint32 i = 0, j = 0, z = 0;
|
||||
uint8 dat;
|
||||
@@ -536,6 +537,7 @@ void oled_show_gray_image (uint16 x, uint16 y, const uint8 *image, uint16 width,
|
||||
// <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD>õĺ<C3B5><C4BA><EFBFBD> <20>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ﳬ<EFBFBD><EFB3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE>Χ
|
||||
zf_assert(x < 128);
|
||||
zf_assert(y < 8);
|
||||
zf_assert(image != NULL);
|
||||
|
||||
int16 i, j;
|
||||
uint8 dat;
|
||||
@@ -609,6 +611,7 @@ void oled_show_wave (uint16 x, uint16 y, const uint16 *wave, uint16 width, uint1
|
||||
// <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD>õĺ<C3B5><C4BA><EFBFBD> <20>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ﳬ<EFBFBD><EFB3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE>Χ
|
||||
zf_assert(x < 128);
|
||||
zf_assert(y < 8);
|
||||
zf_assert(wave != NULL);
|
||||
|
||||
uint32 i = 0;
|
||||
uint32 width_index = 0, value_max_index = 0;
|
||||
@@ -655,6 +658,7 @@ void oled_show_chinese (uint16 x, uint16 y, uint8 size, const uint8 *chinese_buf
|
||||
// <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD>õĺ<C3B5><C4BA><EFBFBD> <20>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ﳬ<EFBFBD><EFB3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE>Χ
|
||||
zf_assert(x < 128);
|
||||
zf_assert(y < 8);
|
||||
zf_assert(chinese_buffer != NULL);
|
||||
|
||||
int16 i, j, k;
|
||||
|
||||
@@ -686,8 +690,6 @@ void oled_init (void)
|
||||
#if OLED_USE_SOFT_SPI
|
||||
soft_spi_init(&oled_spi, 0, OLED_SOFT_SPI_DELAY, OLED_D0_PIN, OLED_D1_PIN, SOFT_SPI_PIN_NULL, SOFT_SPI_PIN_NULL);
|
||||
#else
|
||||
|
||||
|
||||
spi_init(OLED_SPI, SPI_MODE0, OLED_SPI_SPEED, OLED_D0_PIN, OLED_D1_PIN, OLED_D1_PIN_IN, SPI_CS_NULL);
|
||||
#endif
|
||||
gpio_init(OLED_RES_PIN, GPO, GPIO_HIGH, GPO_PUSH_PULL);
|
||||
|
||||
@@ -63,10 +63,10 @@
|
||||
vuint8 ov7725_finish_flag = 0;
|
||||
uint8 ov7725_image_binary [OV7725_H][OV7725_W / 8]; // ͼ<><EFBFBD><F1B1A3B4><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
vuint8 ov7725_uart_dma_init_flag; // <20><><EFBFBD>³<EFBFBD>ʼ<EFBFBD><CABC>DMA<4D>ı<EFBFBD>־λ
|
||||
vuint8 ov7725_dma_int_num = 0;
|
||||
vuint8 ov7725_lost_flag = 1;
|
||||
vuint8 ov7725_link_list_num = 0;
|
||||
uint8 ov7725_uart_dma_init_flag; // <20><><EFBFBD>³<EFBFBD>ʼ<EFBFBD><CABC>DMA<4D>ı<EFBFBD>־λ
|
||||
uint8 ov7725_dma_int_num = 0;
|
||||
uint8 ov7725_lost_flag = 1;
|
||||
uint8 ov7725_link_list_num = 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 uint16 ov7725_set_confing_buffer [OV7725_CONFIG_FINISH][2]=
|
||||
{
|
||||
@@ -341,7 +341,7 @@ static void ov7725_vsync_handler(void)
|
||||
OV7725_DATA_ADD,
|
||||
ov7725_image_binary[0],
|
||||
OV7725_PCLK_PIN,
|
||||
EXTI_TRIGGER_FALLING,
|
||||
EXTI_TRIGGER_RISING,
|
||||
OV7725_IMAGE_SIZE);
|
||||
dma_enable(OV7725_DMA_CH);
|
||||
}
|
||||
|
||||
@@ -207,7 +207,6 @@ static void scc8660_uart_callback (void)
|
||||
{
|
||||
uint8 data = 0;
|
||||
uart_query_byte(SCC8660_COF_UART, &data);
|
||||
uart_write_byte(UART_0, data);
|
||||
if(0xA5 == data)
|
||||
{
|
||||
fifo_clear(&camera_receiver_fifo);
|
||||
|
||||
@@ -354,7 +354,7 @@ void tft180_draw_line (uint16 x_start, uint16 y_start, uint16 x_end, uint16 y_en
|
||||
return;
|
||||
}
|
||||
|
||||
if(myabs(y_start - y_end) > myabs(x_start - x_end))
|
||||
if(func_abs(y_start - y_end) > func_abs(x_start - x_end))
|
||||
{
|
||||
while(y_start != y_end)
|
||||
{
|
||||
@@ -523,7 +523,7 @@ void tft180_show_int (uint16 x, uint16 y, const int32 dat, uint8 num)
|
||||
offset *= 10;
|
||||
dat_temp %= offset;
|
||||
}
|
||||
int_to_str(data_buffer, dat_temp);
|
||||
func_int_to_str(data_buffer, dat_temp);
|
||||
tft180_show_string(x, y, (const char *)&data_buffer);
|
||||
}
|
||||
|
||||
@@ -558,7 +558,7 @@ void tft180_show_uint (uint16 x, uint16 y, const uint32 dat, uint8 num)
|
||||
offset *= 10;
|
||||
dat_temp %= offset;
|
||||
}
|
||||
uint_to_str(data_buffer, dat_temp);
|
||||
func_uint_to_str(data_buffer, dat_temp);
|
||||
tft180_show_string(x, y, (const char *)&data_buffer);
|
||||
}
|
||||
|
||||
@@ -567,7 +567,7 @@ void tft180_show_uint (uint16 x, uint16 y, const uint32 dat, uint8 num)
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ [0, tft180_x_max-1]
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ [0, tft180_y_max-1]
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>float<61><74>double
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> num <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>10λ
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> num <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>8λ
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> pointnum С<><D0A1>λ<EFBFBD><CEBB>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>6λ
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> tft180_show_float(0, 0, x, 2, 3); // <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ2λ С<><D0A1><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>λ
|
||||
@@ -599,7 +599,7 @@ void tft180_show_float (uint16 x, uint16 y, const float dat, uint8 num, uint8 po
|
||||
offset *= 10;
|
||||
dat_temp = dat_temp - ((int)dat_temp / (int)offset) * offset;
|
||||
}
|
||||
float_to_str(data_buffer, dat_temp, pointnum);
|
||||
func_float_to_str(data_buffer, dat_temp, pointnum);
|
||||
tft180_show_string(x, y, data_buffer);
|
||||
}
|
||||
|
||||
@@ -622,6 +622,7 @@ void tft180_show_binary_image (uint16 x, uint16 y, const uint8 *image, uint16 wi
|
||||
// <20><>ôһ<C3B4><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE>ʱ<EFBFBD><EFBFBD><F2B3ACB9><EFBFBD>Ļ<EFBFBD>ֱ<EFBFBD><D6B1>ʷ<EFBFBD>Χ<EFBFBD><CEA7>
|
||||
zf_assert(x < tft180_x_max);
|
||||
zf_assert(y < tft180_y_max);
|
||||
zf_assert(image != NULL);
|
||||
|
||||
uint32 i = 0, j = 0;
|
||||
uint8 temp = 0;
|
||||
@@ -666,6 +667,7 @@ void tft180_show_gray_image (uint16 x, uint16 y, const uint8 *image, uint16 widt
|
||||
// <20><>ôһ<C3B4><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE>ʱ<EFBFBD><EFBFBD><F2B3ACB9><EFBFBD>Ļ<EFBFBD>ֱ<EFBFBD><D6B1>ʷ<EFBFBD>Χ<EFBFBD><CEA7>
|
||||
zf_assert(x < tft180_x_max);
|
||||
zf_assert(y < tft180_y_max);
|
||||
zf_assert(image != NULL);
|
||||
|
||||
uint32 i = 0, j = 0;
|
||||
uint16 color = 0,temp = 0;
|
||||
@@ -717,6 +719,7 @@ void tft180_show_rgb565_image (uint16 x, uint16 y, const uint16 *image, uint16 w
|
||||
// <20><>ôһ<C3B4><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE>ʱ<EFBFBD><EFBFBD><F2B3ACB9><EFBFBD>Ļ<EFBFBD>ֱ<EFBFBD><D6B1>ʷ<EFBFBD>Χ<EFBFBD><CEA7>
|
||||
zf_assert(x < tft180_x_max);
|
||||
zf_assert(y < tft180_y_max);
|
||||
zf_assert(image != NULL);
|
||||
|
||||
uint32 i = 0, j = 0;
|
||||
uint16 color = 0;
|
||||
@@ -759,6 +762,7 @@ void tft180_show_wave (uint16 x, uint16 y, const uint16 *wave, uint16 width, uin
|
||||
// <20><>ôһ<C3B4><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE>ʱ<EFBFBD><EFBFBD><F2B3ACB9><EFBFBD>Ļ<EFBFBD>ֱ<EFBFBD><D6B1>ʷ<EFBFBD>Χ<EFBFBD><CEA7>
|
||||
zf_assert(x < tft180_x_max);
|
||||
zf_assert(y < tft180_y_max);
|
||||
zf_assert(wave != NULL);
|
||||
|
||||
uint32 i = 0, j = 0;
|
||||
uint32 width_index = 0, value_max_index = 0;
|
||||
@@ -800,6 +804,7 @@ void tft180_show_chinese (uint16 x, uint16 y, uint8 size, const uint8 *chinese_b
|
||||
// <20><>ôһ<C3B4><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE>ʱ<EFBFBD><EFBFBD><F2B3ACB9><EFBFBD>Ļ<EFBFBD>ֱ<EFBFBD><D6B1>ʷ<EFBFBD>Χ<EFBFBD><CEA7>
|
||||
zf_assert(x < tft180_x_max);
|
||||
zf_assert(y < tft180_y_max);
|
||||
zf_assert(chinese_buffer != NULL);
|
||||
|
||||
int i, j, k;
|
||||
uint8 temp, temp1, temp2;
|
||||
|
||||
@@ -38,12 +38,12 @@
|
||||
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_dma_handler = type_default_callback; // <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>ת
|
||||
callback_function camera_vsync_handler = type_default_callback;; // <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>ת
|
||||
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_dma_handler = type_default_callback; // 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>ת
|
||||
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_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>ת
|
||||
|
||||
wireless_type_enum wireless_type = NO_WIRELESS;
|
||||
callback_function wireless_module_uart_handler = type_default_callback;; // <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>ת
|
||||
callback_function wireless_module_uart_handler = type_default_callback; // <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>ת
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ĭ<>ϻص<CFBB><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
||||
@@ -84,6 +84,7 @@ void set_camera_type (camera_type_enum type_set, callback_function vsync_callbac
|
||||
void set_wireless_type (wireless_type_enum type_set, callback_function uart_callback)
|
||||
{
|
||||
wireless_type = type_set;
|
||||
wireless_module_uart_handler = uart_callback;
|
||||
if(uart_callback == NULL) wireless_module_uart_handler = type_default_callback;
|
||||
else wireless_module_uart_handler = uart_callback;
|
||||
}
|
||||
|
||||
|
||||
@@ -53,14 +53,18 @@ static uint16 crc_check (uint8 *buff, uint8 crc_cnt)
|
||||
|
||||
for(i = 0; i < crc_cnt; i ++)
|
||||
{
|
||||
crc_temp ^= buff[i];
|
||||
for(j = 0; j < 8; j ++)
|
||||
{
|
||||
if (crc_temp & 0x01)
|
||||
crc_temp = (crc_temp >> 1) ^ 0xa001;
|
||||
else
|
||||
crc_temp = crc_temp >> 1;
|
||||
}
|
||||
crc_temp ^= buff[i];
|
||||
for(j = 0; j < 8; j ++)
|
||||
{
|
||||
if (crc_temp & 0x01)
|
||||
{
|
||||
crc_temp = (crc_temp >> 1) ^ 0xa001;
|
||||
}
|
||||
else
|
||||
{
|
||||
crc_temp = crc_temp >> 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
return(crc_temp);
|
||||
}
|
||||
|
||||
@@ -598,6 +598,8 @@ uint8 wifi_uart_exit_serianet (void)
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
uint8 wifi_uart_connect_tcp_servers (char *ip, char *port, wifi_uart_transfer_mode_enum mode)
|
||||
{
|
||||
zf_assert(ip != NULL);
|
||||
zf_assert(port != NULL);
|
||||
|
||||
uint8 return_state = 0;
|
||||
|
||||
@@ -689,6 +691,9 @@ uint8 wifi_uart_connect_tcp_servers (char *ip, char *port, wifi_uart_transfer_mo
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
uint8 wifi_uart_connect_udp_client (char *ip, char *port, char *local_port, wifi_uart_transfer_mode_enum mode)
|
||||
{
|
||||
zf_assert(ip != NULL);
|
||||
zf_assert(port != NULL);
|
||||
zf_assert(local_port != NULL);
|
||||
uint8 return_state = 0;
|
||||
|
||||
wifi_uart_clear_receive_buffer(); // <20><><EFBFBD><EFBFBD>WiFi<46><69><EFBFBD>ջ<EFBFBD><D5BB><EFBFBD><EFBFBD><EFBFBD>
|
||||
@@ -827,6 +832,7 @@ uint8 wifi_uart_disconnect_link_with_id (wifi_uart_link_id_enum link_id)
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
uint8 wifi_uart_entry_tcp_servers (char *port)
|
||||
{
|
||||
zf_assert(port != NULL);
|
||||
uint8 return_state = 0;
|
||||
|
||||
wifi_uart_clear_receive_buffer(); // <20><><EFBFBD><EFBFBD>WiFi<46><69><EFBFBD>ջ<EFBFBD><D5BB><EFBFBD><EFBFBD><EFBFBD>
|
||||
@@ -948,6 +954,7 @@ uint8 wifi_uart_tcp_servers_check_link (void)
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint32 wifi_uart_send_buffer (uint8 *buff, uint32 len)
|
||||
{
|
||||
zf_assert(buff != NULL);
|
||||
int32 timeout = WAIT_TIME_OUT;
|
||||
|
||||
char lenth[32] = {0};
|
||||
@@ -958,7 +965,7 @@ uint32 wifi_uart_send_buffer (uint8 *buff, uint32 len)
|
||||
{
|
||||
wifi_uart_clear_receive_buffer(); // <20><><EFBFBD><EFBFBD>WiFi<46><69><EFBFBD>ջ<EFBFBD><D5BB><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
int_to_str(lenth,len);
|
||||
func_int_to_str(lenth,len);
|
||||
if(len > 8192)
|
||||
{
|
||||
uart_write_string(WIFI_UART_INDEX, "AT+CIPSENDL=");
|
||||
@@ -1002,6 +1009,7 @@ uint32 wifi_uart_send_buffer (uint8 *buff, uint32 len)
|
||||
}
|
||||
}
|
||||
}
|
||||
wifi_uart_clear_receive_buffer(); // <20><><EFBFBD><EFBFBD>WiFi<46><69><EFBFBD>ջ<EFBFBD><D5BB><EFBFBD><EFBFBD><EFBFBD>
|
||||
return len;
|
||||
}
|
||||
|
||||
@@ -1016,6 +1024,7 @@ uint32 wifi_uart_send_buffer (uint8 *buff, uint32 len)
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint32 wifi_uart_tcp_servers_send_buffer (uint8 *buff, uint32 len, wifi_uart_link_id_enum id)
|
||||
{
|
||||
zf_assert(buff != NULL);
|
||||
char lenth[32] = {0};
|
||||
|
||||
if( wifi_uart_information.wifi_uart_transfer_mode == WIFI_UART_COMMAND && \
|
||||
@@ -1023,7 +1032,7 @@ uint32 wifi_uart_tcp_servers_send_buffer (uint8 *buff, uint32 len, wifi_uart_lin
|
||||
{
|
||||
wifi_uart_clear_receive_buffer(); // <20><><EFBFBD><EFBFBD>WiFi<46><69><EFBFBD>ջ<EFBFBD><D5BB><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
int_to_str(lenth,len);
|
||||
func_int_to_str(lenth,len);
|
||||
if(len > 8192)
|
||||
{
|
||||
uart_write_string(WIFI_UART_INDEX, "AT+CIPSENDL=");
|
||||
@@ -1064,6 +1073,7 @@ uint32 wifi_uart_tcp_servers_send_buffer (uint8 *buff, uint32 len, wifi_uart_lin
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint32 wifi_uart_read_buffer (uint8 *buffer, uint32 len)
|
||||
{
|
||||
zf_assert(buffer != NULL);
|
||||
uint32 read_len = len;
|
||||
fifo_read_buffer(&wifi_uart_fifo, buffer, &read_len, FIFO_READ_AND_CLEAN);
|
||||
return read_len;
|
||||
@@ -1096,6 +1106,8 @@ void wifi_uart_callback (void)
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint8 wifi_uart_init (char *wifi_ssid, char *pass_word, wifi_uart_mode_enum wifi_mode)
|
||||
{
|
||||
zf_assert(wifi_ssid != NULL);
|
||||
zf_assert(pass_word != NULL);
|
||||
char uart_baud[32] = {0};
|
||||
uint8 return_state = 0;
|
||||
|
||||
@@ -1121,7 +1133,7 @@ uint8 wifi_uart_init (char *wifi_ssid, char *pass_word, wifi_uart_mode_enum wifi
|
||||
return_state = 1;
|
||||
break;
|
||||
}
|
||||
int_to_str(uart_baud, WIFI_UART_BAUD); // <20><><EFBFBD><EFBFBD>WiFiģ<69><C4A3><EFBFBD><EFBFBD>ʹ<EFBFBD>õIJ<C3B5><C4B2><EFBFBD><EFBFBD>ʲ<EFBFBD><CAB2><EFBFBD>
|
||||
func_int_to_str(uart_baud, WIFI_UART_BAUD); // <20><><EFBFBD><EFBFBD>WiFiģ<69><C4A3><EFBFBD><EFBFBD>ʹ<EFBFBD>õIJ<C3B5><C4B2><EFBFBD><EFBFBD>ʲ<EFBFBD><CAB2><EFBFBD>
|
||||
if(wifi_uart_uart_config_set(uart_baud, "8", "1", "0", "1")) // <20><><EFBFBD>ýӿ<C3BD><D3BF><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>
|
||||
{
|
||||
zf_log(0, "set config failed");
|
||||
|
||||
@@ -93,6 +93,7 @@ uint32 wireless_uart_send_byte (const uint8 data)
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint32 wireless_uart_send_buff (const uint8 *buff, uint32 len)
|
||||
{
|
||||
zf_assert(buff != NULL);
|
||||
uint16 time_count = 0;
|
||||
while(0 != len)
|
||||
{
|
||||
@@ -133,6 +134,7 @@ uint32 wireless_uart_send_buff (const uint8 *buff, uint32 len)
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint32 wireless_uart_send_string (const char *str)
|
||||
{
|
||||
zf_assert(str != NULL);
|
||||
uint16 time_count = 0;
|
||||
uint32 len = strlen(str);
|
||||
while(0 != len)
|
||||
@@ -175,6 +177,7 @@ uint32 wireless_uart_send_string (const char *str)
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void wireless_uart_send_image (const uint8 *image_addr, uint32 image_size)
|
||||
{
|
||||
zf_assert(image_addr != NULL);
|
||||
extern uint8 camera_send_image_frame_header[4];
|
||||
wireless_uart_send_buff(camera_send_image_frame_header, 4);
|
||||
wireless_uart_send_buff((uint8 *)image_addr, image_size);
|
||||
@@ -190,6 +193,7 @@ void wireless_uart_send_image (const uint8 *image_addr, uint32 image_size)
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint32 wireless_uart_read_buff (uint8 *buff, uint32 len)
|
||||
{
|
||||
zf_assert(buff != NULL);
|
||||
uint32 data_len = len;
|
||||
fifo_read_buffer(&wireless_uart_fifo, buff, &data_len, FIFO_READ_AND_CLEAN);
|
||||
return data_len;
|
||||
@@ -244,22 +248,22 @@ uint8 wireless_uart_init (void)
|
||||
wireless_auto_baud_data[1] = 1;
|
||||
wireless_auto_baud_data[2] = 3;
|
||||
|
||||
rts_init_status = gpio_get(WIRELESS_UART_RTS_PIN);
|
||||
rts_init_status = gpio_get_level(WIRELESS_UART_RTS_PIN);
|
||||
gpio_init(WIRELESS_UART_RTS_PIN, GPO, rts_init_status, GPO_PUSH_PULL); // <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
uart_init (WIRELESS_UART_INDEX, WIRELESS_UART_BUAD_RATE, WIRELESS_UART_RX_PIN, WIRELESS_UART_TX_PIN); // <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
uart_rx_irq(WIRELESS_UART_INDEX, 1);
|
||||
uart_rx_interrupt(WIRELESS_UART_INDEX, 1);
|
||||
|
||||
system_delay_ms(5); // ģ<><C4A3><EFBFBD>ϵ<EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA>ʱ<EFBFBD>ȴ<EFBFBD>
|
||||
gpio_set(WIRELESS_UART_RTS_PIN, !rts_init_status); // RTS<54><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߣ<EFBFBD><DFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
|
||||
gpio_set_level(WIRELESS_UART_RTS_PIN, !rts_init_status); // RTS<54><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߣ<EFBFBD><DFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
|
||||
system_delay_ms(100); // RTS<54><53><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ20ms
|
||||
gpio_toggle(WIRELESS_UART_RTS_PIN); // RTS<54><53><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1>
|
||||
|
||||
wireless_auto_baud_flag = 1;
|
||||
|
||||
uart_putchar(WIRELESS_UART_INDEX, wireless_auto_baud_data[0]); // <20><><EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><D8B6><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD>Զ<EFBFBD><D4B6>жϲ<D0B6><CFB2><EFBFBD><EFBFBD><EFBFBD>
|
||||
uart_putchar(WIRELESS_UART_INDEX, wireless_auto_baud_data[1]); // <20><><EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><D8B6><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD>Զ<EFBFBD><D4B6>жϲ<D0B6><CFB2><EFBFBD><EFBFBD><EFBFBD>
|
||||
uart_putchar(WIRELESS_UART_INDEX, wireless_auto_baud_data[2]); // <20><><EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><D8B6><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD>Զ<EFBFBD><D4B6>жϲ<D0B6><CFB2><EFBFBD><EFBFBD><EFBFBD>
|
||||
uart_write_byte(WIRELESS_UART_INDEX, wireless_auto_baud_data[0]); // <20><><EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><D8B6><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD>Զ<EFBFBD><D4B6>жϲ<D0B6><CFB2><EFBFBD><EFBFBD><EFBFBD>
|
||||
uart_write_byte(WIRELESS_UART_INDEX, wireless_auto_baud_data[1]); // <20><><EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><D8B6><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD>Զ<EFBFBD><D4B6>жϲ<D0B6><CFB2><EFBFBD><EFBFBD><EFBFBD>
|
||||
uart_write_byte(WIRELESS_UART_INDEX, wireless_auto_baud_data[2]); // <20><><EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><D8B6><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD>Զ<EFBFBD><D4B6>жϲ<D0B6><CFB2><EFBFBD><EFBFBD><EFBFBD>
|
||||
system_delay_ms(20);
|
||||
|
||||
time_count = 0;
|
||||
|
||||
@@ -254,32 +254,32 @@ void uart_mux (uart_index_enum uartn, uart_tx_pin_enum tx_pin, uart_rx_pin_enum
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ڵȴ<DAB5><C8B4><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> uart_n <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> zf_driver_uart.h <20><> uart_index_enum ö<><C3B6><EFBFBD>嶨<EFBFBD><E5B6A8>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> dat <20><>Ҫ<EFBFBD><D2AA><EFBFBD>͵<EFBFBD><CDB5>ֽ<EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> uart_write_byte_wait(UART_1, 0xA5); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD>ķ<EFBFBD><C4B7>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4>0xA5<41><35><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD>ݷ<EFBFBD><DDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void uart_write_byte_wait (uart_index_enum uart_n, const uint8 dat)
|
||||
{
|
||||
Ifx_SizeT count = 1;
|
||||
(void)IfxAsclin_Asc_write(uart_get_handle(uart_n), &dat, &count, TIME_INFINITE);
|
||||
while(TRUE == uart_get_handle(uart_n)->txInProgress);
|
||||
}
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ڷ<EFBFBD><DAB7><EFBFBD>д<EFBFBD><D0B4>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> uart_n <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> zf_driver_uart.h <20><> uart_index_enum ö<><C3B6><EFBFBD>嶨<EFBFBD><E5B6A8>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> dat <20><>Ҫ<EFBFBD><D2AA><EFBFBD>͵<EFBFBD><CDB5>ֽ<EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> uart_write_tx_buffer(UART_1, 0xA5); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD>ķ<EFBFBD><C4B7>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4>0xA5<41><35>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD>ᷢ<EFBFBD><E1B7A2><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD>ǻ<EFBFBD><C7BB><EFBFBD><EFBFBD><EFBFBD>CPU<50>ڴ<EFBFBD><DAB4>ڵ<EFBFBD>ִ<EFBFBD><D6B4>ʱ<EFBFBD><EFBFBD>
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void uart_write_tx_buffer (uart_index_enum uart_n, const uint8 dat)
|
||||
{
|
||||
Ifx_SizeT count = 1;
|
||||
(void)IfxAsclin_Asc_write(uart_get_handle(uart_n), &dat, &count, TIME_INFINITE);
|
||||
}
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> uart_n <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> zf_driver_uart.h <20><> uart_index_enum ö<><C3B6><EFBFBD>嶨<EFBFBD><E5B6A8>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> dat <20><>Ҫ<EFBFBD><D2AA><EFBFBD>͵<EFBFBD><CDB5>ֽ<EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> uart_write_byte(UART_1, 0xA5); // <20><><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD>0xA5
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> uart_write_byte(UART_1, 0xA5); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD>ķ<EFBFBD><C4B7>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4>0xA5<41><35>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD>ᷢ<EFBFBD><E1B7A2><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD>ǻ<EFBFBD><C7BB><EFBFBD><EFBFBD><EFBFBD>CPU<50>ڴ<EFBFBD><DAB4>ڵ<EFBFBD>ִ<EFBFBD><D6B4>ʱ
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void uart_write_byte (uart_index_enum uart_n, const uint8 dat)
|
||||
{
|
||||
Ifx_SizeT count = 1;
|
||||
(void)IfxAsclin_Asc_write(uart_get_handle(uart_n), &dat, &count, TIME_INFINITE);
|
||||
while(TRUE == uart_get_handle(uart_n)->txInProgress);
|
||||
}
|
||||
|
||||
|
||||
@@ -296,7 +296,7 @@ void uart_write_buffer (uart_index_enum uart_n, const uint8 *buff, uint32 len)
|
||||
{
|
||||
while(len)
|
||||
{
|
||||
uart_write_tx_buffer(uart_n, *buff);
|
||||
uart_write_byte(uart_n, *buff);
|
||||
len--;
|
||||
buff++;
|
||||
}
|
||||
|
||||
@@ -127,7 +127,7 @@ extern IfxAsclin_Asc uart2_handle;
|
||||
extern IfxAsclin_Asc uart3_handle;
|
||||
|
||||
//====================================================<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||
void uart_write_tx_buffer (uart_index_enum uart_n, const uint8 dat);
|
||||
void uart_write_byte_wait (uart_index_enum uart_n, const uint8 dat);
|
||||
void uart_write_byte (uart_index_enum uartn, const uint8 dat);
|
||||
void uart_write_buffer (uart_index_enum uartn, const uint8 *buff, uint32 len);
|
||||
void uart_write_string (uart_index_enum uartn, const char *str);
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
V3.1.0
|
||||
<20><EFBFBD>GPS<50><53><EFBFBD>Ȳ<EFBFBD><C8B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>ע<EFBFBD>ʹ<EFBFBD><CDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB>ӿڵĶ<DAB5><C4B6>Ի<EFBFBD><D4BB><EFBFBD> <20><>ǿ V3 <20><><EFBFBD>Ľ<EFBFBD>׳<EFBFBD><D7B3> <20><>Ҫ<EFBFBD><D2AA><EFBFBD>Կ<EFBFBD>ָ<EFBFBD><D6B8>
|
||||
V3.0.1
|
||||
<20><EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>絥<EFBFBD><E7B5A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD><D8B9>ȹ<EFBFBD><C8B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
V3.0.0
|
||||
|
||||
@@ -33,18 +33,18 @@
|
||||
* 2022-09-15 pudding first version
|
||||
********************************************************************************************************************/
|
||||
|
||||
#include "zf_common_debug.h"
|
||||
#include "zf_common_function.h"
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> num1 <20><><EFBFBD><EFBFBD>1
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> num2 <20><><EFBFBD><EFBFBD>2
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> uint32 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> return get_greatest_common_divisor(144, 36); // <20><>ȡ 144 <20><> 36 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> return func_get_greatest_common_divisor(144, 36); // <20><>ȡ 144 <20><> 36 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint32 get_greatest_common_divisor (uint32 num1, uint32 num2)
|
||||
uint32 func_get_greatest_common_divisor (uint32 num1, uint32 num2)
|
||||
{
|
||||
while(num1 != num2)
|
||||
{
|
||||
@@ -64,10 +64,10 @@ uint32 get_greatest_common_divisor (uint32 num1, uint32 num2)
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> t <20><>ʱʱ<CAB1><CAB1>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> my_delay(100);
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> func_soft_delay(100);
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void my_delay (volatile long t)
|
||||
void func_soft_delay (volatile long t)
|
||||
{
|
||||
while(t --);
|
||||
}
|
||||
@@ -76,11 +76,12 @@ void my_delay (volatile long t)
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ַ<EFBFBD><D6B7><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ݷ<EFBFBD>Χ<EFBFBD><CEA7> [-32768,32767]
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> *str <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> <20>ɴ<EFBFBD><C9B4><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> int32 ת<><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> int32 dat = str_to_int("-100");
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> int32 dat = func_str_to_int("-100");
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
int32 str_to_int (char *str)
|
||||
int32 func_str_to_int (char *str)
|
||||
{
|
||||
zf_assert(str != NULL);
|
||||
uint8 sign = 0; // <20><><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD> 0-<2D><><EFBFBD><EFBFBD> 1-<2D><><EFBFBD><EFBFBD>
|
||||
int32 temp = 0; // <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
do
|
||||
@@ -119,11 +120,12 @@ int32 str_to_int (char *str)
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> *str <20>ַ<EFBFBD><D6B7><EFBFBD>ָ<EFBFBD><D6B8>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> number <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> int_to_str(data_buffer, -300);
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> func_int_to_str(data_buffer, -300);
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void int_to_str (char *str, int32 number)
|
||||
void func_int_to_str (char *str, int32 number)
|
||||
{
|
||||
zf_assert(str != NULL);
|
||||
uint8 data_temp[16]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
uint8 bit = 0; // <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
|
||||
int32 number_temp = 0;
|
||||
@@ -149,7 +151,7 @@ void int_to_str (char *str, int32 number)
|
||||
while(0 != number) // ѭ<><D1AD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>
|
||||
{
|
||||
number_temp = number % 10;
|
||||
data_temp[bit ++] = myabs(number_temp); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
|
||||
data_temp[bit ++] = func_abs(number_temp); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
|
||||
number /= 10; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD>ĸ<EFBFBD>λ<EFBFBD><CEBB>
|
||||
}
|
||||
while(0 != bit) // <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>ݼ<EFBFBD><DDBC><EFBFBD><EFBFBD><EFBFBD>
|
||||
@@ -164,11 +166,12 @@ void int_to_str (char *str, int32 number)
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ַ<EFBFBD><D6B7><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ݷ<EFBFBD>Χ<EFBFBD><CEA7> [0,65535]
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> *str <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> <20><EFBFBD><DEB7><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> uint32 ת<><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> uint32 dat = str_to_uint("100");
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> uint32 dat = func_str_to_uint("100");
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint32 str_to_uint (char *str)
|
||||
uint32 func_str_to_uint (char *str)
|
||||
{
|
||||
zf_assert(str != NULL);
|
||||
uint32 temp = 0; // <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
do
|
||||
@@ -193,11 +196,12 @@ uint32 str_to_uint (char *str)
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> *str <20>ַ<EFBFBD><D6B7><EFBFBD>ָ<EFBFBD><D6B8>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> number <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> uint_to_str(data_buffer, 300);
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> func_uint_to_str(data_buffer, 300);
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void uint_to_str (char *str, uint32 number)
|
||||
void func_uint_to_str (char *str, uint32 number)
|
||||
{
|
||||
zf_assert(str != NULL);
|
||||
int8 data_temp[16]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
uint8 bit = 0; // <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
|
||||
|
||||
@@ -231,11 +235,12 @@ void uint_to_str (char *str, uint32 number)
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ַ<EFBFBD><D6B7><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>Ч<EFBFBD>ۼƾ<DBBC><C6BE><EFBFBD>ΪС<CEAA><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> *str <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> <20>ɴ<EFBFBD><C9B4><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> float ת<><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> float dat = str_to_float("-100.2");
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> float dat = func_str_to_float("-100.2");
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
float str_to_float (char *str)
|
||||
float func_str_to_float (char *str)
|
||||
{
|
||||
zf_assert(str != NULL);
|
||||
uint8 sign = 0; // <20><><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD> 0-<2D><><EFBFBD><EFBFBD> 1-<2D><><EFBFBD><EFBFBD>
|
||||
float temp = 0.0; // <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
float temp_point = 0.0; // <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> С<><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
@@ -291,11 +296,12 @@ float str_to_float (char *str)
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> number <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> point_bit С<><D0A1><EFBFBD>㾫<EFBFBD><E3BEAB>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> float_to_str(data_buffer, 3.1415, 2); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> data_buffer = "3.14"
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> func_float_to_str(data_buffer, 3.1415, 2); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> data_buffer = "3.14"
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void float_to_str (char *str, float number, uint8 point_bit)
|
||||
void func_float_to_str (char *str, float number, uint8 point_bit)
|
||||
{
|
||||
zf_assert(str != NULL);
|
||||
int data_int = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int data_float = 0.0; // С<><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int data_temp[8]; // <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>
|
||||
@@ -340,7 +346,7 @@ void float_to_str (char *str, float number, uint8 point_bit)
|
||||
}while(0 != data_int);
|
||||
while(0 != bit)
|
||||
{
|
||||
*str ++ = (myabs(data_temp[bit - 1]) + 0x30); // <20>ٵ<EFBFBD><D9B5><EFBFBD><F2BDABB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵд<D6B5><D0B4><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> <20>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
||||
*str ++ = (func_abs(data_temp[bit - 1]) + 0x30); // <20>ٵ<EFBFBD><D9B5><EFBFBD><F2BDABB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵд<D6B5><D0B4><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> <20>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
||||
bit --;
|
||||
}
|
||||
|
||||
@@ -363,7 +369,7 @@ void float_to_str (char *str, float number, uint8 point_bit)
|
||||
}
|
||||
while(0 != bit)
|
||||
{
|
||||
*str ++ = (myabs(data_temp_point[bit - 1]) + 0x30); // <20>ٵ<EFBFBD><D9B5><EFBFBD><F2BDABB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵд<D6B5><D0B4><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> <20>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
||||
*str ++ = (func_abs(data_temp_point[bit - 1]) + 0x30); // <20>ٵ<EFBFBD><D9B5><EFBFBD><F2BDABB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵд<D6B5><D0B4><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> <20>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
||||
bit --;
|
||||
}
|
||||
}
|
||||
@@ -375,11 +381,12 @@ void float_to_str (char *str, float number, uint8 point_bit)
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ַ<EFBFBD><D6B7><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>Ч<EFBFBD>ۼƾ<DBBC><C6BE><EFBFBD>ΪС<CEAA><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> str <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> <20>ɴ<EFBFBD><C9B4><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> double ת<><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> double dat = str_to_double("-100.2");
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> double dat = func_str_to_double("-100.2");
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
double str_to_double (char *str)
|
||||
double func_str_to_double (char *str)
|
||||
{
|
||||
zf_assert(str != NULL);
|
||||
uint8 sign = 0; // <20><><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD> 0-<2D><><EFBFBD><EFBFBD> 1-<2D><><EFBFBD><EFBFBD>
|
||||
double temp = 0.0; // <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
double temp_point = 0.0; // <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> С<><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
@@ -436,11 +443,12 @@ double str_to_double (char *str)
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> number <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> point_bit С<><D0A1><EFBFBD>㾫<EFBFBD><E3BEAB>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> double_to_str(data_buffer, 3.1415, 2); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> data_buffer = "3.14"
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> func_double_to_str(data_buffer, 3.1415, 2); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> data_buffer = "3.14"
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void double_to_str (char *str, double number, uint8 point_bit)
|
||||
void func_double_to_str (char *str, double number, uint8 point_bit)
|
||||
{
|
||||
zf_assert(str != NULL);
|
||||
int data_int = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int data_float = 0.0; // С<><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int data_temp[12]; // <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>
|
||||
@@ -485,7 +493,7 @@ void double_to_str (char *str, double number, uint8 point_bit)
|
||||
}while(0 != data_int);
|
||||
while(0 != bit)
|
||||
{
|
||||
*str ++ = (myabs(data_temp[bit - 1]) + 0x30); // <20>ٵ<EFBFBD><D9B5><EFBFBD><F2BDABB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵд<D6B5><D0B4><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> <20>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
||||
*str ++ = (func_abs(data_temp[bit - 1]) + 0x30); // <20>ٵ<EFBFBD><D9B5><EFBFBD><F2BDABB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵд<D6B5><D0B4><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> <20>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
||||
bit --;
|
||||
}
|
||||
|
||||
@@ -506,7 +514,7 @@ void double_to_str (char *str, double number, uint8 point_bit)
|
||||
}
|
||||
while(0 != bit)
|
||||
{
|
||||
*str ++ = (myabs(data_temp_point[bit - 1]) + 0x30); // <20>ٵ<EFBFBD><D9B5><EFBFBD><F2BDABB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵд<D6B5><D0B4><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> <20>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
||||
*str ++ = (func_abs(data_temp_point[bit - 1]) + 0x30); // <20>ٵ<EFBFBD><D9B5><EFBFBD><F2BDABB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵд<D6B5><D0B4><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> <20>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
||||
bit --;
|
||||
}
|
||||
}
|
||||
@@ -518,11 +526,12 @@ void double_to_str (char *str, double number, uint8 point_bit)
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ַ<EFBFBD><D6B7><EFBFBD>ת Hex
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> str <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> <20><EFBFBD><DEB7><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> uint32 ת<><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> uint32 dat = str_to_hex("0x11");
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> uint32 dat = func_str_to_hex("0x11");
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint32 str_to_hex (char *str)
|
||||
uint32 func_str_to_hex (char *str)
|
||||
{
|
||||
zf_assert(str != NULL);
|
||||
uint32 str_len = strlen(str); // <20>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>
|
||||
uint32 result_data = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
uint8 temp = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
@@ -575,11 +584,12 @@ uint32 str_to_hex (char *str)
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> *str <20>ַ<EFBFBD><D6B7><EFBFBD>ָ<EFBFBD><D6B8>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> number <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> hex_to_str(data_buffer, 0x11); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> data_buffer = "0x11"
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> func_hex_to_str(data_buffer, 0x11); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> data_buffer = "0x11"
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void hex_to_str (char *str, uint32 number)
|
||||
void func_hex_to_str (char *str, uint32 number)
|
||||
{
|
||||
zf_assert(str != NULL);
|
||||
const char hex_index[16] = {
|
||||
'0', '1', '2', '3',
|
||||
'4', '5', '6', '7',
|
||||
@@ -861,7 +871,6 @@ uint32 zf_sprintf (int8 *buff, const int8 *format, ...)
|
||||
uint32 ival = (uint32)va_arg(arg, uint32);
|
||||
uint8 vlen = 0;
|
||||
vlen = number_conversion_ascii(ival, vstr, 0, 16);
|
||||
|
||||
printf_reverse_order(vstr, 8);
|
||||
memcpy(buff, vstr, 8);
|
||||
buff += 8;
|
||||
@@ -893,3 +902,4 @@ uint32 zf_sprintf (int8 *buff, const int8 *format, ...)
|
||||
|
||||
return buff_len;
|
||||
}
|
||||
|
||||
|
||||
@@ -38,26 +38,25 @@
|
||||
|
||||
#include "zf_common_typedef.h"
|
||||
|
||||
|
||||
//====================================================<3D>궨<EFBFBD>庯<EFBFBD><E5BAAF><EFBFBD><EFBFBD>====================================================
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD> <20><><EFBFBD>ݷ<EFBFBD>Χ<EFBFBD><CEA7> [-32767,32767]
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> dat <20><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> int <20><><EFBFBD>ؾ<EFBFBD><D8BE><EFBFBD>ֵ
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> dat = myabs(dat); // <20><>dat<61><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> dat = func_abs(dat); // <20><>dat<61><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
#define myabs(x) ((x) >= 0 ? (x): -(x))
|
||||
#define func_abs(x) ((x) >= 0 ? (x): -(x))
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD> <20><><EFBFBD>ݷ<EFBFBD>Χ<EFBFBD><CEA7> [-32768,32767]
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> x <20><><EFBFBD><EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> y <20><EFBFBD><DEB7><EFBFBD>Χ(<28><><EFBFBD>ݻᱻ<DDBB><E1B1BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-y<><79>+y֮<79><D6AE>)
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> int <20><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> int dat = limit(500, 300); // <20><><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-300<30><30>+300֮<30><D6AE> <20><><EFBFBD>˷<EFBFBD><CBB7>صĽ<D8B5><C4BD><EFBFBD><EFBFBD><EFBFBD>300
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> int dat = func_limit(500, 300); // <20><><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-300<30><30>+300֮<30><D6AE> <20><><EFBFBD>˷<EFBFBD><CBB7>صĽ<D8B5><C4BD><EFBFBD><EFBFBD><EFBFBD>300
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
#define limit(x, y) ((x) > (y) ? (y) : ((x) < -(y) ? -(y) : (x)))
|
||||
#define func_limit(x, y) ((x) > (y) ? (y) : ((x) < -(y) ? -(y) : (x)))
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ˫<><CBAB><EFBFBD><EFBFBD> <20><><EFBFBD>ݷ<EFBFBD>Χ<EFBFBD><CEA7> [-32768,32767]
|
||||
@@ -65,32 +64,33 @@
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> a <20><EFBFBD><DEB7><EFBFBD>Χ<EFBFBD><CEA7><EFBFBD>߽<EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> b <20><EFBFBD><DEB7><EFBFBD>Χ<EFBFBD>ұ߽<D2B1>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> int <20><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> int dat = limit_ab(500, -300, 400); //<2F><><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-300<30><30>+400֮<30><D6AE> <20><><EFBFBD>˷<EFBFBD><CBB7>صĽ<D8B5><C4BD><EFBFBD><EFBFBD><EFBFBD>400
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> int dat = func_limit_ab(500, -300, 400); //<2F><><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-300<30><30>+400֮<30><D6AE> <20><><EFBFBD>˷<EFBFBD><CBB7>صĽ<D8B5><C4BD><EFBFBD><EFBFBD><EFBFBD>400
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
#define limit_ab(x, a, b) ((x) < (a) ? (a) : ((x) > (b) ? (b) : (x)))
|
||||
#define func_limit_ab(x, a, b) ((x) < (a) ? (a) : ((x) > (b) ? (b) : (x)))
|
||||
|
||||
//====================================================<3D>궨<EFBFBD>庯<EFBFBD><E5BAAF><EFBFBD><EFBFBD>====================================================
|
||||
|
||||
//=====================================================<3D><><EFBFBD>溯<EFBFBD><E6BAAF><EFBFBD><EFBFBD>=====================================================
|
||||
uint32 get_greatest_common_divisor (uint32 num1, uint32 num2);
|
||||
uint32 func_get_greatest_common_divisor (uint32 num1, uint32 num2);
|
||||
|
||||
void my_delay (volatile long t);
|
||||
void func_soft_delay (volatile long t);
|
||||
|
||||
int32 str_to_int (char *str);
|
||||
void int_to_str (char *str, int32 number);
|
||||
uint32 str_to_uint (char *str);
|
||||
void uint_to_str (char *str, uint32 number);
|
||||
float str_to_float (char *str);
|
||||
void float_to_str (char *str, float number, uint8 point_bit);
|
||||
double str_to_double (char *str);
|
||||
void double_to_str (char *str, double number, uint8 point_bit);
|
||||
uint32 str_to_hex (char *str);
|
||||
void hex_to_str (char *str, uint32 number);
|
||||
int32 func_str_to_int (char *str);
|
||||
void func_int_to_str (char *str, int32 number);
|
||||
uint32 func_str_to_uint (char *str);
|
||||
void func_uint_to_str (char *str, uint32 number);
|
||||
float func_str_to_float (char *str);
|
||||
void func_float_to_str (char *str, float number, uint8 point_bit);
|
||||
double func_str_to_double (char *str);
|
||||
void func_double_to_str (char *str, double number, uint8 point_bit);
|
||||
uint32 func_str_to_hex (char *str);
|
||||
void func_hex_to_str (char *str, uint32 number);
|
||||
|
||||
uint32 zf_sprintf (int8 *buff, const int8 *format, ...);
|
||||
//=====================================================<3D><><EFBFBD>溯<EFBFBD><E6BAAF><EFBFBD><EFBFBD>=====================================================
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
@@ -45,13 +45,14 @@
|
||||
* ------------------------------------
|
||||
********************************************************************************************************************/
|
||||
|
||||
|
||||
#include "zf_common_debug.h"
|
||||
#include "zf_common_function.h"
|
||||
#include "zf_driver_delay.h"
|
||||
#include "zf_driver_soft_spi.h"
|
||||
#include "zf_driver_spi.h"
|
||||
#include "zf_device_absolute_encoder.h"
|
||||
|
||||
#include "zf_device_absolute_encoder.h"
|
||||
|
||||
static int16 now_location = 0;
|
||||
static int16 last_location = 0;
|
||||
@@ -76,7 +77,7 @@ static soft_spi_info_struct absolute_encoder_spi;
|
||||
static void absolute_encoder_write_register(uint8 reg, uint8 data)
|
||||
{
|
||||
ABSOLUTE_ENCODER_CSN(0); // Ƭѡ<C6AC><D1A1><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>
|
||||
absolute_encoder_write(reg | ABS_ENCODER_SPI_W); // <20>Ĵ<EFBFBD><C4B4><EFBFBD>
|
||||
absolute_encoder_write(reg | ABSOLUTE_ENCODER_SPI_W); // <20>Ĵ<EFBFBD><C4B4><EFBFBD>
|
||||
absolute_encoder_write(data); // <20><><EFBFBD><EFBFBD>
|
||||
ABSOLUTE_ENCODER_CSN(1); // Ƭѡ<C6AC><D1A1><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>
|
||||
system_delay_us(1); // <20><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>
|
||||
@@ -97,7 +98,7 @@ static uint8 absolute_encoder_read_register(uint8 reg)
|
||||
{
|
||||
uint8 data = 0;
|
||||
ABSOLUTE_ENCODER_CSN(0); // Ƭѡ<C6AC><D1A1><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>
|
||||
absolute_encoder_write(reg | ABS_ENCODER_SPI_R); // <20>Ĵ<EFBFBD><C4B4><EFBFBD>
|
||||
absolute_encoder_write(reg | ABSOLUTE_ENCODER_SPI_R); // <20>Ĵ<EFBFBD><C4B4><EFBFBD>
|
||||
absolute_encoder_write(0x00); // ռλ
|
||||
ABSOLUTE_ENCODER_CSN(1); // Ƭѡ<C6AC><D1A1><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>
|
||||
system_delay_us(1); // <20><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>
|
||||
@@ -177,16 +178,16 @@ int16 absolute_encoder_get_location (void)
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
int16 absolute_encoder_get_offset (void)
|
||||
{
|
||||
int16 offset_num = 0;
|
||||
if(myabs(now_location-last_location) > 2048)
|
||||
int16 result_data = 0;
|
||||
if(func_abs(now_location - last_location) > 2048)
|
||||
{
|
||||
offset_num = (now_location > 2048 ? (now_location - 4096 - last_location) : (now_location + 4096 - last_location));
|
||||
result_data = (now_location > 2048 ? (now_location - 4096 - last_location) : (now_location + 4096 - last_location));
|
||||
}
|
||||
else
|
||||
{
|
||||
offset_num = (now_location - last_location);
|
||||
result_data = (now_location - last_location);
|
||||
}
|
||||
return offset_num;
|
||||
return result_data;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
@@ -198,6 +199,7 @@ int16 absolute_encoder_get_offset (void)
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint8 absolute_encoder_init (void)
|
||||
{
|
||||
uint8 return_state = 0;
|
||||
uint16 zero_position = ABSOLUTE_ENCODER_DEFAULT_ZERO;
|
||||
#if ABSOLUTE_ENCODER_USE_SOFT_SPI
|
||||
soft_spi_init(&absolute_encoder_spi, 0, ABSOLUTE_ENCODER_SOFT_SPI_DELAY, ABSOLUTE_ENCODER_SCLK_PIN, ABSOLUTE_ENCODER_MOSI_PIN, ABSOLUTE_ENCODER_MISO_PIN, SOFT_SPI_PIN_NULL);
|
||||
@@ -206,17 +208,22 @@ uint8 absolute_encoder_init (void)
|
||||
#endif
|
||||
gpio_init(ABSOLUTE_ENCODER_CS_PIN, GPO, GPIO_LOW, GPO_PUSH_PULL);
|
||||
|
||||
if(absolute_encoder_self_check())
|
||||
do
|
||||
{
|
||||
// <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><C7BE><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>˳<EFBFBD><CBB3><EFBFBD>
|
||||
// <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>ܾ<EFBFBD><EFBFBD>ǻ<EFBFBD><EFBFBD><EFBFBD>
|
||||
zf_assert(0);
|
||||
}
|
||||
absolute_encoder_write_register(DIR_REG, 0x00); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD> <20><>ת<EFBFBD><D7AA>ֵ<EFBFBD><D6B5>С<EFBFBD><D0A1>0x00 <20><>ת<EFBFBD><D7AA>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0x80
|
||||
zero_position = (uint16)(4096 - zero_position);
|
||||
zero_position = zero_position << 4;
|
||||
absolute_encoder_write_register(ZERO_L_REG, (uint8)zero_position); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ
|
||||
absolute_encoder_write_register(ZERO_H_REG, zero_position >> 8);
|
||||
return 0;
|
||||
if(absolute_encoder_self_check())
|
||||
{
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><>ô<EFBFBD><C3B4><EFBFBD>Ǿ<EFBFBD><C7BE><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<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>
|
||||
return_state = 1;
|
||||
zf_log(0, "absolute encoder init errror.");
|
||||
break;
|
||||
}
|
||||
absolute_encoder_write_register(ABSOLUTE_ENCODER_DIR_REG, 0x00); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD> <20><>ת<EFBFBD><D7AA>ֵ<EFBFBD><D6B5>С<EFBFBD><D0A1>0x00 <20><>ת<EFBFBD><D7AA>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0x80
|
||||
zero_position = (uint16)(4096 - zero_position);
|
||||
zero_position = zero_position << 4;
|
||||
absolute_encoder_write_register(ABSOLUTE_ENCODER_ZERO_L_REG, (uint8)zero_position); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ
|
||||
absolute_encoder_write_register(ABSOLUTE_ENCODER_ZERO_H_REG, zero_position >> 8);
|
||||
}while(0);
|
||||
return return_state;
|
||||
}
|
||||
|
||||
@@ -75,12 +75,12 @@
|
||||
#define ABSOLUTE_ENCODER_DEFAULT_ZERO (0)
|
||||
|
||||
//====================================================<3D>Ƕȴ<C7B6><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||
#define ABS_ENCODER_SPI_W (0x80)
|
||||
#define ABS_ENCODER_SPI_R (0x40)
|
||||
#define ABSOLUTE_ENCODER_SPI_W (0x80)
|
||||
#define ABSOLUTE_ENCODER_SPI_R (0x40)
|
||||
|
||||
#define ZERO_L_REG (0x00)
|
||||
#define ZERO_H_REG (0x01)
|
||||
#define DIR_REG (0X09)
|
||||
#define ABSOLUTE_ENCODER_ZERO_L_REG (0x00)
|
||||
#define ABSOLUTE_ENCODER_ZERO_H_REG (0x01)
|
||||
#define ABSOLUTE_ENCODER_DIR_REG (0X09)
|
||||
//====================================================<3D>Ƕȴ<C7B6><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||
|
||||
|
||||
|
||||
@@ -49,6 +49,8 @@
|
||||
#include "zf_driver_gpio.h"
|
||||
#include "zf_driver_uart.h"
|
||||
#include "zf_driver_delay.h"
|
||||
#include "zf_device_type.h"
|
||||
|
||||
#include "zf_device_bluetooth_ch9141.h"
|
||||
|
||||
static fifo_struct bluetooth_ch9141_fifo;
|
||||
@@ -57,11 +59,172 @@ static uint8 bluetooth_ch9141_buffer[BLUETOOTH_CH9141_BUFFER_SIZE];
|
||||
static uint8 bluetooth_ch9141_data;
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><><EFBFBD><EFBFBD><EFBFBD>жϻص<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// @param void
|
||||
// @return void
|
||||
// Sample usage:
|
||||
// @note <20>ú<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ISR<EFBFBD>ļ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>жϳ<D0B6><CFB3><EFBFBD><F2B1BBB5><EFBFBD>
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD>鷢<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD> uart_n <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> zf_driver_uart.h <20><> uart_index_enum ö<><C3B6><EFBFBD>嶨<EFBFBD><E5B6A8>
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD> *buff Ҫ<><D2AA><EFBFBD>͵<EFBFBD><CDB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD> len <20><><EFBFBD>ͳ<EFBFBD><CDB3><EFBFBD>
|
||||
// <EFBFBD><EFBFBD><EFBFBD>ز<EFBFBD><EFBFBD><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> bluetooth_ch9141_write_buffer(UART_1, &a[0], 5);
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
static void bluetooth_ch9141_write_buffer (uart_index_enum uart_n, const uint8 *buff, uint32 len)
|
||||
{
|
||||
while(len)
|
||||
{
|
||||
uart_write_byte_wait(uart_n, *buff);
|
||||
len--;
|
||||
buff++;
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> data 8bit <20><><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> uint32 ʣ<><EFBFBD>ͳ<EFBFBD><CDB3><EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> bluetooth_ch9141_send_byte(0x5A);
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint32 bluetooth_ch9141_send_byte (const uint8 data)
|
||||
{
|
||||
uint16 time_count = BLUETOOTH_CH9141_TIMEOUT_COUNT;
|
||||
while(time_count)
|
||||
{
|
||||
if(!gpio_get_level(BLUETOOTH_CH9141_RTS_PIN))
|
||||
{
|
||||
uart_write_byte_wait(BLUETOOTH_CH9141_INDEX, data); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
break;
|
||||
}
|
||||
time_count --;
|
||||
system_delay_ms(1);
|
||||
}
|
||||
return (0 < time_count);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><><EFBFBD>ͺ<EFBFBD><CDBA><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> buff <20><>Ҫ<EFBFBD><D2AA><EFBFBD>͵<EFBFBD><CDB5><EFBFBD><EFBFBD>ݵ<EFBFBD>ַ
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> len <20><><EFBFBD>ͳ<EFBFBD><CDB3><EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> uint32 ʣ<><CAA3>δ<EFBFBD><CEB4><EFBFBD>͵<EFBFBD><CDB5>ֽ<EFBFBD><D6BD><EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> bluetooth_ch9141_send_buff(buff, 16);
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint32 bluetooth_ch9141_send_buff (const uint8 *buff, uint32 len)
|
||||
{
|
||||
zf_assert(buff != NULL);
|
||||
uint16 time_count = 0;
|
||||
while(0 != len)
|
||||
{
|
||||
if(!gpio_get_level(BLUETOOTH_CH9141_RTS_PIN)) // <20><><EFBFBD><EFBFBD>RTSΪ<53>͵<EFBFBD>ƽ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
if(30 <= len) // <20><><EFBFBD>ݷ<EFBFBD> 30byte ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
bluetooth_ch9141_write_buffer(BLUETOOTH_CH9141_INDEX, buff, 30); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
buff += 30; // <20><>ַƫ<D6B7><C6AB>
|
||||
len -= 30; // <20><><EFBFBD><EFBFBD>
|
||||
time_count = 0;
|
||||
}
|
||||
else // <20><><EFBFBD><EFBFBD> 30byte <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>Է<EFBFBD><D4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
bluetooth_ch9141_write_buffer(BLUETOOTH_CH9141_INDEX, buff, len); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
len = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else // <20><><EFBFBD><EFBFBD>RTSΪ<53>ߵ<EFBFBD>ƽ <20><>ģ<EFBFBD><C4A3>æ
|
||||
{
|
||||
if(BLUETOOTH_CH9141_TIMEOUT_COUNT <= (++ time_count)) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
{
|
||||
break; // <20>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
system_delay_ms(1);
|
||||
}
|
||||
}
|
||||
return len;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> *str Ҫ<><D2AA><EFBFBD>͵<EFBFBD><CDB5>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>ַ
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> uint32 ʣ<><EFBFBD>ͳ<EFBFBD><CDB3><EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> bluetooth_ch9141_send_string("Trust yourself.");
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint32 bluetooth_ch9141_send_string (const char *str)
|
||||
{
|
||||
zf_assert(str != NULL);
|
||||
uint16 time_count = 0;
|
||||
uint32 len = strlen(str);
|
||||
while(0 != len)
|
||||
{
|
||||
if(!gpio_get_level(BLUETOOTH_CH9141_RTS_PIN)) // <20><><EFBFBD><EFBFBD>RTSΪ<53>͵<EFBFBD>ƽ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
if(30 <= len) // <20><><EFBFBD>ݷ<EFBFBD> 30byte ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
bluetooth_ch9141_write_buffer(BLUETOOTH_CH9141_INDEX, (const uint8 *)str, 30); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
str += 30; // <20><>ַƫ<D6B7><C6AB>
|
||||
len -= 30; // <20><><EFBFBD><EFBFBD>
|
||||
time_count = 0;
|
||||
}
|
||||
else // <20><><EFBFBD><EFBFBD> 30byte <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>Է<EFBFBD><D4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
bluetooth_ch9141_write_buffer(BLUETOOTH_CH9141_INDEX, (const uint8 *)str, len);// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
len = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else // <20><><EFBFBD><EFBFBD>RTSΪ<53>ߵ<EFBFBD>ƽ <20><>ģ<EFBFBD><C4A3>æ
|
||||
{
|
||||
if(BLUETOOTH_CH9141_TIMEOUT_COUNT <= (++ time_count)) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
{
|
||||
break; // <20>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
system_delay_ms(1);
|
||||
}
|
||||
}
|
||||
return len;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷͼ<CDB7><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD>鿴ͼ<E9BFB4><CDBC>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> *image_addr <20><>Ҫ<EFBFBD><D2AA><EFBFBD>͵<EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>ַ
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> image_size ͼ<><CDBC><EFBFBD>Ĵ<EFBFBD>С
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> bluetooth_ch9141_send_image(&mt9v03x_image[0][0], MT9V03X_IMAGE_SIZE);
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void bluetooth_ch9141_send_image (const uint8 *image_addr, uint32 image_size)
|
||||
{
|
||||
zf_assert(image_addr != NULL);
|
||||
|
||||
extern uint8 camera_send_image_frame_header[4];
|
||||
bluetooth_ch9141_send_buff(camera_send_image_frame_header, 4);
|
||||
bluetooth_ch9141_send_buff((uint8 *)image_addr, image_size);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> buff <20>洢<EFBFBD><E6B4A2><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD>ַ
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> len <20><><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> uint32 ʵ<>ʶ<EFBFBD>ȡ<EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> bluetooth_ch9141_read_buff(buff, 16);
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint32 bluetooth_ch9141_read_buff (uint8 *buff, uint32 len)
|
||||
{
|
||||
zf_assert(buff != NULL);
|
||||
uint32 data_len = len;
|
||||
fifo_read_buffer(&bluetooth_ch9141_fifo, buff, &data_len, FIFO_READ_AND_CLEAN);
|
||||
return data_len;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><><EFBFBD><EFBFBD><EFBFBD>жϻص<CFBB><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> void
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE>
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ <20>ú<EFBFBD><C3BA><EFBFBD><EFBFBD><EFBFBD> ISR <20>ļ<EFBFBD><C4BC>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD>жϳ<D0B6><CFB3><EFBFBD><F2B1BBB5><EFBFBD>
|
||||
// <20>ɴ<EFBFBD><C9B4><EFBFBD><EFBFBD>жϷ<D0B6><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> wireless_module_uart_handler() <20><><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD> wireless_module_uart_handler() <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD><EFBFBD><EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void bluetooth_ch9141_uart_callback (void)
|
||||
{
|
||||
@@ -70,131 +233,15 @@ void bluetooth_ch9141_uart_callback (void)
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// @param data 8bit <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// @return uint32 ʣ<EFBFBD><EFBFBD>ͳ<EFBFBD><EFBFBD><EFBFBD>
|
||||
// Sample usage:
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint32 bluetooth_ch9141_send_byte (const uint8 data)
|
||||
{
|
||||
uint16 time_count = 0;
|
||||
while(gpio_get_level(BLUETOOTH_CH9141_RTS_PIN)) // <20><><EFBFBD><EFBFBD>RTSΪ<53>͵<EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
if(BLUETOOTH_CH9141_TIMEOUT_COUNT < time_count ++)
|
||||
return 1; // ģ<><C4A3>æ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>while<6C>ȴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ú<EFBFBD><C3BA><EFBFBD>ע<EFBFBD>͵<EFBFBD>while<6C>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>滻<EFBFBD><E6BBBB>if<69><66><EFBFBD><EFBFBD>
|
||||
system_delay_ms(1);
|
||||
}
|
||||
uart_write_byte(BLUETOOTH_CH9141_INDEX, data); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><><EFBFBD>ͺ<EFBFBD><CDBA><EFBFBD>
|
||||
// @param buff <20><>Ҫ<EFBFBD><D2AA><EFBFBD>͵<EFBFBD><CDB5><EFBFBD><EFBFBD>ݵ<EFBFBD>ַ
|
||||
// @param len <20><><EFBFBD>ͳ<EFBFBD><CDB3><EFBFBD>
|
||||
// @return uint32 ʣ<><CAA3>δ<EFBFBD><CEB4><EFBFBD>͵<EFBFBD><CDB5>ֽ<EFBFBD><D6BD><EFBFBD>
|
||||
// Sample usage:
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint32 bluetooth_ch9141_send_buff (const uint8 *buff, uint32 len)
|
||||
{
|
||||
uint16 time_count = 0;
|
||||
while(30 < len)
|
||||
{
|
||||
time_count = 0;
|
||||
while(gpio_get_level(BLUETOOTH_CH9141_RTS_PIN) && BLUETOOTH_CH9141_TIMEOUT_COUNT > time_count ++) // <20><><EFBFBD><EFBFBD>RTSΪ<53>͵<EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
system_delay_ms(1);
|
||||
if(BLUETOOTH_CH9141_TIMEOUT_COUNT <= time_count)
|
||||
return len; // ģ<><C4A3>æ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>while<6C>ȴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ú<EFBFBD><C3BA><EFBFBD>ע<EFBFBD>͵<EFBFBD>while<6C>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>滻<EFBFBD><E6BBBB>if<69><66><EFBFBD><EFBFBD>
|
||||
uart_write_buffer(BLUETOOTH_CH9141_INDEX, buff, 30);
|
||||
|
||||
buff += 30; // <20><>ַƫ<D6B7><C6AB>
|
||||
len -= 30; // <20><><EFBFBD><EFBFBD>
|
||||
}
|
||||
|
||||
time_count = 0;
|
||||
while(gpio_get_level(BLUETOOTH_CH9141_RTS_PIN) && BLUETOOTH_CH9141_TIMEOUT_COUNT > time_count ++) // <20><><EFBFBD><EFBFBD>RTSΪ<53>͵<EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
system_delay_ms(1);
|
||||
if(time_count >= BLUETOOTH_CH9141_TIMEOUT_COUNT)
|
||||
return len; // ģ<><C4A3>æ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>while<6C>ȴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ú<EFBFBD><C3BA><EFBFBD>ע<EFBFBD>͵<EFBFBD>while<6C>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>滻<EFBFBD><E6BBBB>if<69><66><EFBFBD><EFBFBD>
|
||||
uart_write_buffer(BLUETOOTH_CH9141_INDEX, buff, len); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
|
||||
// @param *str Ҫ<><D2AA><EFBFBD>͵<EFBFBD><CDB5>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>ַ
|
||||
// @return uint32 ʣ<><EFBFBD>ͳ<EFBFBD><CDB3><EFBFBD>
|
||||
// Sample usage: bluetooth_ch9141_send_string("Believe in yourself.");
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint32 bluetooth_ch9141_send_string (const char *str)
|
||||
{
|
||||
uint16 time_count = 0;
|
||||
uint32 len = strlen(str);
|
||||
while(30 < len)
|
||||
{
|
||||
time_count = 0;
|
||||
while(gpio_get_level(BLUETOOTH_CH9141_RTS_PIN)) // <20><><EFBFBD><EFBFBD>RTSΪ<53>͵<EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
if(BLUETOOTH_CH9141_TIMEOUT_COUNT > time_count ++)
|
||||
return len; // ģ<><C4A3>æ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>while<6C>ȴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ú<EFBFBD><C3BA><EFBFBD>ע<EFBFBD>͵<EFBFBD>while<6C>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>滻<EFBFBD><E6BBBB>if<69><66><EFBFBD><EFBFBD>
|
||||
system_delay_ms(1);
|
||||
}
|
||||
uart_write_buffer(BLUETOOTH_CH9141_INDEX, (const uint8 *)str, 30);
|
||||
|
||||
str += 30; // <20><>ַƫ<D6B7><C6AB>
|
||||
len -= 30; // <20><><EFBFBD><EFBFBD>
|
||||
}
|
||||
|
||||
time_count = 0;
|
||||
while(gpio_get_level(BLUETOOTH_CH9141_RTS_PIN)) // <20><><EFBFBD><EFBFBD>RTSΪ<53>͵<EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
if(BLUETOOTH_CH9141_TIMEOUT_COUNT > time_count ++)
|
||||
return len; // ģ<><C4A3>æ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>while<6C>ȴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ú<EFBFBD><C3BA><EFBFBD>ע<EFBFBD>͵<EFBFBD>while<6C>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>滻<EFBFBD><E6BBBB>if<69><66><EFBFBD><EFBFBD>
|
||||
system_delay_ms(1);
|
||||
}
|
||||
uart_write_buffer(BLUETOOTH_CH9141_INDEX, (const uint8 *)str, len); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷͼ<CDB7><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD>鿴ͼ<E9BFB4><CDBC>
|
||||
// @param *image_addr <20><>Ҫ<EFBFBD><D2AA><EFBFBD>͵<EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>ַ
|
||||
// @param image_size ͼ<><CDBC><EFBFBD>Ĵ<EFBFBD>С
|
||||
// @return void
|
||||
// Sample usage: bluetooth_ch9141_send_image(&mt9v03x_image[0][0], MT9V03X_IMAGE_SIZE);
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void bluetooth_ch9141_send_image (const uint8 *image_addr, uint32 image_size)
|
||||
{
|
||||
extern uint8 camera_send_image_frame_header[4];
|
||||
bluetooth_ch9141_send_buff(camera_send_image_frame_header, 4);
|
||||
bluetooth_ch9141_send_buff((uint8 *)image_addr, image_size);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
|
||||
// @param buff <20>洢<EFBFBD><E6B4A2><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD>ַ
|
||||
// @param len <20><><EFBFBD><EFBFBD>
|
||||
// @return uint32 ʵ<>ʶ<EFBFBD>ȡ<EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD>
|
||||
// Sample usage:
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint32 bluetooth_ch9141_read_buff (uint8 *buff, uint32 len)
|
||||
{
|
||||
uint32 data_len = len;
|
||||
fifo_read_buffer(&bluetooth_ch9141_fifo, buff, &data_len, FIFO_READ_AND_CLEAN);
|
||||
return data_len;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><>ʼ<EFBFBD><CABC>
|
||||
// @param mode <20><><EFBFBD><EFBFBD>ģʽ MASTER_MODE(<28><><EFBFBD><EFBFBD>)<29><><EFBFBD><EFBFBD>SLAVE_MODE(<28>ӻ<EFBFBD>)
|
||||
// @return uint8 <20><>ʼ<EFBFBD><CABC>״̬ 0-<2D>ɹ<EFBFBD> 1-ʧ<><CAA7>
|
||||
// Sample usage:
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><>ʼ<EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD> void
|
||||
// <EFBFBD><EFBFBD><EFBFBD>ز<EFBFBD><EFBFBD><EFBFBD> uint8 <20><>ʼ<EFBFBD><CABC>״̬ 0-<2D>ɹ<EFBFBD> 1-ʧ<EFBFBD><EFBFBD>
|
||||
// ʹ<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD> bluetooth_ch9141_init();
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint8 bluetooth_ch9141_init (void)
|
||||
{
|
||||
uint8 return_state = 0;
|
||||
set_wireless_type(BLUETOOTH_CH9141, bluetooth_ch9141_uart_callback);
|
||||
|
||||
fifo_init(&bluetooth_ch9141_fifo, FIFO_DATA_8BIT, bluetooth_ch9141_buffer, BLUETOOTH_CH9141_BUFFER_SIZE);
|
||||
@@ -203,5 +250,5 @@ uint8 bluetooth_ch9141_init (void)
|
||||
uart_init(BLUETOOTH_CH9141_INDEX, BLUETOOTH_CH9141_BUAD_RATE, BLUETOOTH_CH9141_RX_PIN, BLUETOOTH_CH9141_TX_PIN);
|
||||
uart_rx_interrupt(BLUETOOTH_CH9141_INDEX, 1);
|
||||
|
||||
return 0;
|
||||
return return_state;
|
||||
}
|
||||
|
||||
@@ -48,7 +48,6 @@
|
||||
#define _zf_device_bluetooth_ch9141_h_
|
||||
|
||||
#include "zf_common_typedef.h"
|
||||
#include "zf_device_type.h"
|
||||
|
||||
|
||||
//=================================================9141<34><31><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||
|
||||
@@ -33,6 +33,7 @@
|
||||
* 2022-09-15 pudding first version
|
||||
********************************************************************************************************************/
|
||||
|
||||
#include "zf_common_debug.h"
|
||||
#include "zf_common_interrupt.h"
|
||||
#include "zf_driver_gpio.h"
|
||||
#include "zf_driver_dma.h"
|
||||
@@ -58,7 +59,8 @@ uint8 camera_send_image_frame_header[4] = {0x00, 0xFF, 0x01, 0x01};
|
||||
void camera_binary_image_decompression (const uint8 *data1, uint8 *data2, uint32 image_size)
|
||||
{
|
||||
uint8 i = 8;
|
||||
|
||||
zf_assert(data1 != NULL);
|
||||
zf_assert(data2 != NULL);
|
||||
while(image_size --)
|
||||
{
|
||||
i = 8;
|
||||
@@ -80,6 +82,7 @@ void camera_binary_image_decompression (const uint8 *data1, uint8 *data2, uint32
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void camera_send_image (uart_index_enum uartn, const uint8 *image_addr, uint32 image_size)
|
||||
{
|
||||
zf_assert(image_addr != NULL);
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
uart_write_buffer(uartn, camera_send_image_frame_header, 4);
|
||||
|
||||
@@ -157,7 +160,7 @@ uint8 camera_init (void)
|
||||
EXTI_TRIGGER_RISING,
|
||||
SCC8660_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_RISING); // <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>жϣ<D0B6><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>½<EFBFBD><C2BD>ش<EFBFBD><D8B4><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
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;
|
||||
|
||||
@@ -45,7 +45,6 @@
|
||||
|
||||
#include "zf_common_function.h"
|
||||
#include "zf_common_fifo.h"
|
||||
#include "zf_common_interrupt.h"
|
||||
#include "zf_driver_delay.h"
|
||||
#include "zf_driver_uart.h"
|
||||
#include "zf_device_type.h"
|
||||
@@ -53,7 +52,7 @@
|
||||
|
||||
#define GPS_TAU1201_BUFFER_SIZE (128)
|
||||
|
||||
vuint8 gps_tau1201_flag; // 1<><31><EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD>ɵȴ<C9B5><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0<><30>û<EFBFBD>вɼ<D0B2><C9BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
uint8 gps_tau1201_flag; // 1<><31><EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD>ɵȴ<C9B5><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0<><30>û<EFBFBD>вɼ<D0B2><C9BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
gps_info_struct gps_tau1201; // GPS<50><53><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
static uint8 gps_tau1201_state = 0; // 1<><31>GPS<50><53>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
@@ -118,7 +117,7 @@ static int get_int_number (char *s)
|
||||
i = i - 1;
|
||||
strncpy(buf, s, i);
|
||||
buf[i] = 0;
|
||||
return_value = str_to_int(buf);
|
||||
return_value = func_str_to_int(buf);
|
||||
return return_value;
|
||||
}
|
||||
|
||||
@@ -139,7 +138,7 @@ static float get_float_number (char *s)
|
||||
i = i - 1;
|
||||
strncpy(buf, s, i);
|
||||
buf[i] = 0;
|
||||
return_value = (float)str_to_double(buf);
|
||||
return_value = (float)func_str_to_double(buf);
|
||||
return return_value;
|
||||
}
|
||||
|
||||
@@ -160,7 +159,7 @@ static double get_double_number (char *s)
|
||||
i = i - 1;
|
||||
strncpy(buf, s, i);
|
||||
buf[i] = 0;
|
||||
return_value = str_to_double(buf);
|
||||
return_value = func_str_to_double(buf);
|
||||
return return_value;
|
||||
}
|
||||
|
||||
@@ -186,12 +185,12 @@ static void utc_to_btc (gps_time_struct *time)
|
||||
day_num = 28;
|
||||
if((time->year % 4 == 0 && time->year % 100 != 0) || time->year % 400 == 0) // <20>ж<EFBFBD><D0B6>Ƿ<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>
|
||||
{
|
||||
day_num ++; // <20><><EFBFBD><EFBFBD> 2<><32>Ϊ29<32><39>
|
||||
day_num ++; // <20><><EFBFBD><EFBFBD> 2<><32>Ϊ29<32><39>
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
day_num = 31; // 1 3 5 7 8 10 12<31><32>Щ<EFBFBD>·<EFBFBD>Ϊ31<33><31>
|
||||
day_num = 31; // 1 3 5 7 8 10 12<31><32>Щ<EFBFBD>·<EFBFBD>Ϊ31<33><31>
|
||||
if(4 == time->month || 6 == time->month || 9 == time->month || 11 == time->month )
|
||||
{
|
||||
day_num = 30;
|
||||
@@ -297,7 +296,7 @@ static uint8 gps_gngga_parse (char *line, gps_info_struct *gps)
|
||||
|
||||
if (state != ',')
|
||||
{
|
||||
gps->satellite_used = (uint8)(get_int_number(&buf[get_parameter_index(7, buf)]));
|
||||
gps->satellite_used = (uint8)get_int_number(&buf[get_parameter_index(7, buf)]);
|
||||
gps->height = get_float_number(&buf[get_parameter_index(9, buf)]) + get_float_number(&buf[get_parameter_index(11, buf)]); // <20>߶<EFBFBD> = <20><><EFBFBD>θ߶<CEB8> + <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD>ˮ<CBAE><D7BC><EFBFBD>ĸ߶<C4B8>
|
||||
return_state = 1;
|
||||
}
|
||||
@@ -384,7 +383,7 @@ uint8 gps_data_parse (void)
|
||||
{
|
||||
gps_rmc_state = GPS_STATE_PARSING;
|
||||
strncpy((char *)&check_buffer[2], strchr((const char *)gps_rmc_buffer, '*')+1, 2);
|
||||
bbc_xor_origin = (uint8)str_to_hex((char *)check_buffer);
|
||||
bbc_xor_origin = (uint8)func_str_to_hex((char *)check_buffer);
|
||||
for(bbc_xor_calculation = gps_rmc_buffer[1], data_len = 2; gps_rmc_buffer[data_len] != '*'; data_len ++)
|
||||
{
|
||||
bbc_xor_calculation ^= gps_rmc_buffer[data_len];
|
||||
@@ -404,7 +403,7 @@ uint8 gps_data_parse (void)
|
||||
{
|
||||
gps_gga_state = GPS_STATE_PARSING;
|
||||
strncpy((char *)&check_buffer[2], strchr((const char *)gps_gga_buffer, '*')+1, 2);
|
||||
bbc_xor_origin = (uint8)str_to_hex((char *)check_buffer);
|
||||
bbc_xor_origin = (uint8)func_str_to_hex((char *)check_buffer);
|
||||
|
||||
for(bbc_xor_calculation = gps_gga_buffer[1], data_len = 2; gps_gga_buffer[data_len] != '*'; data_len ++)
|
||||
{
|
||||
@@ -505,10 +504,12 @@ uint8 gps_init (void)
|
||||
const uint8 close_txt[] = {0xF1, 0xD9, 0x06, 0x01, 0x03, 0x00, 0xF0, 0x40, 0x00, 0x3A, 0x8F};
|
||||
const uint8 close_txt_ant[] = {0xF1, 0xD9, 0x06, 0x01, 0x03, 0x00, 0xF0, 0x20, 0x00, 0x1A, 0x4F};
|
||||
|
||||
set_wireless_type(GPS_TAU1201, gps_uart_callback);
|
||||
fifo_init(&gps_tau1201_receiver_fifo, FIFO_DATA_8BIT, gps_tau1201_receiver_buffer, GPS_TAU1201_BUFFER_SIZE);
|
||||
system_delay_ms(500); // <20>ȴ<EFBFBD>GPS<50><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>ʼ<EFBFBD><CABC>
|
||||
uart_init(GPS_TAU1201_UART, 115200, GPS_TAU1201_RX, GPS_TAU1201_TX);
|
||||
|
||||
set_wireless_type(GPS_TAU1201, gps_uart_callback);
|
||||
|
||||
uart_write_buffer(GPS_TAU1201_UART, (uint8 *)set_rate, sizeof(set_rate)); // <20><><EFBFBD><EFBFBD>GPS<50><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ10hz <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>Ϊ1hz
|
||||
system_delay_ms(200);
|
||||
|
||||
|
||||
@@ -100,7 +100,7 @@ typedef enum
|
||||
|
||||
//==============================================<3D><><EFBFBD><EFBFBD> GPS <20><><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD>===================================================
|
||||
extern gps_info_struct gps_tau1201;
|
||||
extern vuint8 gps_tau1201_flag;
|
||||
extern uint8 gps_tau1201_flag;
|
||||
//==============================================<3D><><EFBFBD><EFBFBD> GPS <20><><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD>===================================================
|
||||
|
||||
//================================================GPS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||
|
||||
@@ -236,7 +236,7 @@ float icm20602_acc_transition (int16 acc_value)
|
||||
float icm20602_gyro_transition (int16 gyro_value)
|
||||
{
|
||||
float gyro_data = 0;
|
||||
switch(ICM20602_GYRO_SAMPLE)
|
||||
switch(ICM20602_GYR_SAMPLE)
|
||||
{
|
||||
case 0x00: gyro_data = (float)gyro_value / 131.2f; break; // 0x00 <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 <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 0x08: gyro_data = (float)gyro_value / 65.6f; break; // 0x08 <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.5 <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
|
||||
@@ -305,7 +305,7 @@ uint8 icm20602_init (void)
|
||||
icm20602_write_register(ICM20602_PWR_MGMT_2, 0x00); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǻͼ<C7BA><CDBC>ٶȼ<D9B6>
|
||||
icm20602_write_register(ICM20602_CONFIG, 0x01); // 176HZ 1KHZ
|
||||
icm20602_write_register(ICM20602_SMPLRT_DIV, 0x07); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SAMPLE_RATE = INTERNAL_SAMPLE_RATE / (1 + SMPLRT_DIV)
|
||||
icm20602_write_register(ICM20602_GYRO_CONFIG, ICM20602_GYRO_SAMPLE); // <20><>2000 dps
|
||||
icm20602_write_register(ICM20602_GYRO_CONFIG, ICM20602_GYR_SAMPLE); // <20><>2000 dps
|
||||
icm20602_write_register(ICM20602_ACCEL_CONFIG, ICM20602_ACC_SAMPLE); // <20><>8g
|
||||
icm20602_write_register(ICM20602_ACCEL_CONFIG_2, 0x03); // Average 4 samples 44.8HZ //0x23 Average 16 samples
|
||||
// ICM20602_GYRO_CONFIG<49>Ĵ<EFBFBD><C4B4><EFBFBD>
|
||||
|
||||
@@ -103,9 +103,7 @@
|
||||
#define ICM20602_SMPLRT_DIV (0x19)
|
||||
#define ICM20602_CONFIG (0x1A)
|
||||
#define ICM20602_GYRO_CONFIG (0x1B)
|
||||
#define ICM20602_GYRO_SAMPLE (0x18) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define ICM20602_ACCEL_CONFIG (0x1C)
|
||||
#define ICM20602_ACC_SAMPLE (0x10) // <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define ICM20602_ACCEL_CONFIG_2 (0x1D)
|
||||
#define ICM20602_LP_MODE_CFG (0x1E)
|
||||
#define ICM20602_ACCEL_WOM_X_THR (0x20)
|
||||
@@ -152,6 +150,19 @@
|
||||
#define ICM20602_YA_OFFSET_L (0x7B)
|
||||
#define ICM20602_ZA_OFFSET_H (0x7D)
|
||||
#define ICM20602_ZA_OFFSET_L (0x7E)
|
||||
|
||||
#define ICM20602_ACC_SAMPLE (0x10) // <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><DDA3><EFBFBD>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x08 <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><DDA3><EFBFBD>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x10 <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><DDA3><EFBFBD>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x18 <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><DDA3><EFBFBD>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
|
||||
#define ICM20602_GYR_SAMPLE (0x18) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x00 <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 <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>Ϊ:0x08 <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.5 <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>Ϊ:0x10 <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><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x18 <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><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
|
||||
//================================================<3D><><EFBFBD><EFBFBD> ICM20602 <20>ڲ<EFBFBD><DAB2><EFBFBD>ַ================================================
|
||||
|
||||
//===============================================<3D><><EFBFBD><EFBFBD> ICM20602 <20><><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD>==============================================
|
||||
|
||||
@@ -98,10 +98,21 @@
|
||||
#define IMU660RA_GYRO_ADDRESS (0x12)
|
||||
#define IMU660RA_ACC_CONF (0x40)
|
||||
#define IMU660RA_ACC_RANGE (0x41)
|
||||
#define IMU660RA_ACC_SAMPLE (0x02) // <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
#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><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
|
||||
|
||||
#define IMU660RA_GYR_SAMPLE (0x00) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><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)
|
||||
|
||||
//================================================<3D><><EFBFBD><EFBFBD> IMU660RA <20>ڲ<EFBFBD><DAB2><EFBFBD>ַ================================================
|
||||
|
||||
//===============================================<3D><><EFBFBD><EFBFBD> IMU660RA <20><><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD>===============================================
|
||||
|
||||
@@ -375,7 +375,7 @@ float imu963ra_acc_transition (int16 acc_value)
|
||||
float imu963ra_gyro_transition (int16 gyro_value)
|
||||
{
|
||||
float gyro_data = 0;
|
||||
switch(IMU963RA_GYRO_SAMPLE)
|
||||
switch(IMU963RA_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
|
||||
@@ -440,14 +440,14 @@ uint8 imu963ra_init (void)
|
||||
}
|
||||
|
||||
imu963ra_write_acc_gyro_register(IMU963RA_INT1_CTRL, 0x03); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD>ݾ<EFBFBD><DDBE><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
imu963ra_write_acc_gyro_register(IMU963RA_CTRL1_XL, 0x3C); // <20><><EFBFBD>ü<EFBFBD><C3BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD>̡<EFBFBD>8G<38>Լ<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>
|
||||
imu963ra_write_acc_gyro_register(IMU963RA_CTRL1_XL, IMU963RA_ACC_SAMPLE); // <20><><EFBFBD>ü<EFBFBD><C3BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD>̡<EFBFBD>8G<38>Լ<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>
|
||||
// IMU963RA_CTRL1_XL <20>Ĵ<EFBFBD><C4B4><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)
|
||||
|
||||
imu963ra_write_acc_gyro_register(IMU963RA_CTRL2_G, 0x5C); // <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
|
||||
imu963ra_write_acc_gyro_register(IMU963RA_CTRL2_G, IMU963RA_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
|
||||
// IMU963RA_CTRL2_G <20>Ĵ<EFBFBD><C4B4><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
|
||||
@@ -482,7 +482,7 @@ uint8 imu963ra_init (void)
|
||||
break;
|
||||
}
|
||||
|
||||
imu963ra_write_mag_register(IMU963RA_MAG_ADDR, IMU963RA_MAG_CONTROL1, 0x19); // <20><><EFBFBD>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>8G <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>100hz <20><><EFBFBD><EFBFBD>ģʽ
|
||||
imu963ra_write_mag_register(IMU963RA_MAG_ADDR, IMU963RA_MAG_CONTROL1, IMU963RA_MAG_SAMPLE); // <20><><EFBFBD>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>8G <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>100hz <20><><EFBFBD><EFBFBD>ģʽ
|
||||
// IMU963RA_MAG_ADDR <20>Ĵ<EFBFBD><C4B4><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x19 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:8G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>3000<30><30> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λ<EFBFBD><CEBB>G(<28><>˹)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x09 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:2G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>12000<30><30><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(<28><>˹)
|
||||
|
||||
@@ -90,9 +90,7 @@
|
||||
#define IMU963RA_INT1_CTRL (0x0D)
|
||||
#define IMU963RA_WHO_AM_I (0x0F)
|
||||
#define IMU963RA_CTRL1_XL (0x10)
|
||||
#define IMU963RA_ACC_SAMPLE (0x3C) // <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define IMU963RA_CTRL2_G (0x11)
|
||||
#define IMU963RA_GYRO_SAMPLE (0x5C) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define IMU963RA_CTRL3_C (0x12)
|
||||
#define IMU963RA_CTRL4_C (0x13)
|
||||
#define IMU963RA_CTRL5_C (0x14)
|
||||
@@ -114,10 +112,28 @@
|
||||
#define IMU963RA_MAG_ADDR (0x0D) // 7λIIC<49><43>ַ
|
||||
#define IMU963RA_MAG_OUTX_L (0x00)
|
||||
#define IMU963RA_MAG_CONTROL1 (0x09)
|
||||
#define IMU963RA_MAG_SAMPLE (0x19) // <20>شż<D8B4><C5BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define IMU963RA_MAG_CONTROL2 (0x0A)
|
||||
#define IMU963RA_MAG_FBR (0x0B)
|
||||
#define IMU963RA_MAG_CHIP_ID (0x0D)
|
||||
|
||||
#define IMU963RA_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 IMU963RA_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
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ: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
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ: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
|
||||
// <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
|
||||
|
||||
#define IMU963RA_MAG_SAMPLE (0x19) // <20>شż<D8B4><C5BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x19 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:8G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>3000<30><30> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>λ<EFBFBD><CEBB>G(<28><>˹)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x09 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ:2G <20><>ȡ<EFBFBD><C8A1><EFBFBD>ļ<EFBFBD><C4BC>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>12000<30><30><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(<28><>˹)
|
||||
|
||||
//================================================<3D><><EFBFBD><EFBFBD> IMU963RA <20>ڲ<EFBFBD><DAB2><EFBFBD>ַ================================================
|
||||
|
||||
//===============================================<3D><><EFBFBD><EFBFBD> IMU963RA <20><><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD>===============================================
|
||||
|
||||
@@ -366,7 +366,7 @@ void ips114_draw_line (uint16 x_start, uint16 y_start, uint16 x_end, uint16 y_en
|
||||
}
|
||||
break;
|
||||
}
|
||||
if(myabs(y_start - y_end) > myabs(x_start - x_end))
|
||||
if(func_abs(y_start - y_end) > func_abs(x_start - x_end))
|
||||
{
|
||||
while(y_start != y_end)
|
||||
{
|
||||
@@ -538,7 +538,7 @@ void ips114_show_int (uint16 x, uint16 y, const int32 dat, uint8 num)
|
||||
}
|
||||
dat_temp %= offset;
|
||||
}
|
||||
int_to_str(data_buffer, dat_temp);
|
||||
func_int_to_str(data_buffer, dat_temp);
|
||||
ips114_show_string(x, y, (const char *)&data_buffer);
|
||||
}
|
||||
|
||||
@@ -575,7 +575,7 @@ void ips114_show_uint (uint16 x, uint16 y, const uint32 dat, uint8 num)
|
||||
}
|
||||
dat_temp %= offset;
|
||||
}
|
||||
uint_to_str(data_buffer, dat_temp);
|
||||
func_uint_to_str(data_buffer, dat_temp);
|
||||
ips114_show_string(x, y, (const char *)&data_buffer);
|
||||
}
|
||||
|
||||
@@ -584,7 +584,7 @@ void ips114_show_uint (uint16 x, uint16 y, const uint32 dat, uint8 num)
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ [0, ips114_x_max-1]
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ [0, ips114_y_max-1]
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> float <20><> double
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> num <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>10λ
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> num <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>8λ
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> pointnum С<><D0A1>λ<EFBFBD><CEBB>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>6λ
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> ips114_show_float(0, 0, x, 2, 3); // <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ 2 λ С<><D0A1><EFBFBD><EFBFBD>ʾ 3 λ
|
||||
@@ -618,7 +618,7 @@ void ips114_show_float (uint16 x, uint16 y, const float dat, uint8 num, uint8 po
|
||||
}
|
||||
dat_temp = dat_temp - ((int)dat_temp / (int)offset) * offset;
|
||||
}
|
||||
float_to_str(data_buffer, dat_temp, pointnum);
|
||||
func_float_to_str(data_buffer, dat_temp, pointnum);
|
||||
ips114_show_string(x, y, data_buffer);
|
||||
}
|
||||
|
||||
@@ -641,6 +641,7 @@ void ips114_show_binary_image (uint16 x, uint16 y, const uint8 *image, uint16 wi
|
||||
// <20><>ôһ<C3B4><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE>ʱ<EFBFBD><EFBFBD><F2B3ACB9><EFBFBD>Ļ<EFBFBD>ֱ<EFBFBD><D6B1>ʷ<EFBFBD>Χ<EFBFBD><CEA7>
|
||||
zf_assert(x < ips114_x_max);
|
||||
zf_assert(y < ips114_y_max);
|
||||
zf_assert(image != NULL);
|
||||
|
||||
uint32 i = 0, j = 0;
|
||||
uint8 temp = 0;
|
||||
@@ -689,6 +690,7 @@ void ips114_show_gray_image (uint16 x, uint16 y, const uint8 *image, uint16 widt
|
||||
// <20><>ôһ<C3B4><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE>ʱ<EFBFBD><EFBFBD><F2B3ACB9><EFBFBD>Ļ<EFBFBD>ֱ<EFBFBD><D6B1>ʷ<EFBFBD>Χ<EFBFBD><CEA7>
|
||||
zf_assert(x < ips114_x_max);
|
||||
zf_assert(y < ips114_y_max);
|
||||
zf_assert(image != NULL);
|
||||
|
||||
uint32 i = 0, j = 0;
|
||||
uint16 color = 0,temp = 0;
|
||||
@@ -744,6 +746,7 @@ void ips114_show_rgb565_image (uint16 x, uint16 y, const uint16 *image, uint16 w
|
||||
// <20><>ôһ<C3B4><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE>ʱ<EFBFBD><EFBFBD><F2B3ACB9><EFBFBD>Ļ<EFBFBD>ֱ<EFBFBD><D6B1>ʷ<EFBFBD>Χ<EFBFBD><CEA7>
|
||||
zf_assert(x < ips114_x_max);
|
||||
zf_assert(y < ips114_y_max);
|
||||
zf_assert(image != NULL);
|
||||
|
||||
uint32 i = 0, j = 0;
|
||||
uint16 color = 0;
|
||||
@@ -788,6 +791,7 @@ void ips114_show_wave (uint16 x, uint16 y, const uint16 *wave, uint16 width, uin
|
||||
// <20><>ôһ<C3B4><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE>ʱ<EFBFBD><EFBFBD><F2B3ACB9><EFBFBD>Ļ<EFBFBD>ֱ<EFBFBD><D6B1>ʷ<EFBFBD>Χ<EFBFBD><CEA7>
|
||||
zf_assert(x < ips114_x_max);
|
||||
zf_assert(y < ips114_y_max);
|
||||
zf_assert(wave != NULL);
|
||||
|
||||
uint32 i = 0, j = 0;
|
||||
uint32 width_index = 0, value_max_index = 0;
|
||||
@@ -829,6 +833,7 @@ void ips114_show_chinese (uint16 x, uint16 y, uint8 size, const uint8 *chinese_b
|
||||
// <20><>ôһ<C3B4><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE>ʱ<EFBFBD><EFBFBD><F2B3ACB9><EFBFBD>Ļ<EFBFBD>ֱ<EFBFBD><D6B1>ʷ<EFBFBD>Χ<EFBFBD><CEA7>
|
||||
zf_assert(x < ips114_x_max);
|
||||
zf_assert(y < ips114_y_max);
|
||||
zf_assert(chinese_buffer != NULL);
|
||||
|
||||
int i, j, k;
|
||||
uint8 temp, temp1, temp2;
|
||||
@@ -882,9 +887,9 @@ void ips114_init (void)
|
||||
spi_init(IPS114_SPI, SPI_MODE0, IPS114_SPI_SPEED, IPS114_SCL_PIN, IPS114_SDA_PIN, IPS114_SDA_IN_PIN, SPI_CS_NULL);
|
||||
#endif
|
||||
|
||||
gpio_init(IPS114_DC_PIN, GPO, GPIO_LOW, GPO_PUSH_PULL);
|
||||
gpio_init(IPS114_RST_PIN, GPO, GPIO_LOW, GPO_PUSH_PULL);
|
||||
gpio_init(IPS114_CS_PIN, GPO, GPIO_HIGH, GPO_PUSH_PULL);
|
||||
gpio_init(IPS114_DC_PIN, GPO, GPIO_LOW, GPO_PUSH_PULL);
|
||||
gpio_init(IPS114_RST_PIN, GPO, GPIO_LOW, GPO_PUSH_PULL);
|
||||
gpio_init(IPS114_CS_PIN, GPO, GPIO_HIGH, GPO_PUSH_PULL);
|
||||
gpio_init(IPS114_BLK_PIN, GPO, GPIO_HIGH, GPO_PUSH_PULL);
|
||||
|
||||
ips114_set_dir(ips114_display_dir);
|
||||
|
||||
@@ -452,7 +452,7 @@ void ips200_draw_line (uint16 x_start, uint16 y_start, uint16 x_end, uint16 y_en
|
||||
}
|
||||
break;
|
||||
}
|
||||
if(myabs(y_start - y_end) > myabs(x_start - x_end))
|
||||
if(func_abs(y_start - y_end) > func_abs(x_start - x_end))
|
||||
{
|
||||
while(y_start != y_end)
|
||||
{
|
||||
@@ -630,7 +630,7 @@ void ips200_show_int (uint16 x, uint16 y, const int32 dat, uint8 num)
|
||||
}
|
||||
dat_temp %= offset;
|
||||
}
|
||||
int_to_str(data_buffer, dat_temp);
|
||||
func_int_to_str(data_buffer, dat_temp);
|
||||
ips200_show_string(x, y, (const char *)&data_buffer);
|
||||
}
|
||||
|
||||
@@ -667,7 +667,7 @@ void ips200_show_uint (uint16 x, uint16 y, const uint32 dat, uint8 num)
|
||||
}
|
||||
dat_temp %= offset;
|
||||
}
|
||||
uint_to_str(data_buffer, dat_temp);
|
||||
func_uint_to_str(data_buffer, dat_temp);
|
||||
ips200_show_string(x, y, (const char *)&data_buffer);
|
||||
}
|
||||
|
||||
@@ -710,7 +710,7 @@ void ips200_show_float (uint16 x, uint16 y, const float dat, uint8 num, uint8 po
|
||||
}
|
||||
dat_temp = dat_temp - ((int)dat_temp / (int)offset) * offset;
|
||||
}
|
||||
float_to_str(data_buffer, dat_temp, pointnum);
|
||||
func_float_to_str(data_buffer, dat_temp, pointnum);
|
||||
ips200_show_string(x, y, data_buffer);
|
||||
}
|
||||
|
||||
@@ -733,6 +733,7 @@ void ips200_show_binary_image (uint16 x, uint16 y, const uint8 *image, uint16 wi
|
||||
// <20><>ôһ<C3B4><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE>ʱ<EFBFBD><EFBFBD><F2B3ACB9><EFBFBD>Ļ<EFBFBD>ֱ<EFBFBD><D6B1>ʷ<EFBFBD>Χ<EFBFBD><CEA7>
|
||||
zf_assert(x < ips200_x_max);
|
||||
zf_assert(y < ips200_y_max);
|
||||
zf_assert(image != NULL);
|
||||
|
||||
uint32 i = 0, j = 0;
|
||||
uint8 temp = 0;
|
||||
@@ -787,6 +788,7 @@ void ips200_show_gray_image (uint16 x, uint16 y, const uint8 *image, uint16 widt
|
||||
// <20><>ôһ<C3B4><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE>ʱ<EFBFBD><EFBFBD><F2B3ACB9><EFBFBD>Ļ<EFBFBD>ֱ<EFBFBD><D6B1>ʷ<EFBFBD>Χ<EFBFBD><CEA7>
|
||||
zf_assert(x < ips200_x_max);
|
||||
zf_assert(y < ips200_y_max);
|
||||
zf_assert(image != NULL);
|
||||
|
||||
uint32 i = 0, j = 0;
|
||||
uint16 color = 0,temp = 0;
|
||||
@@ -848,6 +850,7 @@ void ips200_show_rgb565_image (uint16 x, uint16 y, const uint16 *image, uint16 w
|
||||
// <20><>ôһ<C3B4><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE>ʱ<EFBFBD><EFBFBD><F2B3ACB9><EFBFBD>Ļ<EFBFBD>ֱ<EFBFBD><D6B1>ʷ<EFBFBD>Χ<EFBFBD><CEA7>
|
||||
zf_assert(x < ips200_x_max);
|
||||
zf_assert(y < ips200_y_max);
|
||||
zf_assert(image != NULL);
|
||||
|
||||
uint32 i = 0, j = 0;
|
||||
uint16 color = 0;
|
||||
@@ -898,6 +901,7 @@ void ips200_show_wave (uint16 x, uint16 y, const uint16 *wave, uint16 width, uin
|
||||
// <20><>ôһ<C3B4><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE>ʱ<EFBFBD><EFBFBD><F2B3ACB9><EFBFBD>Ļ<EFBFBD>ֱ<EFBFBD><D6B1>ʷ<EFBFBD>Χ<EFBFBD><CEA7>
|
||||
zf_assert(x < ips200_x_max);
|
||||
zf_assert(y < ips200_y_max);
|
||||
zf_assert(wave != NULL);
|
||||
|
||||
uint32 i = 0, j = 0;
|
||||
uint32 width_index = 0, value_max_index = 0;
|
||||
@@ -945,6 +949,7 @@ void ips200_show_chinese (uint16 x, uint16 y, uint8 size, const uint8 *chinese_b
|
||||
// <20><>ôһ<C3B4><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE>ʱ<EFBFBD><EFBFBD><F2B3ACB9><EFBFBD>Ļ<EFBFBD>ֱ<EFBFBD><D6B1>ʷ<EFBFBD>Χ<EFBFBD><CEA7>
|
||||
zf_assert(x < ips200_x_max);
|
||||
zf_assert(y < ips200_y_max);
|
||||
zf_assert(chinese_buffer != NULL);
|
||||
|
||||
int i, j, k;
|
||||
uint8 temp, temp1, temp2;
|
||||
|
||||
@@ -160,7 +160,7 @@ float mpu6050_acc_transition (int16 acc_value)
|
||||
float mpu6050_gyro_transition (int16 gyro_value)
|
||||
{
|
||||
float gyro_data = 0;
|
||||
switch(MPU6050_GYRO_SAMPLE)
|
||||
switch(MPU6050_GYR_SAMPLE)
|
||||
{
|
||||
case 0x00: gyro_data = (float)gyro_value / 131.2f; break; // 0x00 <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 <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 0x08: gyro_data = (float)gyro_value / 65.6f; break; // 0x08 <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.5 <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
|
||||
@@ -202,7 +202,7 @@ uint8 mpu6050_init (void)
|
||||
mpu6050_write_register(MPU6050_PWR_MGMT_1, 0x00); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
||||
mpu6050_write_register(MPU6050_SMPLRT_DIV, 0x07); // 125HZ<48><5A><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
mpu6050_write_register(MPU6050_CONFIG, 0x04);
|
||||
mpu6050_write_register(MPU6050_GYRO_CONFIG, MPU6050_GYRO_SAMPLE); // 2000<30><30>/s
|
||||
mpu6050_write_register(MPU6050_GYRO_CONFIG, MPU6050_GYR_SAMPLE); // 2000<30><30>/s
|
||||
mpu6050_write_register(MPU6050_ACCEL_CONFIG, MPU6050_ACC_SAMPLE); // 8g(m/s^2)
|
||||
mpu6050_write_register(MPU6050_USER_CONTROL, 0x00);
|
||||
mpu6050_write_register(MPU6050_INT_PIN_CFG, 0x02);
|
||||
|
||||
@@ -74,14 +74,26 @@
|
||||
#define MPU6050_SMPLRT_DIV (0x19) // <20><><EFBFBD><EFBFBD><EFBFBD>Dz<EFBFBD><C7B2><EFBFBD><EFBFBD>ʣ<EFBFBD><CAA3><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>0x07(125Hz)
|
||||
#define MPU6050_CONFIG (0x1A) // <20><>ͨ<EFBFBD>˲<EFBFBD>Ƶ<EFBFBD>ʣ<EFBFBD><CAA3><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>0x06(5Hz)
|
||||
#define MPU6050_GYRO_CONFIG (0x1B) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ켰<D4BC><ECBCB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ<EFBFBD><CEA7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>0x18(<28><><EFBFBD>Լ죬2000deg/s)
|
||||
#define MPU6050_GYRO_SAMPLE (0x18) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define MPU6050_ACCEL_CONFIG (0x1C) // <20><><EFBFBD>ټ<EFBFBD><D9BC>Լ졢<D4BC><ECA1A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ<EFBFBD><CEA7><EFBFBD><EFBFBD>ͨ<EFBFBD>˲<EFBFBD>Ƶ<EFBFBD>ʣ<EFBFBD><CAA3><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>0x01(<28><><EFBFBD>Լ죬2G<32><47>5Hz)
|
||||
#define MPU6050_ACC_SAMPLE (0x10) // <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define MPU6050_INT_PIN_CFG (0x37) // <20><><EFBFBD><EFBFBD>6050<35><30><EFBFBD><EFBFBD>I2CΪֱͨģʽ<C4A3>Ĵ<EFBFBD><C4B4><EFBFBD>
|
||||
#define MPU6050_ACCEL_XOUT_H (0x3B)
|
||||
#define MPU6050_GYRO_XOUT_H (0x43)
|
||||
#define MPU6050_USER_CONTROL (0x6A) // <20>ر<EFBFBD>6050<35>Ը<EFBFBD><D4B8><EFBFBD>I2C<32>豸<EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD>
|
||||
#define MPU6050_PWR_MGMT_1 (0x6B) // <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>0x00(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
#define MPU6050_WHO_AM_I (0x75) // IIC<49><43>ַ<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>(Ĭ<><C4AC><EFBFBD><EFBFBD>ֵ0x68<36><38>ֻ<EFBFBD><D6BB>)
|
||||
|
||||
#define MPU6050_ACC_SAMPLE (0x10) // <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x00 <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><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x08 <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><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x10 <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><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x18 <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><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
|
||||
#define MPU6050_GYR_SAMPLE (0x18) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x00 <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><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x08 <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><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x10 <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><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x18 <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><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
|
||||
//================================================<3D><><EFBFBD><EFBFBD> MPU6050 <20>ڲ<EFBFBD><DAB2><EFBFBD>ַ================================================
|
||||
|
||||
//================================================<3D><><EFBFBD><EFBFBD> MPU6050 <20><><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD>==============================================
|
||||
|
||||
@@ -350,7 +350,7 @@ void oled_show_int (uint16 x, uint16 y, const int32 dat, uint8 num)
|
||||
}
|
||||
dat_temp %= offset;
|
||||
}
|
||||
int_to_str(data_buffer, dat_temp);
|
||||
func_int_to_str(data_buffer, dat_temp);
|
||||
oled_show_string(x, y, (const char *)&data_buffer);
|
||||
}
|
||||
|
||||
@@ -389,7 +389,7 @@ void oled_show_uint (uint16 x,uint16 y,const uint32 dat,uint8 num)
|
||||
}
|
||||
dat_temp %= offset;
|
||||
}
|
||||
uint_to_str(data_buffer, dat_temp);
|
||||
func_uint_to_str(data_buffer, dat_temp);
|
||||
oled_show_string(x, y, (const char *)&data_buffer);
|
||||
}
|
||||
|
||||
@@ -398,7 +398,7 @@ void oled_show_uint (uint16 x,uint16 y,const uint32 dat,uint8 num)
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> x x <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0-127
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> y y <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0-7
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>float<61><74>double
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> num <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>10λ
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> num <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>8λ
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> pointnum С<><D0A1>λ<EFBFBD><CEBB>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>6λ
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> oled_show_float(0, 0, x, 2, 3); // <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ2λ С<><D0A1><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>λ
|
||||
@@ -434,7 +434,7 @@ void oled_show_float (uint16 x,uint16 y,const float dat,uint8 num,uint8 pointnum
|
||||
}
|
||||
dat_temp = dat_temp - ((int)dat_temp / (int)offset) * offset;
|
||||
}
|
||||
float_to_str(data_buffer, dat_temp, pointnum);
|
||||
func_float_to_str(data_buffer, dat_temp, pointnum);
|
||||
oled_show_string(x, y, data_buffer);
|
||||
}
|
||||
|
||||
@@ -458,6 +458,7 @@ void oled_show_binary_image (uint16 x, uint16 y, const uint8 *image, uint16 widt
|
||||
// <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD>õĺ<C3B5><C4BA><EFBFBD> <20>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ﳬ<EFBFBD><EFB3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE>Χ
|
||||
zf_assert(x < 128);
|
||||
zf_assert(y < 8);
|
||||
zf_assert(image != NULL);
|
||||
|
||||
uint32 i = 0, j = 0, z = 0;
|
||||
uint8 dat;
|
||||
@@ -536,6 +537,7 @@ void oled_show_gray_image (uint16 x, uint16 y, const uint8 *image, uint16 width,
|
||||
// <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD>õĺ<C3B5><C4BA><EFBFBD> <20>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ﳬ<EFBFBD><EFB3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE>Χ
|
||||
zf_assert(x < 128);
|
||||
zf_assert(y < 8);
|
||||
zf_assert(image != NULL);
|
||||
|
||||
int16 i, j;
|
||||
uint8 dat;
|
||||
@@ -609,6 +611,7 @@ void oled_show_wave (uint16 x, uint16 y, const uint16 *wave, uint16 width, uint1
|
||||
// <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD>õĺ<C3B5><C4BA><EFBFBD> <20>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ﳬ<EFBFBD><EFB3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE>Χ
|
||||
zf_assert(x < 128);
|
||||
zf_assert(y < 8);
|
||||
zf_assert(wave != NULL);
|
||||
|
||||
uint32 i = 0;
|
||||
uint32 width_index = 0, value_max_index = 0;
|
||||
@@ -655,6 +658,7 @@ void oled_show_chinese (uint16 x, uint16 y, uint8 size, const uint8 *chinese_buf
|
||||
// <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD>õĺ<C3B5><C4BA><EFBFBD> <20>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ﳬ<EFBFBD><EFB3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE>Χ
|
||||
zf_assert(x < 128);
|
||||
zf_assert(y < 8);
|
||||
zf_assert(chinese_buffer != NULL);
|
||||
|
||||
int16 i, j, k;
|
||||
|
||||
@@ -686,8 +690,6 @@ void oled_init (void)
|
||||
#if OLED_USE_SOFT_SPI
|
||||
soft_spi_init(&oled_spi, 0, OLED_SOFT_SPI_DELAY, OLED_D0_PIN, OLED_D1_PIN, SOFT_SPI_PIN_NULL, SOFT_SPI_PIN_NULL);
|
||||
#else
|
||||
|
||||
|
||||
spi_init(OLED_SPI, SPI_MODE0, OLED_SPI_SPEED, OLED_D0_PIN, OLED_D1_PIN, OLED_D1_PIN_IN, SPI_CS_NULL);
|
||||
#endif
|
||||
gpio_init(OLED_RES_PIN, GPO, GPIO_HIGH, GPO_PUSH_PULL);
|
||||
|
||||
@@ -63,10 +63,10 @@
|
||||
vuint8 ov7725_finish_flag = 0;
|
||||
uint8 ov7725_image_binary [OV7725_H][OV7725_W / 8]; // ͼ<><EFBFBD><F1B1A3B4><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
vuint8 ov7725_uart_dma_init_flag; // <20><><EFBFBD>³<EFBFBD>ʼ<EFBFBD><CABC>DMA<4D>ı<EFBFBD>־λ
|
||||
vuint8 ov7725_dma_int_num = 0;
|
||||
vuint8 ov7725_lost_flag = 1;
|
||||
vuint8 ov7725_link_list_num = 0;
|
||||
uint8 ov7725_uart_dma_init_flag; // <20><><EFBFBD>³<EFBFBD>ʼ<EFBFBD><CABC>DMA<4D>ı<EFBFBD>־λ
|
||||
uint8 ov7725_dma_int_num = 0;
|
||||
uint8 ov7725_lost_flag = 1;
|
||||
uint8 ov7725_link_list_num = 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 uint16 ov7725_set_confing_buffer [OV7725_CONFIG_FINISH][2]=
|
||||
{
|
||||
@@ -341,7 +341,7 @@ static void ov7725_vsync_handler(void)
|
||||
OV7725_DATA_ADD,
|
||||
ov7725_image_binary[0],
|
||||
OV7725_PCLK_PIN,
|
||||
EXTI_TRIGGER_FALLING,
|
||||
EXTI_TRIGGER_RISING,
|
||||
OV7725_IMAGE_SIZE);
|
||||
dma_enable(OV7725_DMA_CH);
|
||||
}
|
||||
|
||||
@@ -207,7 +207,6 @@ static void scc8660_uart_callback (void)
|
||||
{
|
||||
uint8 data = 0;
|
||||
uart_query_byte(SCC8660_COF_UART, &data);
|
||||
uart_write_byte(UART_0, data);
|
||||
if(0xA5 == data)
|
||||
{
|
||||
fifo_clear(&camera_receiver_fifo);
|
||||
|
||||
@@ -354,7 +354,7 @@ void tft180_draw_line (uint16 x_start, uint16 y_start, uint16 x_end, uint16 y_en
|
||||
return;
|
||||
}
|
||||
|
||||
if(myabs(y_start - y_end) > myabs(x_start - x_end))
|
||||
if(func_abs(y_start - y_end) > func_abs(x_start - x_end))
|
||||
{
|
||||
while(y_start != y_end)
|
||||
{
|
||||
@@ -523,7 +523,7 @@ void tft180_show_int (uint16 x, uint16 y, const int32 dat, uint8 num)
|
||||
offset *= 10;
|
||||
dat_temp %= offset;
|
||||
}
|
||||
int_to_str(data_buffer, dat_temp);
|
||||
func_int_to_str(data_buffer, dat_temp);
|
||||
tft180_show_string(x, y, (const char *)&data_buffer);
|
||||
}
|
||||
|
||||
@@ -558,7 +558,7 @@ void tft180_show_uint (uint16 x, uint16 y, const uint32 dat, uint8 num)
|
||||
offset *= 10;
|
||||
dat_temp %= offset;
|
||||
}
|
||||
uint_to_str(data_buffer, dat_temp);
|
||||
func_uint_to_str(data_buffer, dat_temp);
|
||||
tft180_show_string(x, y, (const char *)&data_buffer);
|
||||
}
|
||||
|
||||
@@ -567,7 +567,7 @@ void tft180_show_uint (uint16 x, uint16 y, const uint32 dat, uint8 num)
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ [0, tft180_x_max-1]
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ [0, tft180_y_max-1]
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>float<61><74>double
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> num <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>10λ
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> num <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>8λ
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> pointnum С<><D0A1>λ<EFBFBD><CEBB>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>6λ
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> tft180_show_float(0, 0, x, 2, 3); // <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ2λ С<><D0A1><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>λ
|
||||
@@ -599,7 +599,7 @@ void tft180_show_float (uint16 x, uint16 y, const float dat, uint8 num, uint8 po
|
||||
offset *= 10;
|
||||
dat_temp = dat_temp - ((int)dat_temp / (int)offset) * offset;
|
||||
}
|
||||
float_to_str(data_buffer, dat_temp, pointnum);
|
||||
func_float_to_str(data_buffer, dat_temp, pointnum);
|
||||
tft180_show_string(x, y, data_buffer);
|
||||
}
|
||||
|
||||
@@ -622,6 +622,7 @@ void tft180_show_binary_image (uint16 x, uint16 y, const uint8 *image, uint16 wi
|
||||
// <20><>ôһ<C3B4><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE>ʱ<EFBFBD><EFBFBD><F2B3ACB9><EFBFBD>Ļ<EFBFBD>ֱ<EFBFBD><D6B1>ʷ<EFBFBD>Χ<EFBFBD><CEA7>
|
||||
zf_assert(x < tft180_x_max);
|
||||
zf_assert(y < tft180_y_max);
|
||||
zf_assert(image != NULL);
|
||||
|
||||
uint32 i = 0, j = 0;
|
||||
uint8 temp = 0;
|
||||
@@ -666,6 +667,7 @@ void tft180_show_gray_image (uint16 x, uint16 y, const uint8 *image, uint16 widt
|
||||
// <20><>ôһ<C3B4><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE>ʱ<EFBFBD><EFBFBD><F2B3ACB9><EFBFBD>Ļ<EFBFBD>ֱ<EFBFBD><D6B1>ʷ<EFBFBD>Χ<EFBFBD><CEA7>
|
||||
zf_assert(x < tft180_x_max);
|
||||
zf_assert(y < tft180_y_max);
|
||||
zf_assert(image != NULL);
|
||||
|
||||
uint32 i = 0, j = 0;
|
||||
uint16 color = 0,temp = 0;
|
||||
@@ -717,6 +719,7 @@ void tft180_show_rgb565_image (uint16 x, uint16 y, const uint16 *image, uint16 w
|
||||
// <20><>ôһ<C3B4><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE>ʱ<EFBFBD><EFBFBD><F2B3ACB9><EFBFBD>Ļ<EFBFBD>ֱ<EFBFBD><D6B1>ʷ<EFBFBD>Χ<EFBFBD><CEA7>
|
||||
zf_assert(x < tft180_x_max);
|
||||
zf_assert(y < tft180_y_max);
|
||||
zf_assert(image != NULL);
|
||||
|
||||
uint32 i = 0, j = 0;
|
||||
uint16 color = 0;
|
||||
@@ -759,6 +762,7 @@ void tft180_show_wave (uint16 x, uint16 y, const uint16 *wave, uint16 width, uin
|
||||
// <20><>ôһ<C3B4><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE>ʱ<EFBFBD><EFBFBD><F2B3ACB9><EFBFBD>Ļ<EFBFBD>ֱ<EFBFBD><D6B1>ʷ<EFBFBD>Χ<EFBFBD><CEA7>
|
||||
zf_assert(x < tft180_x_max);
|
||||
zf_assert(y < tft180_y_max);
|
||||
zf_assert(wave != NULL);
|
||||
|
||||
uint32 i = 0, j = 0;
|
||||
uint32 width_index = 0, value_max_index = 0;
|
||||
@@ -800,6 +804,7 @@ void tft180_show_chinese (uint16 x, uint16 y, uint8 size, const uint8 *chinese_b
|
||||
// <20><>ôһ<C3B4><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE>ʱ<EFBFBD><EFBFBD><F2B3ACB9><EFBFBD>Ļ<EFBFBD>ֱ<EFBFBD><D6B1>ʷ<EFBFBD>Χ<EFBFBD><CEA7>
|
||||
zf_assert(x < tft180_x_max);
|
||||
zf_assert(y < tft180_y_max);
|
||||
zf_assert(chinese_buffer != NULL);
|
||||
|
||||
int i, j, k;
|
||||
uint8 temp, temp1, temp2;
|
||||
|
||||
@@ -38,12 +38,12 @@
|
||||
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_dma_handler = type_default_callback; // <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>ת
|
||||
callback_function camera_vsync_handler = type_default_callback;; // <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>ת
|
||||
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_dma_handler = type_default_callback; // 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>ת
|
||||
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_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>ת
|
||||
|
||||
wireless_type_enum wireless_type = NO_WIRELESS;
|
||||
callback_function wireless_module_uart_handler = type_default_callback;; // <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>ת
|
||||
callback_function wireless_module_uart_handler = type_default_callback; // <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>ת
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ĭ<>ϻص<CFBB><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
||||
@@ -84,6 +84,7 @@ void set_camera_type (camera_type_enum type_set, callback_function vsync_callbac
|
||||
void set_wireless_type (wireless_type_enum type_set, callback_function uart_callback)
|
||||
{
|
||||
wireless_type = type_set;
|
||||
wireless_module_uart_handler = uart_callback;
|
||||
if(uart_callback == NULL) wireless_module_uart_handler = type_default_callback;
|
||||
else wireless_module_uart_handler = uart_callback;
|
||||
}
|
||||
|
||||
|
||||
@@ -53,14 +53,18 @@ static uint16 crc_check (uint8 *buff, uint8 crc_cnt)
|
||||
|
||||
for(i = 0; i < crc_cnt; i ++)
|
||||
{
|
||||
crc_temp ^= buff[i];
|
||||
for(j = 0; j < 8; j ++)
|
||||
{
|
||||
if (crc_temp & 0x01)
|
||||
crc_temp = (crc_temp >> 1) ^ 0xa001;
|
||||
else
|
||||
crc_temp = crc_temp >> 1;
|
||||
}
|
||||
crc_temp ^= buff[i];
|
||||
for(j = 0; j < 8; j ++)
|
||||
{
|
||||
if (crc_temp & 0x01)
|
||||
{
|
||||
crc_temp = (crc_temp >> 1) ^ 0xa001;
|
||||
}
|
||||
else
|
||||
{
|
||||
crc_temp = crc_temp >> 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
return(crc_temp);
|
||||
}
|
||||
|
||||
@@ -598,6 +598,8 @@ uint8 wifi_uart_exit_serianet (void)
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
uint8 wifi_uart_connect_tcp_servers (char *ip, char *port, wifi_uart_transfer_mode_enum mode)
|
||||
{
|
||||
zf_assert(ip != NULL);
|
||||
zf_assert(port != NULL);
|
||||
|
||||
uint8 return_state = 0;
|
||||
|
||||
@@ -689,6 +691,9 @@ uint8 wifi_uart_connect_tcp_servers (char *ip, char *port, wifi_uart_transfer_mo
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
uint8 wifi_uart_connect_udp_client (char *ip, char *port, char *local_port, wifi_uart_transfer_mode_enum mode)
|
||||
{
|
||||
zf_assert(ip != NULL);
|
||||
zf_assert(port != NULL);
|
||||
zf_assert(local_port != NULL);
|
||||
uint8 return_state = 0;
|
||||
|
||||
wifi_uart_clear_receive_buffer(); // <20><><EFBFBD><EFBFBD>WiFi<46><69><EFBFBD>ջ<EFBFBD><D5BB><EFBFBD><EFBFBD><EFBFBD>
|
||||
@@ -827,6 +832,7 @@ uint8 wifi_uart_disconnect_link_with_id (wifi_uart_link_id_enum link_id)
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
uint8 wifi_uart_entry_tcp_servers (char *port)
|
||||
{
|
||||
zf_assert(port != NULL);
|
||||
uint8 return_state = 0;
|
||||
|
||||
wifi_uart_clear_receive_buffer(); // <20><><EFBFBD><EFBFBD>WiFi<46><69><EFBFBD>ջ<EFBFBD><D5BB><EFBFBD><EFBFBD><EFBFBD>
|
||||
@@ -948,6 +954,7 @@ uint8 wifi_uart_tcp_servers_check_link (void)
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint32 wifi_uart_send_buffer (uint8 *buff, uint32 len)
|
||||
{
|
||||
zf_assert(buff != NULL);
|
||||
int32 timeout = WAIT_TIME_OUT;
|
||||
|
||||
char lenth[32] = {0};
|
||||
@@ -958,7 +965,7 @@ uint32 wifi_uart_send_buffer (uint8 *buff, uint32 len)
|
||||
{
|
||||
wifi_uart_clear_receive_buffer(); // <20><><EFBFBD><EFBFBD>WiFi<46><69><EFBFBD>ջ<EFBFBD><D5BB><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
int_to_str(lenth,len);
|
||||
func_int_to_str(lenth,len);
|
||||
if(len > 8192)
|
||||
{
|
||||
uart_write_string(WIFI_UART_INDEX, "AT+CIPSENDL=");
|
||||
@@ -1002,6 +1009,7 @@ uint32 wifi_uart_send_buffer (uint8 *buff, uint32 len)
|
||||
}
|
||||
}
|
||||
}
|
||||
wifi_uart_clear_receive_buffer(); // <20><><EFBFBD><EFBFBD>WiFi<46><69><EFBFBD>ջ<EFBFBD><D5BB><EFBFBD><EFBFBD><EFBFBD>
|
||||
return len;
|
||||
}
|
||||
|
||||
@@ -1016,6 +1024,7 @@ uint32 wifi_uart_send_buffer (uint8 *buff, uint32 len)
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint32 wifi_uart_tcp_servers_send_buffer (uint8 *buff, uint32 len, wifi_uart_link_id_enum id)
|
||||
{
|
||||
zf_assert(buff != NULL);
|
||||
char lenth[32] = {0};
|
||||
|
||||
if( wifi_uart_information.wifi_uart_transfer_mode == WIFI_UART_COMMAND && \
|
||||
@@ -1023,7 +1032,7 @@ uint32 wifi_uart_tcp_servers_send_buffer (uint8 *buff, uint32 len, wifi_uart_lin
|
||||
{
|
||||
wifi_uart_clear_receive_buffer(); // <20><><EFBFBD><EFBFBD>WiFi<46><69><EFBFBD>ջ<EFBFBD><D5BB><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
int_to_str(lenth,len);
|
||||
func_int_to_str(lenth,len);
|
||||
if(len > 8192)
|
||||
{
|
||||
uart_write_string(WIFI_UART_INDEX, "AT+CIPSENDL=");
|
||||
@@ -1064,6 +1073,7 @@ uint32 wifi_uart_tcp_servers_send_buffer (uint8 *buff, uint32 len, wifi_uart_lin
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint32 wifi_uart_read_buffer (uint8 *buffer, uint32 len)
|
||||
{
|
||||
zf_assert(buffer != NULL);
|
||||
uint32 read_len = len;
|
||||
fifo_read_buffer(&wifi_uart_fifo, buffer, &read_len, FIFO_READ_AND_CLEAN);
|
||||
return read_len;
|
||||
@@ -1096,6 +1106,8 @@ void wifi_uart_callback (void)
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint8 wifi_uart_init (char *wifi_ssid, char *pass_word, wifi_uart_mode_enum wifi_mode)
|
||||
{
|
||||
zf_assert(wifi_ssid != NULL);
|
||||
zf_assert(pass_word != NULL);
|
||||
char uart_baud[32] = {0};
|
||||
uint8 return_state = 0;
|
||||
|
||||
@@ -1121,7 +1133,7 @@ uint8 wifi_uart_init (char *wifi_ssid, char *pass_word, wifi_uart_mode_enum wifi
|
||||
return_state = 1;
|
||||
break;
|
||||
}
|
||||
int_to_str(uart_baud, WIFI_UART_BAUD); // <20><><EFBFBD><EFBFBD>WiFiģ<69><C4A3><EFBFBD><EFBFBD>ʹ<EFBFBD>õIJ<C3B5><C4B2><EFBFBD><EFBFBD>ʲ<EFBFBD><CAB2><EFBFBD>
|
||||
func_int_to_str(uart_baud, WIFI_UART_BAUD); // <20><><EFBFBD><EFBFBD>WiFiģ<69><C4A3><EFBFBD><EFBFBD>ʹ<EFBFBD>õIJ<C3B5><C4B2><EFBFBD><EFBFBD>ʲ<EFBFBD><CAB2><EFBFBD>
|
||||
if(wifi_uart_uart_config_set(uart_baud, "8", "1", "0", "1")) // <20><><EFBFBD>ýӿ<C3BD><D3BF><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>
|
||||
{
|
||||
zf_log(0, "set config failed");
|
||||
|
||||
@@ -93,6 +93,7 @@ uint32 wireless_uart_send_byte (const uint8 data)
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint32 wireless_uart_send_buff (const uint8 *buff, uint32 len)
|
||||
{
|
||||
zf_assert(buff != NULL);
|
||||
uint16 time_count = 0;
|
||||
while(0 != len)
|
||||
{
|
||||
@@ -133,6 +134,7 @@ uint32 wireless_uart_send_buff (const uint8 *buff, uint32 len)
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint32 wireless_uart_send_string (const char *str)
|
||||
{
|
||||
zf_assert(str != NULL);
|
||||
uint16 time_count = 0;
|
||||
uint32 len = strlen(str);
|
||||
while(0 != len)
|
||||
@@ -175,6 +177,7 @@ uint32 wireless_uart_send_string (const char *str)
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void wireless_uart_send_image (const uint8 *image_addr, uint32 image_size)
|
||||
{
|
||||
zf_assert(image_addr != NULL);
|
||||
extern uint8 camera_send_image_frame_header[4];
|
||||
wireless_uart_send_buff(camera_send_image_frame_header, 4);
|
||||
wireless_uart_send_buff((uint8 *)image_addr, image_size);
|
||||
@@ -190,6 +193,7 @@ void wireless_uart_send_image (const uint8 *image_addr, uint32 image_size)
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint32 wireless_uart_read_buff (uint8 *buff, uint32 len)
|
||||
{
|
||||
zf_assert(buff != NULL);
|
||||
uint32 data_len = len;
|
||||
fifo_read_buffer(&wireless_uart_fifo, buff, &data_len, FIFO_READ_AND_CLEAN);
|
||||
return data_len;
|
||||
@@ -244,22 +248,22 @@ uint8 wireless_uart_init (void)
|
||||
wireless_auto_baud_data[1] = 1;
|
||||
wireless_auto_baud_data[2] = 3;
|
||||
|
||||
rts_init_status = gpio_get(WIRELESS_UART_RTS_PIN);
|
||||
rts_init_status = gpio_get_level(WIRELESS_UART_RTS_PIN);
|
||||
gpio_init(WIRELESS_UART_RTS_PIN, GPO, rts_init_status, GPO_PUSH_PULL); // <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
uart_init (WIRELESS_UART_INDEX, WIRELESS_UART_BUAD_RATE, WIRELESS_UART_RX_PIN, WIRELESS_UART_TX_PIN); // <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
uart_rx_irq(WIRELESS_UART_INDEX, 1);
|
||||
uart_rx_interrupt(WIRELESS_UART_INDEX, 1);
|
||||
|
||||
system_delay_ms(5); // ģ<><C4A3><EFBFBD>ϵ<EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA>ʱ<EFBFBD>ȴ<EFBFBD>
|
||||
gpio_set(WIRELESS_UART_RTS_PIN, !rts_init_status); // RTS<54><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߣ<EFBFBD><DFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
|
||||
gpio_set_level(WIRELESS_UART_RTS_PIN, !rts_init_status); // RTS<54><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߣ<EFBFBD><DFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
|
||||
system_delay_ms(100); // RTS<54><53><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ20ms
|
||||
gpio_toggle(WIRELESS_UART_RTS_PIN); // RTS<54><53><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1>
|
||||
|
||||
wireless_auto_baud_flag = 1;
|
||||
|
||||
uart_putchar(WIRELESS_UART_INDEX, wireless_auto_baud_data[0]); // <20><><EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><D8B6><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD>Զ<EFBFBD><D4B6>жϲ<D0B6><CFB2><EFBFBD><EFBFBD><EFBFBD>
|
||||
uart_putchar(WIRELESS_UART_INDEX, wireless_auto_baud_data[1]); // <20><><EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><D8B6><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD>Զ<EFBFBD><D4B6>жϲ<D0B6><CFB2><EFBFBD><EFBFBD><EFBFBD>
|
||||
uart_putchar(WIRELESS_UART_INDEX, wireless_auto_baud_data[2]); // <20><><EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><D8B6><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD>Զ<EFBFBD><D4B6>жϲ<D0B6><CFB2><EFBFBD><EFBFBD><EFBFBD>
|
||||
uart_write_byte(WIRELESS_UART_INDEX, wireless_auto_baud_data[0]); // <20><><EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><D8B6><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD>Զ<EFBFBD><D4B6>жϲ<D0B6><CFB2><EFBFBD><EFBFBD><EFBFBD>
|
||||
uart_write_byte(WIRELESS_UART_INDEX, wireless_auto_baud_data[1]); // <20><><EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><D8B6><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD>Զ<EFBFBD><D4B6>жϲ<D0B6><CFB2><EFBFBD><EFBFBD><EFBFBD>
|
||||
uart_write_byte(WIRELESS_UART_INDEX, wireless_auto_baud_data[2]); // <20><><EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><D8B6><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD>Զ<EFBFBD><D4B6>жϲ<D0B6><CFB2><EFBFBD><EFBFBD><EFBFBD>
|
||||
system_delay_ms(20);
|
||||
|
||||
time_count = 0;
|
||||
|
||||
@@ -254,32 +254,32 @@ void uart_mux (uart_index_enum uartn, uart_tx_pin_enum tx_pin, uart_rx_pin_enum
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ڵȴ<DAB5><C8B4><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> uart_n <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> zf_driver_uart.h <20><> uart_index_enum ö<><C3B6><EFBFBD>嶨<EFBFBD><E5B6A8>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> dat <20><>Ҫ<EFBFBD><D2AA><EFBFBD>͵<EFBFBD><CDB5>ֽ<EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> uart_write_byte_wait(UART_1, 0xA5); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD>ķ<EFBFBD><C4B7>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4>0xA5<41><35><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD>ݷ<EFBFBD><DDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void uart_write_byte_wait (uart_index_enum uart_n, const uint8 dat)
|
||||
{
|
||||
Ifx_SizeT count = 1;
|
||||
(void)IfxAsclin_Asc_write(uart_get_handle(uart_n), &dat, &count, TIME_INFINITE);
|
||||
while(TRUE == uart_get_handle(uart_n)->txInProgress);
|
||||
}
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ڷ<EFBFBD><DAB7><EFBFBD>д<EFBFBD><D0B4>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> uart_n <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> zf_driver_uart.h <20><> uart_index_enum ö<><C3B6><EFBFBD>嶨<EFBFBD><E5B6A8>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> dat <20><>Ҫ<EFBFBD><D2AA><EFBFBD>͵<EFBFBD><CDB5>ֽ<EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> uart_write_tx_buffer(UART_1, 0xA5); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD>ķ<EFBFBD><C4B7>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4>0xA5<41><35>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD>ᷢ<EFBFBD><E1B7A2><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD>ǻ<EFBFBD><C7BB><EFBFBD><EFBFBD><EFBFBD>CPU<50>ڴ<EFBFBD><DAB4>ڵ<EFBFBD>ִ<EFBFBD><D6B4>ʱ<EFBFBD><EFBFBD>
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void uart_write_tx_buffer (uart_index_enum uart_n, const uint8 dat)
|
||||
{
|
||||
Ifx_SizeT count = 1;
|
||||
(void)IfxAsclin_Asc_write(uart_get_handle(uart_n), &dat, &count, TIME_INFINITE);
|
||||
}
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> uart_n <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> zf_driver_uart.h <20><> uart_index_enum ö<><C3B6><EFBFBD>嶨<EFBFBD><E5B6A8>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> dat <20><>Ҫ<EFBFBD><D2AA><EFBFBD>͵<EFBFBD><CDB5>ֽ<EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> uart_write_byte(UART_1, 0xA5); // <20><><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD>0xA5
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> uart_write_byte(UART_1, 0xA5); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD>ķ<EFBFBD><C4B7>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4>0xA5<41><35>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD>ᷢ<EFBFBD><E1B7A2><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD>ǻ<EFBFBD><C7BB><EFBFBD><EFBFBD><EFBFBD>CPU<50>ڴ<EFBFBD><DAB4>ڵ<EFBFBD>ִ<EFBFBD><D6B4>ʱ
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void uart_write_byte (uart_index_enum uart_n, const uint8 dat)
|
||||
{
|
||||
Ifx_SizeT count = 1;
|
||||
(void)IfxAsclin_Asc_write(uart_get_handle(uart_n), &dat, &count, TIME_INFINITE);
|
||||
while(TRUE == uart_get_handle(uart_n)->txInProgress);
|
||||
}
|
||||
|
||||
|
||||
@@ -296,7 +296,7 @@ void uart_write_buffer (uart_index_enum uart_n, const uint8 *buff, uint32 len)
|
||||
{
|
||||
while(len)
|
||||
{
|
||||
uart_write_tx_buffer(uart_n, *buff);
|
||||
uart_write_byte(uart_n, *buff);
|
||||
len--;
|
||||
buff++;
|
||||
}
|
||||
|
||||
@@ -127,7 +127,7 @@ extern IfxAsclin_Asc uart2_handle;
|
||||
extern IfxAsclin_Asc uart3_handle;
|
||||
|
||||
//====================================================<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||
void uart_write_tx_buffer (uart_index_enum uart_n, const uint8 dat);
|
||||
void uart_write_byte_wait (uart_index_enum uart_n, const uint8 dat);
|
||||
void uart_write_byte (uart_index_enum uartn, const uint8 dat);
|
||||
void uart_write_buffer (uart_index_enum uartn, const uint8 *buff, uint32 len);
|
||||
void uart_write_string (uart_index_enum uartn, const char *str);
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
V3.1.0
|
||||
<20><EFBFBD>GPS<50><53><EFBFBD>Ȳ<EFBFBD><C8B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>ע<EFBFBD>ʹ<EFBFBD><CDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB>ӿڵĶ<DAB5><C4B6>Ի<EFBFBD><D4BB><EFBFBD> <20><>ǿ V3 <20><><EFBFBD>Ľ<EFBFBD>׳<EFBFBD><D7B3> <20><>Ҫ<EFBFBD><D2AA><EFBFBD>Կ<EFBFBD>ָ<EFBFBD><D6B8>
|
||||
V3.0.1
|
||||
<20><EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>絥<EFBFBD><E7B5A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD><D8B9>ȹ<EFBFBD><C8B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
V3.0.0
|
||||
|
||||
@@ -33,18 +33,18 @@
|
||||
* 2022-09-15 pudding first version
|
||||
********************************************************************************************************************/
|
||||
|
||||
#include "zf_common_debug.h"
|
||||
#include "zf_common_function.h"
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> num1 <20><><EFBFBD><EFBFBD>1
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> num2 <20><><EFBFBD><EFBFBD>2
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> uint32 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> return get_greatest_common_divisor(144, 36); // <20><>ȡ 144 <20><> 36 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> return func_get_greatest_common_divisor(144, 36); // <20><>ȡ 144 <20><> 36 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint32 get_greatest_common_divisor (uint32 num1, uint32 num2)
|
||||
uint32 func_get_greatest_common_divisor (uint32 num1, uint32 num2)
|
||||
{
|
||||
while(num1 != num2)
|
||||
{
|
||||
@@ -64,10 +64,10 @@ uint32 get_greatest_common_divisor (uint32 num1, uint32 num2)
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> t <20><>ʱʱ<CAB1><CAB1>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> my_delay(100);
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> func_soft_delay(100);
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void my_delay (volatile long t)
|
||||
void func_soft_delay (volatile long t)
|
||||
{
|
||||
while(t --);
|
||||
}
|
||||
@@ -76,11 +76,12 @@ void my_delay (volatile long t)
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ַ<EFBFBD><D6B7><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ݷ<EFBFBD>Χ<EFBFBD><CEA7> [-32768,32767]
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> *str <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> <20>ɴ<EFBFBD><C9B4><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> int32 ת<><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> int32 dat = str_to_int("-100");
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> int32 dat = func_str_to_int("-100");
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
int32 str_to_int (char *str)
|
||||
int32 func_str_to_int (char *str)
|
||||
{
|
||||
zf_assert(str != NULL);
|
||||
uint8 sign = 0; // <20><><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD> 0-<2D><><EFBFBD><EFBFBD> 1-<2D><><EFBFBD><EFBFBD>
|
||||
int32 temp = 0; // <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
do
|
||||
@@ -119,11 +120,12 @@ int32 str_to_int (char *str)
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> *str <20>ַ<EFBFBD><D6B7><EFBFBD>ָ<EFBFBD><D6B8>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> number <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> int_to_str(data_buffer, -300);
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> func_int_to_str(data_buffer, -300);
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void int_to_str (char *str, int32 number)
|
||||
void func_int_to_str (char *str, int32 number)
|
||||
{
|
||||
zf_assert(str != NULL);
|
||||
uint8 data_temp[16]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
uint8 bit = 0; // <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
|
||||
int32 number_temp = 0;
|
||||
@@ -149,7 +151,7 @@ void int_to_str (char *str, int32 number)
|
||||
while(0 != number) // ѭ<><D1AD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>
|
||||
{
|
||||
number_temp = number % 10;
|
||||
data_temp[bit ++] = myabs(number_temp); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
|
||||
data_temp[bit ++] = func_abs(number_temp); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
|
||||
number /= 10; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD>ĸ<EFBFBD>λ<EFBFBD><CEBB>
|
||||
}
|
||||
while(0 != bit) // <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>ݼ<EFBFBD><DDBC><EFBFBD><EFBFBD><EFBFBD>
|
||||
@@ -164,11 +166,12 @@ void int_to_str (char *str, int32 number)
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ַ<EFBFBD><D6B7><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ݷ<EFBFBD>Χ<EFBFBD><CEA7> [0,65535]
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> *str <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> <20><EFBFBD><DEB7><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> uint32 ת<><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> uint32 dat = str_to_uint("100");
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> uint32 dat = func_str_to_uint("100");
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint32 str_to_uint (char *str)
|
||||
uint32 func_str_to_uint (char *str)
|
||||
{
|
||||
zf_assert(str != NULL);
|
||||
uint32 temp = 0; // <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
do
|
||||
@@ -193,11 +196,12 @@ uint32 str_to_uint (char *str)
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> *str <20>ַ<EFBFBD><D6B7><EFBFBD>ָ<EFBFBD><D6B8>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> number <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> uint_to_str(data_buffer, 300);
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> func_uint_to_str(data_buffer, 300);
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void uint_to_str (char *str, uint32 number)
|
||||
void func_uint_to_str (char *str, uint32 number)
|
||||
{
|
||||
zf_assert(str != NULL);
|
||||
int8 data_temp[16]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
uint8 bit = 0; // <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
|
||||
|
||||
@@ -231,11 +235,12 @@ void uint_to_str (char *str, uint32 number)
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ַ<EFBFBD><D6B7><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>Ч<EFBFBD>ۼƾ<DBBC><C6BE><EFBFBD>ΪС<CEAA><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> *str <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> <20>ɴ<EFBFBD><C9B4><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> float ת<><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> float dat = str_to_float("-100.2");
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> float dat = func_str_to_float("-100.2");
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
float str_to_float (char *str)
|
||||
float func_str_to_float (char *str)
|
||||
{
|
||||
zf_assert(str != NULL);
|
||||
uint8 sign = 0; // <20><><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD> 0-<2D><><EFBFBD><EFBFBD> 1-<2D><><EFBFBD><EFBFBD>
|
||||
float temp = 0.0; // <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
float temp_point = 0.0; // <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> С<><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
@@ -291,11 +296,12 @@ float str_to_float (char *str)
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> number <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> point_bit С<><D0A1><EFBFBD>㾫<EFBFBD><E3BEAB>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> float_to_str(data_buffer, 3.1415, 2); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> data_buffer = "3.14"
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> func_float_to_str(data_buffer, 3.1415, 2); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> data_buffer = "3.14"
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void float_to_str (char *str, float number, uint8 point_bit)
|
||||
void func_float_to_str (char *str, float number, uint8 point_bit)
|
||||
{
|
||||
zf_assert(str != NULL);
|
||||
int data_int = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int data_float = 0.0; // С<><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int data_temp[8]; // <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>
|
||||
@@ -340,7 +346,7 @@ void float_to_str (char *str, float number, uint8 point_bit)
|
||||
}while(0 != data_int);
|
||||
while(0 != bit)
|
||||
{
|
||||
*str ++ = (myabs(data_temp[bit - 1]) + 0x30); // <20>ٵ<EFBFBD><D9B5><EFBFBD><F2BDABB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵд<D6B5><D0B4><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> <20>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
||||
*str ++ = (func_abs(data_temp[bit - 1]) + 0x30); // <20>ٵ<EFBFBD><D9B5><EFBFBD><F2BDABB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵд<D6B5><D0B4><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> <20>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
||||
bit --;
|
||||
}
|
||||
|
||||
@@ -363,7 +369,7 @@ void float_to_str (char *str, float number, uint8 point_bit)
|
||||
}
|
||||
while(0 != bit)
|
||||
{
|
||||
*str ++ = (myabs(data_temp_point[bit - 1]) + 0x30); // <20>ٵ<EFBFBD><D9B5><EFBFBD><F2BDABB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵд<D6B5><D0B4><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> <20>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
||||
*str ++ = (func_abs(data_temp_point[bit - 1]) + 0x30); // <20>ٵ<EFBFBD><D9B5><EFBFBD><F2BDABB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵд<D6B5><D0B4><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> <20>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
||||
bit --;
|
||||
}
|
||||
}
|
||||
@@ -375,11 +381,12 @@ void float_to_str (char *str, float number, uint8 point_bit)
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ַ<EFBFBD><D6B7><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>Ч<EFBFBD>ۼƾ<DBBC><C6BE><EFBFBD>ΪС<CEAA><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> str <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> <20>ɴ<EFBFBD><C9B4><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> double ת<><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> double dat = str_to_double("-100.2");
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> double dat = func_str_to_double("-100.2");
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
double str_to_double (char *str)
|
||||
double func_str_to_double (char *str)
|
||||
{
|
||||
zf_assert(str != NULL);
|
||||
uint8 sign = 0; // <20><><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD> 0-<2D><><EFBFBD><EFBFBD> 1-<2D><><EFBFBD><EFBFBD>
|
||||
double temp = 0.0; // <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
double temp_point = 0.0; // <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> С<><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
@@ -436,11 +443,12 @@ double str_to_double (char *str)
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> number <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> point_bit С<><D0A1><EFBFBD>㾫<EFBFBD><E3BEAB>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> double_to_str(data_buffer, 3.1415, 2); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> data_buffer = "3.14"
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> func_double_to_str(data_buffer, 3.1415, 2); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> data_buffer = "3.14"
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void double_to_str (char *str, double number, uint8 point_bit)
|
||||
void func_double_to_str (char *str, double number, uint8 point_bit)
|
||||
{
|
||||
zf_assert(str != NULL);
|
||||
int data_int = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int data_float = 0.0; // С<><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int data_temp[12]; // <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>
|
||||
@@ -485,7 +493,7 @@ void double_to_str (char *str, double number, uint8 point_bit)
|
||||
}while(0 != data_int);
|
||||
while(0 != bit)
|
||||
{
|
||||
*str ++ = (myabs(data_temp[bit - 1]) + 0x30); // <20>ٵ<EFBFBD><D9B5><EFBFBD><F2BDABB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵд<D6B5><D0B4><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> <20>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
||||
*str ++ = (func_abs(data_temp[bit - 1]) + 0x30); // <20>ٵ<EFBFBD><D9B5><EFBFBD><F2BDABB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵд<D6B5><D0B4><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> <20>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
||||
bit --;
|
||||
}
|
||||
|
||||
@@ -506,7 +514,7 @@ void double_to_str (char *str, double number, uint8 point_bit)
|
||||
}
|
||||
while(0 != bit)
|
||||
{
|
||||
*str ++ = (myabs(data_temp_point[bit - 1]) + 0x30); // <20>ٵ<EFBFBD><D9B5><EFBFBD><F2BDABB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵд<D6B5><D0B4><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> <20>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
||||
*str ++ = (func_abs(data_temp_point[bit - 1]) + 0x30); // <20>ٵ<EFBFBD><D9B5><EFBFBD><F2BDABB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵд<D6B5><D0B4><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> <20>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
||||
bit --;
|
||||
}
|
||||
}
|
||||
@@ -518,11 +526,12 @@ void double_to_str (char *str, double number, uint8 point_bit)
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ַ<EFBFBD><D6B7><EFBFBD>ת Hex
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> str <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> <20><EFBFBD><DEB7><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> uint32 ת<><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> uint32 dat = str_to_hex("0x11");
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> uint32 dat = func_str_to_hex("0x11");
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint32 str_to_hex (char *str)
|
||||
uint32 func_str_to_hex (char *str)
|
||||
{
|
||||
zf_assert(str != NULL);
|
||||
uint32 str_len = strlen(str); // <20>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>
|
||||
uint32 result_data = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
uint8 temp = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
@@ -575,11 +584,12 @@ uint32 str_to_hex (char *str)
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> *str <20>ַ<EFBFBD><D6B7><EFBFBD>ָ<EFBFBD><D6B8>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> number <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> hex_to_str(data_buffer, 0x11); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> data_buffer = "0x11"
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> func_hex_to_str(data_buffer, 0x11); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> data_buffer = "0x11"
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void hex_to_str (char *str, uint32 number)
|
||||
void func_hex_to_str (char *str, uint32 number)
|
||||
{
|
||||
zf_assert(str != NULL);
|
||||
const char hex_index[16] = {
|
||||
'0', '1', '2', '3',
|
||||
'4', '5', '6', '7',
|
||||
@@ -861,7 +871,6 @@ uint32 zf_sprintf (int8 *buff, const int8 *format, ...)
|
||||
uint32 ival = (uint32)va_arg(arg, uint32);
|
||||
uint8 vlen = 0;
|
||||
vlen = number_conversion_ascii(ival, vstr, 0, 16);
|
||||
|
||||
printf_reverse_order(vstr, 8);
|
||||
memcpy(buff, vstr, 8);
|
||||
buff += 8;
|
||||
@@ -893,3 +902,4 @@ uint32 zf_sprintf (int8 *buff, const int8 *format, ...)
|
||||
|
||||
return buff_len;
|
||||
}
|
||||
|
||||
|
||||
@@ -38,26 +38,25 @@
|
||||
|
||||
#include "zf_common_typedef.h"
|
||||
|
||||
|
||||
//====================================================<3D>궨<EFBFBD>庯<EFBFBD><E5BAAF><EFBFBD><EFBFBD>====================================================
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD> <20><><EFBFBD>ݷ<EFBFBD>Χ<EFBFBD><CEA7> [-32767,32767]
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> dat <20><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> int <20><><EFBFBD>ؾ<EFBFBD><D8BE><EFBFBD>ֵ
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> dat = myabs(dat); // <20><>dat<61><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> dat = func_abs(dat); // <20><>dat<61><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
#define myabs(x) ((x) >= 0 ? (x): -(x))
|
||||
#define func_abs(x) ((x) >= 0 ? (x): -(x))
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD> <20><><EFBFBD>ݷ<EFBFBD>Χ<EFBFBD><CEA7> [-32768,32767]
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> x <20><><EFBFBD><EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> y <20><EFBFBD><DEB7><EFBFBD>Χ(<28><><EFBFBD>ݻᱻ<DDBB><E1B1BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-y<><79>+y֮<79><D6AE>)
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> int <20><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> int dat = limit(500, 300); // <20><><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-300<30><30>+300֮<30><D6AE> <20><><EFBFBD>˷<EFBFBD><CBB7>صĽ<D8B5><C4BD><EFBFBD><EFBFBD><EFBFBD>300
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> int dat = func_limit(500, 300); // <20><><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-300<30><30>+300֮<30><D6AE> <20><><EFBFBD>˷<EFBFBD><CBB7>صĽ<D8B5><C4BD><EFBFBD><EFBFBD><EFBFBD>300
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
#define limit(x, y) ((x) > (y) ? (y) : ((x) < -(y) ? -(y) : (x)))
|
||||
#define func_limit(x, y) ((x) > (y) ? (y) : ((x) < -(y) ? -(y) : (x)))
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ˫<><CBAB><EFBFBD><EFBFBD> <20><><EFBFBD>ݷ<EFBFBD>Χ<EFBFBD><CEA7> [-32768,32767]
|
||||
@@ -65,32 +64,33 @@
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> a <20><EFBFBD><DEB7><EFBFBD>Χ<EFBFBD><CEA7><EFBFBD>߽<EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> b <20><EFBFBD><DEB7><EFBFBD>Χ<EFBFBD>ұ߽<D2B1>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> int <20><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> int dat = limit_ab(500, -300, 400); //<2F><><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-300<30><30>+400֮<30><D6AE> <20><><EFBFBD>˷<EFBFBD><CBB7>صĽ<D8B5><C4BD><EFBFBD><EFBFBD><EFBFBD>400
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> int dat = func_limit_ab(500, -300, 400); //<2F><><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-300<30><30>+400֮<30><D6AE> <20><><EFBFBD>˷<EFBFBD><CBB7>صĽ<D8B5><C4BD><EFBFBD><EFBFBD><EFBFBD>400
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
#define limit_ab(x, a, b) ((x) < (a) ? (a) : ((x) > (b) ? (b) : (x)))
|
||||
#define func_limit_ab(x, a, b) ((x) < (a) ? (a) : ((x) > (b) ? (b) : (x)))
|
||||
|
||||
//====================================================<3D>궨<EFBFBD>庯<EFBFBD><E5BAAF><EFBFBD><EFBFBD>====================================================
|
||||
|
||||
//=====================================================<3D><><EFBFBD>溯<EFBFBD><E6BAAF><EFBFBD><EFBFBD>=====================================================
|
||||
uint32 get_greatest_common_divisor (uint32 num1, uint32 num2);
|
||||
uint32 func_get_greatest_common_divisor (uint32 num1, uint32 num2);
|
||||
|
||||
void my_delay (volatile long t);
|
||||
void func_soft_delay (volatile long t);
|
||||
|
||||
int32 str_to_int (char *str);
|
||||
void int_to_str (char *str, int32 number);
|
||||
uint32 str_to_uint (char *str);
|
||||
void uint_to_str (char *str, uint32 number);
|
||||
float str_to_float (char *str);
|
||||
void float_to_str (char *str, float number, uint8 point_bit);
|
||||
double str_to_double (char *str);
|
||||
void double_to_str (char *str, double number, uint8 point_bit);
|
||||
uint32 str_to_hex (char *str);
|
||||
void hex_to_str (char *str, uint32 number);
|
||||
int32 func_str_to_int (char *str);
|
||||
void func_int_to_str (char *str, int32 number);
|
||||
uint32 func_str_to_uint (char *str);
|
||||
void func_uint_to_str (char *str, uint32 number);
|
||||
float func_str_to_float (char *str);
|
||||
void func_float_to_str (char *str, float number, uint8 point_bit);
|
||||
double func_str_to_double (char *str);
|
||||
void func_double_to_str (char *str, double number, uint8 point_bit);
|
||||
uint32 func_str_to_hex (char *str);
|
||||
void func_hex_to_str (char *str, uint32 number);
|
||||
|
||||
uint32 zf_sprintf (int8 *buff, const int8 *format, ...);
|
||||
//=====================================================<3D><><EFBFBD>溯<EFBFBD><E6BAAF><EFBFBD><EFBFBD>=====================================================
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
@@ -45,13 +45,14 @@
|
||||
* ------------------------------------
|
||||
********************************************************************************************************************/
|
||||
|
||||
|
||||
#include "zf_common_debug.h"
|
||||
#include "zf_common_function.h"
|
||||
#include "zf_driver_delay.h"
|
||||
#include "zf_driver_soft_spi.h"
|
||||
#include "zf_driver_spi.h"
|
||||
#include "zf_device_absolute_encoder.h"
|
||||
|
||||
#include "zf_device_absolute_encoder.h"
|
||||
|
||||
static int16 now_location = 0;
|
||||
static int16 last_location = 0;
|
||||
@@ -76,7 +77,7 @@ static soft_spi_info_struct absolute_encoder_spi;
|
||||
static void absolute_encoder_write_register(uint8 reg, uint8 data)
|
||||
{
|
||||
ABSOLUTE_ENCODER_CSN(0); // Ƭѡ<C6AC><D1A1><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>
|
||||
absolute_encoder_write(reg | ABS_ENCODER_SPI_W); // <20>Ĵ<EFBFBD><C4B4><EFBFBD>
|
||||
absolute_encoder_write(reg | ABSOLUTE_ENCODER_SPI_W); // <20>Ĵ<EFBFBD><C4B4><EFBFBD>
|
||||
absolute_encoder_write(data); // <20><><EFBFBD><EFBFBD>
|
||||
ABSOLUTE_ENCODER_CSN(1); // Ƭѡ<C6AC><D1A1><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>
|
||||
system_delay_us(1); // <20><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>
|
||||
@@ -97,7 +98,7 @@ static uint8 absolute_encoder_read_register(uint8 reg)
|
||||
{
|
||||
uint8 data = 0;
|
||||
ABSOLUTE_ENCODER_CSN(0); // Ƭѡ<C6AC><D1A1><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>
|
||||
absolute_encoder_write(reg | ABS_ENCODER_SPI_R); // <20>Ĵ<EFBFBD><C4B4><EFBFBD>
|
||||
absolute_encoder_write(reg | ABSOLUTE_ENCODER_SPI_R); // <20>Ĵ<EFBFBD><C4B4><EFBFBD>
|
||||
absolute_encoder_write(0x00); // ռλ
|
||||
ABSOLUTE_ENCODER_CSN(1); // Ƭѡ<C6AC><D1A1><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>
|
||||
system_delay_us(1); // <20><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>
|
||||
@@ -177,16 +178,16 @@ int16 absolute_encoder_get_location (void)
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
int16 absolute_encoder_get_offset (void)
|
||||
{
|
||||
int16 offset_num = 0;
|
||||
if(myabs(now_location-last_location) > 2048)
|
||||
int16 result_data = 0;
|
||||
if(func_abs(now_location - last_location) > 2048)
|
||||
{
|
||||
offset_num = (now_location > 2048 ? (now_location - 4096 - last_location) : (now_location + 4096 - last_location));
|
||||
result_data = (now_location > 2048 ? (now_location - 4096 - last_location) : (now_location + 4096 - last_location));
|
||||
}
|
||||
else
|
||||
{
|
||||
offset_num = (now_location - last_location);
|
||||
result_data = (now_location - last_location);
|
||||
}
|
||||
return offset_num;
|
||||
return result_data;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
@@ -198,6 +199,7 @@ int16 absolute_encoder_get_offset (void)
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint8 absolute_encoder_init (void)
|
||||
{
|
||||
uint8 return_state = 0;
|
||||
uint16 zero_position = ABSOLUTE_ENCODER_DEFAULT_ZERO;
|
||||
#if ABSOLUTE_ENCODER_USE_SOFT_SPI
|
||||
soft_spi_init(&absolute_encoder_spi, 0, ABSOLUTE_ENCODER_SOFT_SPI_DELAY, ABSOLUTE_ENCODER_SCLK_PIN, ABSOLUTE_ENCODER_MOSI_PIN, ABSOLUTE_ENCODER_MISO_PIN, SOFT_SPI_PIN_NULL);
|
||||
@@ -206,17 +208,22 @@ uint8 absolute_encoder_init (void)
|
||||
#endif
|
||||
gpio_init(ABSOLUTE_ENCODER_CS_PIN, GPO, GPIO_LOW, GPO_PUSH_PULL);
|
||||
|
||||
if(absolute_encoder_self_check())
|
||||
do
|
||||
{
|
||||
// <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><C7BE><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>˳<EFBFBD><CBB3><EFBFBD>
|
||||
// <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>ܾ<EFBFBD><EFBFBD>ǻ<EFBFBD><EFBFBD><EFBFBD>
|
||||
zf_assert(0);
|
||||
}
|
||||
absolute_encoder_write_register(DIR_REG, 0x00); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD> <20><>ת<EFBFBD><D7AA>ֵ<EFBFBD><D6B5>С<EFBFBD><D0A1>0x00 <20><>ת<EFBFBD><D7AA>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0x80
|
||||
zero_position = (uint16)(4096 - zero_position);
|
||||
zero_position = zero_position << 4;
|
||||
absolute_encoder_write_register(ZERO_L_REG, (uint8)zero_position); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ
|
||||
absolute_encoder_write_register(ZERO_H_REG, zero_position >> 8);
|
||||
return 0;
|
||||
if(absolute_encoder_self_check())
|
||||
{
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><>ô<EFBFBD><C3B4><EFBFBD>Ǿ<EFBFBD><C7BE><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<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>
|
||||
return_state = 1;
|
||||
zf_log(0, "absolute encoder init errror.");
|
||||
break;
|
||||
}
|
||||
absolute_encoder_write_register(ABSOLUTE_ENCODER_DIR_REG, 0x00); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD> <20><>ת<EFBFBD><D7AA>ֵ<EFBFBD><D6B5>С<EFBFBD><D0A1>0x00 <20><>ת<EFBFBD><D7AA>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0x80
|
||||
zero_position = (uint16)(4096 - zero_position);
|
||||
zero_position = zero_position << 4;
|
||||
absolute_encoder_write_register(ABSOLUTE_ENCODER_ZERO_L_REG, (uint8)zero_position); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ
|
||||
absolute_encoder_write_register(ABSOLUTE_ENCODER_ZERO_H_REG, zero_position >> 8);
|
||||
}while(0);
|
||||
return return_state;
|
||||
}
|
||||
|
||||
@@ -75,12 +75,12 @@
|
||||
#define ABSOLUTE_ENCODER_DEFAULT_ZERO (0)
|
||||
|
||||
//====================================================<3D>Ƕȴ<C7B6><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||
#define ABS_ENCODER_SPI_W (0x80)
|
||||
#define ABS_ENCODER_SPI_R (0x40)
|
||||
#define ABSOLUTE_ENCODER_SPI_W (0x80)
|
||||
#define ABSOLUTE_ENCODER_SPI_R (0x40)
|
||||
|
||||
#define ZERO_L_REG (0x00)
|
||||
#define ZERO_H_REG (0x01)
|
||||
#define DIR_REG (0X09)
|
||||
#define ABSOLUTE_ENCODER_ZERO_L_REG (0x00)
|
||||
#define ABSOLUTE_ENCODER_ZERO_H_REG (0x01)
|
||||
#define ABSOLUTE_ENCODER_DIR_REG (0X09)
|
||||
//====================================================<3D>Ƕȴ<C7B6><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||
|
||||
|
||||
|
||||
@@ -49,6 +49,8 @@
|
||||
#include "zf_driver_gpio.h"
|
||||
#include "zf_driver_uart.h"
|
||||
#include "zf_driver_delay.h"
|
||||
#include "zf_device_type.h"
|
||||
|
||||
#include "zf_device_bluetooth_ch9141.h"
|
||||
|
||||
static fifo_struct bluetooth_ch9141_fifo;
|
||||
@@ -57,11 +59,172 @@ static uint8 bluetooth_ch9141_buffer[BLUETOOTH_CH9141_BUFFER_SIZE];
|
||||
static uint8 bluetooth_ch9141_data;
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><><EFBFBD><EFBFBD><EFBFBD>жϻص<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// @param void
|
||||
// @return void
|
||||
// Sample usage:
|
||||
// @note <20>ú<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ISR<EFBFBD>ļ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>жϳ<D0B6><CFB3><EFBFBD><F2B1BBB5><EFBFBD>
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD>鷢<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD> uart_n <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> zf_driver_uart.h <20><> uart_index_enum ö<><C3B6><EFBFBD>嶨<EFBFBD><E5B6A8>
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD> *buff Ҫ<><D2AA><EFBFBD>͵<EFBFBD><CDB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD> len <20><><EFBFBD>ͳ<EFBFBD><CDB3><EFBFBD>
|
||||
// <EFBFBD><EFBFBD><EFBFBD>ز<EFBFBD><EFBFBD><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> bluetooth_ch9141_write_buffer(UART_1, &a[0], 5);
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
static void bluetooth_ch9141_write_buffer (uart_index_enum uart_n, const uint8 *buff, uint32 len)
|
||||
{
|
||||
while(len)
|
||||
{
|
||||
uart_write_byte_wait(uart_n, *buff);
|
||||
len--;
|
||||
buff++;
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> data 8bit <20><><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> uint32 ʣ<><EFBFBD>ͳ<EFBFBD><CDB3><EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> bluetooth_ch9141_send_byte(0x5A);
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint32 bluetooth_ch9141_send_byte (const uint8 data)
|
||||
{
|
||||
uint16 time_count = BLUETOOTH_CH9141_TIMEOUT_COUNT;
|
||||
while(time_count)
|
||||
{
|
||||
if(!gpio_get_level(BLUETOOTH_CH9141_RTS_PIN))
|
||||
{
|
||||
uart_write_byte_wait(BLUETOOTH_CH9141_INDEX, data); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
break;
|
||||
}
|
||||
time_count --;
|
||||
system_delay_ms(1);
|
||||
}
|
||||
return (0 < time_count);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><><EFBFBD>ͺ<EFBFBD><CDBA><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> buff <20><>Ҫ<EFBFBD><D2AA><EFBFBD>͵<EFBFBD><CDB5><EFBFBD><EFBFBD>ݵ<EFBFBD>ַ
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> len <20><><EFBFBD>ͳ<EFBFBD><CDB3><EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> uint32 ʣ<><CAA3>δ<EFBFBD><CEB4><EFBFBD>͵<EFBFBD><CDB5>ֽ<EFBFBD><D6BD><EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> bluetooth_ch9141_send_buff(buff, 16);
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint32 bluetooth_ch9141_send_buff (const uint8 *buff, uint32 len)
|
||||
{
|
||||
zf_assert(buff != NULL);
|
||||
uint16 time_count = 0;
|
||||
while(0 != len)
|
||||
{
|
||||
if(!gpio_get_level(BLUETOOTH_CH9141_RTS_PIN)) // <20><><EFBFBD><EFBFBD>RTSΪ<53>͵<EFBFBD>ƽ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
if(30 <= len) // <20><><EFBFBD>ݷ<EFBFBD> 30byte ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
bluetooth_ch9141_write_buffer(BLUETOOTH_CH9141_INDEX, buff, 30); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
buff += 30; // <20><>ַƫ<D6B7><C6AB>
|
||||
len -= 30; // <20><><EFBFBD><EFBFBD>
|
||||
time_count = 0;
|
||||
}
|
||||
else // <20><><EFBFBD><EFBFBD> 30byte <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>Է<EFBFBD><D4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
bluetooth_ch9141_write_buffer(BLUETOOTH_CH9141_INDEX, buff, len); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
len = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else // <20><><EFBFBD><EFBFBD>RTSΪ<53>ߵ<EFBFBD>ƽ <20><>ģ<EFBFBD><C4A3>æ
|
||||
{
|
||||
if(BLUETOOTH_CH9141_TIMEOUT_COUNT <= (++ time_count)) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
{
|
||||
break; // <20>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
system_delay_ms(1);
|
||||
}
|
||||
}
|
||||
return len;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> *str Ҫ<><D2AA><EFBFBD>͵<EFBFBD><CDB5>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>ַ
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> uint32 ʣ<><EFBFBD>ͳ<EFBFBD><CDB3><EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> bluetooth_ch9141_send_string("Trust yourself.");
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint32 bluetooth_ch9141_send_string (const char *str)
|
||||
{
|
||||
zf_assert(str != NULL);
|
||||
uint16 time_count = 0;
|
||||
uint32 len = strlen(str);
|
||||
while(0 != len)
|
||||
{
|
||||
if(!gpio_get_level(BLUETOOTH_CH9141_RTS_PIN)) // <20><><EFBFBD><EFBFBD>RTSΪ<53>͵<EFBFBD>ƽ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
if(30 <= len) // <20><><EFBFBD>ݷ<EFBFBD> 30byte ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
bluetooth_ch9141_write_buffer(BLUETOOTH_CH9141_INDEX, (const uint8 *)str, 30); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
str += 30; // <20><>ַƫ<D6B7><C6AB>
|
||||
len -= 30; // <20><><EFBFBD><EFBFBD>
|
||||
time_count = 0;
|
||||
}
|
||||
else // <20><><EFBFBD><EFBFBD> 30byte <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>Է<EFBFBD><D4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
bluetooth_ch9141_write_buffer(BLUETOOTH_CH9141_INDEX, (const uint8 *)str, len);// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
len = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else // <20><><EFBFBD><EFBFBD>RTSΪ<53>ߵ<EFBFBD>ƽ <20><>ģ<EFBFBD><C4A3>æ
|
||||
{
|
||||
if(BLUETOOTH_CH9141_TIMEOUT_COUNT <= (++ time_count)) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
{
|
||||
break; // <20>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
system_delay_ms(1);
|
||||
}
|
||||
}
|
||||
return len;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷͼ<CDB7><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD>鿴ͼ<E9BFB4><CDBC>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> *image_addr <20><>Ҫ<EFBFBD><D2AA><EFBFBD>͵<EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>ַ
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> image_size ͼ<><CDBC><EFBFBD>Ĵ<EFBFBD>С
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> bluetooth_ch9141_send_image(&mt9v03x_image[0][0], MT9V03X_IMAGE_SIZE);
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void bluetooth_ch9141_send_image (const uint8 *image_addr, uint32 image_size)
|
||||
{
|
||||
zf_assert(image_addr != NULL);
|
||||
|
||||
extern uint8 camera_send_image_frame_header[4];
|
||||
bluetooth_ch9141_send_buff(camera_send_image_frame_header, 4);
|
||||
bluetooth_ch9141_send_buff((uint8 *)image_addr, image_size);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> buff <20>洢<EFBFBD><E6B4A2><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD>ַ
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> len <20><><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> uint32 ʵ<>ʶ<EFBFBD>ȡ<EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD>
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> bluetooth_ch9141_read_buff(buff, 16);
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint32 bluetooth_ch9141_read_buff (uint8 *buff, uint32 len)
|
||||
{
|
||||
zf_assert(buff != NULL);
|
||||
uint32 data_len = len;
|
||||
fifo_read_buffer(&bluetooth_ch9141_fifo, buff, &data_len, FIFO_READ_AND_CLEAN);
|
||||
return data_len;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><><EFBFBD><EFBFBD><EFBFBD>жϻص<CFBB><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> void
|
||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE>
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ <20>ú<EFBFBD><C3BA><EFBFBD><EFBFBD><EFBFBD> ISR <20>ļ<EFBFBD><C4BC>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD>жϳ<D0B6><CFB3><EFBFBD><F2B1BBB5><EFBFBD>
|
||||
// <20>ɴ<EFBFBD><C9B4><EFBFBD><EFBFBD>жϷ<D0B6><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> wireless_module_uart_handler() <20><><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD> wireless_module_uart_handler() <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD><EFBFBD><EFBFBD>
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void bluetooth_ch9141_uart_callback (void)
|
||||
{
|
||||
@@ -70,131 +233,15 @@ void bluetooth_ch9141_uart_callback (void)
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// @param data 8bit <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// @return uint32 ʣ<EFBFBD><EFBFBD>ͳ<EFBFBD><EFBFBD><EFBFBD>
|
||||
// Sample usage:
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint32 bluetooth_ch9141_send_byte (const uint8 data)
|
||||
{
|
||||
uint16 time_count = 0;
|
||||
while(gpio_get_level(BLUETOOTH_CH9141_RTS_PIN)) // <20><><EFBFBD><EFBFBD>RTSΪ<53>͵<EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
if(BLUETOOTH_CH9141_TIMEOUT_COUNT < time_count ++)
|
||||
return 1; // ģ<><C4A3>æ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>while<6C>ȴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ú<EFBFBD><C3BA><EFBFBD>ע<EFBFBD>͵<EFBFBD>while<6C>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>滻<EFBFBD><E6BBBB>if<69><66><EFBFBD><EFBFBD>
|
||||
system_delay_ms(1);
|
||||
}
|
||||
uart_write_byte(BLUETOOTH_CH9141_INDEX, data); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><><EFBFBD>ͺ<EFBFBD><CDBA><EFBFBD>
|
||||
// @param buff <20><>Ҫ<EFBFBD><D2AA><EFBFBD>͵<EFBFBD><CDB5><EFBFBD><EFBFBD>ݵ<EFBFBD>ַ
|
||||
// @param len <20><><EFBFBD>ͳ<EFBFBD><CDB3><EFBFBD>
|
||||
// @return uint32 ʣ<><CAA3>δ<EFBFBD><CEB4><EFBFBD>͵<EFBFBD><CDB5>ֽ<EFBFBD><D6BD><EFBFBD>
|
||||
// Sample usage:
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint32 bluetooth_ch9141_send_buff (const uint8 *buff, uint32 len)
|
||||
{
|
||||
uint16 time_count = 0;
|
||||
while(30 < len)
|
||||
{
|
||||
time_count = 0;
|
||||
while(gpio_get_level(BLUETOOTH_CH9141_RTS_PIN) && BLUETOOTH_CH9141_TIMEOUT_COUNT > time_count ++) // <20><><EFBFBD><EFBFBD>RTSΪ<53>͵<EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
system_delay_ms(1);
|
||||
if(BLUETOOTH_CH9141_TIMEOUT_COUNT <= time_count)
|
||||
return len; // ģ<><C4A3>æ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>while<6C>ȴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ú<EFBFBD><C3BA><EFBFBD>ע<EFBFBD>͵<EFBFBD>while<6C>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>滻<EFBFBD><E6BBBB>if<69><66><EFBFBD><EFBFBD>
|
||||
uart_write_buffer(BLUETOOTH_CH9141_INDEX, buff, 30);
|
||||
|
||||
buff += 30; // <20><>ַƫ<D6B7><C6AB>
|
||||
len -= 30; // <20><><EFBFBD><EFBFBD>
|
||||
}
|
||||
|
||||
time_count = 0;
|
||||
while(gpio_get_level(BLUETOOTH_CH9141_RTS_PIN) && BLUETOOTH_CH9141_TIMEOUT_COUNT > time_count ++) // <20><><EFBFBD><EFBFBD>RTSΪ<53>͵<EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
system_delay_ms(1);
|
||||
if(time_count >= BLUETOOTH_CH9141_TIMEOUT_COUNT)
|
||||
return len; // ģ<><C4A3>æ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>while<6C>ȴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ú<EFBFBD><C3BA><EFBFBD>ע<EFBFBD>͵<EFBFBD>while<6C>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>滻<EFBFBD><E6BBBB>if<69><66><EFBFBD><EFBFBD>
|
||||
uart_write_buffer(BLUETOOTH_CH9141_INDEX, buff, len); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
|
||||
// @param *str Ҫ<><D2AA><EFBFBD>͵<EFBFBD><CDB5>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>ַ
|
||||
// @return uint32 ʣ<><EFBFBD>ͳ<EFBFBD><CDB3><EFBFBD>
|
||||
// Sample usage: bluetooth_ch9141_send_string("Believe in yourself.");
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint32 bluetooth_ch9141_send_string (const char *str)
|
||||
{
|
||||
uint16 time_count = 0;
|
||||
uint32 len = strlen(str);
|
||||
while(30 < len)
|
||||
{
|
||||
time_count = 0;
|
||||
while(gpio_get_level(BLUETOOTH_CH9141_RTS_PIN)) // <20><><EFBFBD><EFBFBD>RTSΪ<53>͵<EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
if(BLUETOOTH_CH9141_TIMEOUT_COUNT > time_count ++)
|
||||
return len; // ģ<><C4A3>æ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>while<6C>ȴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ú<EFBFBD><C3BA><EFBFBD>ע<EFBFBD>͵<EFBFBD>while<6C>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>滻<EFBFBD><E6BBBB>if<69><66><EFBFBD><EFBFBD>
|
||||
system_delay_ms(1);
|
||||
}
|
||||
uart_write_buffer(BLUETOOTH_CH9141_INDEX, (const uint8 *)str, 30);
|
||||
|
||||
str += 30; // <20><>ַƫ<D6B7><C6AB>
|
||||
len -= 30; // <20><><EFBFBD><EFBFBD>
|
||||
}
|
||||
|
||||
time_count = 0;
|
||||
while(gpio_get_level(BLUETOOTH_CH9141_RTS_PIN)) // <20><><EFBFBD><EFBFBD>RTSΪ<53>͵<EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
if(BLUETOOTH_CH9141_TIMEOUT_COUNT > time_count ++)
|
||||
return len; // ģ<><C4A3>æ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>while<6C>ȴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ú<EFBFBD><C3BA><EFBFBD>ע<EFBFBD>͵<EFBFBD>while<6C>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>滻<EFBFBD><E6BBBB>if<69><66><EFBFBD><EFBFBD>
|
||||
system_delay_ms(1);
|
||||
}
|
||||
uart_write_buffer(BLUETOOTH_CH9141_INDEX, (const uint8 *)str, len); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷͼ<CDB7><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD>鿴ͼ<E9BFB4><CDBC>
|
||||
// @param *image_addr <20><>Ҫ<EFBFBD><D2AA><EFBFBD>͵<EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>ַ
|
||||
// @param image_size ͼ<><CDBC><EFBFBD>Ĵ<EFBFBD>С
|
||||
// @return void
|
||||
// Sample usage: bluetooth_ch9141_send_image(&mt9v03x_image[0][0], MT9V03X_IMAGE_SIZE);
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void bluetooth_ch9141_send_image (const uint8 *image_addr, uint32 image_size)
|
||||
{
|
||||
extern uint8 camera_send_image_frame_header[4];
|
||||
bluetooth_ch9141_send_buff(camera_send_image_frame_header, 4);
|
||||
bluetooth_ch9141_send_buff((uint8 *)image_addr, image_size);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
|
||||
// @param buff <20>洢<EFBFBD><E6B4A2><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD>ַ
|
||||
// @param len <20><><EFBFBD><EFBFBD>
|
||||
// @return uint32 ʵ<>ʶ<EFBFBD>ȡ<EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD>
|
||||
// Sample usage:
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint32 bluetooth_ch9141_read_buff (uint8 *buff, uint32 len)
|
||||
{
|
||||
uint32 data_len = len;
|
||||
fifo_read_buffer(&bluetooth_ch9141_fifo, buff, &data_len, FIFO_READ_AND_CLEAN);
|
||||
return data_len;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
// @brief <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><>ʼ<EFBFBD><CABC>
|
||||
// @param mode <20><><EFBFBD><EFBFBD>ģʽ MASTER_MODE(<28><><EFBFBD><EFBFBD>)<29><><EFBFBD><EFBFBD>SLAVE_MODE(<28>ӻ<EFBFBD>)
|
||||
// @return uint8 <20><>ʼ<EFBFBD><CABC>״̬ 0-<2D>ɹ<EFBFBD> 1-ʧ<><CAA7>
|
||||
// Sample usage:
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><>ʼ<EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD> void
|
||||
// <EFBFBD><EFBFBD><EFBFBD>ز<EFBFBD><EFBFBD><EFBFBD> uint8 <20><>ʼ<EFBFBD><CABC>״̬ 0-<2D>ɹ<EFBFBD> 1-ʧ<EFBFBD><EFBFBD>
|
||||
// ʹ<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD> bluetooth_ch9141_init();
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint8 bluetooth_ch9141_init (void)
|
||||
{
|
||||
uint8 return_state = 0;
|
||||
set_wireless_type(BLUETOOTH_CH9141, bluetooth_ch9141_uart_callback);
|
||||
|
||||
fifo_init(&bluetooth_ch9141_fifo, FIFO_DATA_8BIT, bluetooth_ch9141_buffer, BLUETOOTH_CH9141_BUFFER_SIZE);
|
||||
@@ -203,5 +250,5 @@ uint8 bluetooth_ch9141_init (void)
|
||||
uart_init(BLUETOOTH_CH9141_INDEX, BLUETOOTH_CH9141_BUAD_RATE, BLUETOOTH_CH9141_RX_PIN, BLUETOOTH_CH9141_TX_PIN);
|
||||
uart_rx_interrupt(BLUETOOTH_CH9141_INDEX, 1);
|
||||
|
||||
return 0;
|
||||
return return_state;
|
||||
}
|
||||
|
||||
@@ -48,7 +48,6 @@
|
||||
#define _zf_device_bluetooth_ch9141_h_
|
||||
|
||||
#include "zf_common_typedef.h"
|
||||
#include "zf_device_type.h"
|
||||
|
||||
|
||||
//=================================================9141<34><31><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||
|
||||
@@ -33,6 +33,7 @@
|
||||
* 2022-09-15 pudding first version
|
||||
********************************************************************************************************************/
|
||||
|
||||
#include "zf_common_debug.h"
|
||||
#include "zf_common_interrupt.h"
|
||||
#include "zf_driver_gpio.h"
|
||||
#include "zf_driver_dma.h"
|
||||
@@ -58,7 +59,8 @@ uint8 camera_send_image_frame_header[4] = {0x00, 0xFF, 0x01, 0x01};
|
||||
void camera_binary_image_decompression (const uint8 *data1, uint8 *data2, uint32 image_size)
|
||||
{
|
||||
uint8 i = 8;
|
||||
|
||||
zf_assert(data1 != NULL);
|
||||
zf_assert(data2 != NULL);
|
||||
while(image_size --)
|
||||
{
|
||||
i = 8;
|
||||
@@ -80,6 +82,7 @@ void camera_binary_image_decompression (const uint8 *data1, uint8 *data2, uint32
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
void camera_send_image (uart_index_enum uartn, const uint8 *image_addr, uint32 image_size)
|
||||
{
|
||||
zf_assert(image_addr != NULL);
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
uart_write_buffer(uartn, camera_send_image_frame_header, 4);
|
||||
|
||||
@@ -157,7 +160,7 @@ uint8 camera_init (void)
|
||||
EXTI_TRIGGER_RISING,
|
||||
SCC8660_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_RISING); // <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>жϣ<D0B6><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>½<EFBFBD><C2BD>ش<EFBFBD><D8B4><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
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;
|
||||
|
||||
@@ -45,7 +45,6 @@
|
||||
|
||||
#include "zf_common_function.h"
|
||||
#include "zf_common_fifo.h"
|
||||
#include "zf_common_interrupt.h"
|
||||
#include "zf_driver_delay.h"
|
||||
#include "zf_driver_uart.h"
|
||||
#include "zf_device_type.h"
|
||||
@@ -53,7 +52,7 @@
|
||||
|
||||
#define GPS_TAU1201_BUFFER_SIZE (128)
|
||||
|
||||
vuint8 gps_tau1201_flag; // 1<><31><EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD>ɵȴ<C9B5><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0<><30>û<EFBFBD>вɼ<D0B2><C9BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
uint8 gps_tau1201_flag; // 1<><31><EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD>ɵȴ<C9B5><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0<><30>û<EFBFBD>вɼ<D0B2><C9BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
gps_info_struct gps_tau1201; // GPS<50><53><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
static uint8 gps_tau1201_state = 0; // 1<><31>GPS<50><53>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
@@ -118,7 +117,7 @@ static int get_int_number (char *s)
|
||||
i = i - 1;
|
||||
strncpy(buf, s, i);
|
||||
buf[i] = 0;
|
||||
return_value = str_to_int(buf);
|
||||
return_value = func_str_to_int(buf);
|
||||
return return_value;
|
||||
}
|
||||
|
||||
@@ -139,7 +138,7 @@ static float get_float_number (char *s)
|
||||
i = i - 1;
|
||||
strncpy(buf, s, i);
|
||||
buf[i] = 0;
|
||||
return_value = (float)str_to_double(buf);
|
||||
return_value = (float)func_str_to_double(buf);
|
||||
return return_value;
|
||||
}
|
||||
|
||||
@@ -160,7 +159,7 @@ static double get_double_number (char *s)
|
||||
i = i - 1;
|
||||
strncpy(buf, s, i);
|
||||
buf[i] = 0;
|
||||
return_value = str_to_double(buf);
|
||||
return_value = func_str_to_double(buf);
|
||||
return return_value;
|
||||
}
|
||||
|
||||
@@ -186,12 +185,12 @@ static void utc_to_btc (gps_time_struct *time)
|
||||
day_num = 28;
|
||||
if((time->year % 4 == 0 && time->year % 100 != 0) || time->year % 400 == 0) // <20>ж<EFBFBD><D0B6>Ƿ<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>
|
||||
{
|
||||
day_num ++; // <20><><EFBFBD><EFBFBD> 2<><32>Ϊ29<32><39>
|
||||
day_num ++; // <20><><EFBFBD><EFBFBD> 2<><32>Ϊ29<32><39>
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
day_num = 31; // 1 3 5 7 8 10 12<31><32>Щ<EFBFBD>·<EFBFBD>Ϊ31<33><31>
|
||||
day_num = 31; // 1 3 5 7 8 10 12<31><32>Щ<EFBFBD>·<EFBFBD>Ϊ31<33><31>
|
||||
if(4 == time->month || 6 == time->month || 9 == time->month || 11 == time->month )
|
||||
{
|
||||
day_num = 30;
|
||||
@@ -297,7 +296,7 @@ static uint8 gps_gngga_parse (char *line, gps_info_struct *gps)
|
||||
|
||||
if (state != ',')
|
||||
{
|
||||
gps->satellite_used = (uint8)(get_int_number(&buf[get_parameter_index(7, buf)]));
|
||||
gps->satellite_used = (uint8)get_int_number(&buf[get_parameter_index(7, buf)]);
|
||||
gps->height = get_float_number(&buf[get_parameter_index(9, buf)]) + get_float_number(&buf[get_parameter_index(11, buf)]); // <20>߶<EFBFBD> = <20><><EFBFBD>θ߶<CEB8> + <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD>ˮ<CBAE><D7BC><EFBFBD>ĸ߶<C4B8>
|
||||
return_state = 1;
|
||||
}
|
||||
@@ -384,7 +383,7 @@ uint8 gps_data_parse (void)
|
||||
{
|
||||
gps_rmc_state = GPS_STATE_PARSING;
|
||||
strncpy((char *)&check_buffer[2], strchr((const char *)gps_rmc_buffer, '*')+1, 2);
|
||||
bbc_xor_origin = (uint8)str_to_hex((char *)check_buffer);
|
||||
bbc_xor_origin = (uint8)func_str_to_hex((char *)check_buffer);
|
||||
for(bbc_xor_calculation = gps_rmc_buffer[1], data_len = 2; gps_rmc_buffer[data_len] != '*'; data_len ++)
|
||||
{
|
||||
bbc_xor_calculation ^= gps_rmc_buffer[data_len];
|
||||
@@ -404,7 +403,7 @@ uint8 gps_data_parse (void)
|
||||
{
|
||||
gps_gga_state = GPS_STATE_PARSING;
|
||||
strncpy((char *)&check_buffer[2], strchr((const char *)gps_gga_buffer, '*')+1, 2);
|
||||
bbc_xor_origin = (uint8)str_to_hex((char *)check_buffer);
|
||||
bbc_xor_origin = (uint8)func_str_to_hex((char *)check_buffer);
|
||||
|
||||
for(bbc_xor_calculation = gps_gga_buffer[1], data_len = 2; gps_gga_buffer[data_len] != '*'; data_len ++)
|
||||
{
|
||||
@@ -505,10 +504,12 @@ uint8 gps_init (void)
|
||||
const uint8 close_txt[] = {0xF1, 0xD9, 0x06, 0x01, 0x03, 0x00, 0xF0, 0x40, 0x00, 0x3A, 0x8F};
|
||||
const uint8 close_txt_ant[] = {0xF1, 0xD9, 0x06, 0x01, 0x03, 0x00, 0xF0, 0x20, 0x00, 0x1A, 0x4F};
|
||||
|
||||
set_wireless_type(GPS_TAU1201, gps_uart_callback);
|
||||
fifo_init(&gps_tau1201_receiver_fifo, FIFO_DATA_8BIT, gps_tau1201_receiver_buffer, GPS_TAU1201_BUFFER_SIZE);
|
||||
system_delay_ms(500); // <20>ȴ<EFBFBD>GPS<50><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>ʼ<EFBFBD><CABC>
|
||||
uart_init(GPS_TAU1201_UART, 115200, GPS_TAU1201_RX, GPS_TAU1201_TX);
|
||||
|
||||
set_wireless_type(GPS_TAU1201, gps_uart_callback);
|
||||
|
||||
uart_write_buffer(GPS_TAU1201_UART, (uint8 *)set_rate, sizeof(set_rate)); // <20><><EFBFBD><EFBFBD>GPS<50><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ10hz <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>Ϊ1hz
|
||||
system_delay_ms(200);
|
||||
|
||||
|
||||
@@ -100,7 +100,7 @@ typedef enum
|
||||
|
||||
//==============================================<3D><><EFBFBD><EFBFBD> GPS <20><><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD>===================================================
|
||||
extern gps_info_struct gps_tau1201;
|
||||
extern vuint8 gps_tau1201_flag;
|
||||
extern uint8 gps_tau1201_flag;
|
||||
//==============================================<3D><><EFBFBD><EFBFBD> GPS <20><><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD>===================================================
|
||||
|
||||
//================================================GPS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||
|
||||
@@ -236,7 +236,7 @@ float icm20602_acc_transition (int16 acc_value)
|
||||
float icm20602_gyro_transition (int16 gyro_value)
|
||||
{
|
||||
float gyro_data = 0;
|
||||
switch(ICM20602_GYRO_SAMPLE)
|
||||
switch(ICM20602_GYR_SAMPLE)
|
||||
{
|
||||
case 0x00: gyro_data = (float)gyro_value / 131.2f; break; // 0x00 <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 <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 0x08: gyro_data = (float)gyro_value / 65.6f; break; // 0x08 <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.5 <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
|
||||
@@ -305,7 +305,7 @@ uint8 icm20602_init (void)
|
||||
icm20602_write_register(ICM20602_PWR_MGMT_2, 0x00); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǻͼ<C7BA><CDBC>ٶȼ<D9B6>
|
||||
icm20602_write_register(ICM20602_CONFIG, 0x01); // 176HZ 1KHZ
|
||||
icm20602_write_register(ICM20602_SMPLRT_DIV, 0x07); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SAMPLE_RATE = INTERNAL_SAMPLE_RATE / (1 + SMPLRT_DIV)
|
||||
icm20602_write_register(ICM20602_GYRO_CONFIG, ICM20602_GYRO_SAMPLE); // <20><>2000 dps
|
||||
icm20602_write_register(ICM20602_GYRO_CONFIG, ICM20602_GYR_SAMPLE); // <20><>2000 dps
|
||||
icm20602_write_register(ICM20602_ACCEL_CONFIG, ICM20602_ACC_SAMPLE); // <20><>8g
|
||||
icm20602_write_register(ICM20602_ACCEL_CONFIG_2, 0x03); // Average 4 samples 44.8HZ //0x23 Average 16 samples
|
||||
// ICM20602_GYRO_CONFIG<49>Ĵ<EFBFBD><C4B4><EFBFBD>
|
||||
|
||||
@@ -103,9 +103,7 @@
|
||||
#define ICM20602_SMPLRT_DIV (0x19)
|
||||
#define ICM20602_CONFIG (0x1A)
|
||||
#define ICM20602_GYRO_CONFIG (0x1B)
|
||||
#define ICM20602_GYRO_SAMPLE (0x18) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define ICM20602_ACCEL_CONFIG (0x1C)
|
||||
#define ICM20602_ACC_SAMPLE (0x10) // <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define ICM20602_ACCEL_CONFIG_2 (0x1D)
|
||||
#define ICM20602_LP_MODE_CFG (0x1E)
|
||||
#define ICM20602_ACCEL_WOM_X_THR (0x20)
|
||||
@@ -152,6 +150,19 @@
|
||||
#define ICM20602_YA_OFFSET_L (0x7B)
|
||||
#define ICM20602_ZA_OFFSET_H (0x7D)
|
||||
#define ICM20602_ZA_OFFSET_L (0x7E)
|
||||
|
||||
#define ICM20602_ACC_SAMPLE (0x10) // <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><DDA3><EFBFBD>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x08 <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><DDA3><EFBFBD>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x10 <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><DDA3><EFBFBD>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x18 <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><DDA3><EFBFBD>λ<EFBFBD><CEBB>g(m/s^2)
|
||||
|
||||
#define ICM20602_GYR_SAMPLE (0x18) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x00 <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 <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>Ϊ:0x08 <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.5 <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>Ϊ:0x10 <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><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ:0x18 <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><DDA3><EFBFBD>λΪ<CEBB><CEAA><EFBFBD><EFBFBD>/s
|
||||
|
||||
//================================================<3D><><EFBFBD><EFBFBD> ICM20602 <20>ڲ<EFBFBD><DAB2><EFBFBD>ַ================================================
|
||||
|
||||
//===============================================<3D><><EFBFBD><EFBFBD> ICM20602 <20><><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD>==============================================
|
||||
|
||||
@@ -98,10 +98,21 @@
|
||||
#define IMU660RA_GYRO_ADDRESS (0x12)
|
||||
#define IMU660RA_ACC_CONF (0x40)
|
||||
#define IMU660RA_ACC_RANGE (0x41)
|
||||
#define IMU660RA_ACC_SAMPLE (0x02) // <20><><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
#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><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
|
||||
|
||||
#define IMU660RA_GYR_SAMPLE (0x00) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><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)
|
||||
|
||||
//================================================<3D><><EFBFBD><EFBFBD> IMU660RA <20>ڲ<EFBFBD><DAB2><EFBFBD>ַ================================================
|
||||
|
||||
//===============================================<3D><><EFBFBD><EFBFBD> IMU660RA <20><><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD>===============================================
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user