mirror of
https://gitee.com/seekfree/TC264_Library.git
synced 2026-06-04 03:32:56 +00:00
V3.1.6
修改GPS使用串口号,优化GPS计算代码
isr.c中移除CCD采集函数,有需要可以自行添加
修改按键驱动文件的按键端口号,适配V2.6主板
This commit is contained in:
@@ -1,3 +1,7 @@
|
|||||||
|
V3.1.6
|
||||||
|
<20><EFBFBD>GPSʹ<53>ô<EFBFBD><C3B4>ںţ<DABA><C5A3>Ż<EFBFBD>GPS<50><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
isr.c<><63><EFBFBD>Ƴ<EFBFBD>CCD<43>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
<20>İ<DEB8><C4B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>İ<EFBFBD><C4B0><EFBFBD><EFBFBD>˿ںţ<DABA><C5A3><EFBFBD><EFBFBD><EFBFBD>V2.6<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
V3.1.5
|
V3.1.5
|
||||||
<20><EFBFBD>Ӳ<EFBFBD><D3B2>SPI<50><49>ʼ<EFBFBD><CABC>ʱѡ<CAB1><D1A1><EFBFBD><EFBFBD>CS<43><53><EFBFBD>ţ<EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD>ɻ<EFBFBD><C9BB><EFBFBD>ʼ<EFBFBD><CABC>Ĭ<EFBFBD><C4AC>CS<43><53><EFBFBD>ŵ<EFBFBD>bug
|
<20><EFBFBD>Ӳ<EFBFBD><D3B2>SPI<50><49>ʼ<EFBFBD><CABC>ʱѡ<CAB1><D1A1><EFBFBD><EFBFBD>CS<43><53><EFBFBD>ţ<EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD>ɻ<EFBFBD><C9BB><EFBFBD>ʼ<EFBFBD><CABC>Ĭ<EFBFBD><C4AC>CS<43><53><EFBFBD>ŵ<EFBFBD>bug
|
||||||
V3.1.4
|
V3.1.4
|
||||||
|
|||||||
Binary file not shown.
@@ -43,24 +43,25 @@
|
|||||||
* ------------------------------------
|
* ------------------------------------
|
||||||
********************************************************************************************************************/
|
********************************************************************************************************************/
|
||||||
|
|
||||||
|
#include "math.h"
|
||||||
#include "zf_common_function.h"
|
#include "zf_common_function.h"
|
||||||
#include "zf_common_fifo.h"
|
#include "zf_common_fifo.h"
|
||||||
#include "zf_driver_delay.h"
|
#include "zf_driver_delay.h"
|
||||||
#include "zf_driver_uart.h"
|
#include "zf_driver_uart.h"
|
||||||
#include "zf_device_type.h"
|
|
||||||
#include "zf_device_gps_tau1201.h"
|
#include "zf_device_gps_tau1201.h"
|
||||||
|
|
||||||
#define GPS_TAU1201_BUFFER_SIZE (128)
|
#define GPS_TAU1201_BUFFER_SIZE ( 128 )
|
||||||
|
|
||||||
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>
|
uint8 gps_tau1201_flag = 0; // 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>
|
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>
|
static uint8 gps_tau1201_state = 0; // 1<><31>GPS<50><53>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
static fifo_struct gps_tau1201_receiver_fifo; //
|
static fifo_struct gps_tau1201_receiver_fifo; //
|
||||||
static uint8 gps_tau1201_receiver_buffer[GPS_TAU1201_BUFFER_SIZE]; // <20><><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
static uint8 gps_tau1201_receiver_buffer[GPS_TAU1201_BUFFER_SIZE]; // <20><><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
gps_state_enum gps_gga_state; // gga<67><61><EFBFBD><EFBFBD>״̬
|
gps_state_enum gps_gga_state = GPS_STATE_RECEIVING; // gga <EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
||||||
gps_state_enum gps_rmc_state; // rmc<6D><63><EFBFBD><EFBFBD>״̬
|
gps_state_enum gps_rmc_state = GPS_STATE_RECEIVING; // rmc <EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
||||||
|
|
||||||
static uint8 gps_gga_buffer[GPS_TAU1201_BUFFER_SIZE];
|
static uint8 gps_gga_buffer[GPS_TAU1201_BUFFER_SIZE];
|
||||||
static uint8 gps_rmc_buffer[GPS_TAU1201_BUFFER_SIZE];
|
static uint8 gps_rmc_buffer[GPS_TAU1201_BUFFER_SIZE];
|
||||||
@@ -75,11 +76,10 @@ static uint8 gps_rmc_buffer[GPS_TAU1201_BUFFER_SIZE];
|
|||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
static uint8 get_parameter_index (uint8 num, char *str)
|
static uint8 get_parameter_index (uint8 num, char *str)
|
||||||
{
|
{
|
||||||
uint8 i, j = 0;
|
uint8 i = 0, j = 0;
|
||||||
char *temp;
|
char *temp = strchr(str, '\n');
|
||||||
uint8 len = 0, len1;
|
uint8 len = 0, len1 = 0;
|
||||||
|
|
||||||
temp = strchr(str, '\n');
|
|
||||||
if(NULL != temp)
|
if(NULL != temp)
|
||||||
{
|
{
|
||||||
len = (uint8)((uint32)temp - (uint32)str + 1);
|
len = (uint8)((uint32)temp - (uint32)str + 1);
|
||||||
@@ -87,7 +87,7 @@ static uint8 get_parameter_index (uint8 num, char *str)
|
|||||||
|
|
||||||
for(i = 0; i < len; i ++)
|
for(i = 0; i < len; i ++)
|
||||||
{
|
{
|
||||||
if(str[i] == ',')
|
if(',' == str[i])
|
||||||
{
|
{
|
||||||
j ++;
|
j ++;
|
||||||
}
|
}
|
||||||
@@ -111,8 +111,8 @@ static uint8 get_parameter_index (uint8 num, char *str)
|
|||||||
static int get_int_number (char *s)
|
static int get_int_number (char *s)
|
||||||
{
|
{
|
||||||
char buf[10];
|
char buf[10];
|
||||||
uint8 i;
|
uint8 i = 0;
|
||||||
int return_value;
|
int return_value = 0;
|
||||||
i = get_parameter_index(1, s);
|
i = get_parameter_index(1, s);
|
||||||
i = i - 1;
|
i = i - 1;
|
||||||
strncpy(buf, s, i);
|
strncpy(buf, s, i);
|
||||||
@@ -130,9 +130,9 @@ static int get_int_number (char *s)
|
|||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
static float get_float_number (char *s)
|
static float get_float_number (char *s)
|
||||||
{
|
{
|
||||||
uint8 i;
|
uint8 i = 0;
|
||||||
char buf[15];
|
char buf[15];
|
||||||
float return_value;
|
float return_value = 0;
|
||||||
|
|
||||||
i = get_parameter_index(1, s);
|
i = get_parameter_index(1, s);
|
||||||
i = i - 1;
|
i = i - 1;
|
||||||
@@ -151,9 +151,9 @@ static float get_float_number (char *s)
|
|||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
static double get_double_number (char *s)
|
static double get_double_number (char *s)
|
||||||
{
|
{
|
||||||
uint8 i;
|
uint8 i = 0;
|
||||||
char buf[15];
|
char buf[15];
|
||||||
double return_value;
|
double return_value = 0;
|
||||||
|
|
||||||
i = get_parameter_index(1, s);
|
i = get_parameter_index(1, s);
|
||||||
i = i - 1;
|
i = i - 1;
|
||||||
@@ -172,10 +172,10 @@ static double get_double_number (char *s)
|
|||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
static void utc_to_btc (gps_time_struct *time)
|
static void utc_to_btc (gps_time_struct *time)
|
||||||
{
|
{
|
||||||
uint8 day_num;
|
uint8 day_num = 0;
|
||||||
|
|
||||||
time->hour = time->hour + 8;
|
time->hour = time->hour + 8;
|
||||||
if(time->hour > 23)
|
if(23 < time->hour)
|
||||||
{
|
{
|
||||||
time->hour -= 24;
|
time->hour -= 24;
|
||||||
time->day += 1;
|
time->day += 1;
|
||||||
@@ -183,7 +183,7 @@ static void utc_to_btc (gps_time_struct *time)
|
|||||||
if(2 == time->month)
|
if(2 == time->month)
|
||||||
{
|
{
|
||||||
day_num = 28;
|
day_num = 28;
|
||||||
if((time->year % 4 == 0 && time->year % 100 != 0) || time->year % 400 == 0) // <20>ж<EFBFBD><D0B6>Ƿ<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>
|
if((0 == time->year % 4 && 0 != time->year % 100) || 0 == time->year % 400) // <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>
|
||||||
}
|
}
|
||||||
@@ -201,7 +201,7 @@ static void utc_to_btc (gps_time_struct *time)
|
|||||||
{
|
{
|
||||||
time->day = 1;
|
time->day = 1;
|
||||||
time->month ++;
|
time->month ++;
|
||||||
if(time->month > 12)
|
if(12 < time->month)
|
||||||
{
|
{
|
||||||
time->month -= 12;
|
time->month -= 12;
|
||||||
time->year ++;
|
time->year ++;
|
||||||
@@ -220,21 +220,21 @@ static void utc_to_btc (gps_time_struct *time)
|
|||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
static uint8 gps_gnrmc_parse (char *line, gps_info_struct *gps)
|
static uint8 gps_gnrmc_parse (char *line, gps_info_struct *gps)
|
||||||
{
|
{
|
||||||
uint8 state, temp;
|
uint8 state = 0, temp = 0;
|
||||||
|
|
||||||
double latitude; // γ<><CEB3>
|
double latitude = 0; // γ<><CEB3>
|
||||||
double longitude; // <20><><EFBFBD><EFBFBD>
|
double longitude = 0; // <20><><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
float lati_cent_tmp, lati_second_tmp;
|
double lati_cent_tmp = 0, lati_second_tmp = 0;
|
||||||
float long_cent_tmp, long_second_tmp;
|
double long_cent_tmp = 0, long_second_tmp = 0;
|
||||||
float speed_tmp;
|
float speed_tmp = 0;
|
||||||
char *buf = line;
|
char *buf = line;
|
||||||
uint8 return_state = 0;
|
uint8 return_state = 0;
|
||||||
|
|
||||||
state = buf[get_parameter_index(2, buf)];
|
state = buf[get_parameter_index(2, buf)];
|
||||||
|
|
||||||
gps->state = 0;
|
gps->state = 0;
|
||||||
if (state == 'A') // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
if('A' == state) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
{
|
{
|
||||||
return_state = 1;
|
return_state = 1;
|
||||||
gps->state = 1;
|
gps->state = 1;
|
||||||
@@ -247,17 +247,17 @@ static uint8 gps_gnrmc_parse (char *line, gps_info_struct *gps)
|
|||||||
gps->latitude_degree = (int)latitude / 100; // γ<><CEB3>ת<EFBFBD><D7AA>Ϊ<EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD>
|
gps->latitude_degree = (int)latitude / 100; // γ<><CEB3>ת<EFBFBD><D7AA>Ϊ<EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD>
|
||||||
lati_cent_tmp = (latitude - gps->latitude_degree * 100);
|
lati_cent_tmp = (latitude - gps->latitude_degree * 100);
|
||||||
gps->latitude_cent = (int)lati_cent_tmp;
|
gps->latitude_cent = (int)lati_cent_tmp;
|
||||||
lati_second_tmp = (lati_cent_tmp - gps->latitude_cent) * 10000;
|
lati_second_tmp = (lati_cent_tmp - gps->latitude_cent) * 6000;
|
||||||
gps->latitude_second = (int)lati_second_tmp;
|
gps->latitude_second = (int)lati_second_tmp;
|
||||||
|
|
||||||
gps->longitude_degree = (int)longitude / 100; // <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD>
|
gps->longitude_degree = (int)longitude / 100; // <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD>
|
||||||
long_cent_tmp = (longitude - gps->longitude_degree * 100);
|
long_cent_tmp = (longitude - gps->longitude_degree * 100);
|
||||||
gps->longitude_cent = (int)long_cent_tmp;
|
gps->longitude_cent = (int)long_cent_tmp;
|
||||||
long_second_tmp = (long_cent_tmp - gps->longitude_cent) * 10000;
|
long_second_tmp = (long_cent_tmp - gps->longitude_cent) * 6000;
|
||||||
gps->longitude_second = (int)long_second_tmp;
|
gps->longitude_second = (int)long_second_tmp;
|
||||||
|
|
||||||
gps->latitude = gps->latitude_degree + (double)gps->latitude_cent / 60 + (double)gps->latitude_second / 600000;
|
gps->latitude = gps->latitude_degree + lati_cent_tmp / 60;
|
||||||
gps->longitude = gps->longitude_degree + (double)gps->longitude_cent / 60 + (double)gps->longitude_second / 600000;
|
gps->longitude = gps->longitude_degree + long_cent_tmp / 60;
|
||||||
|
|
||||||
speed_tmp = get_float_number(&buf[get_parameter_index(7, buf)]); // <20>ٶ<EFBFBD>(<28><><EFBFBD><EFBFBD>/Сʱ)
|
speed_tmp = get_float_number(&buf[get_parameter_index(7, buf)]); // <20>ٶ<EFBFBD>(<28><><EFBFBD><EFBFBD>/Сʱ)
|
||||||
gps->speed = speed_tmp * 1.85f; // ת<><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>/Сʱ
|
gps->speed = speed_tmp * 1.85f; // ת<><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>/Сʱ
|
||||||
@@ -288,13 +288,13 @@ static uint8 gps_gnrmc_parse (char *line, gps_info_struct *gps)
|
|||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
static uint8 gps_gngga_parse (char *line, gps_info_struct *gps)
|
static uint8 gps_gngga_parse (char *line, gps_info_struct *gps)
|
||||||
{
|
{
|
||||||
uint8 state;
|
uint8 state = 0;
|
||||||
char *buf = line;
|
char *buf = line;
|
||||||
uint8 return_state = 0;
|
uint8 return_state = 0;
|
||||||
|
|
||||||
state = buf[get_parameter_index(2, buf)];
|
state = buf[get_parameter_index(2, buf)];
|
||||||
|
|
||||||
if (state != ',')
|
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>
|
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>
|
||||||
@@ -317,13 +317,13 @@ static uint8 gps_gngga_parse (char *line, gps_info_struct *gps)
|
|||||||
double get_two_points_distance (double latitude1, double longitude1, double latitude2, double longitude2)
|
double get_two_points_distance (double latitude1, double longitude1, double latitude2, double longitude2)
|
||||||
{
|
{
|
||||||
const double EARTH_RADIUS = 6378137; // <20><><EFBFBD><EFBFBD><EFBFBD>뾶(<28><>λ<EFBFBD><CEBB>m)
|
const double EARTH_RADIUS = 6378137; // <20><><EFBFBD><EFBFBD><EFBFBD>뾶(<28><>λ<EFBFBD><CEBB>m)
|
||||||
double rad_latitude1;
|
double rad_latitude1 = 0;
|
||||||
double rad_latitude2;
|
double rad_latitude2 = 0;
|
||||||
double rad_longitude1;
|
double rad_longitude1 = 0;
|
||||||
double rad_longitude2;
|
double rad_longitude2 = 0;
|
||||||
double distance;
|
double distance = 0;
|
||||||
double a;
|
double a = 0;
|
||||||
double b;
|
double b = 0;
|
||||||
|
|
||||||
rad_latitude1 = ANGLE_TO_RAD(latitude1); // <20><><EFBFBD>ݽǶȼ<C7B6><C8BC>㻡<EFBFBD><E3BBA1>
|
rad_latitude1 = ANGLE_TO_RAD(latitude1); // <20><><EFBFBD>ݽǶȼ<C7B6><C8BC>㻡<EFBFBD><E3BBA1>
|
||||||
rad_latitude2 = ANGLE_TO_RAD(latitude2);
|
rad_latitude2 = ANGLE_TO_RAD(latitude2);
|
||||||
@@ -359,7 +359,7 @@ double get_two_points_azimuth (double latitude1, double longitude1, double latit
|
|||||||
double x = sin(longitude2 - longitude1) * cos(latitude2);
|
double x = sin(longitude2 - longitude1) * cos(latitude2);
|
||||||
double y = cos(latitude1) * sin(latitude2) - sin(latitude1) * cos(latitude2) * cos(longitude2 - longitude1);
|
double y = cos(latitude1) * sin(latitude2) - sin(latitude1) * cos(latitude2) * cos(longitude2 - longitude1);
|
||||||
double angle = RAD_TO_ANGLE(atan2(x, y));
|
double angle = RAD_TO_ANGLE(atan2(x, y));
|
||||||
return ((angle > 0) ? angle : (angle + 360));
|
return ((0 < angle) ? angle : (angle + 360));
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
@@ -375,16 +375,16 @@ uint8 gps_data_parse (void)
|
|||||||
uint8 check_buffer[5] = {'0', 'x', 0x00, 0x00, 0x00};
|
uint8 check_buffer[5] = {'0', 'x', 0x00, 0x00, 0x00};
|
||||||
uint8 bbc_xor_origin = 0;
|
uint8 bbc_xor_origin = 0;
|
||||||
uint8 bbc_xor_calculation = 0;
|
uint8 bbc_xor_calculation = 0;
|
||||||
uint32 data_len;
|
uint32 data_len = 0;
|
||||||
|
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
if(GPS_STATE_RECEIVED == gps_rmc_state)
|
if(GPS_STATE_RECEIVED == gps_rmc_state)
|
||||||
{
|
{
|
||||||
gps_rmc_state = GPS_STATE_PARSING;
|
gps_rmc_state = GPS_STATE_PARSING;
|
||||||
strncpy((char *)&check_buffer[2], strchr((const char *)gps_rmc_buffer, '*')+1, 2);
|
strncpy((char *)&check_buffer[2], strchr((const char *)gps_rmc_buffer, '*') + 1, 2);
|
||||||
bbc_xor_origin = (uint8)func_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 ++)
|
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];
|
bbc_xor_calculation ^= gps_rmc_buffer[data_len];
|
||||||
}
|
}
|
||||||
@@ -402,10 +402,10 @@ uint8 gps_data_parse (void)
|
|||||||
if(GPS_STATE_RECEIVED == gps_gga_state)
|
if(GPS_STATE_RECEIVED == gps_gga_state)
|
||||||
{
|
{
|
||||||
gps_gga_state = GPS_STATE_PARSING;
|
gps_gga_state = GPS_STATE_PARSING;
|
||||||
strncpy((char *)&check_buffer[2], strchr((const char *)gps_gga_buffer, '*')+1, 2);
|
strncpy((char *)&check_buffer[2], strchr((const char *)gps_gga_buffer, '*') + 1, 2);
|
||||||
bbc_xor_origin = (uint8)func_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 ++)
|
for(bbc_xor_calculation = gps_gga_buffer[1], data_len = 2; '*' != gps_gga_buffer[data_len]; data_len ++)
|
||||||
{
|
{
|
||||||
bbc_xor_calculation ^= gps_gga_buffer[data_len];
|
bbc_xor_calculation ^= gps_gga_buffer[data_len];
|
||||||
}
|
}
|
||||||
@@ -435,7 +435,7 @@ uint8 gps_data_parse (void)
|
|||||||
void gps_uart_callback (void)
|
void gps_uart_callback (void)
|
||||||
{
|
{
|
||||||
uint8 temp_gps[6];
|
uint8 temp_gps[6];
|
||||||
uint32 temp_length;
|
uint32 temp_length = 0;
|
||||||
|
|
||||||
if(gps_tau1201_state)
|
if(gps_tau1201_state)
|
||||||
{
|
{
|
||||||
@@ -507,8 +507,7 @@ uint8 gps_init (void)
|
|||||||
fifo_init(&gps_tau1201_receiver_fifo, FIFO_DATA_8BIT, gps_tau1201_receiver_buffer, GPS_TAU1201_BUFFER_SIZE);
|
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>
|
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);
|
uart_init(GPS_TAU1201_UART, 115200, GPS_TAU1201_RX, GPS_TAU1201_TX);
|
||||||
|
uart_rx_interrupt(GPS_TAU1201_UART, 0);
|
||||||
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
|
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);
|
system_delay_ms(200);
|
||||||
|
|||||||
@@ -49,9 +49,9 @@
|
|||||||
#include "zf_common_typedef.h"
|
#include "zf_common_typedef.h"
|
||||||
|
|
||||||
//===============================================GPS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
//===============================================GPS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||||
#define GPS_TAU1201_UART (UART_2)
|
#define GPS_TAU1201_UART (UART_3)
|
||||||
#define GPS_TAU1201_RX (UART2_TX_P10_5) // GPS RX<52><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD>
|
#define GPS_TAU1201_RX (UART3_TX_P15_6) // GPS RX<52><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD>
|
||||||
#define GPS_TAU1201_TX (UART2_RX_P10_6) // GPS TX<54><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
#define GPS_TAU1201_TX (UART3_RX_P15_7) // GPS TX<54><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
//===============================================GPS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
//===============================================GPS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||||
|
|
||||||
#define ANGLE_TO_RAD(x) ((x) * PI / 180.0) // <20>Ƕ<EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>
|
#define ANGLE_TO_RAD(x) ((x) * PI / 180.0) // <20>Ƕ<EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>
|
||||||
|
|||||||
@@ -137,8 +137,8 @@
|
|||||||
//================================================<3D><><EFBFBD><EFBFBD> IMU963RA <20>ڲ<EFBFBD><DAB2><EFBFBD>ַ================================================
|
//================================================<3D><><EFBFBD><EFBFBD> IMU963RA <20>ڲ<EFBFBD><DAB2><EFBFBD>ַ================================================
|
||||||
|
|
||||||
//===============================================<3D><><EFBFBD><EFBFBD> IMU963RA <20><><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD>===============================================
|
//===============================================<3D><><EFBFBD><EFBFBD> IMU963RA <20><><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD>===============================================
|
||||||
extern int16 imu963ra_acc_x, imu963ra_acc_y, imu963ra_acc_z; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
extern int16 imu963ra_gyro_x, imu963ra_gyro_y, imu963ra_gyro_z; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
extern int16 imu963ra_gyro_x, imu963ra_gyro_y, imu963ra_gyro_z; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
extern int16 imu963ra_acc_x, imu963ra_acc_y, imu963ra_acc_z; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
||||||
extern int16 imu963ra_mag_x, imu963ra_mag_y, imu963ra_mag_z; // <20><><EFBFBD><EFBFBD><EFBFBD>شż<D8B4><C5BC><EFBFBD><EFBFBD><EFBFBD>
|
extern int16 imu963ra_mag_x, imu963ra_mag_y, imu963ra_mag_z; // <20><><EFBFBD><EFBFBD><EFBFBD>شż<D8B4><C5BC><EFBFBD><EFBFBD><EFBFBD>
|
||||||
//===============================================<3D><><EFBFBD><EFBFBD> IMU963RA <20><><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD>===============================================
|
//===============================================<3D><><EFBFBD><EFBFBD> IMU963RA <20><><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD>===============================================
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*********************************************************************************************************************
|
/*********************************************************************************************************************
|
||||||
* MM32F327X-G9P Opensourec Library <20><><EFBFBD><EFBFBD>MM32F327X-G9P <20><>Դ<EFBFBD>⣩<EFBFBD><E2A3A9>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ڹٷ<DAB9> SDK <20>ӿڵĵ<DAB5><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4>
|
* TC264 Opensourec Library <20><><EFBFBD><EFBFBD>TC264 <20><>Դ<EFBFBD>⣩<EFBFBD><E2A3A9>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ڹٷ<DAB9> SDK <20>ӿڵĵ<DAB5><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4>
|
||||||
* Copyright (c) 2022 SEEKFREE <20><><EFBFBD>ɿƼ<C9BF>
|
* Copyright (c) 2022 SEEKFREE <20><><EFBFBD>ɿƼ<C9BF>
|
||||||
*
|
*
|
||||||
* <20><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD> MM32F327X-G9P <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
|
* <20><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD> TC264 <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
|
||||||
*
|
*
|
||||||
* MM32F327X-G9P <20><>Դ<EFBFBD><D4B4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
* TC264 <20><>Դ<EFBFBD><D4B4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
* <20><><EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD><D4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᷢ<EFBFBD><E1B7A2><EFBFBD><EFBFBD> GPL<50><4C>GNU General Public License<73><65><EFBFBD><EFBFBD> GNUͨ<55>ù<EFBFBD><C3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
* <20><><EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD><D4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᷢ<EFBFBD><E1B7A2><EFBFBD><EFBFBD> GPL<50><4C>GNU General Public License<73><65><EFBFBD><EFBFBD> GNUͨ<55>ù<EFBFBD><C3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
* <20><> GPL <20>ĵ<EFBFBD>3<EFBFBD>棨<EFBFBD><E6A3A8> GPL3.0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD>κκ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>İ汾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><DEB8><EFBFBD>
|
* <20><> GPL <20>ĵ<EFBFBD>3<EFBFBD>棨<EFBFBD><E6A3A8> GPL3.0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD>κκ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>İ汾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><DEB8><EFBFBD>
|
||||||
*
|
*
|
||||||
@@ -24,13 +24,13 @@
|
|||||||
* <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> zf_device_key
|
* <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> zf_device_key
|
||||||
* <20><>˾<EFBFBD><CBBE><EFBFBD><EFBFBD> <20>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD><EFBFBD>˾
|
* <20><>˾<EFBFBD><CBBE><EFBFBD><EFBFBD> <20>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD><EFBFBD>˾
|
||||||
* <20>汾<EFBFBD><E6B1BE>Ϣ <20>鿴 libraries/doc <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> version <20>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
|
* <20>汾<EFBFBD><E6B1BE>Ϣ <20>鿴 libraries/doc <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> version <20>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
|
||||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IAR 8.32.4 or MDK 5.37
|
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ADS v1.8.0
|
||||||
* <20><><EFBFBD><EFBFBD>ƽ̨ MM32F327X_G9P
|
* <20><><EFBFBD><EFBFBD>ƽ̨ TC264D
|
||||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> https://seekfree.taobao.com/
|
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> https://seekfree.taobao.com/
|
||||||
*
|
*
|
||||||
* <20>ļ<DEB8>¼
|
* <20>ļ<DEB8>¼
|
||||||
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
|
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
|
||||||
* 2022-08-10 Teternal first version
|
* 2022-09-15 pudding first version
|
||||||
********************************************************************************************************************/
|
********************************************************************************************************************/
|
||||||
/*********************************************************************************************************************
|
/*********************************************************************************************************************
|
||||||
* <20><><EFBFBD>߶<EFBFBD><DFB6>壺
|
* <20><><EFBFBD>߶<EFBFBD><DFB6>壺
|
||||||
@@ -45,6 +45,7 @@
|
|||||||
********************************************************************************************************************/
|
********************************************************************************************************************/
|
||||||
|
|
||||||
#include "zf_common_debug.h"
|
#include "zf_common_debug.h"
|
||||||
|
|
||||||
#include "zf_device_key.h"
|
#include "zf_device_key.h"
|
||||||
|
|
||||||
static uint32 scanner_period = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
static uint32 scanner_period = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
@@ -65,54 +66,21 @@ void key_scanner (void)
|
|||||||
uint8 i = 0;
|
uint8 i = 0;
|
||||||
for(i = 0; i < KEY_NUMBER; i ++)
|
for(i = 0; i < KEY_NUMBER; i ++)
|
||||||
{
|
{
|
||||||
switch(key_state[i])
|
if(KEY_RELEASE_LEVEL != gpio_get_level(key_index[i])) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
{
|
{
|
||||||
case KEY_RELEASE:
|
key_press_time[i] ++;
|
||||||
if(KEY_RELEASE_LEVEL != gpio_get_level(key_index[i]))
|
if(key_press_time[i] >= KEY_LONG_PRESS_PERIOD / scanner_period)
|
||||||
{
|
{
|
||||||
if(++ key_press_time[i] >= KEY_MAX_SHOCK_PERIOD / scanner_period)
|
key_state[i] = KEY_LONG_PRESS;
|
||||||
{
|
}
|
||||||
key_state[i] = KEY_SHORT_PRESS;
|
}
|
||||||
}
|
else // <20><><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>
|
||||||
else
|
{
|
||||||
{
|
if(key_state[i] != KEY_LONG_PRESS && key_press_time[i] >= KEY_MAX_SHOCK_PERIOD / scanner_period)
|
||||||
key_state[i] = KEY_CHECK_SHOCK;
|
{
|
||||||
}
|
key_state[i] = KEY_SHORT_PRESS;
|
||||||
}
|
}
|
||||||
break;
|
key_press_time[i] = 0;
|
||||||
case KEY_CHECK_SHOCK:
|
|
||||||
if(KEY_RELEASE_LEVEL != gpio_get_level(key_index[i]))
|
|
||||||
{
|
|
||||||
if(++ key_press_time[i] >= KEY_MAX_SHOCK_PERIOD / scanner_period)
|
|
||||||
{
|
|
||||||
key_state[i] = KEY_SHORT_PRESS;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
key_state[i] = KEY_RELEASE;
|
|
||||||
key_press_time[i] = 0;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case KEY_SHORT_PRESS:
|
|
||||||
if(++ key_press_time[i] >= KEY_LONG_PRESS_PERIOD / scanner_period)
|
|
||||||
{
|
|
||||||
key_state[i] = KEY_LONG_PRESS;
|
|
||||||
}
|
|
||||||
if(KEY_RELEASE_LEVEL == gpio_get_level(key_index[i]))
|
|
||||||
{
|
|
||||||
key_state[i] = KEY_RELEASE;
|
|
||||||
key_press_time[i] = 0;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case KEY_LONG_PRESS:
|
|
||||||
if(KEY_RELEASE_LEVEL == gpio_get_level(key_index[i]))
|
|
||||||
{
|
|
||||||
key_state[i] = KEY_RELEASE;
|
|
||||||
key_press_time[i] = 0;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -129,6 +97,33 @@ key_state_enum key_get_state (key_index_enum key_n)
|
|||||||
return key_state[key_n];
|
return key_state[key_n];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>״̬
|
||||||
|
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> key_n <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void <20><>
|
||||||
|
// ʹ<><CAB9>ʾ<EFBFBD><CABE> key_clear_state(KEY_1);
|
||||||
|
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
void key_clear_state (key_index_enum key_n)
|
||||||
|
{
|
||||||
|
key_state[key_n] = KEY_RELEASE;
|
||||||
|
}
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>а<EFBFBD><D0B0><EFBFBD>״̬
|
||||||
|
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> void <20><>
|
||||||
|
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void <20><>
|
||||||
|
// ʹ<><CAB9>ʾ<EFBFBD><CABE> key_clear_all_state();
|
||||||
|
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
void key_clear_all_state (void)
|
||||||
|
{
|
||||||
|
key_state[0] = KEY_RELEASE;
|
||||||
|
key_state[1] = KEY_RELEASE;
|
||||||
|
key_state[2] = KEY_RELEASE;
|
||||||
|
key_state[3] = KEY_RELEASE;
|
||||||
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
||||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> period <20><><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ժ<EFBFBD><D4BA><EFBFBD>Ϊ<EFBFBD><CEAA>λ
|
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> period <20><><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ժ<EFBFBD><D4BA><EFBFBD>Ϊ<EFBFBD><CEAA>λ
|
||||||
@@ -136,17 +131,14 @@ key_state_enum key_get_state (key_index_enum key_n)
|
|||||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> key_init(10);
|
// ʹ<><CAB9>ʾ<EFBFBD><CABE> key_init(10);
|
||||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
uint8 key_init (uint32 period)
|
void key_init (uint32 period)
|
||||||
{
|
{
|
||||||
|
zf_assert(0 < period);
|
||||||
uint8 loop_temp = 0;
|
uint8 loop_temp = 0;
|
||||||
|
|
||||||
zf_assert(0 < period); // ɨ<><C9A8><EFBFBD><EFBFBD><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0
|
|
||||||
|
|
||||||
for(loop_temp = 0; loop_temp < KEY_NUMBER; loop_temp ++)
|
for(loop_temp = 0; loop_temp < KEY_NUMBER; loop_temp ++)
|
||||||
{
|
{
|
||||||
gpio_init(key_index[loop_temp], GPI, GPIO_HIGH, GPI_PULL_UP);
|
gpio_init(key_index[loop_temp], GPI, GPIO_HIGH, GPI_PULL_UP);
|
||||||
key_state[loop_temp] = KEY_RELEASE;
|
key_state[loop_temp] = KEY_RELEASE;
|
||||||
}
|
}
|
||||||
scanner_period = period;
|
scanner_period = period;
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*********************************************************************************************************************
|
/*********************************************************************************************************************
|
||||||
* MM32F327X-G9P Opensourec Library <20><><EFBFBD><EFBFBD>MM32F327X-G9P <20><>Դ<EFBFBD>⣩<EFBFBD><E2A3A9>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ڹٷ<DAB9> SDK <20>ӿڵĵ<DAB5><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4>
|
* TC264 Opensourec Library <20><><EFBFBD><EFBFBD>TC264 <20><>Դ<EFBFBD>⣩<EFBFBD><E2A3A9>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ڹٷ<DAB9> SDK <20>ӿڵĵ<DAB5><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4>
|
||||||
* Copyright (c) 2022 SEEKFREE <20><><EFBFBD>ɿƼ<C9BF>
|
* Copyright (c) 2022 SEEKFREE <20><><EFBFBD>ɿƼ<C9BF>
|
||||||
*
|
*
|
||||||
* <20><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD> MM32F327X-G9P <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
|
* <20><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD> TC264 <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
|
||||||
*
|
*
|
||||||
* MM32F327X-G9P <20><>Դ<EFBFBD><D4B4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
* TC264 <20><>Դ<EFBFBD><D4B4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
* <20><><EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD><D4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᷢ<EFBFBD><E1B7A2><EFBFBD><EFBFBD> GPL<50><4C>GNU General Public License<73><65><EFBFBD><EFBFBD> GNUͨ<55>ù<EFBFBD><C3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
* <20><><EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD><D4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᷢ<EFBFBD><E1B7A2><EFBFBD><EFBFBD> GPL<50><4C>GNU General Public License<73><65><EFBFBD><EFBFBD> GNUͨ<55>ù<EFBFBD><C3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
* <20><> GPL <20>ĵ<EFBFBD>3<EFBFBD>棨<EFBFBD><E6A3A8> GPL3.0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD>κκ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>İ汾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><DEB8><EFBFBD>
|
* <20><> GPL <20>ĵ<EFBFBD>3<EFBFBD>棨<EFBFBD><E6A3A8> GPL3.0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD>κκ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>İ汾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><DEB8><EFBFBD>
|
||||||
*
|
*
|
||||||
@@ -24,13 +24,13 @@
|
|||||||
* <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> zf_device_key
|
* <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> zf_device_key
|
||||||
* <20><>˾<EFBFBD><CBBE><EFBFBD><EFBFBD> <20>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD><EFBFBD>˾
|
* <20><>˾<EFBFBD><CBBE><EFBFBD><EFBFBD> <20>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD><EFBFBD>˾
|
||||||
* <20>汾<EFBFBD><E6B1BE>Ϣ <20>鿴 libraries/doc <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> version <20>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
|
* <20>汾<EFBFBD><E6B1BE>Ϣ <20>鿴 libraries/doc <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> version <20>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
|
||||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IAR 8.32.4 or MDK 5.37
|
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ADS v1.8.0
|
||||||
* <20><><EFBFBD><EFBFBD>ƽ̨ MM32F327X_G9P
|
* <20><><EFBFBD><EFBFBD>ƽ̨ TC264D
|
||||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> https://seekfree.taobao.com/
|
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> https://seekfree.taobao.com/
|
||||||
*
|
*
|
||||||
* <20>ļ<DEB8>¼
|
* <20>ļ<DEB8>¼
|
||||||
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
|
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
|
||||||
* 2022-08-10 Teternal first version
|
* 2022-09-15 pudding first version
|
||||||
********************************************************************************************************************/
|
********************************************************************************************************************/
|
||||||
/*********************************************************************************************************************
|
/*********************************************************************************************************************
|
||||||
* <20><><EFBFBD>߶<EFBFBD><DFB6>壺
|
* <20><><EFBFBD>߶<EFBFBD><DFB6>壺
|
||||||
@@ -53,13 +53,12 @@
|
|||||||
// <20><><EFBFBD>尴<EFBFBD><E5B0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ĭ<>϶<EFBFBD><CFB6><EFBFBD><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD>
|
// <20><><EFBFBD>尴<EFBFBD><E5B0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ĭ<>϶<EFBFBD><CFB6><EFBFBD><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD>
|
||||||
// <20><><EFBFBD>尴<EFBFBD><E5B0B4>˳<EFBFBD><CBB3><EFBFBD><EFBFBD>Ӧ<EFBFBD>·<EFBFBD> key_index_enum ö<><C3B6><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><CBB3>
|
// <20><><EFBFBD>尴<EFBFBD><E5B0B4>˳<EFBFBD><CBB3><EFBFBD><EFBFBD>Ӧ<EFBFBD>·<EFBFBD> key_index_enum ö<><C3B6><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><CBB3>
|
||||||
// <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ô<EFBFBD><C3B4>Ҫͬ<D2AA><CDAC><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD> key_index_enum ö<><C3B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
// <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ô<EFBFBD><C3B4>Ҫͬ<D2AA><CDAC><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD> key_index_enum ö<><C3B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
#define KEY_LIST {P22_0, P22_1, P22_2, P22_3}
|
#define KEY_LIST {P20_6, P20_7, P11_2, P11_3}
|
||||||
|
|
||||||
#define KEY_RELEASE_LEVEL (GPIO_HIGH) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>״̬ Ҳ<><D2B2><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ͷ<EFBFBD>״̬<D7B4>ĵ<EFBFBD>ƽ
|
#define KEY_RELEASE_LEVEL (GPIO_HIGH) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>״̬ Ҳ<><D2B2><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ͷ<EFBFBD>״̬<D7B4>ĵ<EFBFBD>ƽ
|
||||||
#define KEY_MAX_SHOCK_PERIOD (10 ) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>źŻᱻ<C5BB><E1B1BB>Ϊ<EFBFBD><CEAA><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD><EFBFBD>
|
#define KEY_MAX_SHOCK_PERIOD (10 ) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>źŻᱻ<C5BB><E1B1BB>Ϊ<EFBFBD><CEAA><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD><EFBFBD>
|
||||||
#define KEY_LONG_PRESS_PERIOD (1000 ) // <20><>С<EFBFBD><D0A1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>
|
#define KEY_LONG_PRESS_PERIOD (1000 ) // <20><>С<EFBFBD><D0A1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>źŻᱻ<C5BB><E1B1BB>Ϊ<EFBFBD>dz<EFBFBD><C7B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
//=================================================<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ṹ<EFBFBD><E1B9B9>===============================================
|
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
KEY_1,
|
KEY_1,
|
||||||
@@ -72,15 +71,14 @@ typedef enum
|
|||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
KEY_RELEASE, // <20><><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>״̬
|
KEY_RELEASE, // <20><><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>״̬
|
||||||
KEY_CHECK_SHOCK, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
|
||||||
KEY_SHORT_PRESS, // <20><><EFBFBD><EFBFBD><EFBFBD>̰<EFBFBD>״̬
|
KEY_SHORT_PRESS, // <20><><EFBFBD><EFBFBD><EFBFBD>̰<EFBFBD>״̬
|
||||||
KEY_LONG_PRESS, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
KEY_LONG_PRESS, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
||||||
}key_state_enum;
|
}key_state_enum;
|
||||||
//=================================================<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ṹ<EFBFBD><E1B9B9>===============================================
|
|
||||||
|
|
||||||
//====================================================<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>=================================================
|
void key_scanner (void);
|
||||||
void key_scanner (void); // <20><><EFBFBD><EFBFBD>״̬ɨ<CCAC><C9A8>
|
key_state_enum key_get_state (key_index_enum key_n);
|
||||||
key_state_enum key_get_state (key_index_enum key_n); // <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>״̬
|
void key_clear_state (key_index_enum key_n);
|
||||||
uint8 key_init (uint32 period); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
void key_clear_all_state (void);
|
||||||
//====================================================<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>=================================================
|
void key_init (uint32 period);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -60,7 +60,7 @@
|
|||||||
|
|
||||||
// TSL1401 <20><><EFBFBD><EFBFBD><EFBFBD>ڲɼ<DAB2><C9BC><EFBFBD><EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD> ʹ<>õ<EFBFBD><C3B5>ĸ<EFBFBD> PIT <20><>Ҫ<EFBFBD><D2AA> <20><><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD> PIT <20><><EFBFBD>жϷ<D0B6><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
// TSL1401 <20><><EFBFBD><EFBFBD><EFBFBD>ڲɼ<DAB2><C9BC><EFBFBD><EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD> ʹ<>õ<EFBFBD><C3B5>ĸ<EFBFBD> PIT <20><>Ҫ<EFBFBD><D2AA> <20><><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD> PIT <20><><EFBFBD>жϷ<D0B6><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
#define TSL1401_EXPOSURE_TIME (10 ) // <20><><EFBFBD><EFBFBD> TSL1401 <20>ع<EFBFBD>ʱ<EFBFBD><CAB1> <20><>λ MS
|
#define TSL1401_EXPOSURE_TIME (10 ) // <20><><EFBFBD><EFBFBD> TSL1401 <20>ع<EFBFBD>ʱ<EFBFBD><CAB1> <20><>λ MS
|
||||||
#define TSL1401_PIT_INDEX (CCU60_CH0) // ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
#define TSL1401_PIT_INDEX (CCU61_CH1) // ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||||
#define TSL1401_AD_RESOLUTION (ADC_8BIT) // ADC <20><><EFBFBD><EFBFBD> 8bit
|
#define TSL1401_AD_RESOLUTION (ADC_8BIT) // ADC <20><><EFBFBD><EFBFBD> 8bit
|
||||||
#define TSL1401_DATA_LEN (128 ) // TSL1401 <20><><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
|
#define TSL1401_DATA_LEN (128 ) // TSL1401 <20><><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
|
||||||
//=================================================TSL1401 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
//=================================================TSL1401 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||||
|
|||||||
@@ -53,9 +53,7 @@ typedef enum
|
|||||||
NO_WIRELESS = 0, // <20><><EFBFBD>豸
|
NO_WIRELESS = 0, // <20><><EFBFBD>豸
|
||||||
WIRELESS_UART, // <20><><EFBFBD>ߴ<EFBFBD><DFB4><EFBFBD>
|
WIRELESS_UART, // <20><><EFBFBD>ߴ<EFBFBD><DFB4><EFBFBD>
|
||||||
BLUETOOTH_CH9141, // <20><><EFBFBD><EFBFBD> CH9141
|
BLUETOOTH_CH9141, // <20><><EFBFBD><EFBFBD> CH9141
|
||||||
GPS_TAU1201,
|
WIFI_UART, // <20><><EFBFBD><EFBFBD> WiFi
|
||||||
WIFI_UART,
|
|
||||||
WIFI_SPI,
|
|
||||||
}wireless_type_enum;
|
}wireless_type_enum;
|
||||||
//==============================================<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ö<><C3B6><EFBFBD><EFBFBD>==================================================
|
//==============================================<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ö<><C3B6><EFBFBD><EFBFBD>==================================================
|
||||||
|
|
||||||
|
|||||||
@@ -40,7 +40,7 @@
|
|||||||
|
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> systick<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> system<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> time <20><>ʱһ<CAB1>ֵ<EFBFBD>ʱ<EFBFBD>䣨<EFBFBD><E4A3A8>λΪ<CEBB><CEAA><EFBFBD>룬<EFBFBD><EBA3AC><EFBFBD><EFBFBD><EFBFBD>÷<EFBFBD>Χ0-20000000<30><30>
|
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> time <20><>ʱһ<CAB1>ֵ<EFBFBD>ʱ<EFBFBD>䣨<EFBFBD><E4A3A8>λΪ<CEBB><CEAA><EFBFBD>룬<EFBFBD><EBA3AC><EFBFBD><EFBFBD><EFBFBD>÷<EFBFBD>Χ0-20000000<30><30>
|
||||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> num <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> num <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||||
@@ -60,3 +60,25 @@ void system_delay (uint32 time, uint32 num)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> system <><CEA2> <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
||||||
|
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> time <20><>ʱʱ<CAB1><CAB1> <20><>λ<EFBFBD><CEBB>us
|
||||||
|
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||||
|
// ʹ<><CAB9>ʾ<EFBFBD><CABE> system_delay_us(100); // <20><>ʱ100<30><CEA2>
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
void system_delay_us (uint32 time)
|
||||||
|
{
|
||||||
|
system_delay(time*1000, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> system <20><><EFBFBD><EFBFBD> <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
||||||
|
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> time <20><>ʱʱ<CAB1><CAB1> <20><>λ<EFBFBD><CEBB>ms
|
||||||
|
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||||
|
// ʹ<><CAB9>ʾ<EFBFBD><CABE> system_delay_ms(100); // <20><>ʱ100<30><30><EFBFBD><EFBFBD>
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
void system_delay_ms (uint32 time)
|
||||||
|
{
|
||||||
|
system_delay(1000000, time);
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -38,13 +38,10 @@
|
|||||||
|
|
||||||
#include "zf_common_typedef.h"
|
#include "zf_common_typedef.h"
|
||||||
|
|
||||||
|
|
||||||
void system_delay (uint32 time, uint32 num);
|
|
||||||
|
|
||||||
//====================================================<3D><>ʱ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
//====================================================<3D><>ʱ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||||
#define system_delay_ms(time) system_delay((1000000), (time)) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<CAB1><CAB1> <20><>λms
|
void system_delay (uint32 time, uint32 num);
|
||||||
#define system_delay_us(time) system_delay((time*1000), (1)) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<CAB1><CAB1> <20><>λus
|
void system_delay_us (uint32 time);
|
||||||
#define system_delay_ns(time) system_delay((time), (1)) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<CAB1><CAB1> <20><>λns
|
void system_delay_ms (uint32 time);
|
||||||
//====================================================<3D><>ʱ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
//====================================================<3D><>ʱ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -41,7 +41,6 @@ IFX_INTERRUPT(cc60_pit_ch0_isr, 0, CCU6_0_CH0_ISR_PRIORITY)
|
|||||||
{
|
{
|
||||||
interrupt_global_enable(0); // <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
|
interrupt_global_enable(0); // <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
|
||||||
pit_clear_flag(CCU60_CH0);
|
pit_clear_flag(CCU60_CH0);
|
||||||
tsl1401_collect_pit_handler(); // <20><><EFBFBD><EFBFBD>CCD<43>ɼ<EFBFBD>
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -75,7 +74,6 @@ IFX_INTERRUPT(cc61_pit_ch1_isr, 0, CCU6_1_CH1_ISR_PRIORITY)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
// **************************** PIT<49>жϺ<D0B6><CFBA><EFBFBD> ****************************
|
// **************************** PIT<49>жϺ<D0B6><CFBA><EFBFBD> ****************************
|
||||||
|
|
||||||
@@ -88,9 +86,6 @@ IFX_INTERRUPT(exti_ch0_ch4_isr, 0, EXTI_CH0_CH4_INT_PRIO)
|
|||||||
{
|
{
|
||||||
exti_flag_clear(ERU_CH0_REQ0_P15_4);
|
exti_flag_clear(ERU_CH0_REQ0_P15_4);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(exti_flag_get(ERU_CH4_REQ13_P15_5)) // ͨ<><CDA8>4<EFBFBD>ж<EFBFBD>
|
if(exti_flag_get(ERU_CH4_REQ13_P15_5)) // ͨ<><CDA8>4<EFBFBD>ж<EFBFBD>
|
||||||
@@ -119,8 +114,6 @@ IFX_INTERRUPT(exti_ch1_ch5_isr, 0, EXTI_CH1_CH5_INT_PRIO)
|
|||||||
exti_flag_clear(ERU_CH5_REQ1_P15_8);
|
exti_flag_clear(ERU_CH5_REQ1_P15_8);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -263,7 +256,7 @@ IFX_INTERRUPT(uart3_rx_isr, 0, UART3_RX_INT_PRIO)
|
|||||||
IfxAsclin_Asc_isrReceive(&uart3_handle);
|
IfxAsclin_Asc_isrReceive(&uart3_handle);
|
||||||
|
|
||||||
|
|
||||||
|
gps_uart_callback();
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,3 +1,7 @@
|
|||||||
|
V3.1.6
|
||||||
|
<20><EFBFBD>GPSʹ<53>ô<EFBFBD><C3B4>ںţ<DABA><C5A3>Ż<EFBFBD>GPS<50><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
isr.c<><63><EFBFBD>Ƴ<EFBFBD>CCD<43>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
<20>İ<DEB8><C4B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>İ<EFBFBD><C4B0><EFBFBD><EFBFBD>˿ںţ<DABA><C5A3><EFBFBD><EFBFBD><EFBFBD>V2.6<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
V3.1.5
|
V3.1.5
|
||||||
<20><EFBFBD>Ӳ<EFBFBD><D3B2>SPI<50><49>ʼ<EFBFBD><CABC>ʱѡ<CAB1><D1A1><EFBFBD><EFBFBD>CS<43><53><EFBFBD>ţ<EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD>ɻ<EFBFBD><C9BB><EFBFBD>ʼ<EFBFBD><CABC>Ĭ<EFBFBD><C4AC>CS<43><53><EFBFBD>ŵ<EFBFBD>bug
|
<20><EFBFBD>Ӳ<EFBFBD><D3B2>SPI<50><49>ʼ<EFBFBD><CABC>ʱѡ<CAB1><D1A1><EFBFBD><EFBFBD>CS<43><53><EFBFBD>ţ<EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD>ɻ<EFBFBD><C9BB><EFBFBD>ʼ<EFBFBD><CABC>Ĭ<EFBFBD><C4AC>CS<43><53><EFBFBD>ŵ<EFBFBD>bug
|
||||||
V3.1.4
|
V3.1.4
|
||||||
|
|||||||
Binary file not shown.
@@ -43,24 +43,25 @@
|
|||||||
* ------------------------------------
|
* ------------------------------------
|
||||||
********************************************************************************************************************/
|
********************************************************************************************************************/
|
||||||
|
|
||||||
|
#include "math.h"
|
||||||
#include "zf_common_function.h"
|
#include "zf_common_function.h"
|
||||||
#include "zf_common_fifo.h"
|
#include "zf_common_fifo.h"
|
||||||
#include "zf_driver_delay.h"
|
#include "zf_driver_delay.h"
|
||||||
#include "zf_driver_uart.h"
|
#include "zf_driver_uart.h"
|
||||||
#include "zf_device_type.h"
|
|
||||||
#include "zf_device_gps_tau1201.h"
|
#include "zf_device_gps_tau1201.h"
|
||||||
|
|
||||||
#define GPS_TAU1201_BUFFER_SIZE (128)
|
#define GPS_TAU1201_BUFFER_SIZE ( 128 )
|
||||||
|
|
||||||
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>
|
uint8 gps_tau1201_flag = 0; // 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>
|
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>
|
static uint8 gps_tau1201_state = 0; // 1<><31>GPS<50><53>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
static fifo_struct gps_tau1201_receiver_fifo; //
|
static fifo_struct gps_tau1201_receiver_fifo; //
|
||||||
static uint8 gps_tau1201_receiver_buffer[GPS_TAU1201_BUFFER_SIZE]; // <20><><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
static uint8 gps_tau1201_receiver_buffer[GPS_TAU1201_BUFFER_SIZE]; // <20><><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
gps_state_enum gps_gga_state; // gga<67><61><EFBFBD><EFBFBD>״̬
|
gps_state_enum gps_gga_state = GPS_STATE_RECEIVING; // gga <EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
||||||
gps_state_enum gps_rmc_state; // rmc<6D><63><EFBFBD><EFBFBD>״̬
|
gps_state_enum gps_rmc_state = GPS_STATE_RECEIVING; // rmc <EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
||||||
|
|
||||||
static uint8 gps_gga_buffer[GPS_TAU1201_BUFFER_SIZE];
|
static uint8 gps_gga_buffer[GPS_TAU1201_BUFFER_SIZE];
|
||||||
static uint8 gps_rmc_buffer[GPS_TAU1201_BUFFER_SIZE];
|
static uint8 gps_rmc_buffer[GPS_TAU1201_BUFFER_SIZE];
|
||||||
@@ -75,11 +76,10 @@ static uint8 gps_rmc_buffer[GPS_TAU1201_BUFFER_SIZE];
|
|||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
static uint8 get_parameter_index (uint8 num, char *str)
|
static uint8 get_parameter_index (uint8 num, char *str)
|
||||||
{
|
{
|
||||||
uint8 i, j = 0;
|
uint8 i = 0, j = 0;
|
||||||
char *temp;
|
char *temp = strchr(str, '\n');
|
||||||
uint8 len = 0, len1;
|
uint8 len = 0, len1 = 0;
|
||||||
|
|
||||||
temp = strchr(str, '\n');
|
|
||||||
if(NULL != temp)
|
if(NULL != temp)
|
||||||
{
|
{
|
||||||
len = (uint8)((uint32)temp - (uint32)str + 1);
|
len = (uint8)((uint32)temp - (uint32)str + 1);
|
||||||
@@ -87,7 +87,7 @@ static uint8 get_parameter_index (uint8 num, char *str)
|
|||||||
|
|
||||||
for(i = 0; i < len; i ++)
|
for(i = 0; i < len; i ++)
|
||||||
{
|
{
|
||||||
if(str[i] == ',')
|
if(',' == str[i])
|
||||||
{
|
{
|
||||||
j ++;
|
j ++;
|
||||||
}
|
}
|
||||||
@@ -111,8 +111,8 @@ static uint8 get_parameter_index (uint8 num, char *str)
|
|||||||
static int get_int_number (char *s)
|
static int get_int_number (char *s)
|
||||||
{
|
{
|
||||||
char buf[10];
|
char buf[10];
|
||||||
uint8 i;
|
uint8 i = 0;
|
||||||
int return_value;
|
int return_value = 0;
|
||||||
i = get_parameter_index(1, s);
|
i = get_parameter_index(1, s);
|
||||||
i = i - 1;
|
i = i - 1;
|
||||||
strncpy(buf, s, i);
|
strncpy(buf, s, i);
|
||||||
@@ -130,9 +130,9 @@ static int get_int_number (char *s)
|
|||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
static float get_float_number (char *s)
|
static float get_float_number (char *s)
|
||||||
{
|
{
|
||||||
uint8 i;
|
uint8 i = 0;
|
||||||
char buf[15];
|
char buf[15];
|
||||||
float return_value;
|
float return_value = 0;
|
||||||
|
|
||||||
i = get_parameter_index(1, s);
|
i = get_parameter_index(1, s);
|
||||||
i = i - 1;
|
i = i - 1;
|
||||||
@@ -151,9 +151,9 @@ static float get_float_number (char *s)
|
|||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
static double get_double_number (char *s)
|
static double get_double_number (char *s)
|
||||||
{
|
{
|
||||||
uint8 i;
|
uint8 i = 0;
|
||||||
char buf[15];
|
char buf[15];
|
||||||
double return_value;
|
double return_value = 0;
|
||||||
|
|
||||||
i = get_parameter_index(1, s);
|
i = get_parameter_index(1, s);
|
||||||
i = i - 1;
|
i = i - 1;
|
||||||
@@ -172,10 +172,10 @@ static double get_double_number (char *s)
|
|||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
static void utc_to_btc (gps_time_struct *time)
|
static void utc_to_btc (gps_time_struct *time)
|
||||||
{
|
{
|
||||||
uint8 day_num;
|
uint8 day_num = 0;
|
||||||
|
|
||||||
time->hour = time->hour + 8;
|
time->hour = time->hour + 8;
|
||||||
if(time->hour > 23)
|
if(23 < time->hour)
|
||||||
{
|
{
|
||||||
time->hour -= 24;
|
time->hour -= 24;
|
||||||
time->day += 1;
|
time->day += 1;
|
||||||
@@ -183,7 +183,7 @@ static void utc_to_btc (gps_time_struct *time)
|
|||||||
if(2 == time->month)
|
if(2 == time->month)
|
||||||
{
|
{
|
||||||
day_num = 28;
|
day_num = 28;
|
||||||
if((time->year % 4 == 0 && time->year % 100 != 0) || time->year % 400 == 0) // <20>ж<EFBFBD><D0B6>Ƿ<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>
|
if((0 == time->year % 4 && 0 != time->year % 100) || 0 == time->year % 400) // <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>
|
||||||
}
|
}
|
||||||
@@ -201,7 +201,7 @@ static void utc_to_btc (gps_time_struct *time)
|
|||||||
{
|
{
|
||||||
time->day = 1;
|
time->day = 1;
|
||||||
time->month ++;
|
time->month ++;
|
||||||
if(time->month > 12)
|
if(12 < time->month)
|
||||||
{
|
{
|
||||||
time->month -= 12;
|
time->month -= 12;
|
||||||
time->year ++;
|
time->year ++;
|
||||||
@@ -220,21 +220,21 @@ static void utc_to_btc (gps_time_struct *time)
|
|||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
static uint8 gps_gnrmc_parse (char *line, gps_info_struct *gps)
|
static uint8 gps_gnrmc_parse (char *line, gps_info_struct *gps)
|
||||||
{
|
{
|
||||||
uint8 state, temp;
|
uint8 state = 0, temp = 0;
|
||||||
|
|
||||||
double latitude; // γ<><CEB3>
|
double latitude = 0; // γ<><CEB3>
|
||||||
double longitude; // <20><><EFBFBD><EFBFBD>
|
double longitude = 0; // <20><><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
float lati_cent_tmp, lati_second_tmp;
|
double lati_cent_tmp = 0, lati_second_tmp = 0;
|
||||||
float long_cent_tmp, long_second_tmp;
|
double long_cent_tmp = 0, long_second_tmp = 0;
|
||||||
float speed_tmp;
|
float speed_tmp = 0;
|
||||||
char *buf = line;
|
char *buf = line;
|
||||||
uint8 return_state = 0;
|
uint8 return_state = 0;
|
||||||
|
|
||||||
state = buf[get_parameter_index(2, buf)];
|
state = buf[get_parameter_index(2, buf)];
|
||||||
|
|
||||||
gps->state = 0;
|
gps->state = 0;
|
||||||
if (state == 'A') // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
if('A' == state) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
{
|
{
|
||||||
return_state = 1;
|
return_state = 1;
|
||||||
gps->state = 1;
|
gps->state = 1;
|
||||||
@@ -247,17 +247,17 @@ static uint8 gps_gnrmc_parse (char *line, gps_info_struct *gps)
|
|||||||
gps->latitude_degree = (int)latitude / 100; // γ<><CEB3>ת<EFBFBD><D7AA>Ϊ<EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD>
|
gps->latitude_degree = (int)latitude / 100; // γ<><CEB3>ת<EFBFBD><D7AA>Ϊ<EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD>
|
||||||
lati_cent_tmp = (latitude - gps->latitude_degree * 100);
|
lati_cent_tmp = (latitude - gps->latitude_degree * 100);
|
||||||
gps->latitude_cent = (int)lati_cent_tmp;
|
gps->latitude_cent = (int)lati_cent_tmp;
|
||||||
lati_second_tmp = (lati_cent_tmp - gps->latitude_cent) * 10000;
|
lati_second_tmp = (lati_cent_tmp - gps->latitude_cent) * 6000;
|
||||||
gps->latitude_second = (int)lati_second_tmp;
|
gps->latitude_second = (int)lati_second_tmp;
|
||||||
|
|
||||||
gps->longitude_degree = (int)longitude / 100; // <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD>
|
gps->longitude_degree = (int)longitude / 100; // <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD>
|
||||||
long_cent_tmp = (longitude - gps->longitude_degree * 100);
|
long_cent_tmp = (longitude - gps->longitude_degree * 100);
|
||||||
gps->longitude_cent = (int)long_cent_tmp;
|
gps->longitude_cent = (int)long_cent_tmp;
|
||||||
long_second_tmp = (long_cent_tmp - gps->longitude_cent) * 10000;
|
long_second_tmp = (long_cent_tmp - gps->longitude_cent) * 6000;
|
||||||
gps->longitude_second = (int)long_second_tmp;
|
gps->longitude_second = (int)long_second_tmp;
|
||||||
|
|
||||||
gps->latitude = gps->latitude_degree + (double)gps->latitude_cent / 60 + (double)gps->latitude_second / 600000;
|
gps->latitude = gps->latitude_degree + lati_cent_tmp / 60;
|
||||||
gps->longitude = gps->longitude_degree + (double)gps->longitude_cent / 60 + (double)gps->longitude_second / 600000;
|
gps->longitude = gps->longitude_degree + long_cent_tmp / 60;
|
||||||
|
|
||||||
speed_tmp = get_float_number(&buf[get_parameter_index(7, buf)]); // <20>ٶ<EFBFBD>(<28><><EFBFBD><EFBFBD>/Сʱ)
|
speed_tmp = get_float_number(&buf[get_parameter_index(7, buf)]); // <20>ٶ<EFBFBD>(<28><><EFBFBD><EFBFBD>/Сʱ)
|
||||||
gps->speed = speed_tmp * 1.85f; // ת<><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>/Сʱ
|
gps->speed = speed_tmp * 1.85f; // ת<><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>/Сʱ
|
||||||
@@ -288,13 +288,13 @@ static uint8 gps_gnrmc_parse (char *line, gps_info_struct *gps)
|
|||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
static uint8 gps_gngga_parse (char *line, gps_info_struct *gps)
|
static uint8 gps_gngga_parse (char *line, gps_info_struct *gps)
|
||||||
{
|
{
|
||||||
uint8 state;
|
uint8 state = 0;
|
||||||
char *buf = line;
|
char *buf = line;
|
||||||
uint8 return_state = 0;
|
uint8 return_state = 0;
|
||||||
|
|
||||||
state = buf[get_parameter_index(2, buf)];
|
state = buf[get_parameter_index(2, buf)];
|
||||||
|
|
||||||
if (state != ',')
|
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>
|
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>
|
||||||
@@ -317,13 +317,13 @@ static uint8 gps_gngga_parse (char *line, gps_info_struct *gps)
|
|||||||
double get_two_points_distance (double latitude1, double longitude1, double latitude2, double longitude2)
|
double get_two_points_distance (double latitude1, double longitude1, double latitude2, double longitude2)
|
||||||
{
|
{
|
||||||
const double EARTH_RADIUS = 6378137; // <20><><EFBFBD><EFBFBD><EFBFBD>뾶(<28><>λ<EFBFBD><CEBB>m)
|
const double EARTH_RADIUS = 6378137; // <20><><EFBFBD><EFBFBD><EFBFBD>뾶(<28><>λ<EFBFBD><CEBB>m)
|
||||||
double rad_latitude1;
|
double rad_latitude1 = 0;
|
||||||
double rad_latitude2;
|
double rad_latitude2 = 0;
|
||||||
double rad_longitude1;
|
double rad_longitude1 = 0;
|
||||||
double rad_longitude2;
|
double rad_longitude2 = 0;
|
||||||
double distance;
|
double distance = 0;
|
||||||
double a;
|
double a = 0;
|
||||||
double b;
|
double b = 0;
|
||||||
|
|
||||||
rad_latitude1 = ANGLE_TO_RAD(latitude1); // <20><><EFBFBD>ݽǶȼ<C7B6><C8BC>㻡<EFBFBD><E3BBA1>
|
rad_latitude1 = ANGLE_TO_RAD(latitude1); // <20><><EFBFBD>ݽǶȼ<C7B6><C8BC>㻡<EFBFBD><E3BBA1>
|
||||||
rad_latitude2 = ANGLE_TO_RAD(latitude2);
|
rad_latitude2 = ANGLE_TO_RAD(latitude2);
|
||||||
@@ -359,7 +359,7 @@ double get_two_points_azimuth (double latitude1, double longitude1, double latit
|
|||||||
double x = sin(longitude2 - longitude1) * cos(latitude2);
|
double x = sin(longitude2 - longitude1) * cos(latitude2);
|
||||||
double y = cos(latitude1) * sin(latitude2) - sin(latitude1) * cos(latitude2) * cos(longitude2 - longitude1);
|
double y = cos(latitude1) * sin(latitude2) - sin(latitude1) * cos(latitude2) * cos(longitude2 - longitude1);
|
||||||
double angle = RAD_TO_ANGLE(atan2(x, y));
|
double angle = RAD_TO_ANGLE(atan2(x, y));
|
||||||
return ((angle > 0) ? angle : (angle + 360));
|
return ((0 < angle) ? angle : (angle + 360));
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
@@ -375,16 +375,16 @@ uint8 gps_data_parse (void)
|
|||||||
uint8 check_buffer[5] = {'0', 'x', 0x00, 0x00, 0x00};
|
uint8 check_buffer[5] = {'0', 'x', 0x00, 0x00, 0x00};
|
||||||
uint8 bbc_xor_origin = 0;
|
uint8 bbc_xor_origin = 0;
|
||||||
uint8 bbc_xor_calculation = 0;
|
uint8 bbc_xor_calculation = 0;
|
||||||
uint32 data_len;
|
uint32 data_len = 0;
|
||||||
|
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
if(GPS_STATE_RECEIVED == gps_rmc_state)
|
if(GPS_STATE_RECEIVED == gps_rmc_state)
|
||||||
{
|
{
|
||||||
gps_rmc_state = GPS_STATE_PARSING;
|
gps_rmc_state = GPS_STATE_PARSING;
|
||||||
strncpy((char *)&check_buffer[2], strchr((const char *)gps_rmc_buffer, '*')+1, 2);
|
strncpy((char *)&check_buffer[2], strchr((const char *)gps_rmc_buffer, '*') + 1, 2);
|
||||||
bbc_xor_origin = (uint8)func_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 ++)
|
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];
|
bbc_xor_calculation ^= gps_rmc_buffer[data_len];
|
||||||
}
|
}
|
||||||
@@ -402,10 +402,10 @@ uint8 gps_data_parse (void)
|
|||||||
if(GPS_STATE_RECEIVED == gps_gga_state)
|
if(GPS_STATE_RECEIVED == gps_gga_state)
|
||||||
{
|
{
|
||||||
gps_gga_state = GPS_STATE_PARSING;
|
gps_gga_state = GPS_STATE_PARSING;
|
||||||
strncpy((char *)&check_buffer[2], strchr((const char *)gps_gga_buffer, '*')+1, 2);
|
strncpy((char *)&check_buffer[2], strchr((const char *)gps_gga_buffer, '*') + 1, 2);
|
||||||
bbc_xor_origin = (uint8)func_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 ++)
|
for(bbc_xor_calculation = gps_gga_buffer[1], data_len = 2; '*' != gps_gga_buffer[data_len]; data_len ++)
|
||||||
{
|
{
|
||||||
bbc_xor_calculation ^= gps_gga_buffer[data_len];
|
bbc_xor_calculation ^= gps_gga_buffer[data_len];
|
||||||
}
|
}
|
||||||
@@ -435,7 +435,7 @@ uint8 gps_data_parse (void)
|
|||||||
void gps_uart_callback (void)
|
void gps_uart_callback (void)
|
||||||
{
|
{
|
||||||
uint8 temp_gps[6];
|
uint8 temp_gps[6];
|
||||||
uint32 temp_length;
|
uint32 temp_length = 0;
|
||||||
|
|
||||||
if(gps_tau1201_state)
|
if(gps_tau1201_state)
|
||||||
{
|
{
|
||||||
@@ -507,8 +507,7 @@ uint8 gps_init (void)
|
|||||||
fifo_init(&gps_tau1201_receiver_fifo, FIFO_DATA_8BIT, gps_tau1201_receiver_buffer, GPS_TAU1201_BUFFER_SIZE);
|
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>
|
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);
|
uart_init(GPS_TAU1201_UART, 115200, GPS_TAU1201_RX, GPS_TAU1201_TX);
|
||||||
|
uart_rx_interrupt(GPS_TAU1201_UART, 0);
|
||||||
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
|
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);
|
system_delay_ms(200);
|
||||||
|
|||||||
@@ -49,9 +49,9 @@
|
|||||||
#include "zf_common_typedef.h"
|
#include "zf_common_typedef.h"
|
||||||
|
|
||||||
//===============================================GPS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
//===============================================GPS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||||
#define GPS_TAU1201_UART (UART_2)
|
#define GPS_TAU1201_UART (UART_3)
|
||||||
#define GPS_TAU1201_RX (UART2_TX_P10_5) // GPS RX<52><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD>
|
#define GPS_TAU1201_RX (UART3_TX_P15_6) // GPS RX<52><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD>
|
||||||
#define GPS_TAU1201_TX (UART2_RX_P10_6) // GPS TX<54><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
#define GPS_TAU1201_TX (UART3_RX_P15_7) // GPS TX<54><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
//===============================================GPS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
//===============================================GPS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||||
|
|
||||||
#define ANGLE_TO_RAD(x) ((x) * PI / 180.0) // <20>Ƕ<EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>
|
#define ANGLE_TO_RAD(x) ((x) * PI / 180.0) // <20>Ƕ<EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>
|
||||||
|
|||||||
@@ -137,8 +137,8 @@
|
|||||||
//================================================<3D><><EFBFBD><EFBFBD> IMU963RA <20>ڲ<EFBFBD><DAB2><EFBFBD>ַ================================================
|
//================================================<3D><><EFBFBD><EFBFBD> IMU963RA <20>ڲ<EFBFBD><DAB2><EFBFBD>ַ================================================
|
||||||
|
|
||||||
//===============================================<3D><><EFBFBD><EFBFBD> IMU963RA <20><><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD>===============================================
|
//===============================================<3D><><EFBFBD><EFBFBD> IMU963RA <20><><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD>===============================================
|
||||||
extern int16 imu963ra_acc_x, imu963ra_acc_y, imu963ra_acc_z; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
extern int16 imu963ra_gyro_x, imu963ra_gyro_y, imu963ra_gyro_z; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
extern int16 imu963ra_gyro_x, imu963ra_gyro_y, imu963ra_gyro_z; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
extern int16 imu963ra_acc_x, imu963ra_acc_y, imu963ra_acc_z; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
||||||
extern int16 imu963ra_mag_x, imu963ra_mag_y, imu963ra_mag_z; // <20><><EFBFBD><EFBFBD><EFBFBD>شż<D8B4><C5BC><EFBFBD><EFBFBD><EFBFBD>
|
extern int16 imu963ra_mag_x, imu963ra_mag_y, imu963ra_mag_z; // <20><><EFBFBD><EFBFBD><EFBFBD>شż<D8B4><C5BC><EFBFBD><EFBFBD><EFBFBD>
|
||||||
//===============================================<3D><><EFBFBD><EFBFBD> IMU963RA <20><><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD>===============================================
|
//===============================================<3D><><EFBFBD><EFBFBD> IMU963RA <20><><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD>===============================================
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*********************************************************************************************************************
|
/*********************************************************************************************************************
|
||||||
* MM32F327X-G9P Opensourec Library <20><><EFBFBD><EFBFBD>MM32F327X-G9P <20><>Դ<EFBFBD>⣩<EFBFBD><E2A3A9>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ڹٷ<DAB9> SDK <20>ӿڵĵ<DAB5><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4>
|
* TC264 Opensourec Library <20><><EFBFBD><EFBFBD>TC264 <20><>Դ<EFBFBD>⣩<EFBFBD><E2A3A9>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ڹٷ<DAB9> SDK <20>ӿڵĵ<DAB5><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4>
|
||||||
* Copyright (c) 2022 SEEKFREE <20><><EFBFBD>ɿƼ<C9BF>
|
* Copyright (c) 2022 SEEKFREE <20><><EFBFBD>ɿƼ<C9BF>
|
||||||
*
|
*
|
||||||
* <20><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD> MM32F327X-G9P <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
|
* <20><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD> TC264 <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
|
||||||
*
|
*
|
||||||
* MM32F327X-G9P <20><>Դ<EFBFBD><D4B4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
* TC264 <20><>Դ<EFBFBD><D4B4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
* <20><><EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD><D4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᷢ<EFBFBD><E1B7A2><EFBFBD><EFBFBD> GPL<50><4C>GNU General Public License<73><65><EFBFBD><EFBFBD> GNUͨ<55>ù<EFBFBD><C3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
* <20><><EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD><D4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᷢ<EFBFBD><E1B7A2><EFBFBD><EFBFBD> GPL<50><4C>GNU General Public License<73><65><EFBFBD><EFBFBD> GNUͨ<55>ù<EFBFBD><C3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
* <20><> GPL <20>ĵ<EFBFBD>3<EFBFBD>棨<EFBFBD><E6A3A8> GPL3.0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD>κκ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>İ汾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><DEB8><EFBFBD>
|
* <20><> GPL <20>ĵ<EFBFBD>3<EFBFBD>棨<EFBFBD><E6A3A8> GPL3.0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD>κκ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>İ汾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><DEB8><EFBFBD>
|
||||||
*
|
*
|
||||||
@@ -24,13 +24,13 @@
|
|||||||
* <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> zf_device_key
|
* <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> zf_device_key
|
||||||
* <20><>˾<EFBFBD><CBBE><EFBFBD><EFBFBD> <20>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD><EFBFBD>˾
|
* <20><>˾<EFBFBD><CBBE><EFBFBD><EFBFBD> <20>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD><EFBFBD>˾
|
||||||
* <20>汾<EFBFBD><E6B1BE>Ϣ <20>鿴 libraries/doc <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> version <20>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
|
* <20>汾<EFBFBD><E6B1BE>Ϣ <20>鿴 libraries/doc <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> version <20>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
|
||||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IAR 8.32.4 or MDK 5.37
|
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ADS v1.8.0
|
||||||
* <20><><EFBFBD><EFBFBD>ƽ̨ MM32F327X_G9P
|
* <20><><EFBFBD><EFBFBD>ƽ̨ TC264D
|
||||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> https://seekfree.taobao.com/
|
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> https://seekfree.taobao.com/
|
||||||
*
|
*
|
||||||
* <20>ļ<DEB8>¼
|
* <20>ļ<DEB8>¼
|
||||||
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
|
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
|
||||||
* 2022-08-10 Teternal first version
|
* 2022-09-15 pudding first version
|
||||||
********************************************************************************************************************/
|
********************************************************************************************************************/
|
||||||
/*********************************************************************************************************************
|
/*********************************************************************************************************************
|
||||||
* <20><><EFBFBD>߶<EFBFBD><DFB6>壺
|
* <20><><EFBFBD>߶<EFBFBD><DFB6>壺
|
||||||
@@ -45,6 +45,7 @@
|
|||||||
********************************************************************************************************************/
|
********************************************************************************************************************/
|
||||||
|
|
||||||
#include "zf_common_debug.h"
|
#include "zf_common_debug.h"
|
||||||
|
|
||||||
#include "zf_device_key.h"
|
#include "zf_device_key.h"
|
||||||
|
|
||||||
static uint32 scanner_period = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
static uint32 scanner_period = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
@@ -65,54 +66,21 @@ void key_scanner (void)
|
|||||||
uint8 i = 0;
|
uint8 i = 0;
|
||||||
for(i = 0; i < KEY_NUMBER; i ++)
|
for(i = 0; i < KEY_NUMBER; i ++)
|
||||||
{
|
{
|
||||||
switch(key_state[i])
|
if(KEY_RELEASE_LEVEL != gpio_get_level(key_index[i])) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
{
|
{
|
||||||
case KEY_RELEASE:
|
key_press_time[i] ++;
|
||||||
if(KEY_RELEASE_LEVEL != gpio_get_level(key_index[i]))
|
if(key_press_time[i] >= KEY_LONG_PRESS_PERIOD / scanner_period)
|
||||||
{
|
{
|
||||||
if(++ key_press_time[i] >= KEY_MAX_SHOCK_PERIOD / scanner_period)
|
key_state[i] = KEY_LONG_PRESS;
|
||||||
{
|
}
|
||||||
key_state[i] = KEY_SHORT_PRESS;
|
}
|
||||||
}
|
else // <20><><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>
|
||||||
else
|
{
|
||||||
{
|
if(key_state[i] != KEY_LONG_PRESS && key_press_time[i] >= KEY_MAX_SHOCK_PERIOD / scanner_period)
|
||||||
key_state[i] = KEY_CHECK_SHOCK;
|
{
|
||||||
}
|
key_state[i] = KEY_SHORT_PRESS;
|
||||||
}
|
}
|
||||||
break;
|
key_press_time[i] = 0;
|
||||||
case KEY_CHECK_SHOCK:
|
|
||||||
if(KEY_RELEASE_LEVEL != gpio_get_level(key_index[i]))
|
|
||||||
{
|
|
||||||
if(++ key_press_time[i] >= KEY_MAX_SHOCK_PERIOD / scanner_period)
|
|
||||||
{
|
|
||||||
key_state[i] = KEY_SHORT_PRESS;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
key_state[i] = KEY_RELEASE;
|
|
||||||
key_press_time[i] = 0;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case KEY_SHORT_PRESS:
|
|
||||||
if(++ key_press_time[i] >= KEY_LONG_PRESS_PERIOD / scanner_period)
|
|
||||||
{
|
|
||||||
key_state[i] = KEY_LONG_PRESS;
|
|
||||||
}
|
|
||||||
if(KEY_RELEASE_LEVEL == gpio_get_level(key_index[i]))
|
|
||||||
{
|
|
||||||
key_state[i] = KEY_RELEASE;
|
|
||||||
key_press_time[i] = 0;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case KEY_LONG_PRESS:
|
|
||||||
if(KEY_RELEASE_LEVEL == gpio_get_level(key_index[i]))
|
|
||||||
{
|
|
||||||
key_state[i] = KEY_RELEASE;
|
|
||||||
key_press_time[i] = 0;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -129,6 +97,33 @@ key_state_enum key_get_state (key_index_enum key_n)
|
|||||||
return key_state[key_n];
|
return key_state[key_n];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>״̬
|
||||||
|
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> key_n <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void <20><>
|
||||||
|
// ʹ<><CAB9>ʾ<EFBFBD><CABE> key_clear_state(KEY_1);
|
||||||
|
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
void key_clear_state (key_index_enum key_n)
|
||||||
|
{
|
||||||
|
key_state[key_n] = KEY_RELEASE;
|
||||||
|
}
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>а<EFBFBD><D0B0><EFBFBD>״̬
|
||||||
|
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> void <20><>
|
||||||
|
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void <20><>
|
||||||
|
// ʹ<><CAB9>ʾ<EFBFBD><CABE> key_clear_all_state();
|
||||||
|
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
void key_clear_all_state (void)
|
||||||
|
{
|
||||||
|
key_state[0] = KEY_RELEASE;
|
||||||
|
key_state[1] = KEY_RELEASE;
|
||||||
|
key_state[2] = KEY_RELEASE;
|
||||||
|
key_state[3] = KEY_RELEASE;
|
||||||
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
||||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> period <20><><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ժ<EFBFBD><D4BA><EFBFBD>Ϊ<EFBFBD><CEAA>λ
|
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> period <20><><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ժ<EFBFBD><D4BA><EFBFBD>Ϊ<EFBFBD><CEAA>λ
|
||||||
@@ -136,17 +131,14 @@ key_state_enum key_get_state (key_index_enum key_n)
|
|||||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> key_init(10);
|
// ʹ<><CAB9>ʾ<EFBFBD><CABE> key_init(10);
|
||||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
uint8 key_init (uint32 period)
|
void key_init (uint32 period)
|
||||||
{
|
{
|
||||||
|
zf_assert(0 < period);
|
||||||
uint8 loop_temp = 0;
|
uint8 loop_temp = 0;
|
||||||
|
|
||||||
zf_assert(0 < period); // ɨ<><C9A8><EFBFBD><EFBFBD><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0
|
|
||||||
|
|
||||||
for(loop_temp = 0; loop_temp < KEY_NUMBER; loop_temp ++)
|
for(loop_temp = 0; loop_temp < KEY_NUMBER; loop_temp ++)
|
||||||
{
|
{
|
||||||
gpio_init(key_index[loop_temp], GPI, GPIO_HIGH, GPI_PULL_UP);
|
gpio_init(key_index[loop_temp], GPI, GPIO_HIGH, GPI_PULL_UP);
|
||||||
key_state[loop_temp] = KEY_RELEASE;
|
key_state[loop_temp] = KEY_RELEASE;
|
||||||
}
|
}
|
||||||
scanner_period = period;
|
scanner_period = period;
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*********************************************************************************************************************
|
/*********************************************************************************************************************
|
||||||
* MM32F327X-G9P Opensourec Library <20><><EFBFBD><EFBFBD>MM32F327X-G9P <20><>Դ<EFBFBD>⣩<EFBFBD><E2A3A9>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ڹٷ<DAB9> SDK <20>ӿڵĵ<DAB5><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4>
|
* TC264 Opensourec Library <20><><EFBFBD><EFBFBD>TC264 <20><>Դ<EFBFBD>⣩<EFBFBD><E2A3A9>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ڹٷ<DAB9> SDK <20>ӿڵĵ<DAB5><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4>
|
||||||
* Copyright (c) 2022 SEEKFREE <20><><EFBFBD>ɿƼ<C9BF>
|
* Copyright (c) 2022 SEEKFREE <20><><EFBFBD>ɿƼ<C9BF>
|
||||||
*
|
*
|
||||||
* <20><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD> MM32F327X-G9P <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
|
* <20><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD> TC264 <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
|
||||||
*
|
*
|
||||||
* MM32F327X-G9P <20><>Դ<EFBFBD><D4B4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
* TC264 <20><>Դ<EFBFBD><D4B4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
* <20><><EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD><D4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᷢ<EFBFBD><E1B7A2><EFBFBD><EFBFBD> GPL<50><4C>GNU General Public License<73><65><EFBFBD><EFBFBD> GNUͨ<55>ù<EFBFBD><C3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
* <20><><EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD><D4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᷢ<EFBFBD><E1B7A2><EFBFBD><EFBFBD> GPL<50><4C>GNU General Public License<73><65><EFBFBD><EFBFBD> GNUͨ<55>ù<EFBFBD><C3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
* <20><> GPL <20>ĵ<EFBFBD>3<EFBFBD>棨<EFBFBD><E6A3A8> GPL3.0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD>κκ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>İ汾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><DEB8><EFBFBD>
|
* <20><> GPL <20>ĵ<EFBFBD>3<EFBFBD>棨<EFBFBD><E6A3A8> GPL3.0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD>κκ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>İ汾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><DEB8><EFBFBD>
|
||||||
*
|
*
|
||||||
@@ -24,13 +24,13 @@
|
|||||||
* <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> zf_device_key
|
* <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> zf_device_key
|
||||||
* <20><>˾<EFBFBD><CBBE><EFBFBD><EFBFBD> <20>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD><EFBFBD>˾
|
* <20><>˾<EFBFBD><CBBE><EFBFBD><EFBFBD> <20>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD><EFBFBD>˾
|
||||||
* <20>汾<EFBFBD><E6B1BE>Ϣ <20>鿴 libraries/doc <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> version <20>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
|
* <20>汾<EFBFBD><E6B1BE>Ϣ <20>鿴 libraries/doc <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> version <20>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
|
||||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IAR 8.32.4 or MDK 5.37
|
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ADS v1.8.0
|
||||||
* <20><><EFBFBD><EFBFBD>ƽ̨ MM32F327X_G9P
|
* <20><><EFBFBD><EFBFBD>ƽ̨ TC264D
|
||||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> https://seekfree.taobao.com/
|
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> https://seekfree.taobao.com/
|
||||||
*
|
*
|
||||||
* <20>ļ<DEB8>¼
|
* <20>ļ<DEB8>¼
|
||||||
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
|
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
|
||||||
* 2022-08-10 Teternal first version
|
* 2022-09-15 pudding first version
|
||||||
********************************************************************************************************************/
|
********************************************************************************************************************/
|
||||||
/*********************************************************************************************************************
|
/*********************************************************************************************************************
|
||||||
* <20><><EFBFBD>߶<EFBFBD><DFB6>壺
|
* <20><><EFBFBD>߶<EFBFBD><DFB6>壺
|
||||||
@@ -53,13 +53,12 @@
|
|||||||
// <20><><EFBFBD>尴<EFBFBD><E5B0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ĭ<>϶<EFBFBD><CFB6><EFBFBD><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD>
|
// <20><><EFBFBD>尴<EFBFBD><E5B0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ĭ<>϶<EFBFBD><CFB6><EFBFBD><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD>
|
||||||
// <20><><EFBFBD>尴<EFBFBD><E5B0B4>˳<EFBFBD><CBB3><EFBFBD><EFBFBD>Ӧ<EFBFBD>·<EFBFBD> key_index_enum ö<><C3B6><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><CBB3>
|
// <20><><EFBFBD>尴<EFBFBD><E5B0B4>˳<EFBFBD><CBB3><EFBFBD><EFBFBD>Ӧ<EFBFBD>·<EFBFBD> key_index_enum ö<><C3B6><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><CBB3>
|
||||||
// <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ô<EFBFBD><C3B4>Ҫͬ<D2AA><CDAC><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD> key_index_enum ö<><C3B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
// <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ô<EFBFBD><C3B4>Ҫͬ<D2AA><CDAC><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD> key_index_enum ö<><C3B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
#define KEY_LIST {P22_0, P22_1, P22_2, P22_3}
|
#define KEY_LIST {P20_6, P20_7, P11_2, P11_3}
|
||||||
|
|
||||||
#define KEY_RELEASE_LEVEL (GPIO_HIGH) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>״̬ Ҳ<><D2B2><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ͷ<EFBFBD>״̬<D7B4>ĵ<EFBFBD>ƽ
|
#define KEY_RELEASE_LEVEL (GPIO_HIGH) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>״̬ Ҳ<><D2B2><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ͷ<EFBFBD>״̬<D7B4>ĵ<EFBFBD>ƽ
|
||||||
#define KEY_MAX_SHOCK_PERIOD (10 ) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>źŻᱻ<C5BB><E1B1BB>Ϊ<EFBFBD><CEAA><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD><EFBFBD>
|
#define KEY_MAX_SHOCK_PERIOD (10 ) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>źŻᱻ<C5BB><E1B1BB>Ϊ<EFBFBD><CEAA><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD><EFBFBD>
|
||||||
#define KEY_LONG_PRESS_PERIOD (1000 ) // <20><>С<EFBFBD><D0A1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>
|
#define KEY_LONG_PRESS_PERIOD (1000 ) // <20><>С<EFBFBD><D0A1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>źŻᱻ<C5BB><E1B1BB>Ϊ<EFBFBD>dz<EFBFBD><C7B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
//=================================================<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ṹ<EFBFBD><E1B9B9>===============================================
|
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
KEY_1,
|
KEY_1,
|
||||||
@@ -72,15 +71,14 @@ typedef enum
|
|||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
KEY_RELEASE, // <20><><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>״̬
|
KEY_RELEASE, // <20><><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>״̬
|
||||||
KEY_CHECK_SHOCK, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
|
||||||
KEY_SHORT_PRESS, // <20><><EFBFBD><EFBFBD><EFBFBD>̰<EFBFBD>״̬
|
KEY_SHORT_PRESS, // <20><><EFBFBD><EFBFBD><EFBFBD>̰<EFBFBD>״̬
|
||||||
KEY_LONG_PRESS, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
KEY_LONG_PRESS, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
||||||
}key_state_enum;
|
}key_state_enum;
|
||||||
//=================================================<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ṹ<EFBFBD><E1B9B9>===============================================
|
|
||||||
|
|
||||||
//====================================================<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>=================================================
|
void key_scanner (void);
|
||||||
void key_scanner (void); // <20><><EFBFBD><EFBFBD>״̬ɨ<CCAC><C9A8>
|
key_state_enum key_get_state (key_index_enum key_n);
|
||||||
key_state_enum key_get_state (key_index_enum key_n); // <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>״̬
|
void key_clear_state (key_index_enum key_n);
|
||||||
uint8 key_init (uint32 period); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
void key_clear_all_state (void);
|
||||||
//====================================================<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>=================================================
|
void key_init (uint32 period);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -60,7 +60,7 @@
|
|||||||
|
|
||||||
// TSL1401 <20><><EFBFBD><EFBFBD><EFBFBD>ڲɼ<DAB2><C9BC><EFBFBD><EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD> ʹ<>õ<EFBFBD><C3B5>ĸ<EFBFBD> PIT <20><>Ҫ<EFBFBD><D2AA> <20><><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD> PIT <20><><EFBFBD>жϷ<D0B6><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
// TSL1401 <20><><EFBFBD><EFBFBD><EFBFBD>ڲɼ<DAB2><C9BC><EFBFBD><EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD> ʹ<>õ<EFBFBD><C3B5>ĸ<EFBFBD> PIT <20><>Ҫ<EFBFBD><D2AA> <20><><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD> PIT <20><><EFBFBD>жϷ<D0B6><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
#define TSL1401_EXPOSURE_TIME (10 ) // <20><><EFBFBD><EFBFBD> TSL1401 <20>ع<EFBFBD>ʱ<EFBFBD><CAB1> <20><>λ MS
|
#define TSL1401_EXPOSURE_TIME (10 ) // <20><><EFBFBD><EFBFBD> TSL1401 <20>ع<EFBFBD>ʱ<EFBFBD><CAB1> <20><>λ MS
|
||||||
#define TSL1401_PIT_INDEX (CCU60_CH0) // ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
#define TSL1401_PIT_INDEX (CCU61_CH1) // ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||||
#define TSL1401_AD_RESOLUTION (ADC_8BIT) // ADC <20><><EFBFBD><EFBFBD> 8bit
|
#define TSL1401_AD_RESOLUTION (ADC_8BIT) // ADC <20><><EFBFBD><EFBFBD> 8bit
|
||||||
#define TSL1401_DATA_LEN (128 ) // TSL1401 <20><><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
|
#define TSL1401_DATA_LEN (128 ) // TSL1401 <20><><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
|
||||||
//=================================================TSL1401 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
//=================================================TSL1401 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||||
|
|||||||
@@ -53,9 +53,7 @@ typedef enum
|
|||||||
NO_WIRELESS = 0, // <20><><EFBFBD>豸
|
NO_WIRELESS = 0, // <20><><EFBFBD>豸
|
||||||
WIRELESS_UART, // <20><><EFBFBD>ߴ<EFBFBD><DFB4><EFBFBD>
|
WIRELESS_UART, // <20><><EFBFBD>ߴ<EFBFBD><DFB4><EFBFBD>
|
||||||
BLUETOOTH_CH9141, // <20><><EFBFBD><EFBFBD> CH9141
|
BLUETOOTH_CH9141, // <20><><EFBFBD><EFBFBD> CH9141
|
||||||
GPS_TAU1201,
|
WIFI_UART, // <20><><EFBFBD><EFBFBD> WiFi
|
||||||
WIFI_UART,
|
|
||||||
WIFI_SPI,
|
|
||||||
}wireless_type_enum;
|
}wireless_type_enum;
|
||||||
//==============================================<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ö<><C3B6><EFBFBD><EFBFBD>==================================================
|
//==============================================<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ö<><C3B6><EFBFBD><EFBFBD>==================================================
|
||||||
|
|
||||||
|
|||||||
@@ -40,7 +40,7 @@
|
|||||||
|
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> systick<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> system<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> time <20><>ʱһ<CAB1>ֵ<EFBFBD>ʱ<EFBFBD>䣨<EFBFBD><E4A3A8>λΪ<CEBB><CEAA><EFBFBD>룬<EFBFBD><EBA3AC><EFBFBD><EFBFBD><EFBFBD>÷<EFBFBD>Χ0-20000000<30><30>
|
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> time <20><>ʱһ<CAB1>ֵ<EFBFBD>ʱ<EFBFBD>䣨<EFBFBD><E4A3A8>λΪ<CEBB><CEAA><EFBFBD>룬<EFBFBD><EBA3AC><EFBFBD><EFBFBD><EFBFBD>÷<EFBFBD>Χ0-20000000<30><30>
|
||||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> num <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> num <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||||
@@ -60,3 +60,25 @@ void system_delay (uint32 time, uint32 num)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> system <><CEA2> <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
||||||
|
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> time <20><>ʱʱ<CAB1><CAB1> <20><>λ<EFBFBD><CEBB>us
|
||||||
|
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||||
|
// ʹ<><CAB9>ʾ<EFBFBD><CABE> system_delay_us(100); // <20><>ʱ100<30><CEA2>
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
void system_delay_us (uint32 time)
|
||||||
|
{
|
||||||
|
system_delay(time*1000, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> system <20><><EFBFBD><EFBFBD> <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
||||||
|
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> time <20><>ʱʱ<CAB1><CAB1> <20><>λ<EFBFBD><CEBB>ms
|
||||||
|
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||||
|
// ʹ<><CAB9>ʾ<EFBFBD><CABE> system_delay_ms(100); // <20><>ʱ100<30><30><EFBFBD><EFBFBD>
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
void system_delay_ms (uint32 time)
|
||||||
|
{
|
||||||
|
system_delay(1000000, time);
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -38,13 +38,10 @@
|
|||||||
|
|
||||||
#include "zf_common_typedef.h"
|
#include "zf_common_typedef.h"
|
||||||
|
|
||||||
|
|
||||||
void system_delay (uint32 time, uint32 num);
|
|
||||||
|
|
||||||
//====================================================<3D><>ʱ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
//====================================================<3D><>ʱ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||||
#define system_delay_ms(time) system_delay((1000000), (time)) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<CAB1><CAB1> <20><>λms
|
void system_delay (uint32 time, uint32 num);
|
||||||
#define system_delay_us(time) system_delay((time*1000), (1)) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<CAB1><CAB1> <20><>λus
|
void system_delay_us (uint32 time);
|
||||||
#define system_delay_ns(time) system_delay((time), (1)) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<CAB1><CAB1> <20><>λns
|
void system_delay_ms (uint32 time);
|
||||||
//====================================================<3D><>ʱ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
//====================================================<3D><>ʱ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -41,7 +41,6 @@ IFX_INTERRUPT(cc60_pit_ch0_isr, 0, CCU6_0_CH0_ISR_PRIORITY)
|
|||||||
{
|
{
|
||||||
interrupt_global_enable(0); // <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
|
interrupt_global_enable(0); // <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
|
||||||
pit_clear_flag(CCU60_CH0);
|
pit_clear_flag(CCU60_CH0);
|
||||||
tsl1401_collect_pit_handler(); // <20><><EFBFBD><EFBFBD>CCD<43>ɼ<EFBFBD>
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -75,7 +74,6 @@ IFX_INTERRUPT(cc61_pit_ch1_isr, 0, CCU6_1_CH1_ISR_PRIORITY)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
// **************************** PIT<49>жϺ<D0B6><CFBA><EFBFBD> ****************************
|
// **************************** PIT<49>жϺ<D0B6><CFBA><EFBFBD> ****************************
|
||||||
|
|
||||||
@@ -88,9 +86,6 @@ IFX_INTERRUPT(exti_ch0_ch4_isr, 0, EXTI_CH0_CH4_INT_PRIO)
|
|||||||
{
|
{
|
||||||
exti_flag_clear(ERU_CH0_REQ0_P15_4);
|
exti_flag_clear(ERU_CH0_REQ0_P15_4);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(exti_flag_get(ERU_CH4_REQ13_P15_5)) // ͨ<><CDA8>4<EFBFBD>ж<EFBFBD>
|
if(exti_flag_get(ERU_CH4_REQ13_P15_5)) // ͨ<><CDA8>4<EFBFBD>ж<EFBFBD>
|
||||||
@@ -119,8 +114,6 @@ IFX_INTERRUPT(exti_ch1_ch5_isr, 0, EXTI_CH1_CH5_INT_PRIO)
|
|||||||
exti_flag_clear(ERU_CH5_REQ1_P15_8);
|
exti_flag_clear(ERU_CH5_REQ1_P15_8);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -175,7 +168,16 @@ IFX_INTERRUPT(uart0_tx_isr, 0, UART0_TX_INT_PRIO)
|
|||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
//IFX_INTERRUPT(uart0_rx_isr, 0, UART0_RX_INT_PRIO)
|
||||||
|
//{
|
||||||
|
// interrupt_global_enable(0); // <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
|
||||||
|
// IfxAsclin_Asc_isrReceive(&uart0_handle);
|
||||||
|
//
|
||||||
|
//#if DEBUG_UART_USE_INTERRUPT // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> debug <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||||
|
// debug_interrupr_handler(); // <20><><EFBFBD><EFBFBD> debug <20><><EFBFBD>ڽ<EFBFBD><DABD>մ<EFBFBD><D5B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ݻᱻ debug <20><><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ
|
||||||
|
//#endif // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><DEB8><EFBFBD> DEBUG_UART_INDEX <20><><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD>Ӧ<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD>ж<EFBFBD>ȥ
|
||||||
|
//
|
||||||
|
//}
|
||||||
IFX_INTERRUPT(uart0_er_isr, 0, UART0_ER_INT_PRIO)
|
IFX_INTERRUPT(uart0_er_isr, 0, UART0_ER_INT_PRIO)
|
||||||
{
|
{
|
||||||
interrupt_global_enable(0); // <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
|
interrupt_global_enable(0); // <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
|
||||||
@@ -254,7 +256,7 @@ IFX_INTERRUPT(uart3_rx_isr, 0, UART3_RX_INT_PRIO)
|
|||||||
IfxAsclin_Asc_isrReceive(&uart3_handle);
|
IfxAsclin_Asc_isrReceive(&uart3_handle);
|
||||||
|
|
||||||
|
|
||||||
|
gps_uart_callback();
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,3 +1,7 @@
|
|||||||
|
V3.1.6
|
||||||
|
<20><EFBFBD>GPSʹ<53>ô<EFBFBD><C3B4>ںţ<DABA><C5A3>Ż<EFBFBD>GPS<50><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
isr.c<><63><EFBFBD>Ƴ<EFBFBD>CCD<43>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
<20>İ<DEB8><C4B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>İ<EFBFBD><C4B0><EFBFBD><EFBFBD>˿ںţ<DABA><C5A3><EFBFBD><EFBFBD><EFBFBD>V2.6<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
V3.1.5
|
V3.1.5
|
||||||
<20><EFBFBD>Ӳ<EFBFBD><D3B2>SPI<50><49>ʼ<EFBFBD><CABC>ʱѡ<CAB1><D1A1><EFBFBD><EFBFBD>CS<43><53><EFBFBD>ţ<EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD>ɻ<EFBFBD><C9BB><EFBFBD>ʼ<EFBFBD><CABC>Ĭ<EFBFBD><C4AC>CS<43><53><EFBFBD>ŵ<EFBFBD>bug
|
<20><EFBFBD>Ӳ<EFBFBD><D3B2>SPI<50><49>ʼ<EFBFBD><CABC>ʱѡ<CAB1><D1A1><EFBFBD><EFBFBD>CS<43><53><EFBFBD>ţ<EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD>ɻ<EFBFBD><C9BB><EFBFBD>ʼ<EFBFBD><CABC>Ĭ<EFBFBD><C4AC>CS<43><53><EFBFBD>ŵ<EFBFBD>bug
|
||||||
V3.1.4
|
V3.1.4
|
||||||
|
|||||||
Binary file not shown.
@@ -43,24 +43,25 @@
|
|||||||
* ------------------------------------
|
* ------------------------------------
|
||||||
********************************************************************************************************************/
|
********************************************************************************************************************/
|
||||||
|
|
||||||
|
#include "math.h"
|
||||||
#include "zf_common_function.h"
|
#include "zf_common_function.h"
|
||||||
#include "zf_common_fifo.h"
|
#include "zf_common_fifo.h"
|
||||||
#include "zf_driver_delay.h"
|
#include "zf_driver_delay.h"
|
||||||
#include "zf_driver_uart.h"
|
#include "zf_driver_uart.h"
|
||||||
#include "zf_device_type.h"
|
|
||||||
#include "zf_device_gps_tau1201.h"
|
#include "zf_device_gps_tau1201.h"
|
||||||
|
|
||||||
#define GPS_TAU1201_BUFFER_SIZE (128)
|
#define GPS_TAU1201_BUFFER_SIZE ( 128 )
|
||||||
|
|
||||||
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>
|
uint8 gps_tau1201_flag = 0; // 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>
|
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>
|
static uint8 gps_tau1201_state = 0; // 1<><31>GPS<50><53>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
static fifo_struct gps_tau1201_receiver_fifo; //
|
static fifo_struct gps_tau1201_receiver_fifo; //
|
||||||
static uint8 gps_tau1201_receiver_buffer[GPS_TAU1201_BUFFER_SIZE]; // <20><><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
static uint8 gps_tau1201_receiver_buffer[GPS_TAU1201_BUFFER_SIZE]; // <20><><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
gps_state_enum gps_gga_state; // gga<67><61><EFBFBD><EFBFBD>״̬
|
gps_state_enum gps_gga_state = GPS_STATE_RECEIVING; // gga <EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
||||||
gps_state_enum gps_rmc_state; // rmc<6D><63><EFBFBD><EFBFBD>״̬
|
gps_state_enum gps_rmc_state = GPS_STATE_RECEIVING; // rmc <EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
||||||
|
|
||||||
static uint8 gps_gga_buffer[GPS_TAU1201_BUFFER_SIZE];
|
static uint8 gps_gga_buffer[GPS_TAU1201_BUFFER_SIZE];
|
||||||
static uint8 gps_rmc_buffer[GPS_TAU1201_BUFFER_SIZE];
|
static uint8 gps_rmc_buffer[GPS_TAU1201_BUFFER_SIZE];
|
||||||
@@ -75,11 +76,10 @@ static uint8 gps_rmc_buffer[GPS_TAU1201_BUFFER_SIZE];
|
|||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
static uint8 get_parameter_index (uint8 num, char *str)
|
static uint8 get_parameter_index (uint8 num, char *str)
|
||||||
{
|
{
|
||||||
uint8 i, j = 0;
|
uint8 i = 0, j = 0;
|
||||||
char *temp;
|
char *temp = strchr(str, '\n');
|
||||||
uint8 len = 0, len1;
|
uint8 len = 0, len1 = 0;
|
||||||
|
|
||||||
temp = strchr(str, '\n');
|
|
||||||
if(NULL != temp)
|
if(NULL != temp)
|
||||||
{
|
{
|
||||||
len = (uint8)((uint32)temp - (uint32)str + 1);
|
len = (uint8)((uint32)temp - (uint32)str + 1);
|
||||||
@@ -87,7 +87,7 @@ static uint8 get_parameter_index (uint8 num, char *str)
|
|||||||
|
|
||||||
for(i = 0; i < len; i ++)
|
for(i = 0; i < len; i ++)
|
||||||
{
|
{
|
||||||
if(str[i] == ',')
|
if(',' == str[i])
|
||||||
{
|
{
|
||||||
j ++;
|
j ++;
|
||||||
}
|
}
|
||||||
@@ -111,8 +111,8 @@ static uint8 get_parameter_index (uint8 num, char *str)
|
|||||||
static int get_int_number (char *s)
|
static int get_int_number (char *s)
|
||||||
{
|
{
|
||||||
char buf[10];
|
char buf[10];
|
||||||
uint8 i;
|
uint8 i = 0;
|
||||||
int return_value;
|
int return_value = 0;
|
||||||
i = get_parameter_index(1, s);
|
i = get_parameter_index(1, s);
|
||||||
i = i - 1;
|
i = i - 1;
|
||||||
strncpy(buf, s, i);
|
strncpy(buf, s, i);
|
||||||
@@ -130,9 +130,9 @@ static int get_int_number (char *s)
|
|||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
static float get_float_number (char *s)
|
static float get_float_number (char *s)
|
||||||
{
|
{
|
||||||
uint8 i;
|
uint8 i = 0;
|
||||||
char buf[15];
|
char buf[15];
|
||||||
float return_value;
|
float return_value = 0;
|
||||||
|
|
||||||
i = get_parameter_index(1, s);
|
i = get_parameter_index(1, s);
|
||||||
i = i - 1;
|
i = i - 1;
|
||||||
@@ -151,9 +151,9 @@ static float get_float_number (char *s)
|
|||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
static double get_double_number (char *s)
|
static double get_double_number (char *s)
|
||||||
{
|
{
|
||||||
uint8 i;
|
uint8 i = 0;
|
||||||
char buf[15];
|
char buf[15];
|
||||||
double return_value;
|
double return_value = 0;
|
||||||
|
|
||||||
i = get_parameter_index(1, s);
|
i = get_parameter_index(1, s);
|
||||||
i = i - 1;
|
i = i - 1;
|
||||||
@@ -172,10 +172,10 @@ static double get_double_number (char *s)
|
|||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
static void utc_to_btc (gps_time_struct *time)
|
static void utc_to_btc (gps_time_struct *time)
|
||||||
{
|
{
|
||||||
uint8 day_num;
|
uint8 day_num = 0;
|
||||||
|
|
||||||
time->hour = time->hour + 8;
|
time->hour = time->hour + 8;
|
||||||
if(time->hour > 23)
|
if(23 < time->hour)
|
||||||
{
|
{
|
||||||
time->hour -= 24;
|
time->hour -= 24;
|
||||||
time->day += 1;
|
time->day += 1;
|
||||||
@@ -183,7 +183,7 @@ static void utc_to_btc (gps_time_struct *time)
|
|||||||
if(2 == time->month)
|
if(2 == time->month)
|
||||||
{
|
{
|
||||||
day_num = 28;
|
day_num = 28;
|
||||||
if((time->year % 4 == 0 && time->year % 100 != 0) || time->year % 400 == 0) // <20>ж<EFBFBD><D0B6>Ƿ<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>
|
if((0 == time->year % 4 && 0 != time->year % 100) || 0 == time->year % 400) // <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>
|
||||||
}
|
}
|
||||||
@@ -201,7 +201,7 @@ static void utc_to_btc (gps_time_struct *time)
|
|||||||
{
|
{
|
||||||
time->day = 1;
|
time->day = 1;
|
||||||
time->month ++;
|
time->month ++;
|
||||||
if(time->month > 12)
|
if(12 < time->month)
|
||||||
{
|
{
|
||||||
time->month -= 12;
|
time->month -= 12;
|
||||||
time->year ++;
|
time->year ++;
|
||||||
@@ -220,21 +220,21 @@ static void utc_to_btc (gps_time_struct *time)
|
|||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
static uint8 gps_gnrmc_parse (char *line, gps_info_struct *gps)
|
static uint8 gps_gnrmc_parse (char *line, gps_info_struct *gps)
|
||||||
{
|
{
|
||||||
uint8 state, temp;
|
uint8 state = 0, temp = 0;
|
||||||
|
|
||||||
double latitude; // γ<><CEB3>
|
double latitude = 0; // γ<><CEB3>
|
||||||
double longitude; // <20><><EFBFBD><EFBFBD>
|
double longitude = 0; // <20><><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
float lati_cent_tmp, lati_second_tmp;
|
double lati_cent_tmp = 0, lati_second_tmp = 0;
|
||||||
float long_cent_tmp, long_second_tmp;
|
double long_cent_tmp = 0, long_second_tmp = 0;
|
||||||
float speed_tmp;
|
float speed_tmp = 0;
|
||||||
char *buf = line;
|
char *buf = line;
|
||||||
uint8 return_state = 0;
|
uint8 return_state = 0;
|
||||||
|
|
||||||
state = buf[get_parameter_index(2, buf)];
|
state = buf[get_parameter_index(2, buf)];
|
||||||
|
|
||||||
gps->state = 0;
|
gps->state = 0;
|
||||||
if (state == 'A') // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
if('A' == state) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
{
|
{
|
||||||
return_state = 1;
|
return_state = 1;
|
||||||
gps->state = 1;
|
gps->state = 1;
|
||||||
@@ -247,17 +247,17 @@ static uint8 gps_gnrmc_parse (char *line, gps_info_struct *gps)
|
|||||||
gps->latitude_degree = (int)latitude / 100; // γ<><CEB3>ת<EFBFBD><D7AA>Ϊ<EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD>
|
gps->latitude_degree = (int)latitude / 100; // γ<><CEB3>ת<EFBFBD><D7AA>Ϊ<EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD>
|
||||||
lati_cent_tmp = (latitude - gps->latitude_degree * 100);
|
lati_cent_tmp = (latitude - gps->latitude_degree * 100);
|
||||||
gps->latitude_cent = (int)lati_cent_tmp;
|
gps->latitude_cent = (int)lati_cent_tmp;
|
||||||
lati_second_tmp = (lati_cent_tmp - gps->latitude_cent) * 10000;
|
lati_second_tmp = (lati_cent_tmp - gps->latitude_cent) * 6000;
|
||||||
gps->latitude_second = (int)lati_second_tmp;
|
gps->latitude_second = (int)lati_second_tmp;
|
||||||
|
|
||||||
gps->longitude_degree = (int)longitude / 100; // <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD>
|
gps->longitude_degree = (int)longitude / 100; // <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD>
|
||||||
long_cent_tmp = (longitude - gps->longitude_degree * 100);
|
long_cent_tmp = (longitude - gps->longitude_degree * 100);
|
||||||
gps->longitude_cent = (int)long_cent_tmp;
|
gps->longitude_cent = (int)long_cent_tmp;
|
||||||
long_second_tmp = (long_cent_tmp - gps->longitude_cent) * 10000;
|
long_second_tmp = (long_cent_tmp - gps->longitude_cent) * 6000;
|
||||||
gps->longitude_second = (int)long_second_tmp;
|
gps->longitude_second = (int)long_second_tmp;
|
||||||
|
|
||||||
gps->latitude = gps->latitude_degree + (double)gps->latitude_cent / 60 + (double)gps->latitude_second / 600000;
|
gps->latitude = gps->latitude_degree + lati_cent_tmp / 60;
|
||||||
gps->longitude = gps->longitude_degree + (double)gps->longitude_cent / 60 + (double)gps->longitude_second / 600000;
|
gps->longitude = gps->longitude_degree + long_cent_tmp / 60;
|
||||||
|
|
||||||
speed_tmp = get_float_number(&buf[get_parameter_index(7, buf)]); // <20>ٶ<EFBFBD>(<28><><EFBFBD><EFBFBD>/Сʱ)
|
speed_tmp = get_float_number(&buf[get_parameter_index(7, buf)]); // <20>ٶ<EFBFBD>(<28><><EFBFBD><EFBFBD>/Сʱ)
|
||||||
gps->speed = speed_tmp * 1.85f; // ת<><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>/Сʱ
|
gps->speed = speed_tmp * 1.85f; // ת<><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>/Сʱ
|
||||||
@@ -288,13 +288,13 @@ static uint8 gps_gnrmc_parse (char *line, gps_info_struct *gps)
|
|||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
static uint8 gps_gngga_parse (char *line, gps_info_struct *gps)
|
static uint8 gps_gngga_parse (char *line, gps_info_struct *gps)
|
||||||
{
|
{
|
||||||
uint8 state;
|
uint8 state = 0;
|
||||||
char *buf = line;
|
char *buf = line;
|
||||||
uint8 return_state = 0;
|
uint8 return_state = 0;
|
||||||
|
|
||||||
state = buf[get_parameter_index(2, buf)];
|
state = buf[get_parameter_index(2, buf)];
|
||||||
|
|
||||||
if (state != ',')
|
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>
|
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>
|
||||||
@@ -317,13 +317,13 @@ static uint8 gps_gngga_parse (char *line, gps_info_struct *gps)
|
|||||||
double get_two_points_distance (double latitude1, double longitude1, double latitude2, double longitude2)
|
double get_two_points_distance (double latitude1, double longitude1, double latitude2, double longitude2)
|
||||||
{
|
{
|
||||||
const double EARTH_RADIUS = 6378137; // <20><><EFBFBD><EFBFBD><EFBFBD>뾶(<28><>λ<EFBFBD><CEBB>m)
|
const double EARTH_RADIUS = 6378137; // <20><><EFBFBD><EFBFBD><EFBFBD>뾶(<28><>λ<EFBFBD><CEBB>m)
|
||||||
double rad_latitude1;
|
double rad_latitude1 = 0;
|
||||||
double rad_latitude2;
|
double rad_latitude2 = 0;
|
||||||
double rad_longitude1;
|
double rad_longitude1 = 0;
|
||||||
double rad_longitude2;
|
double rad_longitude2 = 0;
|
||||||
double distance;
|
double distance = 0;
|
||||||
double a;
|
double a = 0;
|
||||||
double b;
|
double b = 0;
|
||||||
|
|
||||||
rad_latitude1 = ANGLE_TO_RAD(latitude1); // <20><><EFBFBD>ݽǶȼ<C7B6><C8BC>㻡<EFBFBD><E3BBA1>
|
rad_latitude1 = ANGLE_TO_RAD(latitude1); // <20><><EFBFBD>ݽǶȼ<C7B6><C8BC>㻡<EFBFBD><E3BBA1>
|
||||||
rad_latitude2 = ANGLE_TO_RAD(latitude2);
|
rad_latitude2 = ANGLE_TO_RAD(latitude2);
|
||||||
@@ -359,7 +359,7 @@ double get_two_points_azimuth (double latitude1, double longitude1, double latit
|
|||||||
double x = sin(longitude2 - longitude1) * cos(latitude2);
|
double x = sin(longitude2 - longitude1) * cos(latitude2);
|
||||||
double y = cos(latitude1) * sin(latitude2) - sin(latitude1) * cos(latitude2) * cos(longitude2 - longitude1);
|
double y = cos(latitude1) * sin(latitude2) - sin(latitude1) * cos(latitude2) * cos(longitude2 - longitude1);
|
||||||
double angle = RAD_TO_ANGLE(atan2(x, y));
|
double angle = RAD_TO_ANGLE(atan2(x, y));
|
||||||
return ((angle > 0) ? angle : (angle + 360));
|
return ((0 < angle) ? angle : (angle + 360));
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
@@ -375,16 +375,16 @@ uint8 gps_data_parse (void)
|
|||||||
uint8 check_buffer[5] = {'0', 'x', 0x00, 0x00, 0x00};
|
uint8 check_buffer[5] = {'0', 'x', 0x00, 0x00, 0x00};
|
||||||
uint8 bbc_xor_origin = 0;
|
uint8 bbc_xor_origin = 0;
|
||||||
uint8 bbc_xor_calculation = 0;
|
uint8 bbc_xor_calculation = 0;
|
||||||
uint32 data_len;
|
uint32 data_len = 0;
|
||||||
|
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
if(GPS_STATE_RECEIVED == gps_rmc_state)
|
if(GPS_STATE_RECEIVED == gps_rmc_state)
|
||||||
{
|
{
|
||||||
gps_rmc_state = GPS_STATE_PARSING;
|
gps_rmc_state = GPS_STATE_PARSING;
|
||||||
strncpy((char *)&check_buffer[2], strchr((const char *)gps_rmc_buffer, '*')+1, 2);
|
strncpy((char *)&check_buffer[2], strchr((const char *)gps_rmc_buffer, '*') + 1, 2);
|
||||||
bbc_xor_origin = (uint8)func_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 ++)
|
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];
|
bbc_xor_calculation ^= gps_rmc_buffer[data_len];
|
||||||
}
|
}
|
||||||
@@ -402,10 +402,10 @@ uint8 gps_data_parse (void)
|
|||||||
if(GPS_STATE_RECEIVED == gps_gga_state)
|
if(GPS_STATE_RECEIVED == gps_gga_state)
|
||||||
{
|
{
|
||||||
gps_gga_state = GPS_STATE_PARSING;
|
gps_gga_state = GPS_STATE_PARSING;
|
||||||
strncpy((char *)&check_buffer[2], strchr((const char *)gps_gga_buffer, '*')+1, 2);
|
strncpy((char *)&check_buffer[2], strchr((const char *)gps_gga_buffer, '*') + 1, 2);
|
||||||
bbc_xor_origin = (uint8)func_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 ++)
|
for(bbc_xor_calculation = gps_gga_buffer[1], data_len = 2; '*' != gps_gga_buffer[data_len]; data_len ++)
|
||||||
{
|
{
|
||||||
bbc_xor_calculation ^= gps_gga_buffer[data_len];
|
bbc_xor_calculation ^= gps_gga_buffer[data_len];
|
||||||
}
|
}
|
||||||
@@ -435,7 +435,7 @@ uint8 gps_data_parse (void)
|
|||||||
void gps_uart_callback (void)
|
void gps_uart_callback (void)
|
||||||
{
|
{
|
||||||
uint8 temp_gps[6];
|
uint8 temp_gps[6];
|
||||||
uint32 temp_length;
|
uint32 temp_length = 0;
|
||||||
|
|
||||||
if(gps_tau1201_state)
|
if(gps_tau1201_state)
|
||||||
{
|
{
|
||||||
@@ -507,8 +507,7 @@ uint8 gps_init (void)
|
|||||||
fifo_init(&gps_tau1201_receiver_fifo, FIFO_DATA_8BIT, gps_tau1201_receiver_buffer, GPS_TAU1201_BUFFER_SIZE);
|
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>
|
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);
|
uart_init(GPS_TAU1201_UART, 115200, GPS_TAU1201_RX, GPS_TAU1201_TX);
|
||||||
|
uart_rx_interrupt(GPS_TAU1201_UART, 0);
|
||||||
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
|
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);
|
system_delay_ms(200);
|
||||||
|
|||||||
@@ -49,9 +49,9 @@
|
|||||||
#include "zf_common_typedef.h"
|
#include "zf_common_typedef.h"
|
||||||
|
|
||||||
//===============================================GPS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
//===============================================GPS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||||
#define GPS_TAU1201_UART (UART_2)
|
#define GPS_TAU1201_UART (UART_3)
|
||||||
#define GPS_TAU1201_RX (UART2_TX_P10_5) // GPS RX<52><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD>
|
#define GPS_TAU1201_RX (UART3_TX_P15_6) // GPS RX<52><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD>
|
||||||
#define GPS_TAU1201_TX (UART2_RX_P10_6) // GPS TX<54><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
#define GPS_TAU1201_TX (UART3_RX_P15_7) // GPS TX<54><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
//===============================================GPS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
//===============================================GPS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||||
|
|
||||||
#define ANGLE_TO_RAD(x) ((x) * PI / 180.0) // <20>Ƕ<EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>
|
#define ANGLE_TO_RAD(x) ((x) * PI / 180.0) // <20>Ƕ<EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>
|
||||||
|
|||||||
@@ -137,8 +137,8 @@
|
|||||||
//================================================<3D><><EFBFBD><EFBFBD> IMU963RA <20>ڲ<EFBFBD><DAB2><EFBFBD>ַ================================================
|
//================================================<3D><><EFBFBD><EFBFBD> IMU963RA <20>ڲ<EFBFBD><DAB2><EFBFBD>ַ================================================
|
||||||
|
|
||||||
//===============================================<3D><><EFBFBD><EFBFBD> IMU963RA <20><><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD>===============================================
|
//===============================================<3D><><EFBFBD><EFBFBD> IMU963RA <20><><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD>===============================================
|
||||||
extern int16 imu963ra_acc_x, imu963ra_acc_y, imu963ra_acc_z; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
extern int16 imu963ra_gyro_x, imu963ra_gyro_y, imu963ra_gyro_z; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
extern int16 imu963ra_gyro_x, imu963ra_gyro_y, imu963ra_gyro_z; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
extern int16 imu963ra_acc_x, imu963ra_acc_y, imu963ra_acc_z; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
||||||
extern int16 imu963ra_mag_x, imu963ra_mag_y, imu963ra_mag_z; // <20><><EFBFBD><EFBFBD><EFBFBD>شż<D8B4><C5BC><EFBFBD><EFBFBD><EFBFBD>
|
extern int16 imu963ra_mag_x, imu963ra_mag_y, imu963ra_mag_z; // <20><><EFBFBD><EFBFBD><EFBFBD>شż<D8B4><C5BC><EFBFBD><EFBFBD><EFBFBD>
|
||||||
//===============================================<3D><><EFBFBD><EFBFBD> IMU963RA <20><><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD>===============================================
|
//===============================================<3D><><EFBFBD><EFBFBD> IMU963RA <20><><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD>===============================================
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*********************************************************************************************************************
|
/*********************************************************************************************************************
|
||||||
* MM32F327X-G9P Opensourec Library <20><><EFBFBD><EFBFBD>MM32F327X-G9P <20><>Դ<EFBFBD>⣩<EFBFBD><E2A3A9>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ڹٷ<DAB9> SDK <20>ӿڵĵ<DAB5><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4>
|
* TC264 Opensourec Library <20><><EFBFBD><EFBFBD>TC264 <20><>Դ<EFBFBD>⣩<EFBFBD><E2A3A9>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ڹٷ<DAB9> SDK <20>ӿڵĵ<DAB5><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4>
|
||||||
* Copyright (c) 2022 SEEKFREE <20><><EFBFBD>ɿƼ<C9BF>
|
* Copyright (c) 2022 SEEKFREE <20><><EFBFBD>ɿƼ<C9BF>
|
||||||
*
|
*
|
||||||
* <20><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD> MM32F327X-G9P <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
|
* <20><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD> TC264 <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
|
||||||
*
|
*
|
||||||
* MM32F327X-G9P <20><>Դ<EFBFBD><D4B4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
* TC264 <20><>Դ<EFBFBD><D4B4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
* <20><><EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD><D4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᷢ<EFBFBD><E1B7A2><EFBFBD><EFBFBD> GPL<50><4C>GNU General Public License<73><65><EFBFBD><EFBFBD> GNUͨ<55>ù<EFBFBD><C3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
* <20><><EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD><D4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᷢ<EFBFBD><E1B7A2><EFBFBD><EFBFBD> GPL<50><4C>GNU General Public License<73><65><EFBFBD><EFBFBD> GNUͨ<55>ù<EFBFBD><C3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
* <20><> GPL <20>ĵ<EFBFBD>3<EFBFBD>棨<EFBFBD><E6A3A8> GPL3.0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD>κκ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>İ汾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><DEB8><EFBFBD>
|
* <20><> GPL <20>ĵ<EFBFBD>3<EFBFBD>棨<EFBFBD><E6A3A8> GPL3.0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD>κκ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>İ汾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><DEB8><EFBFBD>
|
||||||
*
|
*
|
||||||
@@ -24,13 +24,13 @@
|
|||||||
* <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> zf_device_key
|
* <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> zf_device_key
|
||||||
* <20><>˾<EFBFBD><CBBE><EFBFBD><EFBFBD> <20>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD><EFBFBD>˾
|
* <20><>˾<EFBFBD><CBBE><EFBFBD><EFBFBD> <20>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD><EFBFBD>˾
|
||||||
* <20>汾<EFBFBD><E6B1BE>Ϣ <20>鿴 libraries/doc <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> version <20>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
|
* <20>汾<EFBFBD><E6B1BE>Ϣ <20>鿴 libraries/doc <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> version <20>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
|
||||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IAR 8.32.4 or MDK 5.37
|
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ADS v1.8.0
|
||||||
* <20><><EFBFBD><EFBFBD>ƽ̨ MM32F327X_G9P
|
* <20><><EFBFBD><EFBFBD>ƽ̨ TC264D
|
||||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> https://seekfree.taobao.com/
|
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> https://seekfree.taobao.com/
|
||||||
*
|
*
|
||||||
* <20>ļ<DEB8>¼
|
* <20>ļ<DEB8>¼
|
||||||
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
|
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
|
||||||
* 2022-08-10 Teternal first version
|
* 2022-09-15 pudding first version
|
||||||
********************************************************************************************************************/
|
********************************************************************************************************************/
|
||||||
/*********************************************************************************************************************
|
/*********************************************************************************************************************
|
||||||
* <20><><EFBFBD>߶<EFBFBD><DFB6>壺
|
* <20><><EFBFBD>߶<EFBFBD><DFB6>壺
|
||||||
@@ -45,6 +45,7 @@
|
|||||||
********************************************************************************************************************/
|
********************************************************************************************************************/
|
||||||
|
|
||||||
#include "zf_common_debug.h"
|
#include "zf_common_debug.h"
|
||||||
|
|
||||||
#include "zf_device_key.h"
|
#include "zf_device_key.h"
|
||||||
|
|
||||||
static uint32 scanner_period = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
static uint32 scanner_period = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
@@ -65,54 +66,21 @@ void key_scanner (void)
|
|||||||
uint8 i = 0;
|
uint8 i = 0;
|
||||||
for(i = 0; i < KEY_NUMBER; i ++)
|
for(i = 0; i < KEY_NUMBER; i ++)
|
||||||
{
|
{
|
||||||
switch(key_state[i])
|
if(KEY_RELEASE_LEVEL != gpio_get_level(key_index[i])) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
{
|
{
|
||||||
case KEY_RELEASE:
|
key_press_time[i] ++;
|
||||||
if(KEY_RELEASE_LEVEL != gpio_get_level(key_index[i]))
|
if(key_press_time[i] >= KEY_LONG_PRESS_PERIOD / scanner_period)
|
||||||
{
|
{
|
||||||
if(++ key_press_time[i] >= KEY_MAX_SHOCK_PERIOD / scanner_period)
|
key_state[i] = KEY_LONG_PRESS;
|
||||||
{
|
}
|
||||||
key_state[i] = KEY_SHORT_PRESS;
|
}
|
||||||
}
|
else // <20><><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>
|
||||||
else
|
{
|
||||||
{
|
if(key_state[i] != KEY_LONG_PRESS && key_press_time[i] >= KEY_MAX_SHOCK_PERIOD / scanner_period)
|
||||||
key_state[i] = KEY_CHECK_SHOCK;
|
{
|
||||||
}
|
key_state[i] = KEY_SHORT_PRESS;
|
||||||
}
|
}
|
||||||
break;
|
key_press_time[i] = 0;
|
||||||
case KEY_CHECK_SHOCK:
|
|
||||||
if(KEY_RELEASE_LEVEL != gpio_get_level(key_index[i]))
|
|
||||||
{
|
|
||||||
if(++ key_press_time[i] >= KEY_MAX_SHOCK_PERIOD / scanner_period)
|
|
||||||
{
|
|
||||||
key_state[i] = KEY_SHORT_PRESS;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
key_state[i] = KEY_RELEASE;
|
|
||||||
key_press_time[i] = 0;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case KEY_SHORT_PRESS:
|
|
||||||
if(++ key_press_time[i] >= KEY_LONG_PRESS_PERIOD / scanner_period)
|
|
||||||
{
|
|
||||||
key_state[i] = KEY_LONG_PRESS;
|
|
||||||
}
|
|
||||||
if(KEY_RELEASE_LEVEL == gpio_get_level(key_index[i]))
|
|
||||||
{
|
|
||||||
key_state[i] = KEY_RELEASE;
|
|
||||||
key_press_time[i] = 0;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case KEY_LONG_PRESS:
|
|
||||||
if(KEY_RELEASE_LEVEL == gpio_get_level(key_index[i]))
|
|
||||||
{
|
|
||||||
key_state[i] = KEY_RELEASE;
|
|
||||||
key_press_time[i] = 0;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -129,6 +97,33 @@ key_state_enum key_get_state (key_index_enum key_n)
|
|||||||
return key_state[key_n];
|
return key_state[key_n];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>״̬
|
||||||
|
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> key_n <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void <20><>
|
||||||
|
// ʹ<><CAB9>ʾ<EFBFBD><CABE> key_clear_state(KEY_1);
|
||||||
|
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
void key_clear_state (key_index_enum key_n)
|
||||||
|
{
|
||||||
|
key_state[key_n] = KEY_RELEASE;
|
||||||
|
}
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>а<EFBFBD><D0B0><EFBFBD>״̬
|
||||||
|
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> void <20><>
|
||||||
|
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void <20><>
|
||||||
|
// ʹ<><CAB9>ʾ<EFBFBD><CABE> key_clear_all_state();
|
||||||
|
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
void key_clear_all_state (void)
|
||||||
|
{
|
||||||
|
key_state[0] = KEY_RELEASE;
|
||||||
|
key_state[1] = KEY_RELEASE;
|
||||||
|
key_state[2] = KEY_RELEASE;
|
||||||
|
key_state[3] = KEY_RELEASE;
|
||||||
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
||||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> period <20><><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ժ<EFBFBD><D4BA><EFBFBD>Ϊ<EFBFBD><CEAA>λ
|
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> period <20><><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ժ<EFBFBD><D4BA><EFBFBD>Ϊ<EFBFBD><CEAA>λ
|
||||||
@@ -136,17 +131,14 @@ key_state_enum key_get_state (key_index_enum key_n)
|
|||||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> key_init(10);
|
// ʹ<><CAB9>ʾ<EFBFBD><CABE> key_init(10);
|
||||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
uint8 key_init (uint32 period)
|
void key_init (uint32 period)
|
||||||
{
|
{
|
||||||
|
zf_assert(0 < period);
|
||||||
uint8 loop_temp = 0;
|
uint8 loop_temp = 0;
|
||||||
|
|
||||||
zf_assert(0 < period); // ɨ<><C9A8><EFBFBD><EFBFBD><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0
|
|
||||||
|
|
||||||
for(loop_temp = 0; loop_temp < KEY_NUMBER; loop_temp ++)
|
for(loop_temp = 0; loop_temp < KEY_NUMBER; loop_temp ++)
|
||||||
{
|
{
|
||||||
gpio_init(key_index[loop_temp], GPI, GPIO_HIGH, GPI_PULL_UP);
|
gpio_init(key_index[loop_temp], GPI, GPIO_HIGH, GPI_PULL_UP);
|
||||||
key_state[loop_temp] = KEY_RELEASE;
|
key_state[loop_temp] = KEY_RELEASE;
|
||||||
}
|
}
|
||||||
scanner_period = period;
|
scanner_period = period;
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*********************************************************************************************************************
|
/*********************************************************************************************************************
|
||||||
* MM32F327X-G9P Opensourec Library <20><><EFBFBD><EFBFBD>MM32F327X-G9P <20><>Դ<EFBFBD>⣩<EFBFBD><E2A3A9>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ڹٷ<DAB9> SDK <20>ӿڵĵ<DAB5><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4>
|
* TC264 Opensourec Library <20><><EFBFBD><EFBFBD>TC264 <20><>Դ<EFBFBD>⣩<EFBFBD><E2A3A9>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ڹٷ<DAB9> SDK <20>ӿڵĵ<DAB5><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4>
|
||||||
* Copyright (c) 2022 SEEKFREE <20><><EFBFBD>ɿƼ<C9BF>
|
* Copyright (c) 2022 SEEKFREE <20><><EFBFBD>ɿƼ<C9BF>
|
||||||
*
|
*
|
||||||
* <20><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD> MM32F327X-G9P <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
|
* <20><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD> TC264 <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
|
||||||
*
|
*
|
||||||
* MM32F327X-G9P <20><>Դ<EFBFBD><D4B4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
* TC264 <20><>Դ<EFBFBD><D4B4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
* <20><><EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD><D4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᷢ<EFBFBD><E1B7A2><EFBFBD><EFBFBD> GPL<50><4C>GNU General Public License<73><65><EFBFBD><EFBFBD> GNUͨ<55>ù<EFBFBD><C3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
* <20><><EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD><D4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᷢ<EFBFBD><E1B7A2><EFBFBD><EFBFBD> GPL<50><4C>GNU General Public License<73><65><EFBFBD><EFBFBD> GNUͨ<55>ù<EFBFBD><C3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
* <20><> GPL <20>ĵ<EFBFBD>3<EFBFBD>棨<EFBFBD><E6A3A8> GPL3.0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD>κκ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>İ汾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><DEB8><EFBFBD>
|
* <20><> GPL <20>ĵ<EFBFBD>3<EFBFBD>棨<EFBFBD><E6A3A8> GPL3.0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD>κκ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>İ汾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><DEB8><EFBFBD>
|
||||||
*
|
*
|
||||||
@@ -24,13 +24,13 @@
|
|||||||
* <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> zf_device_key
|
* <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> zf_device_key
|
||||||
* <20><>˾<EFBFBD><CBBE><EFBFBD><EFBFBD> <20>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD><EFBFBD>˾
|
* <20><>˾<EFBFBD><CBBE><EFBFBD><EFBFBD> <20>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD><EFBFBD>˾
|
||||||
* <20>汾<EFBFBD><E6B1BE>Ϣ <20>鿴 libraries/doc <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> version <20>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
|
* <20>汾<EFBFBD><E6B1BE>Ϣ <20>鿴 libraries/doc <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> version <20>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
|
||||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IAR 8.32.4 or MDK 5.37
|
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ADS v1.8.0
|
||||||
* <20><><EFBFBD><EFBFBD>ƽ̨ MM32F327X_G9P
|
* <20><><EFBFBD><EFBFBD>ƽ̨ TC264D
|
||||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> https://seekfree.taobao.com/
|
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> https://seekfree.taobao.com/
|
||||||
*
|
*
|
||||||
* <20>ļ<DEB8>¼
|
* <20>ļ<DEB8>¼
|
||||||
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
|
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
|
||||||
* 2022-08-10 Teternal first version
|
* 2022-09-15 pudding first version
|
||||||
********************************************************************************************************************/
|
********************************************************************************************************************/
|
||||||
/*********************************************************************************************************************
|
/*********************************************************************************************************************
|
||||||
* <20><><EFBFBD>߶<EFBFBD><DFB6>壺
|
* <20><><EFBFBD>߶<EFBFBD><DFB6>壺
|
||||||
@@ -53,13 +53,12 @@
|
|||||||
// <20><><EFBFBD>尴<EFBFBD><E5B0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ĭ<>϶<EFBFBD><CFB6><EFBFBD><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD>
|
// <20><><EFBFBD>尴<EFBFBD><E5B0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ĭ<>϶<EFBFBD><CFB6><EFBFBD><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD>
|
||||||
// <20><><EFBFBD>尴<EFBFBD><E5B0B4>˳<EFBFBD><CBB3><EFBFBD><EFBFBD>Ӧ<EFBFBD>·<EFBFBD> key_index_enum ö<><C3B6><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><CBB3>
|
// <20><><EFBFBD>尴<EFBFBD><E5B0B4>˳<EFBFBD><CBB3><EFBFBD><EFBFBD>Ӧ<EFBFBD>·<EFBFBD> key_index_enum ö<><C3B6><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><CBB3>
|
||||||
// <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ô<EFBFBD><C3B4>Ҫͬ<D2AA><CDAC><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD> key_index_enum ö<><C3B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
// <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ô<EFBFBD><C3B4>Ҫͬ<D2AA><CDAC><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD> key_index_enum ö<><C3B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
#define KEY_LIST {P22_0, P22_1, P22_2, P22_3}
|
#define KEY_LIST {P20_6, P20_7, P11_2, P11_3}
|
||||||
|
|
||||||
#define KEY_RELEASE_LEVEL (GPIO_HIGH) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>״̬ Ҳ<><D2B2><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ͷ<EFBFBD>״̬<D7B4>ĵ<EFBFBD>ƽ
|
#define KEY_RELEASE_LEVEL (GPIO_HIGH) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>״̬ Ҳ<><D2B2><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ͷ<EFBFBD>״̬<D7B4>ĵ<EFBFBD>ƽ
|
||||||
#define KEY_MAX_SHOCK_PERIOD (10 ) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>źŻᱻ<C5BB><E1B1BB>Ϊ<EFBFBD><CEAA><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD><EFBFBD>
|
#define KEY_MAX_SHOCK_PERIOD (10 ) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>źŻᱻ<C5BB><E1B1BB>Ϊ<EFBFBD><CEAA><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD><EFBFBD>
|
||||||
#define KEY_LONG_PRESS_PERIOD (1000 ) // <20><>С<EFBFBD><D0A1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>
|
#define KEY_LONG_PRESS_PERIOD (1000 ) // <20><>С<EFBFBD><D0A1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>źŻᱻ<C5BB><E1B1BB>Ϊ<EFBFBD>dz<EFBFBD><C7B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
//=================================================<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ṹ<EFBFBD><E1B9B9>===============================================
|
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
KEY_1,
|
KEY_1,
|
||||||
@@ -72,15 +71,14 @@ typedef enum
|
|||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
KEY_RELEASE, // <20><><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>״̬
|
KEY_RELEASE, // <20><><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>״̬
|
||||||
KEY_CHECK_SHOCK, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
|
||||||
KEY_SHORT_PRESS, // <20><><EFBFBD><EFBFBD><EFBFBD>̰<EFBFBD>״̬
|
KEY_SHORT_PRESS, // <20><><EFBFBD><EFBFBD><EFBFBD>̰<EFBFBD>״̬
|
||||||
KEY_LONG_PRESS, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
KEY_LONG_PRESS, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
||||||
}key_state_enum;
|
}key_state_enum;
|
||||||
//=================================================<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ṹ<EFBFBD><E1B9B9>===============================================
|
|
||||||
|
|
||||||
//====================================================<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>=================================================
|
void key_scanner (void);
|
||||||
void key_scanner (void); // <20><><EFBFBD><EFBFBD>״̬ɨ<CCAC><C9A8>
|
key_state_enum key_get_state (key_index_enum key_n);
|
||||||
key_state_enum key_get_state (key_index_enum key_n); // <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>״̬
|
void key_clear_state (key_index_enum key_n);
|
||||||
uint8 key_init (uint32 period); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
void key_clear_all_state (void);
|
||||||
//====================================================<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>=================================================
|
void key_init (uint32 period);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -60,7 +60,7 @@
|
|||||||
|
|
||||||
// TSL1401 <20><><EFBFBD><EFBFBD><EFBFBD>ڲɼ<DAB2><C9BC><EFBFBD><EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD> ʹ<>õ<EFBFBD><C3B5>ĸ<EFBFBD> PIT <20><>Ҫ<EFBFBD><D2AA> <20><><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD> PIT <20><><EFBFBD>жϷ<D0B6><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
// TSL1401 <20><><EFBFBD><EFBFBD><EFBFBD>ڲɼ<DAB2><C9BC><EFBFBD><EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD> ʹ<>õ<EFBFBD><C3B5>ĸ<EFBFBD> PIT <20><>Ҫ<EFBFBD><D2AA> <20><><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD> PIT <20><><EFBFBD>жϷ<D0B6><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
#define TSL1401_EXPOSURE_TIME (10 ) // <20><><EFBFBD><EFBFBD> TSL1401 <20>ع<EFBFBD>ʱ<EFBFBD><CAB1> <20><>λ MS
|
#define TSL1401_EXPOSURE_TIME (10 ) // <20><><EFBFBD><EFBFBD> TSL1401 <20>ع<EFBFBD>ʱ<EFBFBD><CAB1> <20><>λ MS
|
||||||
#define TSL1401_PIT_INDEX (CCU60_CH0) // ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
#define TSL1401_PIT_INDEX (CCU61_CH1) // ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||||
#define TSL1401_AD_RESOLUTION (ADC_8BIT) // ADC <20><><EFBFBD><EFBFBD> 8bit
|
#define TSL1401_AD_RESOLUTION (ADC_8BIT) // ADC <20><><EFBFBD><EFBFBD> 8bit
|
||||||
#define TSL1401_DATA_LEN (128 ) // TSL1401 <20><><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
|
#define TSL1401_DATA_LEN (128 ) // TSL1401 <20><><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
|
||||||
//=================================================TSL1401 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
//=================================================TSL1401 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||||
|
|||||||
@@ -53,9 +53,7 @@ typedef enum
|
|||||||
NO_WIRELESS = 0, // <20><><EFBFBD>豸
|
NO_WIRELESS = 0, // <20><><EFBFBD>豸
|
||||||
WIRELESS_UART, // <20><><EFBFBD>ߴ<EFBFBD><DFB4><EFBFBD>
|
WIRELESS_UART, // <20><><EFBFBD>ߴ<EFBFBD><DFB4><EFBFBD>
|
||||||
BLUETOOTH_CH9141, // <20><><EFBFBD><EFBFBD> CH9141
|
BLUETOOTH_CH9141, // <20><><EFBFBD><EFBFBD> CH9141
|
||||||
GPS_TAU1201,
|
WIFI_UART, // <20><><EFBFBD><EFBFBD> WiFi
|
||||||
WIFI_UART,
|
|
||||||
WIFI_SPI,
|
|
||||||
}wireless_type_enum;
|
}wireless_type_enum;
|
||||||
//==============================================<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ö<><C3B6><EFBFBD><EFBFBD>==================================================
|
//==============================================<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ö<><C3B6><EFBFBD><EFBFBD>==================================================
|
||||||
|
|
||||||
|
|||||||
@@ -40,7 +40,7 @@
|
|||||||
|
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> systick<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> system<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> time <20><>ʱһ<CAB1>ֵ<EFBFBD>ʱ<EFBFBD>䣨<EFBFBD><E4A3A8>λΪ<CEBB><CEAA><EFBFBD>룬<EFBFBD><EBA3AC><EFBFBD><EFBFBD><EFBFBD>÷<EFBFBD>Χ0-20000000<30><30>
|
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> time <20><>ʱһ<CAB1>ֵ<EFBFBD>ʱ<EFBFBD>䣨<EFBFBD><E4A3A8>λΪ<CEBB><CEAA><EFBFBD>룬<EFBFBD><EBA3AC><EFBFBD><EFBFBD><EFBFBD>÷<EFBFBD>Χ0-20000000<30><30>
|
||||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> num <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> num <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||||
@@ -60,3 +60,25 @@ void system_delay (uint32 time, uint32 num)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> system <><CEA2> <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
||||||
|
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> time <20><>ʱʱ<CAB1><CAB1> <20><>λ<EFBFBD><CEBB>us
|
||||||
|
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||||
|
// ʹ<><CAB9>ʾ<EFBFBD><CABE> system_delay_us(100); // <20><>ʱ100<30><CEA2>
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
void system_delay_us (uint32 time)
|
||||||
|
{
|
||||||
|
system_delay(time*1000, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> system <20><><EFBFBD><EFBFBD> <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
||||||
|
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> time <20><>ʱʱ<CAB1><CAB1> <20><>λ<EFBFBD><CEBB>ms
|
||||||
|
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||||
|
// ʹ<><CAB9>ʾ<EFBFBD><CABE> system_delay_ms(100); // <20><>ʱ100<30><30><EFBFBD><EFBFBD>
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
void system_delay_ms (uint32 time)
|
||||||
|
{
|
||||||
|
system_delay(1000000, time);
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -38,13 +38,10 @@
|
|||||||
|
|
||||||
#include "zf_common_typedef.h"
|
#include "zf_common_typedef.h"
|
||||||
|
|
||||||
|
|
||||||
void system_delay (uint32 time, uint32 num);
|
|
||||||
|
|
||||||
//====================================================<3D><>ʱ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
//====================================================<3D><>ʱ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||||
#define system_delay_ms(time) system_delay((1000000), (time)) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<CAB1><CAB1> <20><>λms
|
void system_delay (uint32 time, uint32 num);
|
||||||
#define system_delay_us(time) system_delay((time*1000), (1)) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<CAB1><CAB1> <20><>λus
|
void system_delay_us (uint32 time);
|
||||||
#define system_delay_ns(time) system_delay((time), (1)) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<CAB1><CAB1> <20><>λns
|
void system_delay_ms (uint32 time);
|
||||||
//====================================================<3D><>ʱ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
//====================================================<3D><>ʱ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -41,7 +41,6 @@ IFX_INTERRUPT(cc60_pit_ch0_isr, 0, CCU6_0_CH0_ISR_PRIORITY)
|
|||||||
{
|
{
|
||||||
interrupt_global_enable(0); // <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
|
interrupt_global_enable(0); // <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
|
||||||
pit_clear_flag(CCU60_CH0);
|
pit_clear_flag(CCU60_CH0);
|
||||||
tsl1401_collect_pit_handler(); // <20><><EFBFBD><EFBFBD>CCD<43>ɼ<EFBFBD>
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -75,7 +74,6 @@ IFX_INTERRUPT(cc61_pit_ch1_isr, 0, CCU6_1_CH1_ISR_PRIORITY)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
// **************************** PIT<49>жϺ<D0B6><CFBA><EFBFBD> ****************************
|
// **************************** PIT<49>жϺ<D0B6><CFBA><EFBFBD> ****************************
|
||||||
|
|
||||||
@@ -88,9 +86,6 @@ IFX_INTERRUPT(exti_ch0_ch4_isr, 0, EXTI_CH0_CH4_INT_PRIO)
|
|||||||
{
|
{
|
||||||
exti_flag_clear(ERU_CH0_REQ0_P15_4);
|
exti_flag_clear(ERU_CH0_REQ0_P15_4);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(exti_flag_get(ERU_CH4_REQ13_P15_5)) // ͨ<><CDA8>4<EFBFBD>ж<EFBFBD>
|
if(exti_flag_get(ERU_CH4_REQ13_P15_5)) // ͨ<><CDA8>4<EFBFBD>ж<EFBFBD>
|
||||||
@@ -119,8 +114,6 @@ IFX_INTERRUPT(exti_ch1_ch5_isr, 0, EXTI_CH1_CH5_INT_PRIO)
|
|||||||
exti_flag_clear(ERU_CH5_REQ1_P15_8);
|
exti_flag_clear(ERU_CH5_REQ1_P15_8);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -263,7 +256,7 @@ IFX_INTERRUPT(uart3_rx_isr, 0, UART3_RX_INT_PRIO)
|
|||||||
IfxAsclin_Asc_isrReceive(&uart3_handle);
|
IfxAsclin_Asc_isrReceive(&uart3_handle);
|
||||||
|
|
||||||
|
|
||||||
|
gps_uart_callback();
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,3 +1,7 @@
|
|||||||
|
V3.1.6
|
||||||
|
<20><EFBFBD>GPSʹ<53>ô<EFBFBD><C3B4>ںţ<DABA><C5A3>Ż<EFBFBD>GPS<50><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
isr.c<><63><EFBFBD>Ƴ<EFBFBD>CCD<43>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
<20>İ<DEB8><C4B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>İ<EFBFBD><C4B0><EFBFBD><EFBFBD>˿ںţ<DABA><C5A3><EFBFBD><EFBFBD><EFBFBD>V2.6<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
V3.1.5
|
V3.1.5
|
||||||
<20><EFBFBD>Ӳ<EFBFBD><D3B2>SPI<50><49>ʼ<EFBFBD><CABC>ʱѡ<CAB1><D1A1><EFBFBD><EFBFBD>CS<43><53><EFBFBD>ţ<EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD>ɻ<EFBFBD><C9BB><EFBFBD>ʼ<EFBFBD><CABC>Ĭ<EFBFBD><C4AC>CS<43><53><EFBFBD>ŵ<EFBFBD>bug
|
<20><EFBFBD>Ӳ<EFBFBD><D3B2>SPI<50><49>ʼ<EFBFBD><CABC>ʱѡ<CAB1><D1A1><EFBFBD><EFBFBD>CS<43><53><EFBFBD>ţ<EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD>ɻ<EFBFBD><C9BB><EFBFBD>ʼ<EFBFBD><CABC>Ĭ<EFBFBD><C4AC>CS<43><53><EFBFBD>ŵ<EFBFBD>bug
|
||||||
V3.1.4
|
V3.1.4
|
||||||
|
|||||||
Binary file not shown.
@@ -43,24 +43,25 @@
|
|||||||
* ------------------------------------
|
* ------------------------------------
|
||||||
********************************************************************************************************************/
|
********************************************************************************************************************/
|
||||||
|
|
||||||
|
#include "math.h"
|
||||||
#include "zf_common_function.h"
|
#include "zf_common_function.h"
|
||||||
#include "zf_common_fifo.h"
|
#include "zf_common_fifo.h"
|
||||||
#include "zf_driver_delay.h"
|
#include "zf_driver_delay.h"
|
||||||
#include "zf_driver_uart.h"
|
#include "zf_driver_uart.h"
|
||||||
#include "zf_device_type.h"
|
|
||||||
#include "zf_device_gps_tau1201.h"
|
#include "zf_device_gps_tau1201.h"
|
||||||
|
|
||||||
#define GPS_TAU1201_BUFFER_SIZE (128)
|
#define GPS_TAU1201_BUFFER_SIZE ( 128 )
|
||||||
|
|
||||||
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>
|
uint8 gps_tau1201_flag = 0; // 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>
|
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>
|
static uint8 gps_tau1201_state = 0; // 1<><31>GPS<50><53>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
static fifo_struct gps_tau1201_receiver_fifo; //
|
static fifo_struct gps_tau1201_receiver_fifo; //
|
||||||
static uint8 gps_tau1201_receiver_buffer[GPS_TAU1201_BUFFER_SIZE]; // <20><><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
static uint8 gps_tau1201_receiver_buffer[GPS_TAU1201_BUFFER_SIZE]; // <20><><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
gps_state_enum gps_gga_state; // gga<67><61><EFBFBD><EFBFBD>״̬
|
gps_state_enum gps_gga_state = GPS_STATE_RECEIVING; // gga <EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
||||||
gps_state_enum gps_rmc_state; // rmc<6D><63><EFBFBD><EFBFBD>״̬
|
gps_state_enum gps_rmc_state = GPS_STATE_RECEIVING; // rmc <EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
||||||
|
|
||||||
static uint8 gps_gga_buffer[GPS_TAU1201_BUFFER_SIZE];
|
static uint8 gps_gga_buffer[GPS_TAU1201_BUFFER_SIZE];
|
||||||
static uint8 gps_rmc_buffer[GPS_TAU1201_BUFFER_SIZE];
|
static uint8 gps_rmc_buffer[GPS_TAU1201_BUFFER_SIZE];
|
||||||
@@ -75,11 +76,10 @@ static uint8 gps_rmc_buffer[GPS_TAU1201_BUFFER_SIZE];
|
|||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
static uint8 get_parameter_index (uint8 num, char *str)
|
static uint8 get_parameter_index (uint8 num, char *str)
|
||||||
{
|
{
|
||||||
uint8 i, j = 0;
|
uint8 i = 0, j = 0;
|
||||||
char *temp;
|
char *temp = strchr(str, '\n');
|
||||||
uint8 len = 0, len1;
|
uint8 len = 0, len1 = 0;
|
||||||
|
|
||||||
temp = strchr(str, '\n');
|
|
||||||
if(NULL != temp)
|
if(NULL != temp)
|
||||||
{
|
{
|
||||||
len = (uint8)((uint32)temp - (uint32)str + 1);
|
len = (uint8)((uint32)temp - (uint32)str + 1);
|
||||||
@@ -87,7 +87,7 @@ static uint8 get_parameter_index (uint8 num, char *str)
|
|||||||
|
|
||||||
for(i = 0; i < len; i ++)
|
for(i = 0; i < len; i ++)
|
||||||
{
|
{
|
||||||
if(str[i] == ',')
|
if(',' == str[i])
|
||||||
{
|
{
|
||||||
j ++;
|
j ++;
|
||||||
}
|
}
|
||||||
@@ -111,8 +111,8 @@ static uint8 get_parameter_index (uint8 num, char *str)
|
|||||||
static int get_int_number (char *s)
|
static int get_int_number (char *s)
|
||||||
{
|
{
|
||||||
char buf[10];
|
char buf[10];
|
||||||
uint8 i;
|
uint8 i = 0;
|
||||||
int return_value;
|
int return_value = 0;
|
||||||
i = get_parameter_index(1, s);
|
i = get_parameter_index(1, s);
|
||||||
i = i - 1;
|
i = i - 1;
|
||||||
strncpy(buf, s, i);
|
strncpy(buf, s, i);
|
||||||
@@ -130,9 +130,9 @@ static int get_int_number (char *s)
|
|||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
static float get_float_number (char *s)
|
static float get_float_number (char *s)
|
||||||
{
|
{
|
||||||
uint8 i;
|
uint8 i = 0;
|
||||||
char buf[15];
|
char buf[15];
|
||||||
float return_value;
|
float return_value = 0;
|
||||||
|
|
||||||
i = get_parameter_index(1, s);
|
i = get_parameter_index(1, s);
|
||||||
i = i - 1;
|
i = i - 1;
|
||||||
@@ -151,9 +151,9 @@ static float get_float_number (char *s)
|
|||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
static double get_double_number (char *s)
|
static double get_double_number (char *s)
|
||||||
{
|
{
|
||||||
uint8 i;
|
uint8 i = 0;
|
||||||
char buf[15];
|
char buf[15];
|
||||||
double return_value;
|
double return_value = 0;
|
||||||
|
|
||||||
i = get_parameter_index(1, s);
|
i = get_parameter_index(1, s);
|
||||||
i = i - 1;
|
i = i - 1;
|
||||||
@@ -172,10 +172,10 @@ static double get_double_number (char *s)
|
|||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
static void utc_to_btc (gps_time_struct *time)
|
static void utc_to_btc (gps_time_struct *time)
|
||||||
{
|
{
|
||||||
uint8 day_num;
|
uint8 day_num = 0;
|
||||||
|
|
||||||
time->hour = time->hour + 8;
|
time->hour = time->hour + 8;
|
||||||
if(time->hour > 23)
|
if(23 < time->hour)
|
||||||
{
|
{
|
||||||
time->hour -= 24;
|
time->hour -= 24;
|
||||||
time->day += 1;
|
time->day += 1;
|
||||||
@@ -183,7 +183,7 @@ static void utc_to_btc (gps_time_struct *time)
|
|||||||
if(2 == time->month)
|
if(2 == time->month)
|
||||||
{
|
{
|
||||||
day_num = 28;
|
day_num = 28;
|
||||||
if((time->year % 4 == 0 && time->year % 100 != 0) || time->year % 400 == 0) // <20>ж<EFBFBD><D0B6>Ƿ<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>
|
if((0 == time->year % 4 && 0 != time->year % 100) || 0 == time->year % 400) // <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>
|
||||||
}
|
}
|
||||||
@@ -201,7 +201,7 @@ static void utc_to_btc (gps_time_struct *time)
|
|||||||
{
|
{
|
||||||
time->day = 1;
|
time->day = 1;
|
||||||
time->month ++;
|
time->month ++;
|
||||||
if(time->month > 12)
|
if(12 < time->month)
|
||||||
{
|
{
|
||||||
time->month -= 12;
|
time->month -= 12;
|
||||||
time->year ++;
|
time->year ++;
|
||||||
@@ -220,21 +220,21 @@ static void utc_to_btc (gps_time_struct *time)
|
|||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
static uint8 gps_gnrmc_parse (char *line, gps_info_struct *gps)
|
static uint8 gps_gnrmc_parse (char *line, gps_info_struct *gps)
|
||||||
{
|
{
|
||||||
uint8 state, temp;
|
uint8 state = 0, temp = 0;
|
||||||
|
|
||||||
double latitude; // γ<><CEB3>
|
double latitude = 0; // γ<><CEB3>
|
||||||
double longitude; // <20><><EFBFBD><EFBFBD>
|
double longitude = 0; // <20><><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
float lati_cent_tmp, lati_second_tmp;
|
double lati_cent_tmp = 0, lati_second_tmp = 0;
|
||||||
float long_cent_tmp, long_second_tmp;
|
double long_cent_tmp = 0, long_second_tmp = 0;
|
||||||
float speed_tmp;
|
float speed_tmp = 0;
|
||||||
char *buf = line;
|
char *buf = line;
|
||||||
uint8 return_state = 0;
|
uint8 return_state = 0;
|
||||||
|
|
||||||
state = buf[get_parameter_index(2, buf)];
|
state = buf[get_parameter_index(2, buf)];
|
||||||
|
|
||||||
gps->state = 0;
|
gps->state = 0;
|
||||||
if (state == 'A') // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
if('A' == state) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
{
|
{
|
||||||
return_state = 1;
|
return_state = 1;
|
||||||
gps->state = 1;
|
gps->state = 1;
|
||||||
@@ -247,17 +247,17 @@ static uint8 gps_gnrmc_parse (char *line, gps_info_struct *gps)
|
|||||||
gps->latitude_degree = (int)latitude / 100; // γ<><CEB3>ת<EFBFBD><D7AA>Ϊ<EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD>
|
gps->latitude_degree = (int)latitude / 100; // γ<><CEB3>ת<EFBFBD><D7AA>Ϊ<EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD>
|
||||||
lati_cent_tmp = (latitude - gps->latitude_degree * 100);
|
lati_cent_tmp = (latitude - gps->latitude_degree * 100);
|
||||||
gps->latitude_cent = (int)lati_cent_tmp;
|
gps->latitude_cent = (int)lati_cent_tmp;
|
||||||
lati_second_tmp = (lati_cent_tmp - gps->latitude_cent) * 10000;
|
lati_second_tmp = (lati_cent_tmp - gps->latitude_cent) * 6000;
|
||||||
gps->latitude_second = (int)lati_second_tmp;
|
gps->latitude_second = (int)lati_second_tmp;
|
||||||
|
|
||||||
gps->longitude_degree = (int)longitude / 100; // <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD>
|
gps->longitude_degree = (int)longitude / 100; // <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD>
|
||||||
long_cent_tmp = (longitude - gps->longitude_degree * 100);
|
long_cent_tmp = (longitude - gps->longitude_degree * 100);
|
||||||
gps->longitude_cent = (int)long_cent_tmp;
|
gps->longitude_cent = (int)long_cent_tmp;
|
||||||
long_second_tmp = (long_cent_tmp - gps->longitude_cent) * 10000;
|
long_second_tmp = (long_cent_tmp - gps->longitude_cent) * 6000;
|
||||||
gps->longitude_second = (int)long_second_tmp;
|
gps->longitude_second = (int)long_second_tmp;
|
||||||
|
|
||||||
gps->latitude = gps->latitude_degree + (double)gps->latitude_cent / 60 + (double)gps->latitude_second / 600000;
|
gps->latitude = gps->latitude_degree + lati_cent_tmp / 60;
|
||||||
gps->longitude = gps->longitude_degree + (double)gps->longitude_cent / 60 + (double)gps->longitude_second / 600000;
|
gps->longitude = gps->longitude_degree + long_cent_tmp / 60;
|
||||||
|
|
||||||
speed_tmp = get_float_number(&buf[get_parameter_index(7, buf)]); // <20>ٶ<EFBFBD>(<28><><EFBFBD><EFBFBD>/Сʱ)
|
speed_tmp = get_float_number(&buf[get_parameter_index(7, buf)]); // <20>ٶ<EFBFBD>(<28><><EFBFBD><EFBFBD>/Сʱ)
|
||||||
gps->speed = speed_tmp * 1.85f; // ת<><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>/Сʱ
|
gps->speed = speed_tmp * 1.85f; // ת<><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>/Сʱ
|
||||||
@@ -288,13 +288,13 @@ static uint8 gps_gnrmc_parse (char *line, gps_info_struct *gps)
|
|||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
static uint8 gps_gngga_parse (char *line, gps_info_struct *gps)
|
static uint8 gps_gngga_parse (char *line, gps_info_struct *gps)
|
||||||
{
|
{
|
||||||
uint8 state;
|
uint8 state = 0;
|
||||||
char *buf = line;
|
char *buf = line;
|
||||||
uint8 return_state = 0;
|
uint8 return_state = 0;
|
||||||
|
|
||||||
state = buf[get_parameter_index(2, buf)];
|
state = buf[get_parameter_index(2, buf)];
|
||||||
|
|
||||||
if (state != ',')
|
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>
|
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>
|
||||||
@@ -317,13 +317,13 @@ static uint8 gps_gngga_parse (char *line, gps_info_struct *gps)
|
|||||||
double get_two_points_distance (double latitude1, double longitude1, double latitude2, double longitude2)
|
double get_two_points_distance (double latitude1, double longitude1, double latitude2, double longitude2)
|
||||||
{
|
{
|
||||||
const double EARTH_RADIUS = 6378137; // <20><><EFBFBD><EFBFBD><EFBFBD>뾶(<28><>λ<EFBFBD><CEBB>m)
|
const double EARTH_RADIUS = 6378137; // <20><><EFBFBD><EFBFBD><EFBFBD>뾶(<28><>λ<EFBFBD><CEBB>m)
|
||||||
double rad_latitude1;
|
double rad_latitude1 = 0;
|
||||||
double rad_latitude2;
|
double rad_latitude2 = 0;
|
||||||
double rad_longitude1;
|
double rad_longitude1 = 0;
|
||||||
double rad_longitude2;
|
double rad_longitude2 = 0;
|
||||||
double distance;
|
double distance = 0;
|
||||||
double a;
|
double a = 0;
|
||||||
double b;
|
double b = 0;
|
||||||
|
|
||||||
rad_latitude1 = ANGLE_TO_RAD(latitude1); // <20><><EFBFBD>ݽǶȼ<C7B6><C8BC>㻡<EFBFBD><E3BBA1>
|
rad_latitude1 = ANGLE_TO_RAD(latitude1); // <20><><EFBFBD>ݽǶȼ<C7B6><C8BC>㻡<EFBFBD><E3BBA1>
|
||||||
rad_latitude2 = ANGLE_TO_RAD(latitude2);
|
rad_latitude2 = ANGLE_TO_RAD(latitude2);
|
||||||
@@ -359,7 +359,7 @@ double get_two_points_azimuth (double latitude1, double longitude1, double latit
|
|||||||
double x = sin(longitude2 - longitude1) * cos(latitude2);
|
double x = sin(longitude2 - longitude1) * cos(latitude2);
|
||||||
double y = cos(latitude1) * sin(latitude2) - sin(latitude1) * cos(latitude2) * cos(longitude2 - longitude1);
|
double y = cos(latitude1) * sin(latitude2) - sin(latitude1) * cos(latitude2) * cos(longitude2 - longitude1);
|
||||||
double angle = RAD_TO_ANGLE(atan2(x, y));
|
double angle = RAD_TO_ANGLE(atan2(x, y));
|
||||||
return ((angle > 0) ? angle : (angle + 360));
|
return ((0 < angle) ? angle : (angle + 360));
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
@@ -375,16 +375,16 @@ uint8 gps_data_parse (void)
|
|||||||
uint8 check_buffer[5] = {'0', 'x', 0x00, 0x00, 0x00};
|
uint8 check_buffer[5] = {'0', 'x', 0x00, 0x00, 0x00};
|
||||||
uint8 bbc_xor_origin = 0;
|
uint8 bbc_xor_origin = 0;
|
||||||
uint8 bbc_xor_calculation = 0;
|
uint8 bbc_xor_calculation = 0;
|
||||||
uint32 data_len;
|
uint32 data_len = 0;
|
||||||
|
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
if(GPS_STATE_RECEIVED == gps_rmc_state)
|
if(GPS_STATE_RECEIVED == gps_rmc_state)
|
||||||
{
|
{
|
||||||
gps_rmc_state = GPS_STATE_PARSING;
|
gps_rmc_state = GPS_STATE_PARSING;
|
||||||
strncpy((char *)&check_buffer[2], strchr((const char *)gps_rmc_buffer, '*')+1, 2);
|
strncpy((char *)&check_buffer[2], strchr((const char *)gps_rmc_buffer, '*') + 1, 2);
|
||||||
bbc_xor_origin = (uint8)func_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 ++)
|
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];
|
bbc_xor_calculation ^= gps_rmc_buffer[data_len];
|
||||||
}
|
}
|
||||||
@@ -402,10 +402,10 @@ uint8 gps_data_parse (void)
|
|||||||
if(GPS_STATE_RECEIVED == gps_gga_state)
|
if(GPS_STATE_RECEIVED == gps_gga_state)
|
||||||
{
|
{
|
||||||
gps_gga_state = GPS_STATE_PARSING;
|
gps_gga_state = GPS_STATE_PARSING;
|
||||||
strncpy((char *)&check_buffer[2], strchr((const char *)gps_gga_buffer, '*')+1, 2);
|
strncpy((char *)&check_buffer[2], strchr((const char *)gps_gga_buffer, '*') + 1, 2);
|
||||||
bbc_xor_origin = (uint8)func_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 ++)
|
for(bbc_xor_calculation = gps_gga_buffer[1], data_len = 2; '*' != gps_gga_buffer[data_len]; data_len ++)
|
||||||
{
|
{
|
||||||
bbc_xor_calculation ^= gps_gga_buffer[data_len];
|
bbc_xor_calculation ^= gps_gga_buffer[data_len];
|
||||||
}
|
}
|
||||||
@@ -435,7 +435,7 @@ uint8 gps_data_parse (void)
|
|||||||
void gps_uart_callback (void)
|
void gps_uart_callback (void)
|
||||||
{
|
{
|
||||||
uint8 temp_gps[6];
|
uint8 temp_gps[6];
|
||||||
uint32 temp_length;
|
uint32 temp_length = 0;
|
||||||
|
|
||||||
if(gps_tau1201_state)
|
if(gps_tau1201_state)
|
||||||
{
|
{
|
||||||
@@ -507,8 +507,7 @@ uint8 gps_init (void)
|
|||||||
fifo_init(&gps_tau1201_receiver_fifo, FIFO_DATA_8BIT, gps_tau1201_receiver_buffer, GPS_TAU1201_BUFFER_SIZE);
|
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>
|
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);
|
uart_init(GPS_TAU1201_UART, 115200, GPS_TAU1201_RX, GPS_TAU1201_TX);
|
||||||
|
uart_rx_interrupt(GPS_TAU1201_UART, 0);
|
||||||
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
|
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);
|
system_delay_ms(200);
|
||||||
|
|||||||
@@ -49,9 +49,9 @@
|
|||||||
#include "zf_common_typedef.h"
|
#include "zf_common_typedef.h"
|
||||||
|
|
||||||
//===============================================GPS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
//===============================================GPS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||||
#define GPS_TAU1201_UART (UART_2)
|
#define GPS_TAU1201_UART (UART_3)
|
||||||
#define GPS_TAU1201_RX (UART2_TX_P10_5) // GPS RX<52><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD>
|
#define GPS_TAU1201_RX (UART3_TX_P15_6) // GPS RX<52><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD>
|
||||||
#define GPS_TAU1201_TX (UART2_RX_P10_6) // GPS TX<54><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
#define GPS_TAU1201_TX (UART3_RX_P15_7) // GPS TX<54><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
//===============================================GPS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
//===============================================GPS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||||
|
|
||||||
#define ANGLE_TO_RAD(x) ((x) * PI / 180.0) // <20>Ƕ<EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>
|
#define ANGLE_TO_RAD(x) ((x) * PI / 180.0) // <20>Ƕ<EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>
|
||||||
|
|||||||
@@ -137,8 +137,8 @@
|
|||||||
//================================================<3D><><EFBFBD><EFBFBD> IMU963RA <20>ڲ<EFBFBD><DAB2><EFBFBD>ַ================================================
|
//================================================<3D><><EFBFBD><EFBFBD> IMU963RA <20>ڲ<EFBFBD><DAB2><EFBFBD>ַ================================================
|
||||||
|
|
||||||
//===============================================<3D><><EFBFBD><EFBFBD> IMU963RA <20><><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD>===============================================
|
//===============================================<3D><><EFBFBD><EFBFBD> IMU963RA <20><><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD>===============================================
|
||||||
extern int16 imu963ra_acc_x, imu963ra_acc_y, imu963ra_acc_z; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
extern int16 imu963ra_gyro_x, imu963ra_gyro_y, imu963ra_gyro_z; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
extern int16 imu963ra_gyro_x, imu963ra_gyro_y, imu963ra_gyro_z; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
extern int16 imu963ra_acc_x, imu963ra_acc_y, imu963ra_acc_z; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
||||||
extern int16 imu963ra_mag_x, imu963ra_mag_y, imu963ra_mag_z; // <20><><EFBFBD><EFBFBD><EFBFBD>شż<D8B4><C5BC><EFBFBD><EFBFBD><EFBFBD>
|
extern int16 imu963ra_mag_x, imu963ra_mag_y, imu963ra_mag_z; // <20><><EFBFBD><EFBFBD><EFBFBD>شż<D8B4><C5BC><EFBFBD><EFBFBD><EFBFBD>
|
||||||
//===============================================<3D><><EFBFBD><EFBFBD> IMU963RA <20><><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD>===============================================
|
//===============================================<3D><><EFBFBD><EFBFBD> IMU963RA <20><><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD>===============================================
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*********************************************************************************************************************
|
/*********************************************************************************************************************
|
||||||
* MM32F327X-G9P Opensourec Library <20><><EFBFBD><EFBFBD>MM32F327X-G9P <20><>Դ<EFBFBD>⣩<EFBFBD><E2A3A9>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ڹٷ<DAB9> SDK <20>ӿڵĵ<DAB5><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4>
|
* TC264 Opensourec Library <20><><EFBFBD><EFBFBD>TC264 <20><>Դ<EFBFBD>⣩<EFBFBD><E2A3A9>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ڹٷ<DAB9> SDK <20>ӿڵĵ<DAB5><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4>
|
||||||
* Copyright (c) 2022 SEEKFREE <20><><EFBFBD>ɿƼ<C9BF>
|
* Copyright (c) 2022 SEEKFREE <20><><EFBFBD>ɿƼ<C9BF>
|
||||||
*
|
*
|
||||||
* <20><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD> MM32F327X-G9P <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
|
* <20><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD> TC264 <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
|
||||||
*
|
*
|
||||||
* MM32F327X-G9P <20><>Դ<EFBFBD><D4B4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
* TC264 <20><>Դ<EFBFBD><D4B4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
* <20><><EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD><D4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᷢ<EFBFBD><E1B7A2><EFBFBD><EFBFBD> GPL<50><4C>GNU General Public License<73><65><EFBFBD><EFBFBD> GNUͨ<55>ù<EFBFBD><C3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
* <20><><EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD><D4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᷢ<EFBFBD><E1B7A2><EFBFBD><EFBFBD> GPL<50><4C>GNU General Public License<73><65><EFBFBD><EFBFBD> GNUͨ<55>ù<EFBFBD><C3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
* <20><> GPL <20>ĵ<EFBFBD>3<EFBFBD>棨<EFBFBD><E6A3A8> GPL3.0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD>κκ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>İ汾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><DEB8><EFBFBD>
|
* <20><> GPL <20>ĵ<EFBFBD>3<EFBFBD>棨<EFBFBD><E6A3A8> GPL3.0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD>κκ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>İ汾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><DEB8><EFBFBD>
|
||||||
*
|
*
|
||||||
@@ -24,13 +24,13 @@
|
|||||||
* <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> zf_device_key
|
* <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> zf_device_key
|
||||||
* <20><>˾<EFBFBD><CBBE><EFBFBD><EFBFBD> <20>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD><EFBFBD>˾
|
* <20><>˾<EFBFBD><CBBE><EFBFBD><EFBFBD> <20>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD><EFBFBD>˾
|
||||||
* <20>汾<EFBFBD><E6B1BE>Ϣ <20>鿴 libraries/doc <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> version <20>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
|
* <20>汾<EFBFBD><E6B1BE>Ϣ <20>鿴 libraries/doc <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> version <20>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
|
||||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IAR 8.32.4 or MDK 5.37
|
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ADS v1.8.0
|
||||||
* <20><><EFBFBD><EFBFBD>ƽ̨ MM32F327X_G9P
|
* <20><><EFBFBD><EFBFBD>ƽ̨ TC264D
|
||||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> https://seekfree.taobao.com/
|
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> https://seekfree.taobao.com/
|
||||||
*
|
*
|
||||||
* <20>ļ<DEB8>¼
|
* <20>ļ<DEB8>¼
|
||||||
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
|
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
|
||||||
* 2022-08-10 Teternal first version
|
* 2022-09-15 pudding first version
|
||||||
********************************************************************************************************************/
|
********************************************************************************************************************/
|
||||||
/*********************************************************************************************************************
|
/*********************************************************************************************************************
|
||||||
* <20><><EFBFBD>߶<EFBFBD><DFB6>壺
|
* <20><><EFBFBD>߶<EFBFBD><DFB6>壺
|
||||||
@@ -45,6 +45,7 @@
|
|||||||
********************************************************************************************************************/
|
********************************************************************************************************************/
|
||||||
|
|
||||||
#include "zf_common_debug.h"
|
#include "zf_common_debug.h"
|
||||||
|
|
||||||
#include "zf_device_key.h"
|
#include "zf_device_key.h"
|
||||||
|
|
||||||
static uint32 scanner_period = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
static uint32 scanner_period = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
@@ -65,54 +66,21 @@ void key_scanner (void)
|
|||||||
uint8 i = 0;
|
uint8 i = 0;
|
||||||
for(i = 0; i < KEY_NUMBER; i ++)
|
for(i = 0; i < KEY_NUMBER; i ++)
|
||||||
{
|
{
|
||||||
switch(key_state[i])
|
if(KEY_RELEASE_LEVEL != gpio_get_level(key_index[i])) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
{
|
{
|
||||||
case KEY_RELEASE:
|
key_press_time[i] ++;
|
||||||
if(KEY_RELEASE_LEVEL != gpio_get_level(key_index[i]))
|
if(key_press_time[i] >= KEY_LONG_PRESS_PERIOD / scanner_period)
|
||||||
{
|
{
|
||||||
if(++ key_press_time[i] >= KEY_MAX_SHOCK_PERIOD / scanner_period)
|
key_state[i] = KEY_LONG_PRESS;
|
||||||
{
|
}
|
||||||
key_state[i] = KEY_SHORT_PRESS;
|
}
|
||||||
}
|
else // <20><><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>
|
||||||
else
|
{
|
||||||
{
|
if(key_state[i] != KEY_LONG_PRESS && key_press_time[i] >= KEY_MAX_SHOCK_PERIOD / scanner_period)
|
||||||
key_state[i] = KEY_CHECK_SHOCK;
|
{
|
||||||
}
|
key_state[i] = KEY_SHORT_PRESS;
|
||||||
}
|
}
|
||||||
break;
|
key_press_time[i] = 0;
|
||||||
case KEY_CHECK_SHOCK:
|
|
||||||
if(KEY_RELEASE_LEVEL != gpio_get_level(key_index[i]))
|
|
||||||
{
|
|
||||||
if(++ key_press_time[i] >= KEY_MAX_SHOCK_PERIOD / scanner_period)
|
|
||||||
{
|
|
||||||
key_state[i] = KEY_SHORT_PRESS;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
key_state[i] = KEY_RELEASE;
|
|
||||||
key_press_time[i] = 0;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case KEY_SHORT_PRESS:
|
|
||||||
if(++ key_press_time[i] >= KEY_LONG_PRESS_PERIOD / scanner_period)
|
|
||||||
{
|
|
||||||
key_state[i] = KEY_LONG_PRESS;
|
|
||||||
}
|
|
||||||
if(KEY_RELEASE_LEVEL == gpio_get_level(key_index[i]))
|
|
||||||
{
|
|
||||||
key_state[i] = KEY_RELEASE;
|
|
||||||
key_press_time[i] = 0;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case KEY_LONG_PRESS:
|
|
||||||
if(KEY_RELEASE_LEVEL == gpio_get_level(key_index[i]))
|
|
||||||
{
|
|
||||||
key_state[i] = KEY_RELEASE;
|
|
||||||
key_press_time[i] = 0;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -129,6 +97,33 @@ key_state_enum key_get_state (key_index_enum key_n)
|
|||||||
return key_state[key_n];
|
return key_state[key_n];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>״̬
|
||||||
|
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> key_n <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void <20><>
|
||||||
|
// ʹ<><CAB9>ʾ<EFBFBD><CABE> key_clear_state(KEY_1);
|
||||||
|
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
void key_clear_state (key_index_enum key_n)
|
||||||
|
{
|
||||||
|
key_state[key_n] = KEY_RELEASE;
|
||||||
|
}
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>а<EFBFBD><D0B0><EFBFBD>״̬
|
||||||
|
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> void <20><>
|
||||||
|
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void <20><>
|
||||||
|
// ʹ<><CAB9>ʾ<EFBFBD><CABE> key_clear_all_state();
|
||||||
|
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
void key_clear_all_state (void)
|
||||||
|
{
|
||||||
|
key_state[0] = KEY_RELEASE;
|
||||||
|
key_state[1] = KEY_RELEASE;
|
||||||
|
key_state[2] = KEY_RELEASE;
|
||||||
|
key_state[3] = KEY_RELEASE;
|
||||||
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
||||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> period <20><><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ժ<EFBFBD><D4BA><EFBFBD>Ϊ<EFBFBD><CEAA>λ
|
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> period <20><><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ժ<EFBFBD><D4BA><EFBFBD>Ϊ<EFBFBD><CEAA>λ
|
||||||
@@ -136,17 +131,14 @@ key_state_enum key_get_state (key_index_enum key_n)
|
|||||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> key_init(10);
|
// ʹ<><CAB9>ʾ<EFBFBD><CABE> key_init(10);
|
||||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
uint8 key_init (uint32 period)
|
void key_init (uint32 period)
|
||||||
{
|
{
|
||||||
|
zf_assert(0 < period);
|
||||||
uint8 loop_temp = 0;
|
uint8 loop_temp = 0;
|
||||||
|
|
||||||
zf_assert(0 < period); // ɨ<><C9A8><EFBFBD><EFBFBD><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0
|
|
||||||
|
|
||||||
for(loop_temp = 0; loop_temp < KEY_NUMBER; loop_temp ++)
|
for(loop_temp = 0; loop_temp < KEY_NUMBER; loop_temp ++)
|
||||||
{
|
{
|
||||||
gpio_init(key_index[loop_temp], GPI, GPIO_HIGH, GPI_PULL_UP);
|
gpio_init(key_index[loop_temp], GPI, GPIO_HIGH, GPI_PULL_UP);
|
||||||
key_state[loop_temp] = KEY_RELEASE;
|
key_state[loop_temp] = KEY_RELEASE;
|
||||||
}
|
}
|
||||||
scanner_period = period;
|
scanner_period = period;
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*********************************************************************************************************************
|
/*********************************************************************************************************************
|
||||||
* MM32F327X-G9P Opensourec Library <20><><EFBFBD><EFBFBD>MM32F327X-G9P <20><>Դ<EFBFBD>⣩<EFBFBD><E2A3A9>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ڹٷ<DAB9> SDK <20>ӿڵĵ<DAB5><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4>
|
* TC264 Opensourec Library <20><><EFBFBD><EFBFBD>TC264 <20><>Դ<EFBFBD>⣩<EFBFBD><E2A3A9>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ڹٷ<DAB9> SDK <20>ӿڵĵ<DAB5><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4>
|
||||||
* Copyright (c) 2022 SEEKFREE <20><><EFBFBD>ɿƼ<C9BF>
|
* Copyright (c) 2022 SEEKFREE <20><><EFBFBD>ɿƼ<C9BF>
|
||||||
*
|
*
|
||||||
* <20><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD> MM32F327X-G9P <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
|
* <20><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD> TC264 <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
|
||||||
*
|
*
|
||||||
* MM32F327X-G9P <20><>Դ<EFBFBD><D4B4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
* TC264 <20><>Դ<EFBFBD><D4B4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
* <20><><EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD><D4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᷢ<EFBFBD><E1B7A2><EFBFBD><EFBFBD> GPL<50><4C>GNU General Public License<73><65><EFBFBD><EFBFBD> GNUͨ<55>ù<EFBFBD><C3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
* <20><><EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD><D4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᷢ<EFBFBD><E1B7A2><EFBFBD><EFBFBD> GPL<50><4C>GNU General Public License<73><65><EFBFBD><EFBFBD> GNUͨ<55>ù<EFBFBD><C3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
* <20><> GPL <20>ĵ<EFBFBD>3<EFBFBD>棨<EFBFBD><E6A3A8> GPL3.0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD>κκ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>İ汾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><DEB8><EFBFBD>
|
* <20><> GPL <20>ĵ<EFBFBD>3<EFBFBD>棨<EFBFBD><E6A3A8> GPL3.0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD>κκ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>İ汾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><DEB8><EFBFBD>
|
||||||
*
|
*
|
||||||
@@ -24,13 +24,13 @@
|
|||||||
* <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> zf_device_key
|
* <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> zf_device_key
|
||||||
* <20><>˾<EFBFBD><CBBE><EFBFBD><EFBFBD> <20>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD><EFBFBD>˾
|
* <20><>˾<EFBFBD><CBBE><EFBFBD><EFBFBD> <20>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD><EFBFBD>˾
|
||||||
* <20>汾<EFBFBD><E6B1BE>Ϣ <20>鿴 libraries/doc <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> version <20>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
|
* <20>汾<EFBFBD><E6B1BE>Ϣ <20>鿴 libraries/doc <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> version <20>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
|
||||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IAR 8.32.4 or MDK 5.37
|
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ADS v1.8.0
|
||||||
* <20><><EFBFBD><EFBFBD>ƽ̨ MM32F327X_G9P
|
* <20><><EFBFBD><EFBFBD>ƽ̨ TC264D
|
||||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> https://seekfree.taobao.com/
|
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> https://seekfree.taobao.com/
|
||||||
*
|
*
|
||||||
* <20>ļ<DEB8>¼
|
* <20>ļ<DEB8>¼
|
||||||
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
|
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
|
||||||
* 2022-08-10 Teternal first version
|
* 2022-09-15 pudding first version
|
||||||
********************************************************************************************************************/
|
********************************************************************************************************************/
|
||||||
/*********************************************************************************************************************
|
/*********************************************************************************************************************
|
||||||
* <20><><EFBFBD>߶<EFBFBD><DFB6>壺
|
* <20><><EFBFBD>߶<EFBFBD><DFB6>壺
|
||||||
@@ -53,13 +53,12 @@
|
|||||||
// <20><><EFBFBD>尴<EFBFBD><E5B0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ĭ<>϶<EFBFBD><CFB6><EFBFBD><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD>
|
// <20><><EFBFBD>尴<EFBFBD><E5B0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ĭ<>϶<EFBFBD><CFB6><EFBFBD><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD>
|
||||||
// <20><><EFBFBD>尴<EFBFBD><E5B0B4>˳<EFBFBD><CBB3><EFBFBD><EFBFBD>Ӧ<EFBFBD>·<EFBFBD> key_index_enum ö<><C3B6><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><CBB3>
|
// <20><><EFBFBD>尴<EFBFBD><E5B0B4>˳<EFBFBD><CBB3><EFBFBD><EFBFBD>Ӧ<EFBFBD>·<EFBFBD> key_index_enum ö<><C3B6><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><CBB3>
|
||||||
// <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ô<EFBFBD><C3B4>Ҫͬ<D2AA><CDAC><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD> key_index_enum ö<><C3B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
// <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ô<EFBFBD><C3B4>Ҫͬ<D2AA><CDAC><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD> key_index_enum ö<><C3B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
#define KEY_LIST {P22_0, P22_1, P22_2, P22_3}
|
#define KEY_LIST {P20_6, P20_7, P11_2, P11_3}
|
||||||
|
|
||||||
#define KEY_RELEASE_LEVEL (GPIO_HIGH) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>״̬ Ҳ<><D2B2><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ͷ<EFBFBD>״̬<D7B4>ĵ<EFBFBD>ƽ
|
#define KEY_RELEASE_LEVEL (GPIO_HIGH) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>״̬ Ҳ<><D2B2><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ͷ<EFBFBD>״̬<D7B4>ĵ<EFBFBD>ƽ
|
||||||
#define KEY_MAX_SHOCK_PERIOD (10 ) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>źŻᱻ<C5BB><E1B1BB>Ϊ<EFBFBD><CEAA><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD><EFBFBD>
|
#define KEY_MAX_SHOCK_PERIOD (10 ) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>źŻᱻ<C5BB><E1B1BB>Ϊ<EFBFBD><CEAA><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD><EFBFBD>
|
||||||
#define KEY_LONG_PRESS_PERIOD (1000 ) // <20><>С<EFBFBD><D0A1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>
|
#define KEY_LONG_PRESS_PERIOD (1000 ) // <20><>С<EFBFBD><D0A1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>źŻᱻ<C5BB><E1B1BB>Ϊ<EFBFBD>dz<EFBFBD><C7B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
//=================================================<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ṹ<EFBFBD><E1B9B9>===============================================
|
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
KEY_1,
|
KEY_1,
|
||||||
@@ -72,15 +71,14 @@ typedef enum
|
|||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
KEY_RELEASE, // <20><><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>״̬
|
KEY_RELEASE, // <20><><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>״̬
|
||||||
KEY_CHECK_SHOCK, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
|
||||||
KEY_SHORT_PRESS, // <20><><EFBFBD><EFBFBD><EFBFBD>̰<EFBFBD>״̬
|
KEY_SHORT_PRESS, // <20><><EFBFBD><EFBFBD><EFBFBD>̰<EFBFBD>״̬
|
||||||
KEY_LONG_PRESS, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
KEY_LONG_PRESS, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
||||||
}key_state_enum;
|
}key_state_enum;
|
||||||
//=================================================<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ṹ<EFBFBD><E1B9B9>===============================================
|
|
||||||
|
|
||||||
//====================================================<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>=================================================
|
void key_scanner (void);
|
||||||
void key_scanner (void); // <20><><EFBFBD><EFBFBD>״̬ɨ<CCAC><C9A8>
|
key_state_enum key_get_state (key_index_enum key_n);
|
||||||
key_state_enum key_get_state (key_index_enum key_n); // <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>״̬
|
void key_clear_state (key_index_enum key_n);
|
||||||
uint8 key_init (uint32 period); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
void key_clear_all_state (void);
|
||||||
//====================================================<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>=================================================
|
void key_init (uint32 period);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -60,7 +60,7 @@
|
|||||||
|
|
||||||
// TSL1401 <20><><EFBFBD><EFBFBD><EFBFBD>ڲɼ<DAB2><C9BC><EFBFBD><EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD> ʹ<>õ<EFBFBD><C3B5>ĸ<EFBFBD> PIT <20><>Ҫ<EFBFBD><D2AA> <20><><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD> PIT <20><><EFBFBD>жϷ<D0B6><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
// TSL1401 <20><><EFBFBD><EFBFBD><EFBFBD>ڲɼ<DAB2><C9BC><EFBFBD><EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD> ʹ<>õ<EFBFBD><C3B5>ĸ<EFBFBD> PIT <20><>Ҫ<EFBFBD><D2AA> <20><><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD> PIT <20><><EFBFBD>жϷ<D0B6><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
#define TSL1401_EXPOSURE_TIME (10 ) // <20><><EFBFBD><EFBFBD> TSL1401 <20>ع<EFBFBD>ʱ<EFBFBD><CAB1> <20><>λ MS
|
#define TSL1401_EXPOSURE_TIME (10 ) // <20><><EFBFBD><EFBFBD> TSL1401 <20>ع<EFBFBD>ʱ<EFBFBD><CAB1> <20><>λ MS
|
||||||
#define TSL1401_PIT_INDEX (CCU60_CH0) // ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
#define TSL1401_PIT_INDEX (CCU61_CH1) // ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||||
#define TSL1401_AD_RESOLUTION (ADC_8BIT) // ADC <20><><EFBFBD><EFBFBD> 8bit
|
#define TSL1401_AD_RESOLUTION (ADC_8BIT) // ADC <20><><EFBFBD><EFBFBD> 8bit
|
||||||
#define TSL1401_DATA_LEN (128 ) // TSL1401 <20><><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
|
#define TSL1401_DATA_LEN (128 ) // TSL1401 <20><><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
|
||||||
//=================================================TSL1401 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
//=================================================TSL1401 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||||
|
|||||||
@@ -53,9 +53,7 @@ typedef enum
|
|||||||
NO_WIRELESS = 0, // <20><><EFBFBD>豸
|
NO_WIRELESS = 0, // <20><><EFBFBD>豸
|
||||||
WIRELESS_UART, // <20><><EFBFBD>ߴ<EFBFBD><DFB4><EFBFBD>
|
WIRELESS_UART, // <20><><EFBFBD>ߴ<EFBFBD><DFB4><EFBFBD>
|
||||||
BLUETOOTH_CH9141, // <20><><EFBFBD><EFBFBD> CH9141
|
BLUETOOTH_CH9141, // <20><><EFBFBD><EFBFBD> CH9141
|
||||||
GPS_TAU1201,
|
WIFI_UART, // <20><><EFBFBD><EFBFBD> WiFi
|
||||||
WIFI_UART,
|
|
||||||
WIFI_SPI,
|
|
||||||
}wireless_type_enum;
|
}wireless_type_enum;
|
||||||
//==============================================<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ö<><C3B6><EFBFBD><EFBFBD>==================================================
|
//==============================================<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ö<><C3B6><EFBFBD><EFBFBD>==================================================
|
||||||
|
|
||||||
|
|||||||
@@ -40,7 +40,7 @@
|
|||||||
|
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> systick<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> system<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> time <20><>ʱһ<CAB1>ֵ<EFBFBD>ʱ<EFBFBD>䣨<EFBFBD><E4A3A8>λΪ<CEBB><CEAA><EFBFBD>룬<EFBFBD><EBA3AC><EFBFBD><EFBFBD><EFBFBD>÷<EFBFBD>Χ0-20000000<30><30>
|
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> time <20><>ʱһ<CAB1>ֵ<EFBFBD>ʱ<EFBFBD>䣨<EFBFBD><E4A3A8>λΪ<CEBB><CEAA><EFBFBD>룬<EFBFBD><EBA3AC><EFBFBD><EFBFBD><EFBFBD>÷<EFBFBD>Χ0-20000000<30><30>
|
||||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> num <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> num <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||||
@@ -60,3 +60,25 @@ void system_delay (uint32 time, uint32 num)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> system <><CEA2> <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
||||||
|
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> time <20><>ʱʱ<CAB1><CAB1> <20><>λ<EFBFBD><CEBB>us
|
||||||
|
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||||
|
// ʹ<><CAB9>ʾ<EFBFBD><CABE> system_delay_us(100); // <20><>ʱ100<30><CEA2>
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
void system_delay_us (uint32 time)
|
||||||
|
{
|
||||||
|
system_delay(time*1000, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> system <20><><EFBFBD><EFBFBD> <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
||||||
|
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> time <20><>ʱʱ<CAB1><CAB1> <20><>λ<EFBFBD><CEBB>ms
|
||||||
|
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||||
|
// ʹ<><CAB9>ʾ<EFBFBD><CABE> system_delay_ms(100); // <20><>ʱ100<30><30><EFBFBD><EFBFBD>
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
void system_delay_ms (uint32 time)
|
||||||
|
{
|
||||||
|
system_delay(1000000, time);
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -38,13 +38,10 @@
|
|||||||
|
|
||||||
#include "zf_common_typedef.h"
|
#include "zf_common_typedef.h"
|
||||||
|
|
||||||
|
|
||||||
void system_delay (uint32 time, uint32 num);
|
|
||||||
|
|
||||||
//====================================================<3D><>ʱ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
//====================================================<3D><>ʱ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||||
#define system_delay_ms(time) system_delay((1000000), (time)) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<CAB1><CAB1> <20><>λms
|
void system_delay (uint32 time, uint32 num);
|
||||||
#define system_delay_us(time) system_delay((time*1000), (1)) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<CAB1><CAB1> <20><>λus
|
void system_delay_us (uint32 time);
|
||||||
#define system_delay_ns(time) system_delay((time), (1)) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<CAB1><CAB1> <20><>λns
|
void system_delay_ms (uint32 time);
|
||||||
//====================================================<3D><>ʱ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
//====================================================<3D><>ʱ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -41,7 +41,6 @@ IFX_INTERRUPT(cc60_pit_ch0_isr, 0, CCU6_0_CH0_ISR_PRIORITY)
|
|||||||
{
|
{
|
||||||
interrupt_global_enable(0); // <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
|
interrupt_global_enable(0); // <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
|
||||||
pit_clear_flag(CCU60_CH0);
|
pit_clear_flag(CCU60_CH0);
|
||||||
tsl1401_collect_pit_handler(); // <20><><EFBFBD><EFBFBD>CCD<43>ɼ<EFBFBD>
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -75,7 +74,6 @@ IFX_INTERRUPT(cc61_pit_ch1_isr, 0, CCU6_1_CH1_ISR_PRIORITY)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
// **************************** PIT<49>жϺ<D0B6><CFBA><EFBFBD> ****************************
|
// **************************** PIT<49>жϺ<D0B6><CFBA><EFBFBD> ****************************
|
||||||
|
|
||||||
@@ -88,9 +86,6 @@ IFX_INTERRUPT(exti_ch0_ch4_isr, 0, EXTI_CH0_CH4_INT_PRIO)
|
|||||||
{
|
{
|
||||||
exti_flag_clear(ERU_CH0_REQ0_P15_4);
|
exti_flag_clear(ERU_CH0_REQ0_P15_4);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(exti_flag_get(ERU_CH4_REQ13_P15_5)) // ͨ<><CDA8>4<EFBFBD>ж<EFBFBD>
|
if(exti_flag_get(ERU_CH4_REQ13_P15_5)) // ͨ<><CDA8>4<EFBFBD>ж<EFBFBD>
|
||||||
@@ -119,8 +114,6 @@ IFX_INTERRUPT(exti_ch1_ch5_isr, 0, EXTI_CH1_CH5_INT_PRIO)
|
|||||||
exti_flag_clear(ERU_CH5_REQ1_P15_8);
|
exti_flag_clear(ERU_CH5_REQ1_P15_8);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -263,7 +256,7 @@ IFX_INTERRUPT(uart3_rx_isr, 0, UART3_RX_INT_PRIO)
|
|||||||
IfxAsclin_Asc_isrReceive(&uart3_handle);
|
IfxAsclin_Asc_isrReceive(&uart3_handle);
|
||||||
|
|
||||||
|
|
||||||
|
gps_uart_callback();
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,3 +1,7 @@
|
|||||||
|
V3.1.6
|
||||||
|
<20><EFBFBD>GPSʹ<53>ô<EFBFBD><C3B4>ںţ<DABA><C5A3>Ż<EFBFBD>GPS<50><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
isr.c<><63><EFBFBD>Ƴ<EFBFBD>CCD<43>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
<20>İ<DEB8><C4B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>İ<EFBFBD><C4B0><EFBFBD><EFBFBD>˿ںţ<DABA><C5A3><EFBFBD><EFBFBD><EFBFBD>V2.6<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
V3.1.5
|
V3.1.5
|
||||||
<20><EFBFBD>Ӳ<EFBFBD><D3B2>SPI<50><49>ʼ<EFBFBD><CABC>ʱѡ<CAB1><D1A1><EFBFBD><EFBFBD>CS<43><53><EFBFBD>ţ<EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD>ɻ<EFBFBD><C9BB><EFBFBD>ʼ<EFBFBD><CABC>Ĭ<EFBFBD><C4AC>CS<43><53><EFBFBD>ŵ<EFBFBD>bug
|
<20><EFBFBD>Ӳ<EFBFBD><D3B2>SPI<50><49>ʼ<EFBFBD><CABC>ʱѡ<CAB1><D1A1><EFBFBD><EFBFBD>CS<43><53><EFBFBD>ţ<EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD>ɻ<EFBFBD><C9BB><EFBFBD>ʼ<EFBFBD><CABC>Ĭ<EFBFBD><C4AC>CS<43><53><EFBFBD>ŵ<EFBFBD>bug
|
||||||
V3.1.4
|
V3.1.4
|
||||||
|
|||||||
Binary file not shown.
@@ -43,24 +43,25 @@
|
|||||||
* ------------------------------------
|
* ------------------------------------
|
||||||
********************************************************************************************************************/
|
********************************************************************************************************************/
|
||||||
|
|
||||||
|
#include "math.h"
|
||||||
#include "zf_common_function.h"
|
#include "zf_common_function.h"
|
||||||
#include "zf_common_fifo.h"
|
#include "zf_common_fifo.h"
|
||||||
#include "zf_driver_delay.h"
|
#include "zf_driver_delay.h"
|
||||||
#include "zf_driver_uart.h"
|
#include "zf_driver_uart.h"
|
||||||
#include "zf_device_type.h"
|
|
||||||
#include "zf_device_gps_tau1201.h"
|
#include "zf_device_gps_tau1201.h"
|
||||||
|
|
||||||
#define GPS_TAU1201_BUFFER_SIZE (128)
|
#define GPS_TAU1201_BUFFER_SIZE ( 128 )
|
||||||
|
|
||||||
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>
|
uint8 gps_tau1201_flag = 0; // 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>
|
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>
|
static uint8 gps_tau1201_state = 0; // 1<><31>GPS<50><53>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
static fifo_struct gps_tau1201_receiver_fifo; //
|
static fifo_struct gps_tau1201_receiver_fifo; //
|
||||||
static uint8 gps_tau1201_receiver_buffer[GPS_TAU1201_BUFFER_SIZE]; // <20><><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
static uint8 gps_tau1201_receiver_buffer[GPS_TAU1201_BUFFER_SIZE]; // <20><><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
gps_state_enum gps_gga_state; // gga<67><61><EFBFBD><EFBFBD>״̬
|
gps_state_enum gps_gga_state = GPS_STATE_RECEIVING; // gga <EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
||||||
gps_state_enum gps_rmc_state; // rmc<6D><63><EFBFBD><EFBFBD>״̬
|
gps_state_enum gps_rmc_state = GPS_STATE_RECEIVING; // rmc <EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
||||||
|
|
||||||
static uint8 gps_gga_buffer[GPS_TAU1201_BUFFER_SIZE];
|
static uint8 gps_gga_buffer[GPS_TAU1201_BUFFER_SIZE];
|
||||||
static uint8 gps_rmc_buffer[GPS_TAU1201_BUFFER_SIZE];
|
static uint8 gps_rmc_buffer[GPS_TAU1201_BUFFER_SIZE];
|
||||||
@@ -75,11 +76,10 @@ static uint8 gps_rmc_buffer[GPS_TAU1201_BUFFER_SIZE];
|
|||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
static uint8 get_parameter_index (uint8 num, char *str)
|
static uint8 get_parameter_index (uint8 num, char *str)
|
||||||
{
|
{
|
||||||
uint8 i, j = 0;
|
uint8 i = 0, j = 0;
|
||||||
char *temp;
|
char *temp = strchr(str, '\n');
|
||||||
uint8 len = 0, len1;
|
uint8 len = 0, len1 = 0;
|
||||||
|
|
||||||
temp = strchr(str, '\n');
|
|
||||||
if(NULL != temp)
|
if(NULL != temp)
|
||||||
{
|
{
|
||||||
len = (uint8)((uint32)temp - (uint32)str + 1);
|
len = (uint8)((uint32)temp - (uint32)str + 1);
|
||||||
@@ -87,7 +87,7 @@ static uint8 get_parameter_index (uint8 num, char *str)
|
|||||||
|
|
||||||
for(i = 0; i < len; i ++)
|
for(i = 0; i < len; i ++)
|
||||||
{
|
{
|
||||||
if(str[i] == ',')
|
if(',' == str[i])
|
||||||
{
|
{
|
||||||
j ++;
|
j ++;
|
||||||
}
|
}
|
||||||
@@ -111,8 +111,8 @@ static uint8 get_parameter_index (uint8 num, char *str)
|
|||||||
static int get_int_number (char *s)
|
static int get_int_number (char *s)
|
||||||
{
|
{
|
||||||
char buf[10];
|
char buf[10];
|
||||||
uint8 i;
|
uint8 i = 0;
|
||||||
int return_value;
|
int return_value = 0;
|
||||||
i = get_parameter_index(1, s);
|
i = get_parameter_index(1, s);
|
||||||
i = i - 1;
|
i = i - 1;
|
||||||
strncpy(buf, s, i);
|
strncpy(buf, s, i);
|
||||||
@@ -130,9 +130,9 @@ static int get_int_number (char *s)
|
|||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
static float get_float_number (char *s)
|
static float get_float_number (char *s)
|
||||||
{
|
{
|
||||||
uint8 i;
|
uint8 i = 0;
|
||||||
char buf[15];
|
char buf[15];
|
||||||
float return_value;
|
float return_value = 0;
|
||||||
|
|
||||||
i = get_parameter_index(1, s);
|
i = get_parameter_index(1, s);
|
||||||
i = i - 1;
|
i = i - 1;
|
||||||
@@ -151,9 +151,9 @@ static float get_float_number (char *s)
|
|||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
static double get_double_number (char *s)
|
static double get_double_number (char *s)
|
||||||
{
|
{
|
||||||
uint8 i;
|
uint8 i = 0;
|
||||||
char buf[15];
|
char buf[15];
|
||||||
double return_value;
|
double return_value = 0;
|
||||||
|
|
||||||
i = get_parameter_index(1, s);
|
i = get_parameter_index(1, s);
|
||||||
i = i - 1;
|
i = i - 1;
|
||||||
@@ -172,10 +172,10 @@ static double get_double_number (char *s)
|
|||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
static void utc_to_btc (gps_time_struct *time)
|
static void utc_to_btc (gps_time_struct *time)
|
||||||
{
|
{
|
||||||
uint8 day_num;
|
uint8 day_num = 0;
|
||||||
|
|
||||||
time->hour = time->hour + 8;
|
time->hour = time->hour + 8;
|
||||||
if(time->hour > 23)
|
if(23 < time->hour)
|
||||||
{
|
{
|
||||||
time->hour -= 24;
|
time->hour -= 24;
|
||||||
time->day += 1;
|
time->day += 1;
|
||||||
@@ -183,7 +183,7 @@ static void utc_to_btc (gps_time_struct *time)
|
|||||||
if(2 == time->month)
|
if(2 == time->month)
|
||||||
{
|
{
|
||||||
day_num = 28;
|
day_num = 28;
|
||||||
if((time->year % 4 == 0 && time->year % 100 != 0) || time->year % 400 == 0) // <20>ж<EFBFBD><D0B6>Ƿ<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>
|
if((0 == time->year % 4 && 0 != time->year % 100) || 0 == time->year % 400) // <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>
|
||||||
}
|
}
|
||||||
@@ -201,7 +201,7 @@ static void utc_to_btc (gps_time_struct *time)
|
|||||||
{
|
{
|
||||||
time->day = 1;
|
time->day = 1;
|
||||||
time->month ++;
|
time->month ++;
|
||||||
if(time->month > 12)
|
if(12 < time->month)
|
||||||
{
|
{
|
||||||
time->month -= 12;
|
time->month -= 12;
|
||||||
time->year ++;
|
time->year ++;
|
||||||
@@ -220,21 +220,21 @@ static void utc_to_btc (gps_time_struct *time)
|
|||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
static uint8 gps_gnrmc_parse (char *line, gps_info_struct *gps)
|
static uint8 gps_gnrmc_parse (char *line, gps_info_struct *gps)
|
||||||
{
|
{
|
||||||
uint8 state, temp;
|
uint8 state = 0, temp = 0;
|
||||||
|
|
||||||
double latitude; // γ<><CEB3>
|
double latitude = 0; // γ<><CEB3>
|
||||||
double longitude; // <20><><EFBFBD><EFBFBD>
|
double longitude = 0; // <20><><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
float lati_cent_tmp, lati_second_tmp;
|
double lati_cent_tmp = 0, lati_second_tmp = 0;
|
||||||
float long_cent_tmp, long_second_tmp;
|
double long_cent_tmp = 0, long_second_tmp = 0;
|
||||||
float speed_tmp;
|
float speed_tmp = 0;
|
||||||
char *buf = line;
|
char *buf = line;
|
||||||
uint8 return_state = 0;
|
uint8 return_state = 0;
|
||||||
|
|
||||||
state = buf[get_parameter_index(2, buf)];
|
state = buf[get_parameter_index(2, buf)];
|
||||||
|
|
||||||
gps->state = 0;
|
gps->state = 0;
|
||||||
if (state == 'A') // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
if('A' == state) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
{
|
{
|
||||||
return_state = 1;
|
return_state = 1;
|
||||||
gps->state = 1;
|
gps->state = 1;
|
||||||
@@ -247,17 +247,17 @@ static uint8 gps_gnrmc_parse (char *line, gps_info_struct *gps)
|
|||||||
gps->latitude_degree = (int)latitude / 100; // γ<><CEB3>ת<EFBFBD><D7AA>Ϊ<EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD>
|
gps->latitude_degree = (int)latitude / 100; // γ<><CEB3>ת<EFBFBD><D7AA>Ϊ<EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD>
|
||||||
lati_cent_tmp = (latitude - gps->latitude_degree * 100);
|
lati_cent_tmp = (latitude - gps->latitude_degree * 100);
|
||||||
gps->latitude_cent = (int)lati_cent_tmp;
|
gps->latitude_cent = (int)lati_cent_tmp;
|
||||||
lati_second_tmp = (lati_cent_tmp - gps->latitude_cent) * 10000;
|
lati_second_tmp = (lati_cent_tmp - gps->latitude_cent) * 6000;
|
||||||
gps->latitude_second = (int)lati_second_tmp;
|
gps->latitude_second = (int)lati_second_tmp;
|
||||||
|
|
||||||
gps->longitude_degree = (int)longitude / 100; // <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD>
|
gps->longitude_degree = (int)longitude / 100; // <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD>
|
||||||
long_cent_tmp = (longitude - gps->longitude_degree * 100);
|
long_cent_tmp = (longitude - gps->longitude_degree * 100);
|
||||||
gps->longitude_cent = (int)long_cent_tmp;
|
gps->longitude_cent = (int)long_cent_tmp;
|
||||||
long_second_tmp = (long_cent_tmp - gps->longitude_cent) * 10000;
|
long_second_tmp = (long_cent_tmp - gps->longitude_cent) * 6000;
|
||||||
gps->longitude_second = (int)long_second_tmp;
|
gps->longitude_second = (int)long_second_tmp;
|
||||||
|
|
||||||
gps->latitude = gps->latitude_degree + (double)gps->latitude_cent / 60 + (double)gps->latitude_second / 600000;
|
gps->latitude = gps->latitude_degree + lati_cent_tmp / 60;
|
||||||
gps->longitude = gps->longitude_degree + (double)gps->longitude_cent / 60 + (double)gps->longitude_second / 600000;
|
gps->longitude = gps->longitude_degree + long_cent_tmp / 60;
|
||||||
|
|
||||||
speed_tmp = get_float_number(&buf[get_parameter_index(7, buf)]); // <20>ٶ<EFBFBD>(<28><><EFBFBD><EFBFBD>/Сʱ)
|
speed_tmp = get_float_number(&buf[get_parameter_index(7, buf)]); // <20>ٶ<EFBFBD>(<28><><EFBFBD><EFBFBD>/Сʱ)
|
||||||
gps->speed = speed_tmp * 1.85f; // ת<><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>/Сʱ
|
gps->speed = speed_tmp * 1.85f; // ת<><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>/Сʱ
|
||||||
@@ -288,13 +288,13 @@ static uint8 gps_gnrmc_parse (char *line, gps_info_struct *gps)
|
|||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
static uint8 gps_gngga_parse (char *line, gps_info_struct *gps)
|
static uint8 gps_gngga_parse (char *line, gps_info_struct *gps)
|
||||||
{
|
{
|
||||||
uint8 state;
|
uint8 state = 0;
|
||||||
char *buf = line;
|
char *buf = line;
|
||||||
uint8 return_state = 0;
|
uint8 return_state = 0;
|
||||||
|
|
||||||
state = buf[get_parameter_index(2, buf)];
|
state = buf[get_parameter_index(2, buf)];
|
||||||
|
|
||||||
if (state != ',')
|
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>
|
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>
|
||||||
@@ -317,13 +317,13 @@ static uint8 gps_gngga_parse (char *line, gps_info_struct *gps)
|
|||||||
double get_two_points_distance (double latitude1, double longitude1, double latitude2, double longitude2)
|
double get_two_points_distance (double latitude1, double longitude1, double latitude2, double longitude2)
|
||||||
{
|
{
|
||||||
const double EARTH_RADIUS = 6378137; // <20><><EFBFBD><EFBFBD><EFBFBD>뾶(<28><>λ<EFBFBD><CEBB>m)
|
const double EARTH_RADIUS = 6378137; // <20><><EFBFBD><EFBFBD><EFBFBD>뾶(<28><>λ<EFBFBD><CEBB>m)
|
||||||
double rad_latitude1;
|
double rad_latitude1 = 0;
|
||||||
double rad_latitude2;
|
double rad_latitude2 = 0;
|
||||||
double rad_longitude1;
|
double rad_longitude1 = 0;
|
||||||
double rad_longitude2;
|
double rad_longitude2 = 0;
|
||||||
double distance;
|
double distance = 0;
|
||||||
double a;
|
double a = 0;
|
||||||
double b;
|
double b = 0;
|
||||||
|
|
||||||
rad_latitude1 = ANGLE_TO_RAD(latitude1); // <20><><EFBFBD>ݽǶȼ<C7B6><C8BC>㻡<EFBFBD><E3BBA1>
|
rad_latitude1 = ANGLE_TO_RAD(latitude1); // <20><><EFBFBD>ݽǶȼ<C7B6><C8BC>㻡<EFBFBD><E3BBA1>
|
||||||
rad_latitude2 = ANGLE_TO_RAD(latitude2);
|
rad_latitude2 = ANGLE_TO_RAD(latitude2);
|
||||||
@@ -359,7 +359,7 @@ double get_two_points_azimuth (double latitude1, double longitude1, double latit
|
|||||||
double x = sin(longitude2 - longitude1) * cos(latitude2);
|
double x = sin(longitude2 - longitude1) * cos(latitude2);
|
||||||
double y = cos(latitude1) * sin(latitude2) - sin(latitude1) * cos(latitude2) * cos(longitude2 - longitude1);
|
double y = cos(latitude1) * sin(latitude2) - sin(latitude1) * cos(latitude2) * cos(longitude2 - longitude1);
|
||||||
double angle = RAD_TO_ANGLE(atan2(x, y));
|
double angle = RAD_TO_ANGLE(atan2(x, y));
|
||||||
return ((angle > 0) ? angle : (angle + 360));
|
return ((0 < angle) ? angle : (angle + 360));
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
@@ -375,16 +375,16 @@ uint8 gps_data_parse (void)
|
|||||||
uint8 check_buffer[5] = {'0', 'x', 0x00, 0x00, 0x00};
|
uint8 check_buffer[5] = {'0', 'x', 0x00, 0x00, 0x00};
|
||||||
uint8 bbc_xor_origin = 0;
|
uint8 bbc_xor_origin = 0;
|
||||||
uint8 bbc_xor_calculation = 0;
|
uint8 bbc_xor_calculation = 0;
|
||||||
uint32 data_len;
|
uint32 data_len = 0;
|
||||||
|
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
if(GPS_STATE_RECEIVED == gps_rmc_state)
|
if(GPS_STATE_RECEIVED == gps_rmc_state)
|
||||||
{
|
{
|
||||||
gps_rmc_state = GPS_STATE_PARSING;
|
gps_rmc_state = GPS_STATE_PARSING;
|
||||||
strncpy((char *)&check_buffer[2], strchr((const char *)gps_rmc_buffer, '*')+1, 2);
|
strncpy((char *)&check_buffer[2], strchr((const char *)gps_rmc_buffer, '*') + 1, 2);
|
||||||
bbc_xor_origin = (uint8)func_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 ++)
|
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];
|
bbc_xor_calculation ^= gps_rmc_buffer[data_len];
|
||||||
}
|
}
|
||||||
@@ -402,10 +402,10 @@ uint8 gps_data_parse (void)
|
|||||||
if(GPS_STATE_RECEIVED == gps_gga_state)
|
if(GPS_STATE_RECEIVED == gps_gga_state)
|
||||||
{
|
{
|
||||||
gps_gga_state = GPS_STATE_PARSING;
|
gps_gga_state = GPS_STATE_PARSING;
|
||||||
strncpy((char *)&check_buffer[2], strchr((const char *)gps_gga_buffer, '*')+1, 2);
|
strncpy((char *)&check_buffer[2], strchr((const char *)gps_gga_buffer, '*') + 1, 2);
|
||||||
bbc_xor_origin = (uint8)func_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 ++)
|
for(bbc_xor_calculation = gps_gga_buffer[1], data_len = 2; '*' != gps_gga_buffer[data_len]; data_len ++)
|
||||||
{
|
{
|
||||||
bbc_xor_calculation ^= gps_gga_buffer[data_len];
|
bbc_xor_calculation ^= gps_gga_buffer[data_len];
|
||||||
}
|
}
|
||||||
@@ -435,7 +435,7 @@ uint8 gps_data_parse (void)
|
|||||||
void gps_uart_callback (void)
|
void gps_uart_callback (void)
|
||||||
{
|
{
|
||||||
uint8 temp_gps[6];
|
uint8 temp_gps[6];
|
||||||
uint32 temp_length;
|
uint32 temp_length = 0;
|
||||||
|
|
||||||
if(gps_tau1201_state)
|
if(gps_tau1201_state)
|
||||||
{
|
{
|
||||||
@@ -507,8 +507,7 @@ uint8 gps_init (void)
|
|||||||
fifo_init(&gps_tau1201_receiver_fifo, FIFO_DATA_8BIT, gps_tau1201_receiver_buffer, GPS_TAU1201_BUFFER_SIZE);
|
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>
|
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);
|
uart_init(GPS_TAU1201_UART, 115200, GPS_TAU1201_RX, GPS_TAU1201_TX);
|
||||||
|
uart_rx_interrupt(GPS_TAU1201_UART, 0);
|
||||||
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
|
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);
|
system_delay_ms(200);
|
||||||
|
|||||||
@@ -49,9 +49,9 @@
|
|||||||
#include "zf_common_typedef.h"
|
#include "zf_common_typedef.h"
|
||||||
|
|
||||||
//===============================================GPS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
//===============================================GPS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||||
#define GPS_TAU1201_UART (UART_2)
|
#define GPS_TAU1201_UART (UART_3)
|
||||||
#define GPS_TAU1201_RX (UART2_TX_P10_5) // GPS RX<52><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD>
|
#define GPS_TAU1201_RX (UART3_TX_P15_6) // GPS RX<52><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD>
|
||||||
#define GPS_TAU1201_TX (UART2_RX_P10_6) // GPS TX<54><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
#define GPS_TAU1201_TX (UART3_RX_P15_7) // GPS TX<54><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
//===============================================GPS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
//===============================================GPS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||||
|
|
||||||
#define ANGLE_TO_RAD(x) ((x) * PI / 180.0) // <20>Ƕ<EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>
|
#define ANGLE_TO_RAD(x) ((x) * PI / 180.0) // <20>Ƕ<EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>
|
||||||
|
|||||||
@@ -137,8 +137,8 @@
|
|||||||
//================================================<3D><><EFBFBD><EFBFBD> IMU963RA <20>ڲ<EFBFBD><DAB2><EFBFBD>ַ================================================
|
//================================================<3D><><EFBFBD><EFBFBD> IMU963RA <20>ڲ<EFBFBD><DAB2><EFBFBD>ַ================================================
|
||||||
|
|
||||||
//===============================================<3D><><EFBFBD><EFBFBD> IMU963RA <20><><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD>===============================================
|
//===============================================<3D><><EFBFBD><EFBFBD> IMU963RA <20><><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD>===============================================
|
||||||
extern int16 imu963ra_acc_x, imu963ra_acc_y, imu963ra_acc_z; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
extern int16 imu963ra_gyro_x, imu963ra_gyro_y, imu963ra_gyro_z; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
extern int16 imu963ra_gyro_x, imu963ra_gyro_y, imu963ra_gyro_z; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
extern int16 imu963ra_acc_x, imu963ra_acc_y, imu963ra_acc_z; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
||||||
extern int16 imu963ra_mag_x, imu963ra_mag_y, imu963ra_mag_z; // <20><><EFBFBD><EFBFBD><EFBFBD>شż<D8B4><C5BC><EFBFBD><EFBFBD><EFBFBD>
|
extern int16 imu963ra_mag_x, imu963ra_mag_y, imu963ra_mag_z; // <20><><EFBFBD><EFBFBD><EFBFBD>شż<D8B4><C5BC><EFBFBD><EFBFBD><EFBFBD>
|
||||||
//===============================================<3D><><EFBFBD><EFBFBD> IMU963RA <20><><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD>===============================================
|
//===============================================<3D><><EFBFBD><EFBFBD> IMU963RA <20><><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD>===============================================
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*********************************************************************************************************************
|
/*********************************************************************************************************************
|
||||||
* MM32F327X-G9P Opensourec Library <20><><EFBFBD><EFBFBD>MM32F327X-G9P <20><>Դ<EFBFBD>⣩<EFBFBD><E2A3A9>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ڹٷ<DAB9> SDK <20>ӿڵĵ<DAB5><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4>
|
* TC264 Opensourec Library <20><><EFBFBD><EFBFBD>TC264 <20><>Դ<EFBFBD>⣩<EFBFBD><E2A3A9>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ڹٷ<DAB9> SDK <20>ӿڵĵ<DAB5><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4>
|
||||||
* Copyright (c) 2022 SEEKFREE <20><><EFBFBD>ɿƼ<C9BF>
|
* Copyright (c) 2022 SEEKFREE <20><><EFBFBD>ɿƼ<C9BF>
|
||||||
*
|
*
|
||||||
* <20><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD> MM32F327X-G9P <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
|
* <20><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD> TC264 <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
|
||||||
*
|
*
|
||||||
* MM32F327X-G9P <20><>Դ<EFBFBD><D4B4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
* TC264 <20><>Դ<EFBFBD><D4B4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
* <20><><EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD><D4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᷢ<EFBFBD><E1B7A2><EFBFBD><EFBFBD> GPL<50><4C>GNU General Public License<73><65><EFBFBD><EFBFBD> GNUͨ<55>ù<EFBFBD><C3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
* <20><><EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD><D4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᷢ<EFBFBD><E1B7A2><EFBFBD><EFBFBD> GPL<50><4C>GNU General Public License<73><65><EFBFBD><EFBFBD> GNUͨ<55>ù<EFBFBD><C3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
* <20><> GPL <20>ĵ<EFBFBD>3<EFBFBD>棨<EFBFBD><E6A3A8> GPL3.0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD>κκ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>İ汾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><DEB8><EFBFBD>
|
* <20><> GPL <20>ĵ<EFBFBD>3<EFBFBD>棨<EFBFBD><E6A3A8> GPL3.0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD>κκ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>İ汾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><DEB8><EFBFBD>
|
||||||
*
|
*
|
||||||
@@ -24,13 +24,13 @@
|
|||||||
* <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> zf_device_key
|
* <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> zf_device_key
|
||||||
* <20><>˾<EFBFBD><CBBE><EFBFBD><EFBFBD> <20>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD><EFBFBD>˾
|
* <20><>˾<EFBFBD><CBBE><EFBFBD><EFBFBD> <20>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD><EFBFBD>˾
|
||||||
* <20>汾<EFBFBD><E6B1BE>Ϣ <20>鿴 libraries/doc <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> version <20>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
|
* <20>汾<EFBFBD><E6B1BE>Ϣ <20>鿴 libraries/doc <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> version <20>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
|
||||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IAR 8.32.4 or MDK 5.37
|
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ADS v1.8.0
|
||||||
* <20><><EFBFBD><EFBFBD>ƽ̨ MM32F327X_G9P
|
* <20><><EFBFBD><EFBFBD>ƽ̨ TC264D
|
||||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> https://seekfree.taobao.com/
|
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> https://seekfree.taobao.com/
|
||||||
*
|
*
|
||||||
* <20>ļ<DEB8>¼
|
* <20>ļ<DEB8>¼
|
||||||
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
|
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
|
||||||
* 2022-08-10 Teternal first version
|
* 2022-09-15 pudding first version
|
||||||
********************************************************************************************************************/
|
********************************************************************************************************************/
|
||||||
/*********************************************************************************************************************
|
/*********************************************************************************************************************
|
||||||
* <20><><EFBFBD>߶<EFBFBD><DFB6>壺
|
* <20><><EFBFBD>߶<EFBFBD><DFB6>壺
|
||||||
@@ -45,6 +45,7 @@
|
|||||||
********************************************************************************************************************/
|
********************************************************************************************************************/
|
||||||
|
|
||||||
#include "zf_common_debug.h"
|
#include "zf_common_debug.h"
|
||||||
|
|
||||||
#include "zf_device_key.h"
|
#include "zf_device_key.h"
|
||||||
|
|
||||||
static uint32 scanner_period = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
static uint32 scanner_period = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
@@ -65,54 +66,21 @@ void key_scanner (void)
|
|||||||
uint8 i = 0;
|
uint8 i = 0;
|
||||||
for(i = 0; i < KEY_NUMBER; i ++)
|
for(i = 0; i < KEY_NUMBER; i ++)
|
||||||
{
|
{
|
||||||
switch(key_state[i])
|
if(KEY_RELEASE_LEVEL != gpio_get_level(key_index[i])) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
{
|
{
|
||||||
case KEY_RELEASE:
|
key_press_time[i] ++;
|
||||||
if(KEY_RELEASE_LEVEL != gpio_get_level(key_index[i]))
|
if(key_press_time[i] >= KEY_LONG_PRESS_PERIOD / scanner_period)
|
||||||
{
|
{
|
||||||
if(++ key_press_time[i] >= KEY_MAX_SHOCK_PERIOD / scanner_period)
|
key_state[i] = KEY_LONG_PRESS;
|
||||||
{
|
}
|
||||||
key_state[i] = KEY_SHORT_PRESS;
|
}
|
||||||
}
|
else // <20><><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>
|
||||||
else
|
{
|
||||||
{
|
if(key_state[i] != KEY_LONG_PRESS && key_press_time[i] >= KEY_MAX_SHOCK_PERIOD / scanner_period)
|
||||||
key_state[i] = KEY_CHECK_SHOCK;
|
{
|
||||||
}
|
key_state[i] = KEY_SHORT_PRESS;
|
||||||
}
|
}
|
||||||
break;
|
key_press_time[i] = 0;
|
||||||
case KEY_CHECK_SHOCK:
|
|
||||||
if(KEY_RELEASE_LEVEL != gpio_get_level(key_index[i]))
|
|
||||||
{
|
|
||||||
if(++ key_press_time[i] >= KEY_MAX_SHOCK_PERIOD / scanner_period)
|
|
||||||
{
|
|
||||||
key_state[i] = KEY_SHORT_PRESS;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
key_state[i] = KEY_RELEASE;
|
|
||||||
key_press_time[i] = 0;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case KEY_SHORT_PRESS:
|
|
||||||
if(++ key_press_time[i] >= KEY_LONG_PRESS_PERIOD / scanner_period)
|
|
||||||
{
|
|
||||||
key_state[i] = KEY_LONG_PRESS;
|
|
||||||
}
|
|
||||||
if(KEY_RELEASE_LEVEL == gpio_get_level(key_index[i]))
|
|
||||||
{
|
|
||||||
key_state[i] = KEY_RELEASE;
|
|
||||||
key_press_time[i] = 0;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case KEY_LONG_PRESS:
|
|
||||||
if(KEY_RELEASE_LEVEL == gpio_get_level(key_index[i]))
|
|
||||||
{
|
|
||||||
key_state[i] = KEY_RELEASE;
|
|
||||||
key_press_time[i] = 0;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -129,6 +97,33 @@ key_state_enum key_get_state (key_index_enum key_n)
|
|||||||
return key_state[key_n];
|
return key_state[key_n];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>״̬
|
||||||
|
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> key_n <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void <20><>
|
||||||
|
// ʹ<><CAB9>ʾ<EFBFBD><CABE> key_clear_state(KEY_1);
|
||||||
|
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
void key_clear_state (key_index_enum key_n)
|
||||||
|
{
|
||||||
|
key_state[key_n] = KEY_RELEASE;
|
||||||
|
}
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>а<EFBFBD><D0B0><EFBFBD>״̬
|
||||||
|
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> void <20><>
|
||||||
|
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void <20><>
|
||||||
|
// ʹ<><CAB9>ʾ<EFBFBD><CABE> key_clear_all_state();
|
||||||
|
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
void key_clear_all_state (void)
|
||||||
|
{
|
||||||
|
key_state[0] = KEY_RELEASE;
|
||||||
|
key_state[1] = KEY_RELEASE;
|
||||||
|
key_state[2] = KEY_RELEASE;
|
||||||
|
key_state[3] = KEY_RELEASE;
|
||||||
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
||||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> period <20><><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ժ<EFBFBD><D4BA><EFBFBD>Ϊ<EFBFBD><CEAA>λ
|
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> period <20><><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ժ<EFBFBD><D4BA><EFBFBD>Ϊ<EFBFBD><CEAA>λ
|
||||||
@@ -136,17 +131,14 @@ key_state_enum key_get_state (key_index_enum key_n)
|
|||||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> key_init(10);
|
// ʹ<><CAB9>ʾ<EFBFBD><CABE> key_init(10);
|
||||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
uint8 key_init (uint32 period)
|
void key_init (uint32 period)
|
||||||
{
|
{
|
||||||
|
zf_assert(0 < period);
|
||||||
uint8 loop_temp = 0;
|
uint8 loop_temp = 0;
|
||||||
|
|
||||||
zf_assert(0 < period); // ɨ<><C9A8><EFBFBD><EFBFBD><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0
|
|
||||||
|
|
||||||
for(loop_temp = 0; loop_temp < KEY_NUMBER; loop_temp ++)
|
for(loop_temp = 0; loop_temp < KEY_NUMBER; loop_temp ++)
|
||||||
{
|
{
|
||||||
gpio_init(key_index[loop_temp], GPI, GPIO_HIGH, GPI_PULL_UP);
|
gpio_init(key_index[loop_temp], GPI, GPIO_HIGH, GPI_PULL_UP);
|
||||||
key_state[loop_temp] = KEY_RELEASE;
|
key_state[loop_temp] = KEY_RELEASE;
|
||||||
}
|
}
|
||||||
scanner_period = period;
|
scanner_period = period;
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*********************************************************************************************************************
|
/*********************************************************************************************************************
|
||||||
* MM32F327X-G9P Opensourec Library <20><><EFBFBD><EFBFBD>MM32F327X-G9P <20><>Դ<EFBFBD>⣩<EFBFBD><E2A3A9>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ڹٷ<DAB9> SDK <20>ӿڵĵ<DAB5><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4>
|
* TC264 Opensourec Library <20><><EFBFBD><EFBFBD>TC264 <20><>Դ<EFBFBD>⣩<EFBFBD><E2A3A9>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ڹٷ<DAB9> SDK <20>ӿڵĵ<DAB5><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4>
|
||||||
* Copyright (c) 2022 SEEKFREE <20><><EFBFBD>ɿƼ<C9BF>
|
* Copyright (c) 2022 SEEKFREE <20><><EFBFBD>ɿƼ<C9BF>
|
||||||
*
|
*
|
||||||
* <20><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD> MM32F327X-G9P <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
|
* <20><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD> TC264 <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
|
||||||
*
|
*
|
||||||
* MM32F327X-G9P <20><>Դ<EFBFBD><D4B4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
* TC264 <20><>Դ<EFBFBD><D4B4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
* <20><><EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD><D4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᷢ<EFBFBD><E1B7A2><EFBFBD><EFBFBD> GPL<50><4C>GNU General Public License<73><65><EFBFBD><EFBFBD> GNUͨ<55>ù<EFBFBD><C3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
* <20><><EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD><D4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᷢ<EFBFBD><E1B7A2><EFBFBD><EFBFBD> GPL<50><4C>GNU General Public License<73><65><EFBFBD><EFBFBD> GNUͨ<55>ù<EFBFBD><C3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
* <20><> GPL <20>ĵ<EFBFBD>3<EFBFBD>棨<EFBFBD><E6A3A8> GPL3.0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD>κκ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>İ汾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><DEB8><EFBFBD>
|
* <20><> GPL <20>ĵ<EFBFBD>3<EFBFBD>棨<EFBFBD><E6A3A8> GPL3.0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD>κκ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>İ汾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><DEB8><EFBFBD>
|
||||||
*
|
*
|
||||||
@@ -24,13 +24,13 @@
|
|||||||
* <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> zf_device_key
|
* <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> zf_device_key
|
||||||
* <20><>˾<EFBFBD><CBBE><EFBFBD><EFBFBD> <20>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD><EFBFBD>˾
|
* <20><>˾<EFBFBD><CBBE><EFBFBD><EFBFBD> <20>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD><EFBFBD>˾
|
||||||
* <20>汾<EFBFBD><E6B1BE>Ϣ <20>鿴 libraries/doc <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> version <20>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
|
* <20>汾<EFBFBD><E6B1BE>Ϣ <20>鿴 libraries/doc <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> version <20>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
|
||||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IAR 8.32.4 or MDK 5.37
|
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ADS v1.8.0
|
||||||
* <20><><EFBFBD><EFBFBD>ƽ̨ MM32F327X_G9P
|
* <20><><EFBFBD><EFBFBD>ƽ̨ TC264D
|
||||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> https://seekfree.taobao.com/
|
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> https://seekfree.taobao.com/
|
||||||
*
|
*
|
||||||
* <20>ļ<DEB8>¼
|
* <20>ļ<DEB8>¼
|
||||||
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
|
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
|
||||||
* 2022-08-10 Teternal first version
|
* 2022-09-15 pudding first version
|
||||||
********************************************************************************************************************/
|
********************************************************************************************************************/
|
||||||
/*********************************************************************************************************************
|
/*********************************************************************************************************************
|
||||||
* <20><><EFBFBD>߶<EFBFBD><DFB6>壺
|
* <20><><EFBFBD>߶<EFBFBD><DFB6>壺
|
||||||
@@ -53,13 +53,12 @@
|
|||||||
// <20><><EFBFBD>尴<EFBFBD><E5B0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ĭ<>϶<EFBFBD><CFB6><EFBFBD><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD>
|
// <20><><EFBFBD>尴<EFBFBD><E5B0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ĭ<>϶<EFBFBD><CFB6><EFBFBD><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD>
|
||||||
// <20><><EFBFBD>尴<EFBFBD><E5B0B4>˳<EFBFBD><CBB3><EFBFBD><EFBFBD>Ӧ<EFBFBD>·<EFBFBD> key_index_enum ö<><C3B6><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><CBB3>
|
// <20><><EFBFBD>尴<EFBFBD><E5B0B4>˳<EFBFBD><CBB3><EFBFBD><EFBFBD>Ӧ<EFBFBD>·<EFBFBD> key_index_enum ö<><C3B6><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><CBB3>
|
||||||
// <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ô<EFBFBD><C3B4>Ҫͬ<D2AA><CDAC><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD> key_index_enum ö<><C3B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
// <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ô<EFBFBD><C3B4>Ҫͬ<D2AA><CDAC><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD> key_index_enum ö<><C3B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
#define KEY_LIST {P22_0, P22_1, P22_2, P22_3}
|
#define KEY_LIST {P20_6, P20_7, P11_2, P11_3}
|
||||||
|
|
||||||
#define KEY_RELEASE_LEVEL (GPIO_HIGH) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>״̬ Ҳ<><D2B2><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ͷ<EFBFBD>״̬<D7B4>ĵ<EFBFBD>ƽ
|
#define KEY_RELEASE_LEVEL (GPIO_HIGH) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>״̬ Ҳ<><D2B2><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ͷ<EFBFBD>״̬<D7B4>ĵ<EFBFBD>ƽ
|
||||||
#define KEY_MAX_SHOCK_PERIOD (10 ) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>źŻᱻ<C5BB><E1B1BB>Ϊ<EFBFBD><CEAA><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD><EFBFBD>
|
#define KEY_MAX_SHOCK_PERIOD (10 ) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>źŻᱻ<C5BB><E1B1BB>Ϊ<EFBFBD><CEAA><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD><EFBFBD>
|
||||||
#define KEY_LONG_PRESS_PERIOD (1000 ) // <20><>С<EFBFBD><D0A1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>
|
#define KEY_LONG_PRESS_PERIOD (1000 ) // <20><>С<EFBFBD><D0A1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>źŻᱻ<C5BB><E1B1BB>Ϊ<EFBFBD>dz<EFBFBD><C7B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
//=================================================<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ṹ<EFBFBD><E1B9B9>===============================================
|
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
KEY_1,
|
KEY_1,
|
||||||
@@ -72,15 +71,14 @@ typedef enum
|
|||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
KEY_RELEASE, // <20><><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>״̬
|
KEY_RELEASE, // <20><><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>״̬
|
||||||
KEY_CHECK_SHOCK, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
|
||||||
KEY_SHORT_PRESS, // <20><><EFBFBD><EFBFBD><EFBFBD>̰<EFBFBD>״̬
|
KEY_SHORT_PRESS, // <20><><EFBFBD><EFBFBD><EFBFBD>̰<EFBFBD>״̬
|
||||||
KEY_LONG_PRESS, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
KEY_LONG_PRESS, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
||||||
}key_state_enum;
|
}key_state_enum;
|
||||||
//=================================================<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ṹ<EFBFBD><E1B9B9>===============================================
|
|
||||||
|
|
||||||
//====================================================<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>=================================================
|
void key_scanner (void);
|
||||||
void key_scanner (void); // <20><><EFBFBD><EFBFBD>״̬ɨ<CCAC><C9A8>
|
key_state_enum key_get_state (key_index_enum key_n);
|
||||||
key_state_enum key_get_state (key_index_enum key_n); // <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>״̬
|
void key_clear_state (key_index_enum key_n);
|
||||||
uint8 key_init (uint32 period); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
void key_clear_all_state (void);
|
||||||
//====================================================<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>=================================================
|
void key_init (uint32 period);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -60,7 +60,7 @@
|
|||||||
|
|
||||||
// TSL1401 <20><><EFBFBD><EFBFBD><EFBFBD>ڲɼ<DAB2><C9BC><EFBFBD><EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD> ʹ<>õ<EFBFBD><C3B5>ĸ<EFBFBD> PIT <20><>Ҫ<EFBFBD><D2AA> <20><><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD> PIT <20><><EFBFBD>жϷ<D0B6><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
// TSL1401 <20><><EFBFBD><EFBFBD><EFBFBD>ڲɼ<DAB2><C9BC><EFBFBD><EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD> ʹ<>õ<EFBFBD><C3B5>ĸ<EFBFBD> PIT <20><>Ҫ<EFBFBD><D2AA> <20><><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD> PIT <20><><EFBFBD>жϷ<D0B6><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
#define TSL1401_EXPOSURE_TIME (10 ) // <20><><EFBFBD><EFBFBD> TSL1401 <20>ع<EFBFBD>ʱ<EFBFBD><CAB1> <20><>λ MS
|
#define TSL1401_EXPOSURE_TIME (10 ) // <20><><EFBFBD><EFBFBD> TSL1401 <20>ع<EFBFBD>ʱ<EFBFBD><CAB1> <20><>λ MS
|
||||||
#define TSL1401_PIT_INDEX (CCU60_CH0) // ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
#define TSL1401_PIT_INDEX (CCU61_CH1) // ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||||
#define TSL1401_AD_RESOLUTION (ADC_8BIT) // ADC <20><><EFBFBD><EFBFBD> 8bit
|
#define TSL1401_AD_RESOLUTION (ADC_8BIT) // ADC <20><><EFBFBD><EFBFBD> 8bit
|
||||||
#define TSL1401_DATA_LEN (128 ) // TSL1401 <20><><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
|
#define TSL1401_DATA_LEN (128 ) // TSL1401 <20><><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
|
||||||
//=================================================TSL1401 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
//=================================================TSL1401 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||||
|
|||||||
@@ -53,9 +53,7 @@ typedef enum
|
|||||||
NO_WIRELESS = 0, // <20><><EFBFBD>豸
|
NO_WIRELESS = 0, // <20><><EFBFBD>豸
|
||||||
WIRELESS_UART, // <20><><EFBFBD>ߴ<EFBFBD><DFB4><EFBFBD>
|
WIRELESS_UART, // <20><><EFBFBD>ߴ<EFBFBD><DFB4><EFBFBD>
|
||||||
BLUETOOTH_CH9141, // <20><><EFBFBD><EFBFBD> CH9141
|
BLUETOOTH_CH9141, // <20><><EFBFBD><EFBFBD> CH9141
|
||||||
GPS_TAU1201,
|
WIFI_UART, // <20><><EFBFBD><EFBFBD> WiFi
|
||||||
WIFI_UART,
|
|
||||||
WIFI_SPI,
|
|
||||||
}wireless_type_enum;
|
}wireless_type_enum;
|
||||||
//==============================================<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ö<><C3B6><EFBFBD><EFBFBD>==================================================
|
//==============================================<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ö<><C3B6><EFBFBD><EFBFBD>==================================================
|
||||||
|
|
||||||
|
|||||||
@@ -40,7 +40,7 @@
|
|||||||
|
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> systick<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> system<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> time <20><>ʱһ<CAB1>ֵ<EFBFBD>ʱ<EFBFBD>䣨<EFBFBD><E4A3A8>λΪ<CEBB><CEAA><EFBFBD>룬<EFBFBD><EBA3AC><EFBFBD><EFBFBD><EFBFBD>÷<EFBFBD>Χ0-20000000<30><30>
|
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> time <20><>ʱһ<CAB1>ֵ<EFBFBD>ʱ<EFBFBD>䣨<EFBFBD><E4A3A8>λΪ<CEBB><CEAA><EFBFBD>룬<EFBFBD><EBA3AC><EFBFBD><EFBFBD><EFBFBD>÷<EFBFBD>Χ0-20000000<30><30>
|
||||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> num <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> num <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||||
@@ -60,3 +60,25 @@ void system_delay (uint32 time, uint32 num)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> system <><CEA2> <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
||||||
|
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> time <20><>ʱʱ<CAB1><CAB1> <20><>λ<EFBFBD><CEBB>us
|
||||||
|
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||||
|
// ʹ<><CAB9>ʾ<EFBFBD><CABE> system_delay_us(100); // <20><>ʱ100<30><CEA2>
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
void system_delay_us (uint32 time)
|
||||||
|
{
|
||||||
|
system_delay(time*1000, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> system <20><><EFBFBD><EFBFBD> <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
||||||
|
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> time <20><>ʱʱ<CAB1><CAB1> <20><>λ<EFBFBD><CEBB>ms
|
||||||
|
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||||
|
// ʹ<><CAB9>ʾ<EFBFBD><CABE> system_delay_ms(100); // <20><>ʱ100<30><30><EFBFBD><EFBFBD>
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
void system_delay_ms (uint32 time)
|
||||||
|
{
|
||||||
|
system_delay(1000000, time);
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -38,13 +38,10 @@
|
|||||||
|
|
||||||
#include "zf_common_typedef.h"
|
#include "zf_common_typedef.h"
|
||||||
|
|
||||||
|
|
||||||
void system_delay (uint32 time, uint32 num);
|
|
||||||
|
|
||||||
//====================================================<3D><>ʱ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
//====================================================<3D><>ʱ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||||
#define system_delay_ms(time) system_delay((1000000), (time)) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<CAB1><CAB1> <20><>λms
|
void system_delay (uint32 time, uint32 num);
|
||||||
#define system_delay_us(time) system_delay((time*1000), (1)) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<CAB1><CAB1> <20><>λus
|
void system_delay_us (uint32 time);
|
||||||
#define system_delay_ns(time) system_delay((time), (1)) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<CAB1><CAB1> <20><>λns
|
void system_delay_ms (uint32 time);
|
||||||
//====================================================<3D><>ʱ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
//====================================================<3D><>ʱ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -37,6 +37,14 @@
|
|||||||
#include "isr.h"
|
#include "isr.h"
|
||||||
|
|
||||||
// **************************** PIT<49>жϺ<D0B6><CFBA><EFBFBD> ****************************
|
// **************************** PIT<49>жϺ<D0B6><CFBA><EFBFBD> ****************************
|
||||||
|
//IFX_INTERRUPT(cc60_pit_ch0_isr, 0, CCU6_0_CH0_ISR_PRIORITY)
|
||||||
|
//{
|
||||||
|
// interrupt_global_enable(0); // <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
|
||||||
|
// pit_clear_flag(CCU60_CH0);
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//}
|
||||||
|
|
||||||
|
|
||||||
IFX_INTERRUPT(cc60_pit_ch1_isr, 0, CCU6_0_CH1_ISR_PRIORITY)
|
IFX_INTERRUPT(cc60_pit_ch1_isr, 0, CCU6_0_CH1_ISR_PRIORITY)
|
||||||
{
|
{
|
||||||
@@ -66,7 +74,6 @@ IFX_INTERRUPT(cc61_pit_ch1_isr, 0, CCU6_1_CH1_ISR_PRIORITY)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
// **************************** PIT<49>жϺ<D0B6><CFBA><EFBFBD> ****************************
|
// **************************** PIT<49>жϺ<D0B6><CFBA><EFBFBD> ****************************
|
||||||
|
|
||||||
@@ -79,9 +86,6 @@ IFX_INTERRUPT(exti_ch0_ch4_isr, 0, EXTI_CH0_CH4_INT_PRIO)
|
|||||||
{
|
{
|
||||||
exti_flag_clear(ERU_CH0_REQ0_P15_4);
|
exti_flag_clear(ERU_CH0_REQ0_P15_4);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(exti_flag_get(ERU_CH4_REQ13_P15_5)) // ͨ<><CDA8>4<EFBFBD>ж<EFBFBD>
|
if(exti_flag_get(ERU_CH4_REQ13_P15_5)) // ͨ<><CDA8>4<EFBFBD>ж<EFBFBD>
|
||||||
@@ -110,8 +114,6 @@ IFX_INTERRUPT(exti_ch1_ch5_isr, 0, EXTI_CH1_CH5_INT_PRIO)
|
|||||||
exti_flag_clear(ERU_CH5_REQ1_P15_8);
|
exti_flag_clear(ERU_CH5_REQ1_P15_8);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -254,7 +256,7 @@ IFX_INTERRUPT(uart3_rx_isr, 0, UART3_RX_INT_PRIO)
|
|||||||
IfxAsclin_Asc_isrReceive(&uart3_handle);
|
IfxAsclin_Asc_isrReceive(&uart3_handle);
|
||||||
|
|
||||||
|
|
||||||
|
gps_uart_callback();
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,3 +1,7 @@
|
|||||||
|
V3.1.6
|
||||||
|
<20><EFBFBD>GPSʹ<53>ô<EFBFBD><C3B4>ںţ<DABA><C5A3>Ż<EFBFBD>GPS<50><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
isr.c<><63><EFBFBD>Ƴ<EFBFBD>CCD<43>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
<20>İ<DEB8><C4B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>İ<EFBFBD><C4B0><EFBFBD><EFBFBD>˿ںţ<DABA><C5A3><EFBFBD><EFBFBD><EFBFBD>V2.6<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
V3.1.5
|
V3.1.5
|
||||||
<20><EFBFBD>Ӳ<EFBFBD><D3B2>SPI<50><49>ʼ<EFBFBD><CABC>ʱѡ<CAB1><D1A1><EFBFBD><EFBFBD>CS<43><53><EFBFBD>ţ<EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD>ɻ<EFBFBD><C9BB><EFBFBD>ʼ<EFBFBD><CABC>Ĭ<EFBFBD><C4AC>CS<43><53><EFBFBD>ŵ<EFBFBD>bug
|
<20><EFBFBD>Ӳ<EFBFBD><D3B2>SPI<50><49>ʼ<EFBFBD><CABC>ʱѡ<CAB1><D1A1><EFBFBD><EFBFBD>CS<43><53><EFBFBD>ţ<EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD>ɻ<EFBFBD><C9BB><EFBFBD>ʼ<EFBFBD><CABC>Ĭ<EFBFBD><C4AC>CS<43><53><EFBFBD>ŵ<EFBFBD>bug
|
||||||
V3.1.4
|
V3.1.4
|
||||||
|
|||||||
Binary file not shown.
@@ -43,24 +43,25 @@
|
|||||||
* ------------------------------------
|
* ------------------------------------
|
||||||
********************************************************************************************************************/
|
********************************************************************************************************************/
|
||||||
|
|
||||||
|
#include "math.h"
|
||||||
#include "zf_common_function.h"
|
#include "zf_common_function.h"
|
||||||
#include "zf_common_fifo.h"
|
#include "zf_common_fifo.h"
|
||||||
#include "zf_driver_delay.h"
|
#include "zf_driver_delay.h"
|
||||||
#include "zf_driver_uart.h"
|
#include "zf_driver_uart.h"
|
||||||
#include "zf_device_type.h"
|
|
||||||
#include "zf_device_gps_tau1201.h"
|
#include "zf_device_gps_tau1201.h"
|
||||||
|
|
||||||
#define GPS_TAU1201_BUFFER_SIZE (128)
|
#define GPS_TAU1201_BUFFER_SIZE ( 128 )
|
||||||
|
|
||||||
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>
|
uint8 gps_tau1201_flag = 0; // 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>
|
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>
|
static uint8 gps_tau1201_state = 0; // 1<><31>GPS<50><53>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
static fifo_struct gps_tau1201_receiver_fifo; //
|
static fifo_struct gps_tau1201_receiver_fifo; //
|
||||||
static uint8 gps_tau1201_receiver_buffer[GPS_TAU1201_BUFFER_SIZE]; // <20><><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
static uint8 gps_tau1201_receiver_buffer[GPS_TAU1201_BUFFER_SIZE]; // <20><><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
gps_state_enum gps_gga_state; // gga<67><61><EFBFBD><EFBFBD>״̬
|
gps_state_enum gps_gga_state = GPS_STATE_RECEIVING; // gga <EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
||||||
gps_state_enum gps_rmc_state; // rmc<6D><63><EFBFBD><EFBFBD>״̬
|
gps_state_enum gps_rmc_state = GPS_STATE_RECEIVING; // rmc <EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
||||||
|
|
||||||
static uint8 gps_gga_buffer[GPS_TAU1201_BUFFER_SIZE];
|
static uint8 gps_gga_buffer[GPS_TAU1201_BUFFER_SIZE];
|
||||||
static uint8 gps_rmc_buffer[GPS_TAU1201_BUFFER_SIZE];
|
static uint8 gps_rmc_buffer[GPS_TAU1201_BUFFER_SIZE];
|
||||||
@@ -75,11 +76,10 @@ static uint8 gps_rmc_buffer[GPS_TAU1201_BUFFER_SIZE];
|
|||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
static uint8 get_parameter_index (uint8 num, char *str)
|
static uint8 get_parameter_index (uint8 num, char *str)
|
||||||
{
|
{
|
||||||
uint8 i, j = 0;
|
uint8 i = 0, j = 0;
|
||||||
char *temp;
|
char *temp = strchr(str, '\n');
|
||||||
uint8 len = 0, len1;
|
uint8 len = 0, len1 = 0;
|
||||||
|
|
||||||
temp = strchr(str, '\n');
|
|
||||||
if(NULL != temp)
|
if(NULL != temp)
|
||||||
{
|
{
|
||||||
len = (uint8)((uint32)temp - (uint32)str + 1);
|
len = (uint8)((uint32)temp - (uint32)str + 1);
|
||||||
@@ -87,7 +87,7 @@ static uint8 get_parameter_index (uint8 num, char *str)
|
|||||||
|
|
||||||
for(i = 0; i < len; i ++)
|
for(i = 0; i < len; i ++)
|
||||||
{
|
{
|
||||||
if(str[i] == ',')
|
if(',' == str[i])
|
||||||
{
|
{
|
||||||
j ++;
|
j ++;
|
||||||
}
|
}
|
||||||
@@ -111,8 +111,8 @@ static uint8 get_parameter_index (uint8 num, char *str)
|
|||||||
static int get_int_number (char *s)
|
static int get_int_number (char *s)
|
||||||
{
|
{
|
||||||
char buf[10];
|
char buf[10];
|
||||||
uint8 i;
|
uint8 i = 0;
|
||||||
int return_value;
|
int return_value = 0;
|
||||||
i = get_parameter_index(1, s);
|
i = get_parameter_index(1, s);
|
||||||
i = i - 1;
|
i = i - 1;
|
||||||
strncpy(buf, s, i);
|
strncpy(buf, s, i);
|
||||||
@@ -130,9 +130,9 @@ static int get_int_number (char *s)
|
|||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
static float get_float_number (char *s)
|
static float get_float_number (char *s)
|
||||||
{
|
{
|
||||||
uint8 i;
|
uint8 i = 0;
|
||||||
char buf[15];
|
char buf[15];
|
||||||
float return_value;
|
float return_value = 0;
|
||||||
|
|
||||||
i = get_parameter_index(1, s);
|
i = get_parameter_index(1, s);
|
||||||
i = i - 1;
|
i = i - 1;
|
||||||
@@ -151,9 +151,9 @@ static float get_float_number (char *s)
|
|||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
static double get_double_number (char *s)
|
static double get_double_number (char *s)
|
||||||
{
|
{
|
||||||
uint8 i;
|
uint8 i = 0;
|
||||||
char buf[15];
|
char buf[15];
|
||||||
double return_value;
|
double return_value = 0;
|
||||||
|
|
||||||
i = get_parameter_index(1, s);
|
i = get_parameter_index(1, s);
|
||||||
i = i - 1;
|
i = i - 1;
|
||||||
@@ -172,10 +172,10 @@ static double get_double_number (char *s)
|
|||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
static void utc_to_btc (gps_time_struct *time)
|
static void utc_to_btc (gps_time_struct *time)
|
||||||
{
|
{
|
||||||
uint8 day_num;
|
uint8 day_num = 0;
|
||||||
|
|
||||||
time->hour = time->hour + 8;
|
time->hour = time->hour + 8;
|
||||||
if(time->hour > 23)
|
if(23 < time->hour)
|
||||||
{
|
{
|
||||||
time->hour -= 24;
|
time->hour -= 24;
|
||||||
time->day += 1;
|
time->day += 1;
|
||||||
@@ -183,7 +183,7 @@ static void utc_to_btc (gps_time_struct *time)
|
|||||||
if(2 == time->month)
|
if(2 == time->month)
|
||||||
{
|
{
|
||||||
day_num = 28;
|
day_num = 28;
|
||||||
if((time->year % 4 == 0 && time->year % 100 != 0) || time->year % 400 == 0) // <20>ж<EFBFBD><D0B6>Ƿ<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>
|
if((0 == time->year % 4 && 0 != time->year % 100) || 0 == time->year % 400) // <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>
|
||||||
}
|
}
|
||||||
@@ -201,7 +201,7 @@ static void utc_to_btc (gps_time_struct *time)
|
|||||||
{
|
{
|
||||||
time->day = 1;
|
time->day = 1;
|
||||||
time->month ++;
|
time->month ++;
|
||||||
if(time->month > 12)
|
if(12 < time->month)
|
||||||
{
|
{
|
||||||
time->month -= 12;
|
time->month -= 12;
|
||||||
time->year ++;
|
time->year ++;
|
||||||
@@ -220,21 +220,21 @@ static void utc_to_btc (gps_time_struct *time)
|
|||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
static uint8 gps_gnrmc_parse (char *line, gps_info_struct *gps)
|
static uint8 gps_gnrmc_parse (char *line, gps_info_struct *gps)
|
||||||
{
|
{
|
||||||
uint8 state, temp;
|
uint8 state = 0, temp = 0;
|
||||||
|
|
||||||
double latitude; // γ<><CEB3>
|
double latitude = 0; // γ<><CEB3>
|
||||||
double longitude; // <20><><EFBFBD><EFBFBD>
|
double longitude = 0; // <20><><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
float lati_cent_tmp, lati_second_tmp;
|
double lati_cent_tmp = 0, lati_second_tmp = 0;
|
||||||
float long_cent_tmp, long_second_tmp;
|
double long_cent_tmp = 0, long_second_tmp = 0;
|
||||||
float speed_tmp;
|
float speed_tmp = 0;
|
||||||
char *buf = line;
|
char *buf = line;
|
||||||
uint8 return_state = 0;
|
uint8 return_state = 0;
|
||||||
|
|
||||||
state = buf[get_parameter_index(2, buf)];
|
state = buf[get_parameter_index(2, buf)];
|
||||||
|
|
||||||
gps->state = 0;
|
gps->state = 0;
|
||||||
if (state == 'A') // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
if('A' == state) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
{
|
{
|
||||||
return_state = 1;
|
return_state = 1;
|
||||||
gps->state = 1;
|
gps->state = 1;
|
||||||
@@ -247,17 +247,17 @@ static uint8 gps_gnrmc_parse (char *line, gps_info_struct *gps)
|
|||||||
gps->latitude_degree = (int)latitude / 100; // γ<><CEB3>ת<EFBFBD><D7AA>Ϊ<EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD>
|
gps->latitude_degree = (int)latitude / 100; // γ<><CEB3>ת<EFBFBD><D7AA>Ϊ<EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD>
|
||||||
lati_cent_tmp = (latitude - gps->latitude_degree * 100);
|
lati_cent_tmp = (latitude - gps->latitude_degree * 100);
|
||||||
gps->latitude_cent = (int)lati_cent_tmp;
|
gps->latitude_cent = (int)lati_cent_tmp;
|
||||||
lati_second_tmp = (lati_cent_tmp - gps->latitude_cent) * 10000;
|
lati_second_tmp = (lati_cent_tmp - gps->latitude_cent) * 6000;
|
||||||
gps->latitude_second = (int)lati_second_tmp;
|
gps->latitude_second = (int)lati_second_tmp;
|
||||||
|
|
||||||
gps->longitude_degree = (int)longitude / 100; // <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD>
|
gps->longitude_degree = (int)longitude / 100; // <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD>
|
||||||
long_cent_tmp = (longitude - gps->longitude_degree * 100);
|
long_cent_tmp = (longitude - gps->longitude_degree * 100);
|
||||||
gps->longitude_cent = (int)long_cent_tmp;
|
gps->longitude_cent = (int)long_cent_tmp;
|
||||||
long_second_tmp = (long_cent_tmp - gps->longitude_cent) * 10000;
|
long_second_tmp = (long_cent_tmp - gps->longitude_cent) * 6000;
|
||||||
gps->longitude_second = (int)long_second_tmp;
|
gps->longitude_second = (int)long_second_tmp;
|
||||||
|
|
||||||
gps->latitude = gps->latitude_degree + (double)gps->latitude_cent / 60 + (double)gps->latitude_second / 600000;
|
gps->latitude = gps->latitude_degree + lati_cent_tmp / 60;
|
||||||
gps->longitude = gps->longitude_degree + (double)gps->longitude_cent / 60 + (double)gps->longitude_second / 600000;
|
gps->longitude = gps->longitude_degree + long_cent_tmp / 60;
|
||||||
|
|
||||||
speed_tmp = get_float_number(&buf[get_parameter_index(7, buf)]); // <20>ٶ<EFBFBD>(<28><><EFBFBD><EFBFBD>/Сʱ)
|
speed_tmp = get_float_number(&buf[get_parameter_index(7, buf)]); // <20>ٶ<EFBFBD>(<28><><EFBFBD><EFBFBD>/Сʱ)
|
||||||
gps->speed = speed_tmp * 1.85f; // ת<><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>/Сʱ
|
gps->speed = speed_tmp * 1.85f; // ת<><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>/Сʱ
|
||||||
@@ -288,13 +288,13 @@ static uint8 gps_gnrmc_parse (char *line, gps_info_struct *gps)
|
|||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
static uint8 gps_gngga_parse (char *line, gps_info_struct *gps)
|
static uint8 gps_gngga_parse (char *line, gps_info_struct *gps)
|
||||||
{
|
{
|
||||||
uint8 state;
|
uint8 state = 0;
|
||||||
char *buf = line;
|
char *buf = line;
|
||||||
uint8 return_state = 0;
|
uint8 return_state = 0;
|
||||||
|
|
||||||
state = buf[get_parameter_index(2, buf)];
|
state = buf[get_parameter_index(2, buf)];
|
||||||
|
|
||||||
if (state != ',')
|
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>
|
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>
|
||||||
@@ -317,13 +317,13 @@ static uint8 gps_gngga_parse (char *line, gps_info_struct *gps)
|
|||||||
double get_two_points_distance (double latitude1, double longitude1, double latitude2, double longitude2)
|
double get_two_points_distance (double latitude1, double longitude1, double latitude2, double longitude2)
|
||||||
{
|
{
|
||||||
const double EARTH_RADIUS = 6378137; // <20><><EFBFBD><EFBFBD><EFBFBD>뾶(<28><>λ<EFBFBD><CEBB>m)
|
const double EARTH_RADIUS = 6378137; // <20><><EFBFBD><EFBFBD><EFBFBD>뾶(<28><>λ<EFBFBD><CEBB>m)
|
||||||
double rad_latitude1;
|
double rad_latitude1 = 0;
|
||||||
double rad_latitude2;
|
double rad_latitude2 = 0;
|
||||||
double rad_longitude1;
|
double rad_longitude1 = 0;
|
||||||
double rad_longitude2;
|
double rad_longitude2 = 0;
|
||||||
double distance;
|
double distance = 0;
|
||||||
double a;
|
double a = 0;
|
||||||
double b;
|
double b = 0;
|
||||||
|
|
||||||
rad_latitude1 = ANGLE_TO_RAD(latitude1); // <20><><EFBFBD>ݽǶȼ<C7B6><C8BC>㻡<EFBFBD><E3BBA1>
|
rad_latitude1 = ANGLE_TO_RAD(latitude1); // <20><><EFBFBD>ݽǶȼ<C7B6><C8BC>㻡<EFBFBD><E3BBA1>
|
||||||
rad_latitude2 = ANGLE_TO_RAD(latitude2);
|
rad_latitude2 = ANGLE_TO_RAD(latitude2);
|
||||||
@@ -359,7 +359,7 @@ double get_two_points_azimuth (double latitude1, double longitude1, double latit
|
|||||||
double x = sin(longitude2 - longitude1) * cos(latitude2);
|
double x = sin(longitude2 - longitude1) * cos(latitude2);
|
||||||
double y = cos(latitude1) * sin(latitude2) - sin(latitude1) * cos(latitude2) * cos(longitude2 - longitude1);
|
double y = cos(latitude1) * sin(latitude2) - sin(latitude1) * cos(latitude2) * cos(longitude2 - longitude1);
|
||||||
double angle = RAD_TO_ANGLE(atan2(x, y));
|
double angle = RAD_TO_ANGLE(atan2(x, y));
|
||||||
return ((angle > 0) ? angle : (angle + 360));
|
return ((0 < angle) ? angle : (angle + 360));
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
@@ -375,16 +375,16 @@ uint8 gps_data_parse (void)
|
|||||||
uint8 check_buffer[5] = {'0', 'x', 0x00, 0x00, 0x00};
|
uint8 check_buffer[5] = {'0', 'x', 0x00, 0x00, 0x00};
|
||||||
uint8 bbc_xor_origin = 0;
|
uint8 bbc_xor_origin = 0;
|
||||||
uint8 bbc_xor_calculation = 0;
|
uint8 bbc_xor_calculation = 0;
|
||||||
uint32 data_len;
|
uint32 data_len = 0;
|
||||||
|
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
if(GPS_STATE_RECEIVED == gps_rmc_state)
|
if(GPS_STATE_RECEIVED == gps_rmc_state)
|
||||||
{
|
{
|
||||||
gps_rmc_state = GPS_STATE_PARSING;
|
gps_rmc_state = GPS_STATE_PARSING;
|
||||||
strncpy((char *)&check_buffer[2], strchr((const char *)gps_rmc_buffer, '*')+1, 2);
|
strncpy((char *)&check_buffer[2], strchr((const char *)gps_rmc_buffer, '*') + 1, 2);
|
||||||
bbc_xor_origin = (uint8)func_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 ++)
|
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];
|
bbc_xor_calculation ^= gps_rmc_buffer[data_len];
|
||||||
}
|
}
|
||||||
@@ -402,10 +402,10 @@ uint8 gps_data_parse (void)
|
|||||||
if(GPS_STATE_RECEIVED == gps_gga_state)
|
if(GPS_STATE_RECEIVED == gps_gga_state)
|
||||||
{
|
{
|
||||||
gps_gga_state = GPS_STATE_PARSING;
|
gps_gga_state = GPS_STATE_PARSING;
|
||||||
strncpy((char *)&check_buffer[2], strchr((const char *)gps_gga_buffer, '*')+1, 2);
|
strncpy((char *)&check_buffer[2], strchr((const char *)gps_gga_buffer, '*') + 1, 2);
|
||||||
bbc_xor_origin = (uint8)func_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 ++)
|
for(bbc_xor_calculation = gps_gga_buffer[1], data_len = 2; '*' != gps_gga_buffer[data_len]; data_len ++)
|
||||||
{
|
{
|
||||||
bbc_xor_calculation ^= gps_gga_buffer[data_len];
|
bbc_xor_calculation ^= gps_gga_buffer[data_len];
|
||||||
}
|
}
|
||||||
@@ -435,7 +435,7 @@ uint8 gps_data_parse (void)
|
|||||||
void gps_uart_callback (void)
|
void gps_uart_callback (void)
|
||||||
{
|
{
|
||||||
uint8 temp_gps[6];
|
uint8 temp_gps[6];
|
||||||
uint32 temp_length;
|
uint32 temp_length = 0;
|
||||||
|
|
||||||
if(gps_tau1201_state)
|
if(gps_tau1201_state)
|
||||||
{
|
{
|
||||||
@@ -507,8 +507,7 @@ uint8 gps_init (void)
|
|||||||
fifo_init(&gps_tau1201_receiver_fifo, FIFO_DATA_8BIT, gps_tau1201_receiver_buffer, GPS_TAU1201_BUFFER_SIZE);
|
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>
|
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);
|
uart_init(GPS_TAU1201_UART, 115200, GPS_TAU1201_RX, GPS_TAU1201_TX);
|
||||||
|
uart_rx_interrupt(GPS_TAU1201_UART, 0);
|
||||||
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
|
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);
|
system_delay_ms(200);
|
||||||
|
|||||||
@@ -49,9 +49,9 @@
|
|||||||
#include "zf_common_typedef.h"
|
#include "zf_common_typedef.h"
|
||||||
|
|
||||||
//===============================================GPS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
//===============================================GPS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||||
#define GPS_TAU1201_UART (UART_2)
|
#define GPS_TAU1201_UART (UART_3)
|
||||||
#define GPS_TAU1201_RX (UART2_TX_P10_5) // GPS RX<52><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD>
|
#define GPS_TAU1201_RX (UART3_TX_P15_6) // GPS RX<52><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD>
|
||||||
#define GPS_TAU1201_TX (UART2_RX_P10_6) // GPS TX<54><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
#define GPS_TAU1201_TX (UART3_RX_P15_7) // GPS TX<54><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
//===============================================GPS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
//===============================================GPS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||||
|
|
||||||
#define ANGLE_TO_RAD(x) ((x) * PI / 180.0) // <20>Ƕ<EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>
|
#define ANGLE_TO_RAD(x) ((x) * PI / 180.0) // <20>Ƕ<EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>
|
||||||
|
|||||||
@@ -137,8 +137,8 @@
|
|||||||
//================================================<3D><><EFBFBD><EFBFBD> IMU963RA <20>ڲ<EFBFBD><DAB2><EFBFBD>ַ================================================
|
//================================================<3D><><EFBFBD><EFBFBD> IMU963RA <20>ڲ<EFBFBD><DAB2><EFBFBD>ַ================================================
|
||||||
|
|
||||||
//===============================================<3D><><EFBFBD><EFBFBD> IMU963RA <20><><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD>===============================================
|
//===============================================<3D><><EFBFBD><EFBFBD> IMU963RA <20><><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD>===============================================
|
||||||
extern int16 imu963ra_acc_x, imu963ra_acc_y, imu963ra_acc_z; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
extern int16 imu963ra_gyro_x, imu963ra_gyro_y, imu963ra_gyro_z; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
extern int16 imu963ra_gyro_x, imu963ra_gyro_y, imu963ra_gyro_z; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
extern int16 imu963ra_acc_x, imu963ra_acc_y, imu963ra_acc_z; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
||||||
extern int16 imu963ra_mag_x, imu963ra_mag_y, imu963ra_mag_z; // <20><><EFBFBD><EFBFBD><EFBFBD>شż<D8B4><C5BC><EFBFBD><EFBFBD><EFBFBD>
|
extern int16 imu963ra_mag_x, imu963ra_mag_y, imu963ra_mag_z; // <20><><EFBFBD><EFBFBD><EFBFBD>شż<D8B4><C5BC><EFBFBD><EFBFBD><EFBFBD>
|
||||||
//===============================================<3D><><EFBFBD><EFBFBD> IMU963RA <20><><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD>===============================================
|
//===============================================<3D><><EFBFBD><EFBFBD> IMU963RA <20><><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD>===============================================
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*********************************************************************************************************************
|
/*********************************************************************************************************************
|
||||||
* MM32F327X-G9P Opensourec Library <20><><EFBFBD><EFBFBD>MM32F327X-G9P <20><>Դ<EFBFBD>⣩<EFBFBD><E2A3A9>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ڹٷ<DAB9> SDK <20>ӿڵĵ<DAB5><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4>
|
* TC264 Opensourec Library <20><><EFBFBD><EFBFBD>TC264 <20><>Դ<EFBFBD>⣩<EFBFBD><E2A3A9>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ڹٷ<DAB9> SDK <20>ӿڵĵ<DAB5><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4>
|
||||||
* Copyright (c) 2022 SEEKFREE <20><><EFBFBD>ɿƼ<C9BF>
|
* Copyright (c) 2022 SEEKFREE <20><><EFBFBD>ɿƼ<C9BF>
|
||||||
*
|
*
|
||||||
* <20><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD> MM32F327X-G9P <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
|
* <20><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD> TC264 <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
|
||||||
*
|
*
|
||||||
* MM32F327X-G9P <20><>Դ<EFBFBD><D4B4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
* TC264 <20><>Դ<EFBFBD><D4B4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
* <20><><EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD><D4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᷢ<EFBFBD><E1B7A2><EFBFBD><EFBFBD> GPL<50><4C>GNU General Public License<73><65><EFBFBD><EFBFBD> GNUͨ<55>ù<EFBFBD><C3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
* <20><><EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD><D4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᷢ<EFBFBD><E1B7A2><EFBFBD><EFBFBD> GPL<50><4C>GNU General Public License<73><65><EFBFBD><EFBFBD> GNUͨ<55>ù<EFBFBD><C3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
* <20><> GPL <20>ĵ<EFBFBD>3<EFBFBD>棨<EFBFBD><E6A3A8> GPL3.0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD>κκ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>İ汾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><DEB8><EFBFBD>
|
* <20><> GPL <20>ĵ<EFBFBD>3<EFBFBD>棨<EFBFBD><E6A3A8> GPL3.0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD>κκ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>İ汾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><DEB8><EFBFBD>
|
||||||
*
|
*
|
||||||
@@ -24,13 +24,13 @@
|
|||||||
* <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> zf_device_key
|
* <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> zf_device_key
|
||||||
* <20><>˾<EFBFBD><CBBE><EFBFBD><EFBFBD> <20>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD><EFBFBD>˾
|
* <20><>˾<EFBFBD><CBBE><EFBFBD><EFBFBD> <20>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD><EFBFBD>˾
|
||||||
* <20>汾<EFBFBD><E6B1BE>Ϣ <20>鿴 libraries/doc <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> version <20>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
|
* <20>汾<EFBFBD><E6B1BE>Ϣ <20>鿴 libraries/doc <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> version <20>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
|
||||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IAR 8.32.4 or MDK 5.37
|
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ADS v1.8.0
|
||||||
* <20><><EFBFBD><EFBFBD>ƽ̨ MM32F327X_G9P
|
* <20><><EFBFBD><EFBFBD>ƽ̨ TC264D
|
||||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> https://seekfree.taobao.com/
|
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> https://seekfree.taobao.com/
|
||||||
*
|
*
|
||||||
* <20>ļ<DEB8>¼
|
* <20>ļ<DEB8>¼
|
||||||
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
|
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
|
||||||
* 2022-08-10 Teternal first version
|
* 2022-09-15 pudding first version
|
||||||
********************************************************************************************************************/
|
********************************************************************************************************************/
|
||||||
/*********************************************************************************************************************
|
/*********************************************************************************************************************
|
||||||
* <20><><EFBFBD>߶<EFBFBD><DFB6>壺
|
* <20><><EFBFBD>߶<EFBFBD><DFB6>壺
|
||||||
@@ -45,6 +45,7 @@
|
|||||||
********************************************************************************************************************/
|
********************************************************************************************************************/
|
||||||
|
|
||||||
#include "zf_common_debug.h"
|
#include "zf_common_debug.h"
|
||||||
|
|
||||||
#include "zf_device_key.h"
|
#include "zf_device_key.h"
|
||||||
|
|
||||||
static uint32 scanner_period = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
static uint32 scanner_period = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
@@ -65,54 +66,21 @@ void key_scanner (void)
|
|||||||
uint8 i = 0;
|
uint8 i = 0;
|
||||||
for(i = 0; i < KEY_NUMBER; i ++)
|
for(i = 0; i < KEY_NUMBER; i ++)
|
||||||
{
|
{
|
||||||
switch(key_state[i])
|
if(KEY_RELEASE_LEVEL != gpio_get_level(key_index[i])) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
{
|
{
|
||||||
case KEY_RELEASE:
|
key_press_time[i] ++;
|
||||||
if(KEY_RELEASE_LEVEL != gpio_get_level(key_index[i]))
|
if(key_press_time[i] >= KEY_LONG_PRESS_PERIOD / scanner_period)
|
||||||
{
|
{
|
||||||
if(++ key_press_time[i] >= KEY_MAX_SHOCK_PERIOD / scanner_period)
|
key_state[i] = KEY_LONG_PRESS;
|
||||||
{
|
}
|
||||||
key_state[i] = KEY_SHORT_PRESS;
|
}
|
||||||
}
|
else // <20><><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>
|
||||||
else
|
{
|
||||||
{
|
if(key_state[i] != KEY_LONG_PRESS && key_press_time[i] >= KEY_MAX_SHOCK_PERIOD / scanner_period)
|
||||||
key_state[i] = KEY_CHECK_SHOCK;
|
{
|
||||||
}
|
key_state[i] = KEY_SHORT_PRESS;
|
||||||
}
|
}
|
||||||
break;
|
key_press_time[i] = 0;
|
||||||
case KEY_CHECK_SHOCK:
|
|
||||||
if(KEY_RELEASE_LEVEL != gpio_get_level(key_index[i]))
|
|
||||||
{
|
|
||||||
if(++ key_press_time[i] >= KEY_MAX_SHOCK_PERIOD / scanner_period)
|
|
||||||
{
|
|
||||||
key_state[i] = KEY_SHORT_PRESS;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
key_state[i] = KEY_RELEASE;
|
|
||||||
key_press_time[i] = 0;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case KEY_SHORT_PRESS:
|
|
||||||
if(++ key_press_time[i] >= KEY_LONG_PRESS_PERIOD / scanner_period)
|
|
||||||
{
|
|
||||||
key_state[i] = KEY_LONG_PRESS;
|
|
||||||
}
|
|
||||||
if(KEY_RELEASE_LEVEL == gpio_get_level(key_index[i]))
|
|
||||||
{
|
|
||||||
key_state[i] = KEY_RELEASE;
|
|
||||||
key_press_time[i] = 0;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case KEY_LONG_PRESS:
|
|
||||||
if(KEY_RELEASE_LEVEL == gpio_get_level(key_index[i]))
|
|
||||||
{
|
|
||||||
key_state[i] = KEY_RELEASE;
|
|
||||||
key_press_time[i] = 0;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -129,6 +97,33 @@ key_state_enum key_get_state (key_index_enum key_n)
|
|||||||
return key_state[key_n];
|
return key_state[key_n];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>״̬
|
||||||
|
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> key_n <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void <20><>
|
||||||
|
// ʹ<><CAB9>ʾ<EFBFBD><CABE> key_clear_state(KEY_1);
|
||||||
|
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
void key_clear_state (key_index_enum key_n)
|
||||||
|
{
|
||||||
|
key_state[key_n] = KEY_RELEASE;
|
||||||
|
}
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>а<EFBFBD><D0B0><EFBFBD>״̬
|
||||||
|
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> void <20><>
|
||||||
|
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void <20><>
|
||||||
|
// ʹ<><CAB9>ʾ<EFBFBD><CABE> key_clear_all_state();
|
||||||
|
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
void key_clear_all_state (void)
|
||||||
|
{
|
||||||
|
key_state[0] = KEY_RELEASE;
|
||||||
|
key_state[1] = KEY_RELEASE;
|
||||||
|
key_state[2] = KEY_RELEASE;
|
||||||
|
key_state[3] = KEY_RELEASE;
|
||||||
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
||||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> period <20><><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ժ<EFBFBD><D4BA><EFBFBD>Ϊ<EFBFBD><CEAA>λ
|
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> period <20><><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ժ<EFBFBD><D4BA><EFBFBD>Ϊ<EFBFBD><CEAA>λ
|
||||||
@@ -136,17 +131,14 @@ key_state_enum key_get_state (key_index_enum key_n)
|
|||||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> key_init(10);
|
// ʹ<><CAB9>ʾ<EFBFBD><CABE> key_init(10);
|
||||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
uint8 key_init (uint32 period)
|
void key_init (uint32 period)
|
||||||
{
|
{
|
||||||
|
zf_assert(0 < period);
|
||||||
uint8 loop_temp = 0;
|
uint8 loop_temp = 0;
|
||||||
|
|
||||||
zf_assert(0 < period); // ɨ<><C9A8><EFBFBD><EFBFBD><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0
|
|
||||||
|
|
||||||
for(loop_temp = 0; loop_temp < KEY_NUMBER; loop_temp ++)
|
for(loop_temp = 0; loop_temp < KEY_NUMBER; loop_temp ++)
|
||||||
{
|
{
|
||||||
gpio_init(key_index[loop_temp], GPI, GPIO_HIGH, GPI_PULL_UP);
|
gpio_init(key_index[loop_temp], GPI, GPIO_HIGH, GPI_PULL_UP);
|
||||||
key_state[loop_temp] = KEY_RELEASE;
|
key_state[loop_temp] = KEY_RELEASE;
|
||||||
}
|
}
|
||||||
scanner_period = period;
|
scanner_period = period;
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*********************************************************************************************************************
|
/*********************************************************************************************************************
|
||||||
* MM32F327X-G9P Opensourec Library <20><><EFBFBD><EFBFBD>MM32F327X-G9P <20><>Դ<EFBFBD>⣩<EFBFBD><E2A3A9>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ڹٷ<DAB9> SDK <20>ӿڵĵ<DAB5><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4>
|
* TC264 Opensourec Library <20><><EFBFBD><EFBFBD>TC264 <20><>Դ<EFBFBD>⣩<EFBFBD><E2A3A9>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ڹٷ<DAB9> SDK <20>ӿڵĵ<DAB5><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4>
|
||||||
* Copyright (c) 2022 SEEKFREE <20><><EFBFBD>ɿƼ<C9BF>
|
* Copyright (c) 2022 SEEKFREE <20><><EFBFBD>ɿƼ<C9BF>
|
||||||
*
|
*
|
||||||
* <20><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD> MM32F327X-G9P <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
|
* <20><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD> TC264 <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
|
||||||
*
|
*
|
||||||
* MM32F327X-G9P <20><>Դ<EFBFBD><D4B4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
* TC264 <20><>Դ<EFBFBD><D4B4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
* <20><><EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD><D4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᷢ<EFBFBD><E1B7A2><EFBFBD><EFBFBD> GPL<50><4C>GNU General Public License<73><65><EFBFBD><EFBFBD> GNUͨ<55>ù<EFBFBD><C3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
* <20><><EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD><D4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᷢ<EFBFBD><E1B7A2><EFBFBD><EFBFBD> GPL<50><4C>GNU General Public License<73><65><EFBFBD><EFBFBD> GNUͨ<55>ù<EFBFBD><C3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
* <20><> GPL <20>ĵ<EFBFBD>3<EFBFBD>棨<EFBFBD><E6A3A8> GPL3.0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD>κκ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>İ汾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><DEB8><EFBFBD>
|
* <20><> GPL <20>ĵ<EFBFBD>3<EFBFBD>棨<EFBFBD><E6A3A8> GPL3.0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD>κκ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>İ汾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><DEB8><EFBFBD>
|
||||||
*
|
*
|
||||||
@@ -24,13 +24,13 @@
|
|||||||
* <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> zf_device_key
|
* <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> zf_device_key
|
||||||
* <20><>˾<EFBFBD><CBBE><EFBFBD><EFBFBD> <20>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD><EFBFBD>˾
|
* <20><>˾<EFBFBD><CBBE><EFBFBD><EFBFBD> <20>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD><EFBFBD>˾
|
||||||
* <20>汾<EFBFBD><E6B1BE>Ϣ <20>鿴 libraries/doc <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> version <20>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
|
* <20>汾<EFBFBD><E6B1BE>Ϣ <20>鿴 libraries/doc <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> version <20>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
|
||||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IAR 8.32.4 or MDK 5.37
|
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ADS v1.8.0
|
||||||
* <20><><EFBFBD><EFBFBD>ƽ̨ MM32F327X_G9P
|
* <20><><EFBFBD><EFBFBD>ƽ̨ TC264D
|
||||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> https://seekfree.taobao.com/
|
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> https://seekfree.taobao.com/
|
||||||
*
|
*
|
||||||
* <20>ļ<DEB8>¼
|
* <20>ļ<DEB8>¼
|
||||||
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
|
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
|
||||||
* 2022-08-10 Teternal first version
|
* 2022-09-15 pudding first version
|
||||||
********************************************************************************************************************/
|
********************************************************************************************************************/
|
||||||
/*********************************************************************************************************************
|
/*********************************************************************************************************************
|
||||||
* <20><><EFBFBD>߶<EFBFBD><DFB6>壺
|
* <20><><EFBFBD>߶<EFBFBD><DFB6>壺
|
||||||
@@ -53,13 +53,12 @@
|
|||||||
// <20><><EFBFBD>尴<EFBFBD><E5B0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ĭ<>϶<EFBFBD><CFB6><EFBFBD><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD>
|
// <20><><EFBFBD>尴<EFBFBD><E5B0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ĭ<>϶<EFBFBD><CFB6><EFBFBD><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD>
|
||||||
// <20><><EFBFBD>尴<EFBFBD><E5B0B4>˳<EFBFBD><CBB3><EFBFBD><EFBFBD>Ӧ<EFBFBD>·<EFBFBD> key_index_enum ö<><C3B6><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><CBB3>
|
// <20><><EFBFBD>尴<EFBFBD><E5B0B4>˳<EFBFBD><CBB3><EFBFBD><EFBFBD>Ӧ<EFBFBD>·<EFBFBD> key_index_enum ö<><C3B6><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><CBB3>
|
||||||
// <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ô<EFBFBD><C3B4>Ҫͬ<D2AA><CDAC><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD> key_index_enum ö<><C3B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
// <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ô<EFBFBD><C3B4>Ҫͬ<D2AA><CDAC><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD> key_index_enum ö<><C3B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
#define KEY_LIST {P22_0, P22_1, P22_2, P22_3}
|
#define KEY_LIST {P20_6, P20_7, P11_2, P11_3}
|
||||||
|
|
||||||
#define KEY_RELEASE_LEVEL (GPIO_HIGH) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>״̬ Ҳ<><D2B2><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ͷ<EFBFBD>״̬<D7B4>ĵ<EFBFBD>ƽ
|
#define KEY_RELEASE_LEVEL (GPIO_HIGH) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>״̬ Ҳ<><D2B2><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ͷ<EFBFBD>״̬<D7B4>ĵ<EFBFBD>ƽ
|
||||||
#define KEY_MAX_SHOCK_PERIOD (10 ) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>źŻᱻ<C5BB><E1B1BB>Ϊ<EFBFBD><CEAA><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD><EFBFBD>
|
#define KEY_MAX_SHOCK_PERIOD (10 ) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>źŻᱻ<C5BB><E1B1BB>Ϊ<EFBFBD><CEAA><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD><EFBFBD>
|
||||||
#define KEY_LONG_PRESS_PERIOD (1000 ) // <20><>С<EFBFBD><D0A1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>
|
#define KEY_LONG_PRESS_PERIOD (1000 ) // <20><>С<EFBFBD><D0A1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>źŻᱻ<C5BB><E1B1BB>Ϊ<EFBFBD>dz<EFBFBD><C7B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
//=================================================<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ṹ<EFBFBD><E1B9B9>===============================================
|
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
KEY_1,
|
KEY_1,
|
||||||
@@ -72,15 +71,14 @@ typedef enum
|
|||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
KEY_RELEASE, // <20><><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>״̬
|
KEY_RELEASE, // <20><><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>״̬
|
||||||
KEY_CHECK_SHOCK, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
|
||||||
KEY_SHORT_PRESS, // <20><><EFBFBD><EFBFBD><EFBFBD>̰<EFBFBD>״̬
|
KEY_SHORT_PRESS, // <20><><EFBFBD><EFBFBD><EFBFBD>̰<EFBFBD>״̬
|
||||||
KEY_LONG_PRESS, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
KEY_LONG_PRESS, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
||||||
}key_state_enum;
|
}key_state_enum;
|
||||||
//=================================================<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ṹ<EFBFBD><E1B9B9>===============================================
|
|
||||||
|
|
||||||
//====================================================<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>=================================================
|
void key_scanner (void);
|
||||||
void key_scanner (void); // <20><><EFBFBD><EFBFBD>״̬ɨ<CCAC><C9A8>
|
key_state_enum key_get_state (key_index_enum key_n);
|
||||||
key_state_enum key_get_state (key_index_enum key_n); // <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>״̬
|
void key_clear_state (key_index_enum key_n);
|
||||||
uint8 key_init (uint32 period); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
void key_clear_all_state (void);
|
||||||
//====================================================<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>=================================================
|
void key_init (uint32 period);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -60,7 +60,7 @@
|
|||||||
|
|
||||||
// TSL1401 <20><><EFBFBD><EFBFBD><EFBFBD>ڲɼ<DAB2><C9BC><EFBFBD><EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD> ʹ<>õ<EFBFBD><C3B5>ĸ<EFBFBD> PIT <20><>Ҫ<EFBFBD><D2AA> <20><><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD> PIT <20><><EFBFBD>жϷ<D0B6><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
// TSL1401 <20><><EFBFBD><EFBFBD><EFBFBD>ڲɼ<DAB2><C9BC><EFBFBD><EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD> ʹ<>õ<EFBFBD><C3B5>ĸ<EFBFBD> PIT <20><>Ҫ<EFBFBD><D2AA> <20><><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD> PIT <20><><EFBFBD>жϷ<D0B6><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
#define TSL1401_EXPOSURE_TIME (10 ) // <20><><EFBFBD><EFBFBD> TSL1401 <20>ع<EFBFBD>ʱ<EFBFBD><CAB1> <20><>λ MS
|
#define TSL1401_EXPOSURE_TIME (10 ) // <20><><EFBFBD><EFBFBD> TSL1401 <20>ع<EFBFBD>ʱ<EFBFBD><CAB1> <20><>λ MS
|
||||||
#define TSL1401_PIT_INDEX (CCU60_CH0) // ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
#define TSL1401_PIT_INDEX (CCU61_CH1) // ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||||
#define TSL1401_AD_RESOLUTION (ADC_8BIT) // ADC <20><><EFBFBD><EFBFBD> 8bit
|
#define TSL1401_AD_RESOLUTION (ADC_8BIT) // ADC <20><><EFBFBD><EFBFBD> 8bit
|
||||||
#define TSL1401_DATA_LEN (128 ) // TSL1401 <20><><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
|
#define TSL1401_DATA_LEN (128 ) // TSL1401 <20><><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
|
||||||
//=================================================TSL1401 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
//=================================================TSL1401 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||||
|
|||||||
@@ -53,9 +53,7 @@ typedef enum
|
|||||||
NO_WIRELESS = 0, // <20><><EFBFBD>豸
|
NO_WIRELESS = 0, // <20><><EFBFBD>豸
|
||||||
WIRELESS_UART, // <20><><EFBFBD>ߴ<EFBFBD><DFB4><EFBFBD>
|
WIRELESS_UART, // <20><><EFBFBD>ߴ<EFBFBD><DFB4><EFBFBD>
|
||||||
BLUETOOTH_CH9141, // <20><><EFBFBD><EFBFBD> CH9141
|
BLUETOOTH_CH9141, // <20><><EFBFBD><EFBFBD> CH9141
|
||||||
GPS_TAU1201,
|
WIFI_UART, // <20><><EFBFBD><EFBFBD> WiFi
|
||||||
WIFI_UART,
|
|
||||||
WIFI_SPI,
|
|
||||||
}wireless_type_enum;
|
}wireless_type_enum;
|
||||||
//==============================================<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ö<><C3B6><EFBFBD><EFBFBD>==================================================
|
//==============================================<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ö<><C3B6><EFBFBD><EFBFBD>==================================================
|
||||||
|
|
||||||
|
|||||||
@@ -40,7 +40,7 @@
|
|||||||
|
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> systick<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> system<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> time <20><>ʱһ<CAB1>ֵ<EFBFBD>ʱ<EFBFBD>䣨<EFBFBD><E4A3A8>λΪ<CEBB><CEAA><EFBFBD>룬<EFBFBD><EBA3AC><EFBFBD><EFBFBD><EFBFBD>÷<EFBFBD>Χ0-20000000<30><30>
|
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> time <20><>ʱһ<CAB1>ֵ<EFBFBD>ʱ<EFBFBD>䣨<EFBFBD><E4A3A8>λΪ<CEBB><CEAA><EFBFBD>룬<EFBFBD><EBA3AC><EFBFBD><EFBFBD><EFBFBD>÷<EFBFBD>Χ0-20000000<30><30>
|
||||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> num <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> num <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||||
@@ -60,3 +60,25 @@ void system_delay (uint32 time, uint32 num)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> system <><CEA2> <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
||||||
|
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> time <20><>ʱʱ<CAB1><CAB1> <20><>λ<EFBFBD><CEBB>us
|
||||||
|
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||||
|
// ʹ<><CAB9>ʾ<EFBFBD><CABE> system_delay_us(100); // <20><>ʱ100<30><CEA2>
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
void system_delay_us (uint32 time)
|
||||||
|
{
|
||||||
|
system_delay(time*1000, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> system <20><><EFBFBD><EFBFBD> <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
||||||
|
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> time <20><>ʱʱ<CAB1><CAB1> <20><>λ<EFBFBD><CEBB>ms
|
||||||
|
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||||
|
// ʹ<><CAB9>ʾ<EFBFBD><CABE> system_delay_ms(100); // <20><>ʱ100<30><30><EFBFBD><EFBFBD>
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
void system_delay_ms (uint32 time)
|
||||||
|
{
|
||||||
|
system_delay(1000000, time);
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -38,13 +38,10 @@
|
|||||||
|
|
||||||
#include "zf_common_typedef.h"
|
#include "zf_common_typedef.h"
|
||||||
|
|
||||||
|
|
||||||
void system_delay (uint32 time, uint32 num);
|
|
||||||
|
|
||||||
//====================================================<3D><>ʱ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
//====================================================<3D><>ʱ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||||
#define system_delay_ms(time) system_delay((1000000), (time)) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<CAB1><CAB1> <20><>λms
|
void system_delay (uint32 time, uint32 num);
|
||||||
#define system_delay_us(time) system_delay((time*1000), (1)) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<CAB1><CAB1> <20><>λus
|
void system_delay_us (uint32 time);
|
||||||
#define system_delay_ns(time) system_delay((time), (1)) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<CAB1><CAB1> <20><>λns
|
void system_delay_ms (uint32 time);
|
||||||
//====================================================<3D><>ʱ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
//====================================================<3D><>ʱ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -41,7 +41,6 @@ IFX_INTERRUPT(cc60_pit_ch0_isr, 0, CCU6_0_CH0_ISR_PRIORITY)
|
|||||||
{
|
{
|
||||||
interrupt_global_enable(0); // <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
|
interrupt_global_enable(0); // <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
|
||||||
pit_clear_flag(CCU60_CH0);
|
pit_clear_flag(CCU60_CH0);
|
||||||
tsl1401_collect_pit_handler(); // <20><><EFBFBD><EFBFBD>CCD<43>ɼ<EFBFBD>
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -75,12 +74,48 @@ IFX_INTERRUPT(cc61_pit_ch1_isr, 0, CCU6_1_CH1_ISR_PRIORITY)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
// **************************** PIT<49>жϺ<D0B6><CFBA><EFBFBD> ****************************
|
// **************************** PIT<49>жϺ<D0B6><CFBA><EFBFBD> ****************************
|
||||||
|
|
||||||
|
|
||||||
// **************************** <20>ⲿ<EFBFBD>жϺ<D0B6><CFBA><EFBFBD> ****************************
|
// **************************** <20>ⲿ<EFBFBD>жϺ<D0B6><CFBA><EFBFBD> ****************************
|
||||||
|
//IFX_INTERRUPT(exti_ch0_ch4_isr, 0, EXTI_CH0_CH4_INT_PRIO)
|
||||||
|
//{
|
||||||
|
// interrupt_global_enable(0); // <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
|
||||||
|
// if(exti_flag_get(ERU_CH0_REQ0_P15_4)) // ͨ<><CDA8>0<EFBFBD>ж<EFBFBD>
|
||||||
|
// {
|
||||||
|
// exti_flag_clear(ERU_CH0_REQ0_P15_4);
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// if(exti_flag_get(ERU_CH4_REQ13_P15_5)) // ͨ<><CDA8>4<EFBFBD>ж<EFBFBD>
|
||||||
|
// {
|
||||||
|
// exti_flag_clear(ERU_CH4_REQ13_P15_5);
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
//}
|
||||||
|
//
|
||||||
|
//IFX_INTERRUPT(exti_ch1_ch5_isr, 0, EXTI_CH1_CH5_INT_PRIO)
|
||||||
|
//{
|
||||||
|
// interrupt_global_enable(0); // <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
|
||||||
|
// if(exti_flag_get(ERU_CH1_REQ10_P14_3)) // ͨ<><CDA8>1<EFBFBD>ж<EFBFBD>
|
||||||
|
// {
|
||||||
|
// exti_flag_clear(ERU_CH1_REQ10_P14_3);
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// if(exti_flag_get(ERU_CH5_REQ1_P15_8)) // ͨ<><CDA8>5<EFBFBD>ж<EFBFBD>
|
||||||
|
// {
|
||||||
|
// exti_flag_clear(ERU_CH5_REQ1_P15_8);
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
//}
|
||||||
|
|
||||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷpclk<6C><6B><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD> 2ͨ<32><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>DMA<4D><41><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ﲻ<EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD>жϺ<D0B6><CFBA><EFBFBD>
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷpclk<6C><6B><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD> 2ͨ<32><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>DMA<4D><41><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ﲻ<EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD>жϺ<D0B6><CFBA><EFBFBD>
|
||||||
// IFX_INTERRUPT(exti_ch2_ch6_isr, 0, EXTI_CH2_CH6_INT_PRIO)
|
// IFX_INTERRUPT(exti_ch2_ch6_isr, 0, EXTI_CH2_CH6_INT_PRIO)
|
||||||
@@ -221,7 +256,7 @@ IFX_INTERRUPT(uart3_rx_isr, 0, UART3_RX_INT_PRIO)
|
|||||||
IfxAsclin_Asc_isrReceive(&uart3_handle);
|
IfxAsclin_Asc_isrReceive(&uart3_handle);
|
||||||
|
|
||||||
|
|
||||||
|
gps_uart_callback();
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,3 +1,7 @@
|
|||||||
|
V3.1.6
|
||||||
|
<20><EFBFBD>GPSʹ<53>ô<EFBFBD><C3B4>ںţ<DABA><C5A3>Ż<EFBFBD>GPS<50><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
isr.c<><63><EFBFBD>Ƴ<EFBFBD>CCD<43>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
<20>İ<DEB8><C4B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>İ<EFBFBD><C4B0><EFBFBD><EFBFBD>˿ںţ<DABA><C5A3><EFBFBD><EFBFBD><EFBFBD>V2.6<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
V3.1.5
|
V3.1.5
|
||||||
<20><EFBFBD>Ӳ<EFBFBD><D3B2>SPI<50><49>ʼ<EFBFBD><CABC>ʱѡ<CAB1><D1A1><EFBFBD><EFBFBD>CS<43><53><EFBFBD>ţ<EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD>ɻ<EFBFBD><C9BB><EFBFBD>ʼ<EFBFBD><CABC>Ĭ<EFBFBD><C4AC>CS<43><53><EFBFBD>ŵ<EFBFBD>bug
|
<20><EFBFBD>Ӳ<EFBFBD><D3B2>SPI<50><49>ʼ<EFBFBD><CABC>ʱѡ<CAB1><D1A1><EFBFBD><EFBFBD>CS<43><53><EFBFBD>ţ<EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD>ɻ<EFBFBD><C9BB><EFBFBD>ʼ<EFBFBD><CABC>Ĭ<EFBFBD><C4AC>CS<43><53><EFBFBD>ŵ<EFBFBD>bug
|
||||||
V3.1.4
|
V3.1.4
|
||||||
|
|||||||
Binary file not shown.
@@ -43,24 +43,25 @@
|
|||||||
* ------------------------------------
|
* ------------------------------------
|
||||||
********************************************************************************************************************/
|
********************************************************************************************************************/
|
||||||
|
|
||||||
|
#include "math.h"
|
||||||
#include "zf_common_function.h"
|
#include "zf_common_function.h"
|
||||||
#include "zf_common_fifo.h"
|
#include "zf_common_fifo.h"
|
||||||
#include "zf_driver_delay.h"
|
#include "zf_driver_delay.h"
|
||||||
#include "zf_driver_uart.h"
|
#include "zf_driver_uart.h"
|
||||||
#include "zf_device_type.h"
|
|
||||||
#include "zf_device_gps_tau1201.h"
|
#include "zf_device_gps_tau1201.h"
|
||||||
|
|
||||||
#define GPS_TAU1201_BUFFER_SIZE (128)
|
#define GPS_TAU1201_BUFFER_SIZE ( 128 )
|
||||||
|
|
||||||
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>
|
uint8 gps_tau1201_flag = 0; // 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>
|
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>
|
static uint8 gps_tau1201_state = 0; // 1<><31>GPS<50><53>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
static fifo_struct gps_tau1201_receiver_fifo; //
|
static fifo_struct gps_tau1201_receiver_fifo; //
|
||||||
static uint8 gps_tau1201_receiver_buffer[GPS_TAU1201_BUFFER_SIZE]; // <20><><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
static uint8 gps_tau1201_receiver_buffer[GPS_TAU1201_BUFFER_SIZE]; // <20><><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
gps_state_enum gps_gga_state; // gga<67><61><EFBFBD><EFBFBD>״̬
|
gps_state_enum gps_gga_state = GPS_STATE_RECEIVING; // gga <EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
||||||
gps_state_enum gps_rmc_state; // rmc<6D><63><EFBFBD><EFBFBD>״̬
|
gps_state_enum gps_rmc_state = GPS_STATE_RECEIVING; // rmc <EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
||||||
|
|
||||||
static uint8 gps_gga_buffer[GPS_TAU1201_BUFFER_SIZE];
|
static uint8 gps_gga_buffer[GPS_TAU1201_BUFFER_SIZE];
|
||||||
static uint8 gps_rmc_buffer[GPS_TAU1201_BUFFER_SIZE];
|
static uint8 gps_rmc_buffer[GPS_TAU1201_BUFFER_SIZE];
|
||||||
@@ -75,11 +76,10 @@ static uint8 gps_rmc_buffer[GPS_TAU1201_BUFFER_SIZE];
|
|||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
static uint8 get_parameter_index (uint8 num, char *str)
|
static uint8 get_parameter_index (uint8 num, char *str)
|
||||||
{
|
{
|
||||||
uint8 i, j = 0;
|
uint8 i = 0, j = 0;
|
||||||
char *temp;
|
char *temp = strchr(str, '\n');
|
||||||
uint8 len = 0, len1;
|
uint8 len = 0, len1 = 0;
|
||||||
|
|
||||||
temp = strchr(str, '\n');
|
|
||||||
if(NULL != temp)
|
if(NULL != temp)
|
||||||
{
|
{
|
||||||
len = (uint8)((uint32)temp - (uint32)str + 1);
|
len = (uint8)((uint32)temp - (uint32)str + 1);
|
||||||
@@ -87,7 +87,7 @@ static uint8 get_parameter_index (uint8 num, char *str)
|
|||||||
|
|
||||||
for(i = 0; i < len; i ++)
|
for(i = 0; i < len; i ++)
|
||||||
{
|
{
|
||||||
if(str[i] == ',')
|
if(',' == str[i])
|
||||||
{
|
{
|
||||||
j ++;
|
j ++;
|
||||||
}
|
}
|
||||||
@@ -111,8 +111,8 @@ static uint8 get_parameter_index (uint8 num, char *str)
|
|||||||
static int get_int_number (char *s)
|
static int get_int_number (char *s)
|
||||||
{
|
{
|
||||||
char buf[10];
|
char buf[10];
|
||||||
uint8 i;
|
uint8 i = 0;
|
||||||
int return_value;
|
int return_value = 0;
|
||||||
i = get_parameter_index(1, s);
|
i = get_parameter_index(1, s);
|
||||||
i = i - 1;
|
i = i - 1;
|
||||||
strncpy(buf, s, i);
|
strncpy(buf, s, i);
|
||||||
@@ -130,9 +130,9 @@ static int get_int_number (char *s)
|
|||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
static float get_float_number (char *s)
|
static float get_float_number (char *s)
|
||||||
{
|
{
|
||||||
uint8 i;
|
uint8 i = 0;
|
||||||
char buf[15];
|
char buf[15];
|
||||||
float return_value;
|
float return_value = 0;
|
||||||
|
|
||||||
i = get_parameter_index(1, s);
|
i = get_parameter_index(1, s);
|
||||||
i = i - 1;
|
i = i - 1;
|
||||||
@@ -151,9 +151,9 @@ static float get_float_number (char *s)
|
|||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
static double get_double_number (char *s)
|
static double get_double_number (char *s)
|
||||||
{
|
{
|
||||||
uint8 i;
|
uint8 i = 0;
|
||||||
char buf[15];
|
char buf[15];
|
||||||
double return_value;
|
double return_value = 0;
|
||||||
|
|
||||||
i = get_parameter_index(1, s);
|
i = get_parameter_index(1, s);
|
||||||
i = i - 1;
|
i = i - 1;
|
||||||
@@ -172,10 +172,10 @@ static double get_double_number (char *s)
|
|||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
static void utc_to_btc (gps_time_struct *time)
|
static void utc_to_btc (gps_time_struct *time)
|
||||||
{
|
{
|
||||||
uint8 day_num;
|
uint8 day_num = 0;
|
||||||
|
|
||||||
time->hour = time->hour + 8;
|
time->hour = time->hour + 8;
|
||||||
if(time->hour > 23)
|
if(23 < time->hour)
|
||||||
{
|
{
|
||||||
time->hour -= 24;
|
time->hour -= 24;
|
||||||
time->day += 1;
|
time->day += 1;
|
||||||
@@ -183,7 +183,7 @@ static void utc_to_btc (gps_time_struct *time)
|
|||||||
if(2 == time->month)
|
if(2 == time->month)
|
||||||
{
|
{
|
||||||
day_num = 28;
|
day_num = 28;
|
||||||
if((time->year % 4 == 0 && time->year % 100 != 0) || time->year % 400 == 0) // <20>ж<EFBFBD><D0B6>Ƿ<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>
|
if((0 == time->year % 4 && 0 != time->year % 100) || 0 == time->year % 400) // <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>
|
||||||
}
|
}
|
||||||
@@ -201,7 +201,7 @@ static void utc_to_btc (gps_time_struct *time)
|
|||||||
{
|
{
|
||||||
time->day = 1;
|
time->day = 1;
|
||||||
time->month ++;
|
time->month ++;
|
||||||
if(time->month > 12)
|
if(12 < time->month)
|
||||||
{
|
{
|
||||||
time->month -= 12;
|
time->month -= 12;
|
||||||
time->year ++;
|
time->year ++;
|
||||||
@@ -220,21 +220,21 @@ static void utc_to_btc (gps_time_struct *time)
|
|||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
static uint8 gps_gnrmc_parse (char *line, gps_info_struct *gps)
|
static uint8 gps_gnrmc_parse (char *line, gps_info_struct *gps)
|
||||||
{
|
{
|
||||||
uint8 state, temp;
|
uint8 state = 0, temp = 0;
|
||||||
|
|
||||||
double latitude; // γ<><CEB3>
|
double latitude = 0; // γ<><CEB3>
|
||||||
double longitude; // <20><><EFBFBD><EFBFBD>
|
double longitude = 0; // <20><><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
float lati_cent_tmp, lati_second_tmp;
|
double lati_cent_tmp = 0, lati_second_tmp = 0;
|
||||||
float long_cent_tmp, long_second_tmp;
|
double long_cent_tmp = 0, long_second_tmp = 0;
|
||||||
float speed_tmp;
|
float speed_tmp = 0;
|
||||||
char *buf = line;
|
char *buf = line;
|
||||||
uint8 return_state = 0;
|
uint8 return_state = 0;
|
||||||
|
|
||||||
state = buf[get_parameter_index(2, buf)];
|
state = buf[get_parameter_index(2, buf)];
|
||||||
|
|
||||||
gps->state = 0;
|
gps->state = 0;
|
||||||
if (state == 'A') // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
if('A' == state) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
{
|
{
|
||||||
return_state = 1;
|
return_state = 1;
|
||||||
gps->state = 1;
|
gps->state = 1;
|
||||||
@@ -247,17 +247,17 @@ static uint8 gps_gnrmc_parse (char *line, gps_info_struct *gps)
|
|||||||
gps->latitude_degree = (int)latitude / 100; // γ<><CEB3>ת<EFBFBD><D7AA>Ϊ<EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD>
|
gps->latitude_degree = (int)latitude / 100; // γ<><CEB3>ת<EFBFBD><D7AA>Ϊ<EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD>
|
||||||
lati_cent_tmp = (latitude - gps->latitude_degree * 100);
|
lati_cent_tmp = (latitude - gps->latitude_degree * 100);
|
||||||
gps->latitude_cent = (int)lati_cent_tmp;
|
gps->latitude_cent = (int)lati_cent_tmp;
|
||||||
lati_second_tmp = (lati_cent_tmp - gps->latitude_cent) * 10000;
|
lati_second_tmp = (lati_cent_tmp - gps->latitude_cent) * 6000;
|
||||||
gps->latitude_second = (int)lati_second_tmp;
|
gps->latitude_second = (int)lati_second_tmp;
|
||||||
|
|
||||||
gps->longitude_degree = (int)longitude / 100; // <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD>
|
gps->longitude_degree = (int)longitude / 100; // <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD>
|
||||||
long_cent_tmp = (longitude - gps->longitude_degree * 100);
|
long_cent_tmp = (longitude - gps->longitude_degree * 100);
|
||||||
gps->longitude_cent = (int)long_cent_tmp;
|
gps->longitude_cent = (int)long_cent_tmp;
|
||||||
long_second_tmp = (long_cent_tmp - gps->longitude_cent) * 10000;
|
long_second_tmp = (long_cent_tmp - gps->longitude_cent) * 6000;
|
||||||
gps->longitude_second = (int)long_second_tmp;
|
gps->longitude_second = (int)long_second_tmp;
|
||||||
|
|
||||||
gps->latitude = gps->latitude_degree + (double)gps->latitude_cent / 60 + (double)gps->latitude_second / 600000;
|
gps->latitude = gps->latitude_degree + lati_cent_tmp / 60;
|
||||||
gps->longitude = gps->longitude_degree + (double)gps->longitude_cent / 60 + (double)gps->longitude_second / 600000;
|
gps->longitude = gps->longitude_degree + long_cent_tmp / 60;
|
||||||
|
|
||||||
speed_tmp = get_float_number(&buf[get_parameter_index(7, buf)]); // <20>ٶ<EFBFBD>(<28><><EFBFBD><EFBFBD>/Сʱ)
|
speed_tmp = get_float_number(&buf[get_parameter_index(7, buf)]); // <20>ٶ<EFBFBD>(<28><><EFBFBD><EFBFBD>/Сʱ)
|
||||||
gps->speed = speed_tmp * 1.85f; // ת<><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>/Сʱ
|
gps->speed = speed_tmp * 1.85f; // ת<><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>/Сʱ
|
||||||
@@ -288,13 +288,13 @@ static uint8 gps_gnrmc_parse (char *line, gps_info_struct *gps)
|
|||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
static uint8 gps_gngga_parse (char *line, gps_info_struct *gps)
|
static uint8 gps_gngga_parse (char *line, gps_info_struct *gps)
|
||||||
{
|
{
|
||||||
uint8 state;
|
uint8 state = 0;
|
||||||
char *buf = line;
|
char *buf = line;
|
||||||
uint8 return_state = 0;
|
uint8 return_state = 0;
|
||||||
|
|
||||||
state = buf[get_parameter_index(2, buf)];
|
state = buf[get_parameter_index(2, buf)];
|
||||||
|
|
||||||
if (state != ',')
|
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>
|
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>
|
||||||
@@ -317,13 +317,13 @@ static uint8 gps_gngga_parse (char *line, gps_info_struct *gps)
|
|||||||
double get_two_points_distance (double latitude1, double longitude1, double latitude2, double longitude2)
|
double get_two_points_distance (double latitude1, double longitude1, double latitude2, double longitude2)
|
||||||
{
|
{
|
||||||
const double EARTH_RADIUS = 6378137; // <20><><EFBFBD><EFBFBD><EFBFBD>뾶(<28><>λ<EFBFBD><CEBB>m)
|
const double EARTH_RADIUS = 6378137; // <20><><EFBFBD><EFBFBD><EFBFBD>뾶(<28><>λ<EFBFBD><CEBB>m)
|
||||||
double rad_latitude1;
|
double rad_latitude1 = 0;
|
||||||
double rad_latitude2;
|
double rad_latitude2 = 0;
|
||||||
double rad_longitude1;
|
double rad_longitude1 = 0;
|
||||||
double rad_longitude2;
|
double rad_longitude2 = 0;
|
||||||
double distance;
|
double distance = 0;
|
||||||
double a;
|
double a = 0;
|
||||||
double b;
|
double b = 0;
|
||||||
|
|
||||||
rad_latitude1 = ANGLE_TO_RAD(latitude1); // <20><><EFBFBD>ݽǶȼ<C7B6><C8BC>㻡<EFBFBD><E3BBA1>
|
rad_latitude1 = ANGLE_TO_RAD(latitude1); // <20><><EFBFBD>ݽǶȼ<C7B6><C8BC>㻡<EFBFBD><E3BBA1>
|
||||||
rad_latitude2 = ANGLE_TO_RAD(latitude2);
|
rad_latitude2 = ANGLE_TO_RAD(latitude2);
|
||||||
@@ -359,7 +359,7 @@ double get_two_points_azimuth (double latitude1, double longitude1, double latit
|
|||||||
double x = sin(longitude2 - longitude1) * cos(latitude2);
|
double x = sin(longitude2 - longitude1) * cos(latitude2);
|
||||||
double y = cos(latitude1) * sin(latitude2) - sin(latitude1) * cos(latitude2) * cos(longitude2 - longitude1);
|
double y = cos(latitude1) * sin(latitude2) - sin(latitude1) * cos(latitude2) * cos(longitude2 - longitude1);
|
||||||
double angle = RAD_TO_ANGLE(atan2(x, y));
|
double angle = RAD_TO_ANGLE(atan2(x, y));
|
||||||
return ((angle > 0) ? angle : (angle + 360));
|
return ((0 < angle) ? angle : (angle + 360));
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
@@ -375,16 +375,16 @@ uint8 gps_data_parse (void)
|
|||||||
uint8 check_buffer[5] = {'0', 'x', 0x00, 0x00, 0x00};
|
uint8 check_buffer[5] = {'0', 'x', 0x00, 0x00, 0x00};
|
||||||
uint8 bbc_xor_origin = 0;
|
uint8 bbc_xor_origin = 0;
|
||||||
uint8 bbc_xor_calculation = 0;
|
uint8 bbc_xor_calculation = 0;
|
||||||
uint32 data_len;
|
uint32 data_len = 0;
|
||||||
|
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
if(GPS_STATE_RECEIVED == gps_rmc_state)
|
if(GPS_STATE_RECEIVED == gps_rmc_state)
|
||||||
{
|
{
|
||||||
gps_rmc_state = GPS_STATE_PARSING;
|
gps_rmc_state = GPS_STATE_PARSING;
|
||||||
strncpy((char *)&check_buffer[2], strchr((const char *)gps_rmc_buffer, '*')+1, 2);
|
strncpy((char *)&check_buffer[2], strchr((const char *)gps_rmc_buffer, '*') + 1, 2);
|
||||||
bbc_xor_origin = (uint8)func_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 ++)
|
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];
|
bbc_xor_calculation ^= gps_rmc_buffer[data_len];
|
||||||
}
|
}
|
||||||
@@ -402,10 +402,10 @@ uint8 gps_data_parse (void)
|
|||||||
if(GPS_STATE_RECEIVED == gps_gga_state)
|
if(GPS_STATE_RECEIVED == gps_gga_state)
|
||||||
{
|
{
|
||||||
gps_gga_state = GPS_STATE_PARSING;
|
gps_gga_state = GPS_STATE_PARSING;
|
||||||
strncpy((char *)&check_buffer[2], strchr((const char *)gps_gga_buffer, '*')+1, 2);
|
strncpy((char *)&check_buffer[2], strchr((const char *)gps_gga_buffer, '*') + 1, 2);
|
||||||
bbc_xor_origin = (uint8)func_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 ++)
|
for(bbc_xor_calculation = gps_gga_buffer[1], data_len = 2; '*' != gps_gga_buffer[data_len]; data_len ++)
|
||||||
{
|
{
|
||||||
bbc_xor_calculation ^= gps_gga_buffer[data_len];
|
bbc_xor_calculation ^= gps_gga_buffer[data_len];
|
||||||
}
|
}
|
||||||
@@ -435,7 +435,7 @@ uint8 gps_data_parse (void)
|
|||||||
void gps_uart_callback (void)
|
void gps_uart_callback (void)
|
||||||
{
|
{
|
||||||
uint8 temp_gps[6];
|
uint8 temp_gps[6];
|
||||||
uint32 temp_length;
|
uint32 temp_length = 0;
|
||||||
|
|
||||||
if(gps_tau1201_state)
|
if(gps_tau1201_state)
|
||||||
{
|
{
|
||||||
@@ -507,8 +507,7 @@ uint8 gps_init (void)
|
|||||||
fifo_init(&gps_tau1201_receiver_fifo, FIFO_DATA_8BIT, gps_tau1201_receiver_buffer, GPS_TAU1201_BUFFER_SIZE);
|
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>
|
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);
|
uart_init(GPS_TAU1201_UART, 115200, GPS_TAU1201_RX, GPS_TAU1201_TX);
|
||||||
|
uart_rx_interrupt(GPS_TAU1201_UART, 0);
|
||||||
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
|
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);
|
system_delay_ms(200);
|
||||||
|
|||||||
@@ -49,9 +49,9 @@
|
|||||||
#include "zf_common_typedef.h"
|
#include "zf_common_typedef.h"
|
||||||
|
|
||||||
//===============================================GPS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
//===============================================GPS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||||
#define GPS_TAU1201_UART (UART_2)
|
#define GPS_TAU1201_UART (UART_3)
|
||||||
#define GPS_TAU1201_RX (UART2_TX_P10_5) // GPS RX<52><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD>
|
#define GPS_TAU1201_RX (UART3_TX_P15_6) // GPS RX<52><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD>
|
||||||
#define GPS_TAU1201_TX (UART2_RX_P10_6) // GPS TX<54><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
#define GPS_TAU1201_TX (UART3_RX_P15_7) // GPS TX<54><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
//===============================================GPS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
//===============================================GPS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||||
|
|
||||||
#define ANGLE_TO_RAD(x) ((x) * PI / 180.0) // <20>Ƕ<EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>
|
#define ANGLE_TO_RAD(x) ((x) * PI / 180.0) // <20>Ƕ<EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>
|
||||||
|
|||||||
@@ -137,8 +137,8 @@
|
|||||||
//================================================<3D><><EFBFBD><EFBFBD> IMU963RA <20>ڲ<EFBFBD><DAB2><EFBFBD>ַ================================================
|
//================================================<3D><><EFBFBD><EFBFBD> IMU963RA <20>ڲ<EFBFBD><DAB2><EFBFBD>ַ================================================
|
||||||
|
|
||||||
//===============================================<3D><><EFBFBD><EFBFBD> IMU963RA <20><><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD>===============================================
|
//===============================================<3D><><EFBFBD><EFBFBD> IMU963RA <20><><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD>===============================================
|
||||||
extern int16 imu963ra_acc_x, imu963ra_acc_y, imu963ra_acc_z; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
extern int16 imu963ra_gyro_x, imu963ra_gyro_y, imu963ra_gyro_z; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
extern int16 imu963ra_gyro_x, imu963ra_gyro_y, imu963ra_gyro_z; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
extern int16 imu963ra_acc_x, imu963ra_acc_y, imu963ra_acc_z; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
||||||
extern int16 imu963ra_mag_x, imu963ra_mag_y, imu963ra_mag_z; // <20><><EFBFBD><EFBFBD><EFBFBD>شż<D8B4><C5BC><EFBFBD><EFBFBD><EFBFBD>
|
extern int16 imu963ra_mag_x, imu963ra_mag_y, imu963ra_mag_z; // <20><><EFBFBD><EFBFBD><EFBFBD>شż<D8B4><C5BC><EFBFBD><EFBFBD><EFBFBD>
|
||||||
//===============================================<3D><><EFBFBD><EFBFBD> IMU963RA <20><><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD>===============================================
|
//===============================================<3D><><EFBFBD><EFBFBD> IMU963RA <20><><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD>===============================================
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*********************************************************************************************************************
|
/*********************************************************************************************************************
|
||||||
* MM32F327X-G9P Opensourec Library <20><><EFBFBD><EFBFBD>MM32F327X-G9P <20><>Դ<EFBFBD>⣩<EFBFBD><E2A3A9>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ڹٷ<DAB9> SDK <20>ӿڵĵ<DAB5><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4>
|
* TC264 Opensourec Library <20><><EFBFBD><EFBFBD>TC264 <20><>Դ<EFBFBD>⣩<EFBFBD><E2A3A9>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ڹٷ<DAB9> SDK <20>ӿڵĵ<DAB5><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4>
|
||||||
* Copyright (c) 2022 SEEKFREE <20><><EFBFBD>ɿƼ<C9BF>
|
* Copyright (c) 2022 SEEKFREE <20><><EFBFBD>ɿƼ<C9BF>
|
||||||
*
|
*
|
||||||
* <20><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD> MM32F327X-G9P <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
|
* <20><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD> TC264 <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
|
||||||
*
|
*
|
||||||
* MM32F327X-G9P <20><>Դ<EFBFBD><D4B4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
* TC264 <20><>Դ<EFBFBD><D4B4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
* <20><><EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD><D4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᷢ<EFBFBD><E1B7A2><EFBFBD><EFBFBD> GPL<50><4C>GNU General Public License<73><65><EFBFBD><EFBFBD> GNUͨ<55>ù<EFBFBD><C3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
* <20><><EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD><D4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᷢ<EFBFBD><E1B7A2><EFBFBD><EFBFBD> GPL<50><4C>GNU General Public License<73><65><EFBFBD><EFBFBD> GNUͨ<55>ù<EFBFBD><C3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
* <20><> GPL <20>ĵ<EFBFBD>3<EFBFBD>棨<EFBFBD><E6A3A8> GPL3.0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD>κκ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>İ汾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><DEB8><EFBFBD>
|
* <20><> GPL <20>ĵ<EFBFBD>3<EFBFBD>棨<EFBFBD><E6A3A8> GPL3.0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD>κκ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>İ汾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><DEB8><EFBFBD>
|
||||||
*
|
*
|
||||||
@@ -24,13 +24,13 @@
|
|||||||
* <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> zf_device_key
|
* <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> zf_device_key
|
||||||
* <20><>˾<EFBFBD><CBBE><EFBFBD><EFBFBD> <20>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD><EFBFBD>˾
|
* <20><>˾<EFBFBD><CBBE><EFBFBD><EFBFBD> <20>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD><EFBFBD>˾
|
||||||
* <20>汾<EFBFBD><E6B1BE>Ϣ <20>鿴 libraries/doc <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> version <20>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
|
* <20>汾<EFBFBD><E6B1BE>Ϣ <20>鿴 libraries/doc <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> version <20>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
|
||||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IAR 8.32.4 or MDK 5.37
|
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ADS v1.8.0
|
||||||
* <20><><EFBFBD><EFBFBD>ƽ̨ MM32F327X_G9P
|
* <20><><EFBFBD><EFBFBD>ƽ̨ TC264D
|
||||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> https://seekfree.taobao.com/
|
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> https://seekfree.taobao.com/
|
||||||
*
|
*
|
||||||
* <20>ļ<DEB8>¼
|
* <20>ļ<DEB8>¼
|
||||||
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
|
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
|
||||||
* 2022-08-10 Teternal first version
|
* 2022-09-15 pudding first version
|
||||||
********************************************************************************************************************/
|
********************************************************************************************************************/
|
||||||
/*********************************************************************************************************************
|
/*********************************************************************************************************************
|
||||||
* <20><><EFBFBD>߶<EFBFBD><DFB6>壺
|
* <20><><EFBFBD>߶<EFBFBD><DFB6>壺
|
||||||
@@ -45,6 +45,7 @@
|
|||||||
********************************************************************************************************************/
|
********************************************************************************************************************/
|
||||||
|
|
||||||
#include "zf_common_debug.h"
|
#include "zf_common_debug.h"
|
||||||
|
|
||||||
#include "zf_device_key.h"
|
#include "zf_device_key.h"
|
||||||
|
|
||||||
static uint32 scanner_period = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
static uint32 scanner_period = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
@@ -65,54 +66,21 @@ void key_scanner (void)
|
|||||||
uint8 i = 0;
|
uint8 i = 0;
|
||||||
for(i = 0; i < KEY_NUMBER; i ++)
|
for(i = 0; i < KEY_NUMBER; i ++)
|
||||||
{
|
{
|
||||||
switch(key_state[i])
|
if(KEY_RELEASE_LEVEL != gpio_get_level(key_index[i])) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
{
|
{
|
||||||
case KEY_RELEASE:
|
key_press_time[i] ++;
|
||||||
if(KEY_RELEASE_LEVEL != gpio_get_level(key_index[i]))
|
if(key_press_time[i] >= KEY_LONG_PRESS_PERIOD / scanner_period)
|
||||||
{
|
{
|
||||||
if(++ key_press_time[i] >= KEY_MAX_SHOCK_PERIOD / scanner_period)
|
key_state[i] = KEY_LONG_PRESS;
|
||||||
{
|
}
|
||||||
key_state[i] = KEY_SHORT_PRESS;
|
}
|
||||||
}
|
else // <20><><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>
|
||||||
else
|
{
|
||||||
{
|
if(key_state[i] != KEY_LONG_PRESS && key_press_time[i] >= KEY_MAX_SHOCK_PERIOD / scanner_period)
|
||||||
key_state[i] = KEY_CHECK_SHOCK;
|
{
|
||||||
}
|
key_state[i] = KEY_SHORT_PRESS;
|
||||||
}
|
}
|
||||||
break;
|
key_press_time[i] = 0;
|
||||||
case KEY_CHECK_SHOCK:
|
|
||||||
if(KEY_RELEASE_LEVEL != gpio_get_level(key_index[i]))
|
|
||||||
{
|
|
||||||
if(++ key_press_time[i] >= KEY_MAX_SHOCK_PERIOD / scanner_period)
|
|
||||||
{
|
|
||||||
key_state[i] = KEY_SHORT_PRESS;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
key_state[i] = KEY_RELEASE;
|
|
||||||
key_press_time[i] = 0;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case KEY_SHORT_PRESS:
|
|
||||||
if(++ key_press_time[i] >= KEY_LONG_PRESS_PERIOD / scanner_period)
|
|
||||||
{
|
|
||||||
key_state[i] = KEY_LONG_PRESS;
|
|
||||||
}
|
|
||||||
if(KEY_RELEASE_LEVEL == gpio_get_level(key_index[i]))
|
|
||||||
{
|
|
||||||
key_state[i] = KEY_RELEASE;
|
|
||||||
key_press_time[i] = 0;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case KEY_LONG_PRESS:
|
|
||||||
if(KEY_RELEASE_LEVEL == gpio_get_level(key_index[i]))
|
|
||||||
{
|
|
||||||
key_state[i] = KEY_RELEASE;
|
|
||||||
key_press_time[i] = 0;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -129,6 +97,33 @@ key_state_enum key_get_state (key_index_enum key_n)
|
|||||||
return key_state[key_n];
|
return key_state[key_n];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>״̬
|
||||||
|
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> key_n <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void <20><>
|
||||||
|
// ʹ<><CAB9>ʾ<EFBFBD><CABE> key_clear_state(KEY_1);
|
||||||
|
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
void key_clear_state (key_index_enum key_n)
|
||||||
|
{
|
||||||
|
key_state[key_n] = KEY_RELEASE;
|
||||||
|
}
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>а<EFBFBD><D0B0><EFBFBD>״̬
|
||||||
|
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> void <20><>
|
||||||
|
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void <20><>
|
||||||
|
// ʹ<><CAB9>ʾ<EFBFBD><CABE> key_clear_all_state();
|
||||||
|
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
void key_clear_all_state (void)
|
||||||
|
{
|
||||||
|
key_state[0] = KEY_RELEASE;
|
||||||
|
key_state[1] = KEY_RELEASE;
|
||||||
|
key_state[2] = KEY_RELEASE;
|
||||||
|
key_state[3] = KEY_RELEASE;
|
||||||
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
||||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> period <20><><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ժ<EFBFBD><D4BA><EFBFBD>Ϊ<EFBFBD><CEAA>λ
|
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> period <20><><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ժ<EFBFBD><D4BA><EFBFBD>Ϊ<EFBFBD><CEAA>λ
|
||||||
@@ -136,17 +131,14 @@ key_state_enum key_get_state (key_index_enum key_n)
|
|||||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> key_init(10);
|
// ʹ<><CAB9>ʾ<EFBFBD><CABE> key_init(10);
|
||||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
uint8 key_init (uint32 period)
|
void key_init (uint32 period)
|
||||||
{
|
{
|
||||||
|
zf_assert(0 < period);
|
||||||
uint8 loop_temp = 0;
|
uint8 loop_temp = 0;
|
||||||
|
|
||||||
zf_assert(0 < period); // ɨ<><C9A8><EFBFBD><EFBFBD><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0
|
|
||||||
|
|
||||||
for(loop_temp = 0; loop_temp < KEY_NUMBER; loop_temp ++)
|
for(loop_temp = 0; loop_temp < KEY_NUMBER; loop_temp ++)
|
||||||
{
|
{
|
||||||
gpio_init(key_index[loop_temp], GPI, GPIO_HIGH, GPI_PULL_UP);
|
gpio_init(key_index[loop_temp], GPI, GPIO_HIGH, GPI_PULL_UP);
|
||||||
key_state[loop_temp] = KEY_RELEASE;
|
key_state[loop_temp] = KEY_RELEASE;
|
||||||
}
|
}
|
||||||
scanner_period = period;
|
scanner_period = period;
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*********************************************************************************************************************
|
/*********************************************************************************************************************
|
||||||
* MM32F327X-G9P Opensourec Library <20><><EFBFBD><EFBFBD>MM32F327X-G9P <20><>Դ<EFBFBD>⣩<EFBFBD><E2A3A9>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ڹٷ<DAB9> SDK <20>ӿڵĵ<DAB5><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4>
|
* TC264 Opensourec Library <20><><EFBFBD><EFBFBD>TC264 <20><>Դ<EFBFBD>⣩<EFBFBD><E2A3A9>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ڹٷ<DAB9> SDK <20>ӿڵĵ<DAB5><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4>
|
||||||
* Copyright (c) 2022 SEEKFREE <20><><EFBFBD>ɿƼ<C9BF>
|
* Copyright (c) 2022 SEEKFREE <20><><EFBFBD>ɿƼ<C9BF>
|
||||||
*
|
*
|
||||||
* <20><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD> MM32F327X-G9P <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
|
* <20><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD> TC264 <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
|
||||||
*
|
*
|
||||||
* MM32F327X-G9P <20><>Դ<EFBFBD><D4B4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
* TC264 <20><>Դ<EFBFBD><D4B4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
* <20><><EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD><D4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᷢ<EFBFBD><E1B7A2><EFBFBD><EFBFBD> GPL<50><4C>GNU General Public License<73><65><EFBFBD><EFBFBD> GNUͨ<55>ù<EFBFBD><C3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
* <20><><EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD><D4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᷢ<EFBFBD><E1B7A2><EFBFBD><EFBFBD> GPL<50><4C>GNU General Public License<73><65><EFBFBD><EFBFBD> GNUͨ<55>ù<EFBFBD><C3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
* <20><> GPL <20>ĵ<EFBFBD>3<EFBFBD>棨<EFBFBD><E6A3A8> GPL3.0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD>κκ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>İ汾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><DEB8><EFBFBD>
|
* <20><> GPL <20>ĵ<EFBFBD>3<EFBFBD>棨<EFBFBD><E6A3A8> GPL3.0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD>κκ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>İ汾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><DEB8><EFBFBD>
|
||||||
*
|
*
|
||||||
@@ -24,13 +24,13 @@
|
|||||||
* <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> zf_device_key
|
* <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> zf_device_key
|
||||||
* <20><>˾<EFBFBD><CBBE><EFBFBD><EFBFBD> <20>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD><EFBFBD>˾
|
* <20><>˾<EFBFBD><CBBE><EFBFBD><EFBFBD> <20>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD><EFBFBD>˾
|
||||||
* <20>汾<EFBFBD><E6B1BE>Ϣ <20>鿴 libraries/doc <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> version <20>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
|
* <20>汾<EFBFBD><E6B1BE>Ϣ <20>鿴 libraries/doc <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> version <20>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
|
||||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IAR 8.32.4 or MDK 5.37
|
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ADS v1.8.0
|
||||||
* <20><><EFBFBD><EFBFBD>ƽ̨ MM32F327X_G9P
|
* <20><><EFBFBD><EFBFBD>ƽ̨ TC264D
|
||||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> https://seekfree.taobao.com/
|
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> https://seekfree.taobao.com/
|
||||||
*
|
*
|
||||||
* <20>ļ<DEB8>¼
|
* <20>ļ<DEB8>¼
|
||||||
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
|
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
|
||||||
* 2022-08-10 Teternal first version
|
* 2022-09-15 pudding first version
|
||||||
********************************************************************************************************************/
|
********************************************************************************************************************/
|
||||||
/*********************************************************************************************************************
|
/*********************************************************************************************************************
|
||||||
* <20><><EFBFBD>߶<EFBFBD><DFB6>壺
|
* <20><><EFBFBD>߶<EFBFBD><DFB6>壺
|
||||||
@@ -53,13 +53,12 @@
|
|||||||
// <20><><EFBFBD>尴<EFBFBD><E5B0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ĭ<>϶<EFBFBD><CFB6><EFBFBD><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD>
|
// <20><><EFBFBD>尴<EFBFBD><E5B0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ĭ<>϶<EFBFBD><CFB6><EFBFBD><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD>
|
||||||
// <20><><EFBFBD>尴<EFBFBD><E5B0B4>˳<EFBFBD><CBB3><EFBFBD><EFBFBD>Ӧ<EFBFBD>·<EFBFBD> key_index_enum ö<><C3B6><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><CBB3>
|
// <20><><EFBFBD>尴<EFBFBD><E5B0B4>˳<EFBFBD><CBB3><EFBFBD><EFBFBD>Ӧ<EFBFBD>·<EFBFBD> key_index_enum ö<><C3B6><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><CBB3>
|
||||||
// <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ô<EFBFBD><C3B4>Ҫͬ<D2AA><CDAC><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD> key_index_enum ö<><C3B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
// <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ô<EFBFBD><C3B4>Ҫͬ<D2AA><CDAC><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD> key_index_enum ö<><C3B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
#define KEY_LIST {P22_0, P22_1, P22_2, P22_3}
|
#define KEY_LIST {P20_6, P20_7, P11_2, P11_3}
|
||||||
|
|
||||||
#define KEY_RELEASE_LEVEL (GPIO_HIGH) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>״̬ Ҳ<><D2B2><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ͷ<EFBFBD>״̬<D7B4>ĵ<EFBFBD>ƽ
|
#define KEY_RELEASE_LEVEL (GPIO_HIGH) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>״̬ Ҳ<><D2B2><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ͷ<EFBFBD>״̬<D7B4>ĵ<EFBFBD>ƽ
|
||||||
#define KEY_MAX_SHOCK_PERIOD (10 ) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>źŻᱻ<C5BB><E1B1BB>Ϊ<EFBFBD><CEAA><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD><EFBFBD>
|
#define KEY_MAX_SHOCK_PERIOD (10 ) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>źŻᱻ<C5BB><E1B1BB>Ϊ<EFBFBD><CEAA><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD><EFBFBD>
|
||||||
#define KEY_LONG_PRESS_PERIOD (1000 ) // <20><>С<EFBFBD><D0A1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>
|
#define KEY_LONG_PRESS_PERIOD (1000 ) // <20><>С<EFBFBD><D0A1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>źŻᱻ<C5BB><E1B1BB>Ϊ<EFBFBD>dz<EFBFBD><C7B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
//=================================================<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ṹ<EFBFBD><E1B9B9>===============================================
|
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
KEY_1,
|
KEY_1,
|
||||||
@@ -72,15 +71,14 @@ typedef enum
|
|||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
KEY_RELEASE, // <20><><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>״̬
|
KEY_RELEASE, // <20><><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>״̬
|
||||||
KEY_CHECK_SHOCK, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
|
||||||
KEY_SHORT_PRESS, // <20><><EFBFBD><EFBFBD><EFBFBD>̰<EFBFBD>״̬
|
KEY_SHORT_PRESS, // <20><><EFBFBD><EFBFBD><EFBFBD>̰<EFBFBD>״̬
|
||||||
KEY_LONG_PRESS, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
KEY_LONG_PRESS, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
||||||
}key_state_enum;
|
}key_state_enum;
|
||||||
//=================================================<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ṹ<EFBFBD><E1B9B9>===============================================
|
|
||||||
|
|
||||||
//====================================================<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>=================================================
|
void key_scanner (void);
|
||||||
void key_scanner (void); // <20><><EFBFBD><EFBFBD>״̬ɨ<CCAC><C9A8>
|
key_state_enum key_get_state (key_index_enum key_n);
|
||||||
key_state_enum key_get_state (key_index_enum key_n); // <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>״̬
|
void key_clear_state (key_index_enum key_n);
|
||||||
uint8 key_init (uint32 period); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
void key_clear_all_state (void);
|
||||||
//====================================================<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>=================================================
|
void key_init (uint32 period);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -60,7 +60,7 @@
|
|||||||
|
|
||||||
// TSL1401 <20><><EFBFBD><EFBFBD><EFBFBD>ڲɼ<DAB2><C9BC><EFBFBD><EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD> ʹ<>õ<EFBFBD><C3B5>ĸ<EFBFBD> PIT <20><>Ҫ<EFBFBD><D2AA> <20><><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD> PIT <20><><EFBFBD>жϷ<D0B6><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
// TSL1401 <20><><EFBFBD><EFBFBD><EFBFBD>ڲɼ<DAB2><C9BC><EFBFBD><EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD> ʹ<>õ<EFBFBD><C3B5>ĸ<EFBFBD> PIT <20><>Ҫ<EFBFBD><D2AA> <20><><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD> PIT <20><><EFBFBD>жϷ<D0B6><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
#define TSL1401_EXPOSURE_TIME (10 ) // <20><><EFBFBD><EFBFBD> TSL1401 <20>ع<EFBFBD>ʱ<EFBFBD><CAB1> <20><>λ MS
|
#define TSL1401_EXPOSURE_TIME (10 ) // <20><><EFBFBD><EFBFBD> TSL1401 <20>ع<EFBFBD>ʱ<EFBFBD><CAB1> <20><>λ MS
|
||||||
#define TSL1401_PIT_INDEX (CCU60_CH0) // ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
#define TSL1401_PIT_INDEX (CCU61_CH1) // ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||||
#define TSL1401_AD_RESOLUTION (ADC_8BIT) // ADC <20><><EFBFBD><EFBFBD> 8bit
|
#define TSL1401_AD_RESOLUTION (ADC_8BIT) // ADC <20><><EFBFBD><EFBFBD> 8bit
|
||||||
#define TSL1401_DATA_LEN (128 ) // TSL1401 <20><><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
|
#define TSL1401_DATA_LEN (128 ) // TSL1401 <20><><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
|
||||||
//=================================================TSL1401 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
//=================================================TSL1401 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||||
|
|||||||
@@ -53,9 +53,7 @@ typedef enum
|
|||||||
NO_WIRELESS = 0, // <20><><EFBFBD>豸
|
NO_WIRELESS = 0, // <20><><EFBFBD>豸
|
||||||
WIRELESS_UART, // <20><><EFBFBD>ߴ<EFBFBD><DFB4><EFBFBD>
|
WIRELESS_UART, // <20><><EFBFBD>ߴ<EFBFBD><DFB4><EFBFBD>
|
||||||
BLUETOOTH_CH9141, // <20><><EFBFBD><EFBFBD> CH9141
|
BLUETOOTH_CH9141, // <20><><EFBFBD><EFBFBD> CH9141
|
||||||
GPS_TAU1201,
|
WIFI_UART, // <20><><EFBFBD><EFBFBD> WiFi
|
||||||
WIFI_UART,
|
|
||||||
WIFI_SPI,
|
|
||||||
}wireless_type_enum;
|
}wireless_type_enum;
|
||||||
//==============================================<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ö<><C3B6><EFBFBD><EFBFBD>==================================================
|
//==============================================<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ö<><C3B6><EFBFBD><EFBFBD>==================================================
|
||||||
|
|
||||||
|
|||||||
@@ -40,7 +40,7 @@
|
|||||||
|
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> systick<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> system<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> time <20><>ʱһ<CAB1>ֵ<EFBFBD>ʱ<EFBFBD>䣨<EFBFBD><E4A3A8>λΪ<CEBB><CEAA><EFBFBD>룬<EFBFBD><EBA3AC><EFBFBD><EFBFBD><EFBFBD>÷<EFBFBD>Χ0-20000000<30><30>
|
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> time <20><>ʱһ<CAB1>ֵ<EFBFBD>ʱ<EFBFBD>䣨<EFBFBD><E4A3A8>λΪ<CEBB><CEAA><EFBFBD>룬<EFBFBD><EBA3AC><EFBFBD><EFBFBD><EFBFBD>÷<EFBFBD>Χ0-20000000<30><30>
|
||||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> num <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> num <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||||
@@ -60,3 +60,25 @@ void system_delay (uint32 time, uint32 num)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> system <><CEA2> <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
||||||
|
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> time <20><>ʱʱ<CAB1><CAB1> <20><>λ<EFBFBD><CEBB>us
|
||||||
|
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||||
|
// ʹ<><CAB9>ʾ<EFBFBD><CABE> system_delay_us(100); // <20><>ʱ100<30><CEA2>
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
void system_delay_us (uint32 time)
|
||||||
|
{
|
||||||
|
system_delay(time*1000, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> system <20><><EFBFBD><EFBFBD> <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
||||||
|
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> time <20><>ʱʱ<CAB1><CAB1> <20><>λ<EFBFBD><CEBB>ms
|
||||||
|
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||||
|
// ʹ<><CAB9>ʾ<EFBFBD><CABE> system_delay_ms(100); // <20><>ʱ100<30><30><EFBFBD><EFBFBD>
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
void system_delay_ms (uint32 time)
|
||||||
|
{
|
||||||
|
system_delay(1000000, time);
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -38,13 +38,10 @@
|
|||||||
|
|
||||||
#include "zf_common_typedef.h"
|
#include "zf_common_typedef.h"
|
||||||
|
|
||||||
|
|
||||||
void system_delay (uint32 time, uint32 num);
|
|
||||||
|
|
||||||
//====================================================<3D><>ʱ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
//====================================================<3D><>ʱ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||||
#define system_delay_ms(time) system_delay((1000000), (time)) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<CAB1><CAB1> <20><>λms
|
void system_delay (uint32 time, uint32 num);
|
||||||
#define system_delay_us(time) system_delay((time*1000), (1)) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<CAB1><CAB1> <20><>λus
|
void system_delay_us (uint32 time);
|
||||||
#define system_delay_ns(time) system_delay((time), (1)) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<CAB1><CAB1> <20><>λns
|
void system_delay_ms (uint32 time);
|
||||||
//====================================================<3D><>ʱ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
//====================================================<3D><>ʱ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -37,7 +37,13 @@
|
|||||||
#include "isr.h"
|
#include "isr.h"
|
||||||
|
|
||||||
// **************************** PIT<49>жϺ<D0B6><CFBA><EFBFBD> ****************************
|
// **************************** PIT<49>жϺ<D0B6><CFBA><EFBFBD> ****************************
|
||||||
|
//IFX_INTERRUPT(cc60_pit_ch0_isr, 0, CCU6_0_CH0_ISR_PRIORITY)
|
||||||
|
//{
|
||||||
|
// interrupt_global_enable(0); // <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
|
||||||
|
// pit_clear_flag(CCU60_CH0);
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//}
|
||||||
|
|
||||||
|
|
||||||
IFX_INTERRUPT(cc60_pit_ch1_isr, 0, CCU6_0_CH1_ISR_PRIORITY)
|
IFX_INTERRUPT(cc60_pit_ch1_isr, 0, CCU6_0_CH1_ISR_PRIORITY)
|
||||||
@@ -68,7 +74,6 @@ IFX_INTERRUPT(cc61_pit_ch1_isr, 0, CCU6_1_CH1_ISR_PRIORITY)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
// **************************** PIT<49>жϺ<D0B6><CFBA><EFBFBD> ****************************
|
// **************************** PIT<49>жϺ<D0B6><CFBA><EFBFBD> ****************************
|
||||||
|
|
||||||
@@ -81,9 +86,6 @@ IFX_INTERRUPT(exti_ch0_ch4_isr, 0, EXTI_CH0_CH4_INT_PRIO)
|
|||||||
{
|
{
|
||||||
exti_flag_clear(ERU_CH0_REQ0_P15_4);
|
exti_flag_clear(ERU_CH0_REQ0_P15_4);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(exti_flag_get(ERU_CH4_REQ13_P15_5)) // ͨ<><CDA8>4<EFBFBD>ж<EFBFBD>
|
if(exti_flag_get(ERU_CH4_REQ13_P15_5)) // ͨ<><CDA8>4<EFBFBD>ж<EFBFBD>
|
||||||
@@ -112,8 +114,6 @@ IFX_INTERRUPT(exti_ch1_ch5_isr, 0, EXTI_CH1_CH5_INT_PRIO)
|
|||||||
exti_flag_clear(ERU_CH5_REQ1_P15_8);
|
exti_flag_clear(ERU_CH5_REQ1_P15_8);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -256,7 +256,7 @@ IFX_INTERRUPT(uart3_rx_isr, 0, UART3_RX_INT_PRIO)
|
|||||||
IfxAsclin_Asc_isrReceive(&uart3_handle);
|
IfxAsclin_Asc_isrReceive(&uart3_handle);
|
||||||
|
|
||||||
|
|
||||||
|
gps_uart_callback();
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,6 @@
|
|||||||
|
doxygen/doxygen_new_line_after_brief=true
|
||||||
|
doxygen/doxygen_use_brief_tag=false
|
||||||
|
doxygen/doxygen_use_javadoc_tags=true
|
||||||
|
doxygen/doxygen_use_pre_tag=false
|
||||||
|
doxygen/doxygen_use_structural_commands=false
|
||||||
|
eclipse.preferences.version=1
|
||||||
@@ -1,3 +1,7 @@
|
|||||||
|
V3.1.6
|
||||||
|
<20><EFBFBD>GPSʹ<53>ô<EFBFBD><C3B4>ںţ<DABA><C5A3>Ż<EFBFBD>GPS<50><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
isr.c<><63><EFBFBD>Ƴ<EFBFBD>CCD<43>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
<20>İ<DEB8><C4B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>İ<EFBFBD><C4B0><EFBFBD><EFBFBD>˿ںţ<DABA><C5A3><EFBFBD><EFBFBD><EFBFBD>V2.6<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
V3.1.5
|
V3.1.5
|
||||||
<20><EFBFBD>Ӳ<EFBFBD><D3B2>SPI<50><49>ʼ<EFBFBD><CABC>ʱѡ<CAB1><D1A1><EFBFBD><EFBFBD>CS<43><53><EFBFBD>ţ<EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD>ɻ<EFBFBD><C9BB><EFBFBD>ʼ<EFBFBD><CABC>Ĭ<EFBFBD><C4AC>CS<43><53><EFBFBD>ŵ<EFBFBD>bug
|
<20><EFBFBD>Ӳ<EFBFBD><D3B2>SPI<50><49>ʼ<EFBFBD><CABC>ʱѡ<CAB1><D1A1><EFBFBD><EFBFBD>CS<43><53><EFBFBD>ţ<EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD>ɻ<EFBFBD><C9BB><EFBFBD>ʼ<EFBFBD><CABC>Ĭ<EFBFBD><C4AC>CS<43><53><EFBFBD>ŵ<EFBFBD>bug
|
||||||
V3.1.4
|
V3.1.4
|
||||||
|
|||||||
Binary file not shown.
@@ -43,24 +43,25 @@
|
|||||||
* ------------------------------------
|
* ------------------------------------
|
||||||
********************************************************************************************************************/
|
********************************************************************************************************************/
|
||||||
|
|
||||||
|
#include "math.h"
|
||||||
#include "zf_common_function.h"
|
#include "zf_common_function.h"
|
||||||
#include "zf_common_fifo.h"
|
#include "zf_common_fifo.h"
|
||||||
#include "zf_driver_delay.h"
|
#include "zf_driver_delay.h"
|
||||||
#include "zf_driver_uart.h"
|
#include "zf_driver_uart.h"
|
||||||
#include "zf_device_type.h"
|
|
||||||
#include "zf_device_gps_tau1201.h"
|
#include "zf_device_gps_tau1201.h"
|
||||||
|
|
||||||
#define GPS_TAU1201_BUFFER_SIZE (128)
|
#define GPS_TAU1201_BUFFER_SIZE ( 128 )
|
||||||
|
|
||||||
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>
|
uint8 gps_tau1201_flag = 0; // 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>
|
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>
|
static uint8 gps_tau1201_state = 0; // 1<><31>GPS<50><53>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
static fifo_struct gps_tau1201_receiver_fifo; //
|
static fifo_struct gps_tau1201_receiver_fifo; //
|
||||||
static uint8 gps_tau1201_receiver_buffer[GPS_TAU1201_BUFFER_SIZE]; // <20><><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
static uint8 gps_tau1201_receiver_buffer[GPS_TAU1201_BUFFER_SIZE]; // <20><><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
gps_state_enum gps_gga_state; // gga<67><61><EFBFBD><EFBFBD>״̬
|
gps_state_enum gps_gga_state = GPS_STATE_RECEIVING; // gga <EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
||||||
gps_state_enum gps_rmc_state; // rmc<6D><63><EFBFBD><EFBFBD>״̬
|
gps_state_enum gps_rmc_state = GPS_STATE_RECEIVING; // rmc <EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
||||||
|
|
||||||
static uint8 gps_gga_buffer[GPS_TAU1201_BUFFER_SIZE];
|
static uint8 gps_gga_buffer[GPS_TAU1201_BUFFER_SIZE];
|
||||||
static uint8 gps_rmc_buffer[GPS_TAU1201_BUFFER_SIZE];
|
static uint8 gps_rmc_buffer[GPS_TAU1201_BUFFER_SIZE];
|
||||||
@@ -75,11 +76,10 @@ static uint8 gps_rmc_buffer[GPS_TAU1201_BUFFER_SIZE];
|
|||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
static uint8 get_parameter_index (uint8 num, char *str)
|
static uint8 get_parameter_index (uint8 num, char *str)
|
||||||
{
|
{
|
||||||
uint8 i, j = 0;
|
uint8 i = 0, j = 0;
|
||||||
char *temp;
|
char *temp = strchr(str, '\n');
|
||||||
uint8 len = 0, len1;
|
uint8 len = 0, len1 = 0;
|
||||||
|
|
||||||
temp = strchr(str, '\n');
|
|
||||||
if(NULL != temp)
|
if(NULL != temp)
|
||||||
{
|
{
|
||||||
len = (uint8)((uint32)temp - (uint32)str + 1);
|
len = (uint8)((uint32)temp - (uint32)str + 1);
|
||||||
@@ -87,7 +87,7 @@ static uint8 get_parameter_index (uint8 num, char *str)
|
|||||||
|
|
||||||
for(i = 0; i < len; i ++)
|
for(i = 0; i < len; i ++)
|
||||||
{
|
{
|
||||||
if(str[i] == ',')
|
if(',' == str[i])
|
||||||
{
|
{
|
||||||
j ++;
|
j ++;
|
||||||
}
|
}
|
||||||
@@ -111,8 +111,8 @@ static uint8 get_parameter_index (uint8 num, char *str)
|
|||||||
static int get_int_number (char *s)
|
static int get_int_number (char *s)
|
||||||
{
|
{
|
||||||
char buf[10];
|
char buf[10];
|
||||||
uint8 i;
|
uint8 i = 0;
|
||||||
int return_value;
|
int return_value = 0;
|
||||||
i = get_parameter_index(1, s);
|
i = get_parameter_index(1, s);
|
||||||
i = i - 1;
|
i = i - 1;
|
||||||
strncpy(buf, s, i);
|
strncpy(buf, s, i);
|
||||||
@@ -130,9 +130,9 @@ static int get_int_number (char *s)
|
|||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
static float get_float_number (char *s)
|
static float get_float_number (char *s)
|
||||||
{
|
{
|
||||||
uint8 i;
|
uint8 i = 0;
|
||||||
char buf[15];
|
char buf[15];
|
||||||
float return_value;
|
float return_value = 0;
|
||||||
|
|
||||||
i = get_parameter_index(1, s);
|
i = get_parameter_index(1, s);
|
||||||
i = i - 1;
|
i = i - 1;
|
||||||
@@ -151,9 +151,9 @@ static float get_float_number (char *s)
|
|||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
static double get_double_number (char *s)
|
static double get_double_number (char *s)
|
||||||
{
|
{
|
||||||
uint8 i;
|
uint8 i = 0;
|
||||||
char buf[15];
|
char buf[15];
|
||||||
double return_value;
|
double return_value = 0;
|
||||||
|
|
||||||
i = get_parameter_index(1, s);
|
i = get_parameter_index(1, s);
|
||||||
i = i - 1;
|
i = i - 1;
|
||||||
@@ -172,10 +172,10 @@ static double get_double_number (char *s)
|
|||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
static void utc_to_btc (gps_time_struct *time)
|
static void utc_to_btc (gps_time_struct *time)
|
||||||
{
|
{
|
||||||
uint8 day_num;
|
uint8 day_num = 0;
|
||||||
|
|
||||||
time->hour = time->hour + 8;
|
time->hour = time->hour + 8;
|
||||||
if(time->hour > 23)
|
if(23 < time->hour)
|
||||||
{
|
{
|
||||||
time->hour -= 24;
|
time->hour -= 24;
|
||||||
time->day += 1;
|
time->day += 1;
|
||||||
@@ -183,7 +183,7 @@ static void utc_to_btc (gps_time_struct *time)
|
|||||||
if(2 == time->month)
|
if(2 == time->month)
|
||||||
{
|
{
|
||||||
day_num = 28;
|
day_num = 28;
|
||||||
if((time->year % 4 == 0 && time->year % 100 != 0) || time->year % 400 == 0) // <20>ж<EFBFBD><D0B6>Ƿ<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>
|
if((0 == time->year % 4 && 0 != time->year % 100) || 0 == time->year % 400) // <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>
|
||||||
}
|
}
|
||||||
@@ -201,7 +201,7 @@ static void utc_to_btc (gps_time_struct *time)
|
|||||||
{
|
{
|
||||||
time->day = 1;
|
time->day = 1;
|
||||||
time->month ++;
|
time->month ++;
|
||||||
if(time->month > 12)
|
if(12 < time->month)
|
||||||
{
|
{
|
||||||
time->month -= 12;
|
time->month -= 12;
|
||||||
time->year ++;
|
time->year ++;
|
||||||
@@ -220,21 +220,21 @@ static void utc_to_btc (gps_time_struct *time)
|
|||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
static uint8 gps_gnrmc_parse (char *line, gps_info_struct *gps)
|
static uint8 gps_gnrmc_parse (char *line, gps_info_struct *gps)
|
||||||
{
|
{
|
||||||
uint8 state, temp;
|
uint8 state = 0, temp = 0;
|
||||||
|
|
||||||
double latitude; // γ<><CEB3>
|
double latitude = 0; // γ<><CEB3>
|
||||||
double longitude; // <20><><EFBFBD><EFBFBD>
|
double longitude = 0; // <20><><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
float lati_cent_tmp, lati_second_tmp;
|
double lati_cent_tmp = 0, lati_second_tmp = 0;
|
||||||
float long_cent_tmp, long_second_tmp;
|
double long_cent_tmp = 0, long_second_tmp = 0;
|
||||||
float speed_tmp;
|
float speed_tmp = 0;
|
||||||
char *buf = line;
|
char *buf = line;
|
||||||
uint8 return_state = 0;
|
uint8 return_state = 0;
|
||||||
|
|
||||||
state = buf[get_parameter_index(2, buf)];
|
state = buf[get_parameter_index(2, buf)];
|
||||||
|
|
||||||
gps->state = 0;
|
gps->state = 0;
|
||||||
if (state == 'A') // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
if('A' == state) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
{
|
{
|
||||||
return_state = 1;
|
return_state = 1;
|
||||||
gps->state = 1;
|
gps->state = 1;
|
||||||
@@ -247,17 +247,17 @@ static uint8 gps_gnrmc_parse (char *line, gps_info_struct *gps)
|
|||||||
gps->latitude_degree = (int)latitude / 100; // γ<><CEB3>ת<EFBFBD><D7AA>Ϊ<EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD>
|
gps->latitude_degree = (int)latitude / 100; // γ<><CEB3>ת<EFBFBD><D7AA>Ϊ<EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD>
|
||||||
lati_cent_tmp = (latitude - gps->latitude_degree * 100);
|
lati_cent_tmp = (latitude - gps->latitude_degree * 100);
|
||||||
gps->latitude_cent = (int)lati_cent_tmp;
|
gps->latitude_cent = (int)lati_cent_tmp;
|
||||||
lati_second_tmp = (lati_cent_tmp - gps->latitude_cent) * 10000;
|
lati_second_tmp = (lati_cent_tmp - gps->latitude_cent) * 6000;
|
||||||
gps->latitude_second = (int)lati_second_tmp;
|
gps->latitude_second = (int)lati_second_tmp;
|
||||||
|
|
||||||
gps->longitude_degree = (int)longitude / 100; // <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD>
|
gps->longitude_degree = (int)longitude / 100; // <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD>
|
||||||
long_cent_tmp = (longitude - gps->longitude_degree * 100);
|
long_cent_tmp = (longitude - gps->longitude_degree * 100);
|
||||||
gps->longitude_cent = (int)long_cent_tmp;
|
gps->longitude_cent = (int)long_cent_tmp;
|
||||||
long_second_tmp = (long_cent_tmp - gps->longitude_cent) * 10000;
|
long_second_tmp = (long_cent_tmp - gps->longitude_cent) * 6000;
|
||||||
gps->longitude_second = (int)long_second_tmp;
|
gps->longitude_second = (int)long_second_tmp;
|
||||||
|
|
||||||
gps->latitude = gps->latitude_degree + (double)gps->latitude_cent / 60 + (double)gps->latitude_second / 600000;
|
gps->latitude = gps->latitude_degree + lati_cent_tmp / 60;
|
||||||
gps->longitude = gps->longitude_degree + (double)gps->longitude_cent / 60 + (double)gps->longitude_second / 600000;
|
gps->longitude = gps->longitude_degree + long_cent_tmp / 60;
|
||||||
|
|
||||||
speed_tmp = get_float_number(&buf[get_parameter_index(7, buf)]); // <20>ٶ<EFBFBD>(<28><><EFBFBD><EFBFBD>/Сʱ)
|
speed_tmp = get_float_number(&buf[get_parameter_index(7, buf)]); // <20>ٶ<EFBFBD>(<28><><EFBFBD><EFBFBD>/Сʱ)
|
||||||
gps->speed = speed_tmp * 1.85f; // ת<><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>/Сʱ
|
gps->speed = speed_tmp * 1.85f; // ת<><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>/Сʱ
|
||||||
@@ -288,13 +288,13 @@ static uint8 gps_gnrmc_parse (char *line, gps_info_struct *gps)
|
|||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
static uint8 gps_gngga_parse (char *line, gps_info_struct *gps)
|
static uint8 gps_gngga_parse (char *line, gps_info_struct *gps)
|
||||||
{
|
{
|
||||||
uint8 state;
|
uint8 state = 0;
|
||||||
char *buf = line;
|
char *buf = line;
|
||||||
uint8 return_state = 0;
|
uint8 return_state = 0;
|
||||||
|
|
||||||
state = buf[get_parameter_index(2, buf)];
|
state = buf[get_parameter_index(2, buf)];
|
||||||
|
|
||||||
if (state != ',')
|
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>
|
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>
|
||||||
@@ -317,13 +317,13 @@ static uint8 gps_gngga_parse (char *line, gps_info_struct *gps)
|
|||||||
double get_two_points_distance (double latitude1, double longitude1, double latitude2, double longitude2)
|
double get_two_points_distance (double latitude1, double longitude1, double latitude2, double longitude2)
|
||||||
{
|
{
|
||||||
const double EARTH_RADIUS = 6378137; // <20><><EFBFBD><EFBFBD><EFBFBD>뾶(<28><>λ<EFBFBD><CEBB>m)
|
const double EARTH_RADIUS = 6378137; // <20><><EFBFBD><EFBFBD><EFBFBD>뾶(<28><>λ<EFBFBD><CEBB>m)
|
||||||
double rad_latitude1;
|
double rad_latitude1 = 0;
|
||||||
double rad_latitude2;
|
double rad_latitude2 = 0;
|
||||||
double rad_longitude1;
|
double rad_longitude1 = 0;
|
||||||
double rad_longitude2;
|
double rad_longitude2 = 0;
|
||||||
double distance;
|
double distance = 0;
|
||||||
double a;
|
double a = 0;
|
||||||
double b;
|
double b = 0;
|
||||||
|
|
||||||
rad_latitude1 = ANGLE_TO_RAD(latitude1); // <20><><EFBFBD>ݽǶȼ<C7B6><C8BC>㻡<EFBFBD><E3BBA1>
|
rad_latitude1 = ANGLE_TO_RAD(latitude1); // <20><><EFBFBD>ݽǶȼ<C7B6><C8BC>㻡<EFBFBD><E3BBA1>
|
||||||
rad_latitude2 = ANGLE_TO_RAD(latitude2);
|
rad_latitude2 = ANGLE_TO_RAD(latitude2);
|
||||||
@@ -359,7 +359,7 @@ double get_two_points_azimuth (double latitude1, double longitude1, double latit
|
|||||||
double x = sin(longitude2 - longitude1) * cos(latitude2);
|
double x = sin(longitude2 - longitude1) * cos(latitude2);
|
||||||
double y = cos(latitude1) * sin(latitude2) - sin(latitude1) * cos(latitude2) * cos(longitude2 - longitude1);
|
double y = cos(latitude1) * sin(latitude2) - sin(latitude1) * cos(latitude2) * cos(longitude2 - longitude1);
|
||||||
double angle = RAD_TO_ANGLE(atan2(x, y));
|
double angle = RAD_TO_ANGLE(atan2(x, y));
|
||||||
return ((angle > 0) ? angle : (angle + 360));
|
return ((0 < angle) ? angle : (angle + 360));
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
@@ -375,16 +375,16 @@ uint8 gps_data_parse (void)
|
|||||||
uint8 check_buffer[5] = {'0', 'x', 0x00, 0x00, 0x00};
|
uint8 check_buffer[5] = {'0', 'x', 0x00, 0x00, 0x00};
|
||||||
uint8 bbc_xor_origin = 0;
|
uint8 bbc_xor_origin = 0;
|
||||||
uint8 bbc_xor_calculation = 0;
|
uint8 bbc_xor_calculation = 0;
|
||||||
uint32 data_len;
|
uint32 data_len = 0;
|
||||||
|
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
if(GPS_STATE_RECEIVED == gps_rmc_state)
|
if(GPS_STATE_RECEIVED == gps_rmc_state)
|
||||||
{
|
{
|
||||||
gps_rmc_state = GPS_STATE_PARSING;
|
gps_rmc_state = GPS_STATE_PARSING;
|
||||||
strncpy((char *)&check_buffer[2], strchr((const char *)gps_rmc_buffer, '*')+1, 2);
|
strncpy((char *)&check_buffer[2], strchr((const char *)gps_rmc_buffer, '*') + 1, 2);
|
||||||
bbc_xor_origin = (uint8)func_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 ++)
|
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];
|
bbc_xor_calculation ^= gps_rmc_buffer[data_len];
|
||||||
}
|
}
|
||||||
@@ -402,10 +402,10 @@ uint8 gps_data_parse (void)
|
|||||||
if(GPS_STATE_RECEIVED == gps_gga_state)
|
if(GPS_STATE_RECEIVED == gps_gga_state)
|
||||||
{
|
{
|
||||||
gps_gga_state = GPS_STATE_PARSING;
|
gps_gga_state = GPS_STATE_PARSING;
|
||||||
strncpy((char *)&check_buffer[2], strchr((const char *)gps_gga_buffer, '*')+1, 2);
|
strncpy((char *)&check_buffer[2], strchr((const char *)gps_gga_buffer, '*') + 1, 2);
|
||||||
bbc_xor_origin = (uint8)func_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 ++)
|
for(bbc_xor_calculation = gps_gga_buffer[1], data_len = 2; '*' != gps_gga_buffer[data_len]; data_len ++)
|
||||||
{
|
{
|
||||||
bbc_xor_calculation ^= gps_gga_buffer[data_len];
|
bbc_xor_calculation ^= gps_gga_buffer[data_len];
|
||||||
}
|
}
|
||||||
@@ -435,7 +435,7 @@ uint8 gps_data_parse (void)
|
|||||||
void gps_uart_callback (void)
|
void gps_uart_callback (void)
|
||||||
{
|
{
|
||||||
uint8 temp_gps[6];
|
uint8 temp_gps[6];
|
||||||
uint32 temp_length;
|
uint32 temp_length = 0;
|
||||||
|
|
||||||
if(gps_tau1201_state)
|
if(gps_tau1201_state)
|
||||||
{
|
{
|
||||||
@@ -507,8 +507,7 @@ uint8 gps_init (void)
|
|||||||
fifo_init(&gps_tau1201_receiver_fifo, FIFO_DATA_8BIT, gps_tau1201_receiver_buffer, GPS_TAU1201_BUFFER_SIZE);
|
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>
|
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);
|
uart_init(GPS_TAU1201_UART, 115200, GPS_TAU1201_RX, GPS_TAU1201_TX);
|
||||||
|
uart_rx_interrupt(GPS_TAU1201_UART, 0);
|
||||||
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
|
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);
|
system_delay_ms(200);
|
||||||
|
|||||||
@@ -49,9 +49,9 @@
|
|||||||
#include "zf_common_typedef.h"
|
#include "zf_common_typedef.h"
|
||||||
|
|
||||||
//===============================================GPS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
//===============================================GPS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||||
#define GPS_TAU1201_UART (UART_2)
|
#define GPS_TAU1201_UART (UART_3)
|
||||||
#define GPS_TAU1201_RX (UART2_TX_P10_5) // GPS RX<52><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD>
|
#define GPS_TAU1201_RX (UART3_TX_P15_6) // GPS RX<52><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD>
|
||||||
#define GPS_TAU1201_TX (UART2_RX_P10_6) // GPS TX<54><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
#define GPS_TAU1201_TX (UART3_RX_P15_7) // GPS TX<54><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
//===============================================GPS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
//===============================================GPS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||||
|
|
||||||
#define ANGLE_TO_RAD(x) ((x) * PI / 180.0) // <20>Ƕ<EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>
|
#define ANGLE_TO_RAD(x) ((x) * PI / 180.0) // <20>Ƕ<EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>
|
||||||
|
|||||||
@@ -137,8 +137,8 @@
|
|||||||
//================================================<3D><><EFBFBD><EFBFBD> IMU963RA <20>ڲ<EFBFBD><DAB2><EFBFBD>ַ================================================
|
//================================================<3D><><EFBFBD><EFBFBD> IMU963RA <20>ڲ<EFBFBD><DAB2><EFBFBD>ַ================================================
|
||||||
|
|
||||||
//===============================================<3D><><EFBFBD><EFBFBD> IMU963RA <20><><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD>===============================================
|
//===============================================<3D><><EFBFBD><EFBFBD> IMU963RA <20><><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD>===============================================
|
||||||
extern int16 imu963ra_acc_x, imu963ra_acc_y, imu963ra_acc_z; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
extern int16 imu963ra_gyro_x, imu963ra_gyro_y, imu963ra_gyro_z; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
extern int16 imu963ra_gyro_x, imu963ra_gyro_y, imu963ra_gyro_z; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
extern int16 imu963ra_acc_x, imu963ra_acc_y, imu963ra_acc_z; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
||||||
extern int16 imu963ra_mag_x, imu963ra_mag_y, imu963ra_mag_z; // <20><><EFBFBD><EFBFBD><EFBFBD>شż<D8B4><C5BC><EFBFBD><EFBFBD><EFBFBD>
|
extern int16 imu963ra_mag_x, imu963ra_mag_y, imu963ra_mag_z; // <20><><EFBFBD><EFBFBD><EFBFBD>شż<D8B4><C5BC><EFBFBD><EFBFBD><EFBFBD>
|
||||||
//===============================================<3D><><EFBFBD><EFBFBD> IMU963RA <20><><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD>===============================================
|
//===============================================<3D><><EFBFBD><EFBFBD> IMU963RA <20><><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD>===============================================
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*********************************************************************************************************************
|
/*********************************************************************************************************************
|
||||||
* MM32F327X-G9P Opensourec Library <20><><EFBFBD><EFBFBD>MM32F327X-G9P <20><>Դ<EFBFBD>⣩<EFBFBD><E2A3A9>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ڹٷ<DAB9> SDK <20>ӿڵĵ<DAB5><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4>
|
* TC264 Opensourec Library <20><><EFBFBD><EFBFBD>TC264 <20><>Դ<EFBFBD>⣩<EFBFBD><E2A3A9>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ڹٷ<DAB9> SDK <20>ӿڵĵ<DAB5><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4>
|
||||||
* Copyright (c) 2022 SEEKFREE <20><><EFBFBD>ɿƼ<C9BF>
|
* Copyright (c) 2022 SEEKFREE <20><><EFBFBD>ɿƼ<C9BF>
|
||||||
*
|
*
|
||||||
* <20><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD> MM32F327X-G9P <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
|
* <20><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD> TC264 <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
|
||||||
*
|
*
|
||||||
* MM32F327X-G9P <20><>Դ<EFBFBD><D4B4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
* TC264 <20><>Դ<EFBFBD><D4B4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
* <20><><EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD><D4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᷢ<EFBFBD><E1B7A2><EFBFBD><EFBFBD> GPL<50><4C>GNU General Public License<73><65><EFBFBD><EFBFBD> GNUͨ<55>ù<EFBFBD><C3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
* <20><><EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD><D4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᷢ<EFBFBD><E1B7A2><EFBFBD><EFBFBD> GPL<50><4C>GNU General Public License<73><65><EFBFBD><EFBFBD> GNUͨ<55>ù<EFBFBD><C3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
* <20><> GPL <20>ĵ<EFBFBD>3<EFBFBD>棨<EFBFBD><E6A3A8> GPL3.0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD>κκ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>İ汾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><DEB8><EFBFBD>
|
* <20><> GPL <20>ĵ<EFBFBD>3<EFBFBD>棨<EFBFBD><E6A3A8> GPL3.0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD>κκ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>İ汾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><DEB8><EFBFBD>
|
||||||
*
|
*
|
||||||
@@ -24,13 +24,13 @@
|
|||||||
* <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> zf_device_key
|
* <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> zf_device_key
|
||||||
* <20><>˾<EFBFBD><CBBE><EFBFBD><EFBFBD> <20>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD><EFBFBD>˾
|
* <20><>˾<EFBFBD><CBBE><EFBFBD><EFBFBD> <20>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD><EFBFBD>˾
|
||||||
* <20>汾<EFBFBD><E6B1BE>Ϣ <20>鿴 libraries/doc <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> version <20>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
|
* <20>汾<EFBFBD><E6B1BE>Ϣ <20>鿴 libraries/doc <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> version <20>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
|
||||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IAR 8.32.4 or MDK 5.37
|
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ADS v1.8.0
|
||||||
* <20><><EFBFBD><EFBFBD>ƽ̨ MM32F327X_G9P
|
* <20><><EFBFBD><EFBFBD>ƽ̨ TC264D
|
||||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> https://seekfree.taobao.com/
|
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> https://seekfree.taobao.com/
|
||||||
*
|
*
|
||||||
* <20>ļ<DEB8>¼
|
* <20>ļ<DEB8>¼
|
||||||
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
|
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
|
||||||
* 2022-08-10 Teternal first version
|
* 2022-09-15 pudding first version
|
||||||
********************************************************************************************************************/
|
********************************************************************************************************************/
|
||||||
/*********************************************************************************************************************
|
/*********************************************************************************************************************
|
||||||
* <20><><EFBFBD>߶<EFBFBD><DFB6>壺
|
* <20><><EFBFBD>߶<EFBFBD><DFB6>壺
|
||||||
@@ -45,6 +45,7 @@
|
|||||||
********************************************************************************************************************/
|
********************************************************************************************************************/
|
||||||
|
|
||||||
#include "zf_common_debug.h"
|
#include "zf_common_debug.h"
|
||||||
|
|
||||||
#include "zf_device_key.h"
|
#include "zf_device_key.h"
|
||||||
|
|
||||||
static uint32 scanner_period = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
static uint32 scanner_period = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
@@ -65,54 +66,21 @@ void key_scanner (void)
|
|||||||
uint8 i = 0;
|
uint8 i = 0;
|
||||||
for(i = 0; i < KEY_NUMBER; i ++)
|
for(i = 0; i < KEY_NUMBER; i ++)
|
||||||
{
|
{
|
||||||
switch(key_state[i])
|
if(KEY_RELEASE_LEVEL != gpio_get_level(key_index[i])) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
{
|
{
|
||||||
case KEY_RELEASE:
|
key_press_time[i] ++;
|
||||||
if(KEY_RELEASE_LEVEL != gpio_get_level(key_index[i]))
|
if(key_press_time[i] >= KEY_LONG_PRESS_PERIOD / scanner_period)
|
||||||
{
|
{
|
||||||
if(++ key_press_time[i] >= KEY_MAX_SHOCK_PERIOD / scanner_period)
|
key_state[i] = KEY_LONG_PRESS;
|
||||||
{
|
}
|
||||||
key_state[i] = KEY_SHORT_PRESS;
|
}
|
||||||
}
|
else // <20><><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>
|
||||||
else
|
{
|
||||||
{
|
if(key_state[i] != KEY_LONG_PRESS && key_press_time[i] >= KEY_MAX_SHOCK_PERIOD / scanner_period)
|
||||||
key_state[i] = KEY_CHECK_SHOCK;
|
{
|
||||||
}
|
key_state[i] = KEY_SHORT_PRESS;
|
||||||
}
|
}
|
||||||
break;
|
key_press_time[i] = 0;
|
||||||
case KEY_CHECK_SHOCK:
|
|
||||||
if(KEY_RELEASE_LEVEL != gpio_get_level(key_index[i]))
|
|
||||||
{
|
|
||||||
if(++ key_press_time[i] >= KEY_MAX_SHOCK_PERIOD / scanner_period)
|
|
||||||
{
|
|
||||||
key_state[i] = KEY_SHORT_PRESS;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
key_state[i] = KEY_RELEASE;
|
|
||||||
key_press_time[i] = 0;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case KEY_SHORT_PRESS:
|
|
||||||
if(++ key_press_time[i] >= KEY_LONG_PRESS_PERIOD / scanner_period)
|
|
||||||
{
|
|
||||||
key_state[i] = KEY_LONG_PRESS;
|
|
||||||
}
|
|
||||||
if(KEY_RELEASE_LEVEL == gpio_get_level(key_index[i]))
|
|
||||||
{
|
|
||||||
key_state[i] = KEY_RELEASE;
|
|
||||||
key_press_time[i] = 0;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case KEY_LONG_PRESS:
|
|
||||||
if(KEY_RELEASE_LEVEL == gpio_get_level(key_index[i]))
|
|
||||||
{
|
|
||||||
key_state[i] = KEY_RELEASE;
|
|
||||||
key_press_time[i] = 0;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -129,6 +97,33 @@ key_state_enum key_get_state (key_index_enum key_n)
|
|||||||
return key_state[key_n];
|
return key_state[key_n];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>״̬
|
||||||
|
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> key_n <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void <20><>
|
||||||
|
// ʹ<><CAB9>ʾ<EFBFBD><CABE> key_clear_state(KEY_1);
|
||||||
|
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
void key_clear_state (key_index_enum key_n)
|
||||||
|
{
|
||||||
|
key_state[key_n] = KEY_RELEASE;
|
||||||
|
}
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>а<EFBFBD><D0B0><EFBFBD>״̬
|
||||||
|
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> void <20><>
|
||||||
|
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void <20><>
|
||||||
|
// ʹ<><CAB9>ʾ<EFBFBD><CABE> key_clear_all_state();
|
||||||
|
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
void key_clear_all_state (void)
|
||||||
|
{
|
||||||
|
key_state[0] = KEY_RELEASE;
|
||||||
|
key_state[1] = KEY_RELEASE;
|
||||||
|
key_state[2] = KEY_RELEASE;
|
||||||
|
key_state[3] = KEY_RELEASE;
|
||||||
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
||||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> period <20><><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ժ<EFBFBD><D4BA><EFBFBD>Ϊ<EFBFBD><CEAA>λ
|
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> period <20><><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ժ<EFBFBD><D4BA><EFBFBD>Ϊ<EFBFBD><CEAA>λ
|
||||||
@@ -136,17 +131,14 @@ key_state_enum key_get_state (key_index_enum key_n)
|
|||||||
// ʹ<><CAB9>ʾ<EFBFBD><CABE> key_init(10);
|
// ʹ<><CAB9>ʾ<EFBFBD><CABE> key_init(10);
|
||||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
uint8 key_init (uint32 period)
|
void key_init (uint32 period)
|
||||||
{
|
{
|
||||||
|
zf_assert(0 < period);
|
||||||
uint8 loop_temp = 0;
|
uint8 loop_temp = 0;
|
||||||
|
|
||||||
zf_assert(0 < period); // ɨ<><C9A8><EFBFBD><EFBFBD><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0
|
|
||||||
|
|
||||||
for(loop_temp = 0; loop_temp < KEY_NUMBER; loop_temp ++)
|
for(loop_temp = 0; loop_temp < KEY_NUMBER; loop_temp ++)
|
||||||
{
|
{
|
||||||
gpio_init(key_index[loop_temp], GPI, GPIO_HIGH, GPI_PULL_UP);
|
gpio_init(key_index[loop_temp], GPI, GPIO_HIGH, GPI_PULL_UP);
|
||||||
key_state[loop_temp] = KEY_RELEASE;
|
key_state[loop_temp] = KEY_RELEASE;
|
||||||
}
|
}
|
||||||
scanner_period = period;
|
scanner_period = period;
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*********************************************************************************************************************
|
/*********************************************************************************************************************
|
||||||
* MM32F327X-G9P Opensourec Library <20><><EFBFBD><EFBFBD>MM32F327X-G9P <20><>Դ<EFBFBD>⣩<EFBFBD><E2A3A9>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ڹٷ<DAB9> SDK <20>ӿڵĵ<DAB5><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4>
|
* TC264 Opensourec Library <20><><EFBFBD><EFBFBD>TC264 <20><>Դ<EFBFBD>⣩<EFBFBD><E2A3A9>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ڹٷ<DAB9> SDK <20>ӿڵĵ<DAB5><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4>
|
||||||
* Copyright (c) 2022 SEEKFREE <20><><EFBFBD>ɿƼ<C9BF>
|
* Copyright (c) 2022 SEEKFREE <20><><EFBFBD>ɿƼ<C9BF>
|
||||||
*
|
*
|
||||||
* <20><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD> MM32F327X-G9P <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
|
* <20><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD> TC264 <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
|
||||||
*
|
*
|
||||||
* MM32F327X-G9P <20><>Դ<EFBFBD><D4B4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
* TC264 <20><>Դ<EFBFBD><D4B4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
* <20><><EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD><D4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᷢ<EFBFBD><E1B7A2><EFBFBD><EFBFBD> GPL<50><4C>GNU General Public License<73><65><EFBFBD><EFBFBD> GNUͨ<55>ù<EFBFBD><C3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
* <20><><EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD><D4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᷢ<EFBFBD><E1B7A2><EFBFBD><EFBFBD> GPL<50><4C>GNU General Public License<73><65><EFBFBD><EFBFBD> GNUͨ<55>ù<EFBFBD><C3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
* <20><> GPL <20>ĵ<EFBFBD>3<EFBFBD>棨<EFBFBD><E6A3A8> GPL3.0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD>κκ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>İ汾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><DEB8><EFBFBD>
|
* <20><> GPL <20>ĵ<EFBFBD>3<EFBFBD>棨<EFBFBD><E6A3A8> GPL3.0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD>κκ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>İ汾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><DEB8><EFBFBD>
|
||||||
*
|
*
|
||||||
@@ -24,13 +24,13 @@
|
|||||||
* <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> zf_device_key
|
* <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> zf_device_key
|
||||||
* <20><>˾<EFBFBD><CBBE><EFBFBD><EFBFBD> <20>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD><EFBFBD>˾
|
* <20><>˾<EFBFBD><CBBE><EFBFBD><EFBFBD> <20>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD><EFBFBD>˾
|
||||||
* <20>汾<EFBFBD><E6B1BE>Ϣ <20>鿴 libraries/doc <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> version <20>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
|
* <20>汾<EFBFBD><E6B1BE>Ϣ <20>鿴 libraries/doc <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> version <20>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
|
||||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IAR 8.32.4 or MDK 5.37
|
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ADS v1.8.0
|
||||||
* <20><><EFBFBD><EFBFBD>ƽ̨ MM32F327X_G9P
|
* <20><><EFBFBD><EFBFBD>ƽ̨ TC264D
|
||||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> https://seekfree.taobao.com/
|
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> https://seekfree.taobao.com/
|
||||||
*
|
*
|
||||||
* <20>ļ<DEB8>¼
|
* <20>ļ<DEB8>¼
|
||||||
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
|
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
|
||||||
* 2022-08-10 Teternal first version
|
* 2022-09-15 pudding first version
|
||||||
********************************************************************************************************************/
|
********************************************************************************************************************/
|
||||||
/*********************************************************************************************************************
|
/*********************************************************************************************************************
|
||||||
* <20><><EFBFBD>߶<EFBFBD><DFB6>壺
|
* <20><><EFBFBD>߶<EFBFBD><DFB6>壺
|
||||||
@@ -53,13 +53,12 @@
|
|||||||
// <20><><EFBFBD>尴<EFBFBD><E5B0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ĭ<>϶<EFBFBD><CFB6><EFBFBD><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD>
|
// <20><><EFBFBD>尴<EFBFBD><E5B0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ĭ<>϶<EFBFBD><CFB6><EFBFBD><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD>
|
||||||
// <20><><EFBFBD>尴<EFBFBD><E5B0B4>˳<EFBFBD><CBB3><EFBFBD><EFBFBD>Ӧ<EFBFBD>·<EFBFBD> key_index_enum ö<><C3B6><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><CBB3>
|
// <20><><EFBFBD>尴<EFBFBD><E5B0B4>˳<EFBFBD><CBB3><EFBFBD><EFBFBD>Ӧ<EFBFBD>·<EFBFBD> key_index_enum ö<><C3B6><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><CBB3>
|
||||||
// <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ô<EFBFBD><C3B4>Ҫͬ<D2AA><CDAC><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD> key_index_enum ö<><C3B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
// <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ô<EFBFBD><C3B4>Ҫͬ<D2AA><CDAC><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD> key_index_enum ö<><C3B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
#define KEY_LIST {P22_0, P22_1, P22_2, P22_3}
|
#define KEY_LIST {P20_6, P20_7, P11_2, P11_3}
|
||||||
|
|
||||||
#define KEY_RELEASE_LEVEL (GPIO_HIGH) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>״̬ Ҳ<><D2B2><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ͷ<EFBFBD>״̬<D7B4>ĵ<EFBFBD>ƽ
|
#define KEY_RELEASE_LEVEL (GPIO_HIGH) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>״̬ Ҳ<><D2B2><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ͷ<EFBFBD>״̬<D7B4>ĵ<EFBFBD>ƽ
|
||||||
#define KEY_MAX_SHOCK_PERIOD (10 ) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>źŻᱻ<C5BB><E1B1BB>Ϊ<EFBFBD><CEAA><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD><EFBFBD>
|
#define KEY_MAX_SHOCK_PERIOD (10 ) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>źŻᱻ<C5BB><E1B1BB>Ϊ<EFBFBD><CEAA><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD><EFBFBD>
|
||||||
#define KEY_LONG_PRESS_PERIOD (1000 ) // <20><>С<EFBFBD><D0A1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>
|
#define KEY_LONG_PRESS_PERIOD (1000 ) // <20><>С<EFBFBD><D0A1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>źŻᱻ<C5BB><E1B1BB>Ϊ<EFBFBD>dz<EFBFBD><C7B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
//=================================================<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ṹ<EFBFBD><E1B9B9>===============================================
|
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
KEY_1,
|
KEY_1,
|
||||||
@@ -72,15 +71,14 @@ typedef enum
|
|||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
KEY_RELEASE, // <20><><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>״̬
|
KEY_RELEASE, // <20><><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>״̬
|
||||||
KEY_CHECK_SHOCK, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
|
||||||
KEY_SHORT_PRESS, // <20><><EFBFBD><EFBFBD><EFBFBD>̰<EFBFBD>״̬
|
KEY_SHORT_PRESS, // <20><><EFBFBD><EFBFBD><EFBFBD>̰<EFBFBD>״̬
|
||||||
KEY_LONG_PRESS, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
KEY_LONG_PRESS, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
||||||
}key_state_enum;
|
}key_state_enum;
|
||||||
//=================================================<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ṹ<EFBFBD><E1B9B9>===============================================
|
|
||||||
|
|
||||||
//====================================================<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>=================================================
|
void key_scanner (void);
|
||||||
void key_scanner (void); // <20><><EFBFBD><EFBFBD>״̬ɨ<CCAC><C9A8>
|
key_state_enum key_get_state (key_index_enum key_n);
|
||||||
key_state_enum key_get_state (key_index_enum key_n); // <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>״̬
|
void key_clear_state (key_index_enum key_n);
|
||||||
uint8 key_init (uint32 period); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
void key_clear_all_state (void);
|
||||||
//====================================================<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>=================================================
|
void key_init (uint32 period);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -60,7 +60,7 @@
|
|||||||
|
|
||||||
// TSL1401 <20><><EFBFBD><EFBFBD><EFBFBD>ڲɼ<DAB2><C9BC><EFBFBD><EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD> ʹ<>õ<EFBFBD><C3B5>ĸ<EFBFBD> PIT <20><>Ҫ<EFBFBD><D2AA> <20><><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD> PIT <20><><EFBFBD>жϷ<D0B6><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
// TSL1401 <20><><EFBFBD><EFBFBD><EFBFBD>ڲɼ<DAB2><C9BC><EFBFBD><EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD> ʹ<>õ<EFBFBD><C3B5>ĸ<EFBFBD> PIT <20><>Ҫ<EFBFBD><D2AA> <20><><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD> PIT <20><><EFBFBD>жϷ<D0B6><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
#define TSL1401_EXPOSURE_TIME (10 ) // <20><><EFBFBD><EFBFBD> TSL1401 <20>ع<EFBFBD>ʱ<EFBFBD><CAB1> <20><>λ MS
|
#define TSL1401_EXPOSURE_TIME (10 ) // <20><><EFBFBD><EFBFBD> TSL1401 <20>ع<EFBFBD>ʱ<EFBFBD><CAB1> <20><>λ MS
|
||||||
#define TSL1401_PIT_INDEX (CCU60_CH0) // ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
#define TSL1401_PIT_INDEX (CCU61_CH1) // ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||||
#define TSL1401_AD_RESOLUTION (ADC_8BIT) // ADC <20><><EFBFBD><EFBFBD> 8bit
|
#define TSL1401_AD_RESOLUTION (ADC_8BIT) // ADC <20><><EFBFBD><EFBFBD> 8bit
|
||||||
#define TSL1401_DATA_LEN (128 ) // TSL1401 <20><><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
|
#define TSL1401_DATA_LEN (128 ) // TSL1401 <20><><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
|
||||||
//=================================================TSL1401 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
//=================================================TSL1401 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||||
|
|||||||
@@ -53,9 +53,7 @@ typedef enum
|
|||||||
NO_WIRELESS = 0, // <20><><EFBFBD>豸
|
NO_WIRELESS = 0, // <20><><EFBFBD>豸
|
||||||
WIRELESS_UART, // <20><><EFBFBD>ߴ<EFBFBD><DFB4><EFBFBD>
|
WIRELESS_UART, // <20><><EFBFBD>ߴ<EFBFBD><DFB4><EFBFBD>
|
||||||
BLUETOOTH_CH9141, // <20><><EFBFBD><EFBFBD> CH9141
|
BLUETOOTH_CH9141, // <20><><EFBFBD><EFBFBD> CH9141
|
||||||
GPS_TAU1201,
|
WIFI_UART, // <20><><EFBFBD><EFBFBD> WiFi
|
||||||
WIFI_UART,
|
|
||||||
WIFI_SPI,
|
|
||||||
}wireless_type_enum;
|
}wireless_type_enum;
|
||||||
//==============================================<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ö<><C3B6><EFBFBD><EFBFBD>==================================================
|
//==============================================<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ö<><C3B6><EFBFBD><EFBFBD>==================================================
|
||||||
|
|
||||||
|
|||||||
@@ -40,7 +40,7 @@
|
|||||||
|
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> systick<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> system<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> time <20><>ʱһ<CAB1>ֵ<EFBFBD>ʱ<EFBFBD>䣨<EFBFBD><E4A3A8>λΪ<CEBB><CEAA><EFBFBD>룬<EFBFBD><EBA3AC><EFBFBD><EFBFBD><EFBFBD>÷<EFBFBD>Χ0-20000000<30><30>
|
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> time <20><>ʱһ<CAB1>ֵ<EFBFBD>ʱ<EFBFBD>䣨<EFBFBD><E4A3A8>λΪ<CEBB><CEAA><EFBFBD>룬<EFBFBD><EBA3AC><EFBFBD><EFBFBD><EFBFBD>÷<EFBFBD>Χ0-20000000<30><30>
|
||||||
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> num <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> num <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||||
@@ -60,3 +60,25 @@ void system_delay (uint32 time, uint32 num)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> system <><CEA2> <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
||||||
|
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> time <20><>ʱʱ<CAB1><CAB1> <20><>λ<EFBFBD><CEBB>us
|
||||||
|
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||||
|
// ʹ<><CAB9>ʾ<EFBFBD><CABE> system_delay_us(100); // <20><>ʱ100<30><CEA2>
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
void system_delay_us (uint32 time)
|
||||||
|
{
|
||||||
|
system_delay(time*1000, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> system <20><><EFBFBD><EFBFBD> <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
||||||
|
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> time <20><>ʱʱ<CAB1><CAB1> <20><>λ<EFBFBD><CEBB>ms
|
||||||
|
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
|
||||||
|
// ʹ<><CAB9>ʾ<EFBFBD><CABE> system_delay_ms(100); // <20><>ʱ100<30><30><EFBFBD><EFBFBD>
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------
|
||||||
|
void system_delay_ms (uint32 time)
|
||||||
|
{
|
||||||
|
system_delay(1000000, time);
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -38,13 +38,10 @@
|
|||||||
|
|
||||||
#include "zf_common_typedef.h"
|
#include "zf_common_typedef.h"
|
||||||
|
|
||||||
|
|
||||||
void system_delay (uint32 time, uint32 num);
|
|
||||||
|
|
||||||
//====================================================<3D><>ʱ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
//====================================================<3D><>ʱ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||||
#define system_delay_ms(time) system_delay((1000000), (time)) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<CAB1><CAB1> <20><>λms
|
void system_delay (uint32 time, uint32 num);
|
||||||
#define system_delay_us(time) system_delay((time*1000), (1)) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<CAB1><CAB1> <20><>λus
|
void system_delay_us (uint32 time);
|
||||||
#define system_delay_ns(time) system_delay((time), (1)) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<CAB1><CAB1> <20><>λns
|
void system_delay_ms (uint32 time);
|
||||||
//====================================================<3D><>ʱ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
//====================================================<3D><>ʱ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -69,7 +69,7 @@
|
|||||||
// **************************** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ****************************
|
// **************************** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ****************************
|
||||||
|
|
||||||
#define FLASH_SECTION_INDEX (0) // <20>洢<EFBFBD><E6B4A2><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD>
|
#define FLASH_SECTION_INDEX (0) // <20>洢<EFBFBD><E6B4A2><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD>
|
||||||
#define FLASH_PAGE_INDEX (11) // <20>洢<EFBFBD><E6B4A2><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>ҳ<EFBFBD><D2B3> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ҳ<EFBFBD><D2B3>
|
#define FLASH_PAGE_INDEX (8) // <20>洢<EFBFBD><E6B4A2><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>ҳ<EFBFBD><D2B3> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ҳ<EFBFBD><D2B3>
|
||||||
|
|
||||||
|
|
||||||
int core0_main(void)
|
int core0_main(void)
|
||||||
@@ -85,7 +85,7 @@ int core0_main(void)
|
|||||||
flash_read_page_to_buffer(FLASH_SECTION_INDEX, FLASH_PAGE_INDEX); // <20><><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD> flash <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
flash_read_page_to_buffer(FLASH_SECTION_INDEX, FLASH_PAGE_INDEX); // <20><><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD> flash <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
printf("\r\n FLASH_SECTION_INDEX: %d, FLASH_PAGE_INDEX: %d, origin data is :", FLASH_SECTION_INDEX, FLASH_PAGE_INDEX);
|
printf("\r\n FLASH_SECTION_INDEX: %d, FLASH_PAGE_INDEX: %d, origin data is :", FLASH_SECTION_INDEX, FLASH_PAGE_INDEX);
|
||||||
printf("\r\n float_type : %f", flash_union_buffer[0].float_type); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0 <20><>λ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> float <20><>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
|
printf("\r\n float_type : %f", flash_union_buffer[0].float_type); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0 <20><>λ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> float <20><>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
|
||||||
printf("\r\n uint32_type: %lu", flash_union_buffer[1].uint32_type); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1 <20><>λ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> uint32 <20><>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
|
printf("\r\n uint32_type: %lu", flash_union_buffer[1].uint32_type); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1 <20><>λ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> uint32 <20><>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
|
||||||
printf("\r\n int32_type : %d", flash_union_buffer[2].int32_type); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2 <20><>λ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> int32 <20><>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
|
printf("\r\n int32_type : %d", flash_union_buffer[2].int32_type); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2 <20><>λ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> int32 <20><>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
|
||||||
printf("\r\n uint16_type: %u", flash_union_buffer[3].uint16_type); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 3 <20><>λ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> uint16 <20><>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
|
printf("\r\n uint16_type: %u", flash_union_buffer[3].uint16_type); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 3 <20><>λ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> uint16 <20><>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
|
||||||
printf("\r\n int16_type : %d", flash_union_buffer[4].int16_type); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 4 <20><>λ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> int16 <20><>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
|
printf("\r\n int16_type : %d", flash_union_buffer[4].int16_type); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 4 <20><>λ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> int16 <20><>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
|
||||||
@@ -132,7 +132,7 @@ int core0_main(void)
|
|||||||
flash_buffer_clear(); // <20><><EFBFBD>ջ<EFBFBD><D5BB><EFBFBD><EFBFBD><EFBFBD>
|
flash_buffer_clear(); // <20><><EFBFBD>ջ<EFBFBD><D5BB><EFBFBD><EFBFBD><EFBFBD>
|
||||||
printf("\r\n Flash data buffer default data is :");
|
printf("\r\n Flash data buffer default data is :");
|
||||||
printf("\r\n float_type : %f", flash_union_buffer[0].float_type); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0 <20><>λ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> float <20><>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
|
printf("\r\n float_type : %f", flash_union_buffer[0].float_type); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0 <20><>λ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> float <20><>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
|
||||||
printf("\r\n uint32_type: %lu",flash_union_buffer[1].uint32_type); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1 <20><>λ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> uint32 <20><>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
|
printf("\r\n uint32_type: %lu",flash_union_buffer[1].uint32_type); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1 <20><>λ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> uint32 <20><>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
|
||||||
printf("\r\n int32_type : %d", flash_union_buffer[2].int32_type); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2 <20><>λ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> int32 <20><>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
|
printf("\r\n int32_type : %d", flash_union_buffer[2].int32_type); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2 <20><>λ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> int32 <20><>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
|
||||||
printf("\r\n uint16_type: %u", flash_union_buffer[3].uint16_type); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 3 <20><>λ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> uint16 <20><>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
|
printf("\r\n uint16_type: %u", flash_union_buffer[3].uint16_type); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 3 <20><>λ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> uint16 <20><>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
|
||||||
printf("\r\n int16_type : %d", flash_union_buffer[4].int16_type); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 4 <20><>λ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> int16 <20><>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
|
printf("\r\n int16_type : %d", flash_union_buffer[4].int16_type); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 4 <20><>λ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> int16 <20><>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
|
||||||
@@ -143,7 +143,7 @@ int core0_main(void)
|
|||||||
flash_read_page_to_buffer(FLASH_SECTION_INDEX, FLASH_PAGE_INDEX); // <20><><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD> flash <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
flash_read_page_to_buffer(FLASH_SECTION_INDEX, FLASH_PAGE_INDEX); // <20><><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD> flash <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
printf("\r\n FLASH_SECTION_INDEX: %d, FLASH_PAGE_INDEX: %d, new data is :", FLASH_SECTION_INDEX, FLASH_PAGE_INDEX);
|
printf("\r\n FLASH_SECTION_INDEX: %d, FLASH_PAGE_INDEX: %d, new data is :", FLASH_SECTION_INDEX, FLASH_PAGE_INDEX);
|
||||||
printf("\r\n float_type : %f", flash_union_buffer[0].float_type); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0 <20><>λ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> float <20><>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
|
printf("\r\n float_type : %f", flash_union_buffer[0].float_type); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0 <20><>λ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> float <20><>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
|
||||||
printf("\r\n uint32_type: %lu",flash_union_buffer[1].uint32_type); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1 <20><>λ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> uint32 <20><>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
|
printf("\r\n uint32_type: %lu",flash_union_buffer[1].uint32_type); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1 <20><>λ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> uint32 <20><>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
|
||||||
printf("\r\n int32_type : %d", flash_union_buffer[2].int32_type); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2 <20><>λ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> int32 <20><>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
|
printf("\r\n int32_type : %d", flash_union_buffer[2].int32_type); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2 <20><>λ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> int32 <20><>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
|
||||||
printf("\r\n uint16_type: %u", flash_union_buffer[3].uint16_type); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 3 <20><>λ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> uint16 <20><>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
|
printf("\r\n uint16_type: %u", flash_union_buffer[3].uint16_type); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 3 <20><>λ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> uint16 <20><>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
|
||||||
printf("\r\n int16_type : %d", flash_union_buffer[4].int16_type); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 4 <20><>λ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> int16 <20><>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
|
printf("\r\n int16_type : %d", flash_union_buffer[4].int16_type); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 4 <20><>λ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> int16 <20><>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
|
||||||
|
|||||||
@@ -41,7 +41,6 @@ IFX_INTERRUPT(cc60_pit_ch0_isr, 0, CCU6_0_CH0_ISR_PRIORITY)
|
|||||||
{
|
{
|
||||||
interrupt_global_enable(0); // <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
|
interrupt_global_enable(0); // <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ƕ<EFBFBD><C7B6>
|
||||||
pit_clear_flag(CCU60_CH0);
|
pit_clear_flag(CCU60_CH0);
|
||||||
tsl1401_collect_pit_handler(); // <20><><EFBFBD><EFBFBD>CCD<43>ɼ<EFBFBD>
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -75,7 +74,6 @@ IFX_INTERRUPT(cc61_pit_ch1_isr, 0, CCU6_1_CH1_ISR_PRIORITY)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
// **************************** PIT<49>жϺ<D0B6><CFBA><EFBFBD> ****************************
|
// **************************** PIT<49>жϺ<D0B6><CFBA><EFBFBD> ****************************
|
||||||
|
|
||||||
@@ -88,9 +86,6 @@ IFX_INTERRUPT(exti_ch0_ch4_isr, 0, EXTI_CH0_CH4_INT_PRIO)
|
|||||||
{
|
{
|
||||||
exti_flag_clear(ERU_CH0_REQ0_P15_4);
|
exti_flag_clear(ERU_CH0_REQ0_P15_4);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(exti_flag_get(ERU_CH4_REQ13_P15_5)) // ͨ<><CDA8>4<EFBFBD>ж<EFBFBD>
|
if(exti_flag_get(ERU_CH4_REQ13_P15_5)) // ͨ<><CDA8>4<EFBFBD>ж<EFBFBD>
|
||||||
@@ -119,8 +114,6 @@ IFX_INTERRUPT(exti_ch1_ch5_isr, 0, EXTI_CH1_CH5_INT_PRIO)
|
|||||||
exti_flag_clear(ERU_CH5_REQ1_P15_8);
|
exti_flag_clear(ERU_CH5_REQ1_P15_8);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -263,7 +256,7 @@ IFX_INTERRUPT(uart3_rx_isr, 0, UART3_RX_INT_PRIO)
|
|||||||
IfxAsclin_Asc_isrReceive(&uart3_handle);
|
IfxAsclin_Asc_isrReceive(&uart3_handle);
|
||||||
|
|
||||||
|
|
||||||
|
gps_uart_callback();
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,3 +1,7 @@
|
|||||||
|
V3.1.6
|
||||||
|
<20><EFBFBD>GPSʹ<53>ô<EFBFBD><C3B4>ںţ<DABA><C5A3>Ż<EFBFBD>GPS<50><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
isr.c<><63><EFBFBD>Ƴ<EFBFBD>CCD<43>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
<20>İ<DEB8><C4B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>İ<EFBFBD><C4B0><EFBFBD><EFBFBD>˿ںţ<DABA><C5A3><EFBFBD><EFBFBD><EFBFBD>V2.6<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
V3.1.5
|
V3.1.5
|
||||||
<20><EFBFBD>Ӳ<EFBFBD><D3B2>SPI<50><49>ʼ<EFBFBD><CABC>ʱѡ<CAB1><D1A1><EFBFBD><EFBFBD>CS<43><53><EFBFBD>ţ<EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD>ɻ<EFBFBD><C9BB><EFBFBD>ʼ<EFBFBD><CABC>Ĭ<EFBFBD><C4AC>CS<43><53><EFBFBD>ŵ<EFBFBD>bug
|
<20><EFBFBD>Ӳ<EFBFBD><D3B2>SPI<50><49>ʼ<EFBFBD><CABC>ʱѡ<CAB1><D1A1><EFBFBD><EFBFBD>CS<43><53><EFBFBD>ţ<EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD>ɻ<EFBFBD><C9BB><EFBFBD>ʼ<EFBFBD><CABC>Ĭ<EFBFBD><C4AC>CS<43><53><EFBFBD>ŵ<EFBFBD>bug
|
||||||
V3.1.4
|
V3.1.4
|
||||||
|
|||||||
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user