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
|
||||
<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
|
||||
|
||||
Binary file not shown.
@@ -43,24 +43,25 @@
|
||||
* ------------------------------------
|
||||
********************************************************************************************************************/
|
||||
|
||||
#include "math.h"
|
||||
#include "zf_common_function.h"
|
||||
#include "zf_common_fifo.h"
|
||||
#include "zf_driver_delay.h"
|
||||
#include "zf_driver_uart.h"
|
||||
#include "zf_device_type.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>
|
||||
|
||||
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 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_rmc_state; // rmc<6D><63><EFBFBD><EFBFBD>״̬
|
||||
gps_state_enum gps_gga_state = GPS_STATE_RECEIVING; // gga <EFBFBD><EFBFBD><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_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)
|
||||
{
|
||||
uint8 i, j = 0;
|
||||
char *temp;
|
||||
uint8 len = 0, len1;
|
||||
uint8 i = 0, j = 0;
|
||||
char *temp = strchr(str, '\n');
|
||||
uint8 len = 0, len1 = 0;
|
||||
|
||||
temp = strchr(str, '\n');
|
||||
if(NULL != temp)
|
||||
{
|
||||
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 ++)
|
||||
{
|
||||
if(str[i] == ',')
|
||||
if(',' == str[i])
|
||||
{
|
||||
j ++;
|
||||
}
|
||||
@@ -111,8 +111,8 @@ static uint8 get_parameter_index (uint8 num, char *str)
|
||||
static int get_int_number (char *s)
|
||||
{
|
||||
char buf[10];
|
||||
uint8 i;
|
||||
int return_value;
|
||||
uint8 i = 0;
|
||||
int return_value = 0;
|
||||
i = get_parameter_index(1, s);
|
||||
i = i - 1;
|
||||
strncpy(buf, s, i);
|
||||
@@ -130,9 +130,9 @@ static int get_int_number (char *s)
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
static float get_float_number (char *s)
|
||||
{
|
||||
uint8 i;
|
||||
uint8 i = 0;
|
||||
char buf[15];
|
||||
float return_value;
|
||||
float return_value = 0;
|
||||
|
||||
i = get_parameter_index(1, s);
|
||||
i = i - 1;
|
||||
@@ -151,9 +151,9 @@ static float get_float_number (char *s)
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
static double get_double_number (char *s)
|
||||
{
|
||||
uint8 i;
|
||||
uint8 i = 0;
|
||||
char buf[15];
|
||||
double return_value;
|
||||
double return_value = 0;
|
||||
|
||||
i = get_parameter_index(1, s);
|
||||
i = i - 1;
|
||||
@@ -172,10 +172,10 @@ static double get_double_number (char *s)
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
static void utc_to_btc (gps_time_struct *time)
|
||||
{
|
||||
uint8 day_num;
|
||||
uint8 day_num = 0;
|
||||
|
||||
time->hour = time->hour + 8;
|
||||
if(time->hour > 23)
|
||||
if(23 < time->hour)
|
||||
{
|
||||
time->hour -= 24;
|
||||
time->day += 1;
|
||||
@@ -183,7 +183,7 @@ static void utc_to_btc (gps_time_struct *time)
|
||||
if(2 == time->month)
|
||||
{
|
||||
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>
|
||||
}
|
||||
@@ -201,7 +201,7 @@ static void utc_to_btc (gps_time_struct *time)
|
||||
{
|
||||
time->day = 1;
|
||||
time->month ++;
|
||||
if(time->month > 12)
|
||||
if(12 < time->month)
|
||||
{
|
||||
time->month -= 12;
|
||||
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)
|
||||
{
|
||||
uint8 state, temp;
|
||||
uint8 state = 0, temp = 0;
|
||||
|
||||
double latitude; // γ<><CEB3>
|
||||
double longitude; // <20><><EFBFBD><EFBFBD>
|
||||
double latitude = 0; // γ<><CEB3>
|
||||
double longitude = 0; // <20><><EFBFBD><EFBFBD>
|
||||
|
||||
float lati_cent_tmp, lati_second_tmp;
|
||||
float long_cent_tmp, long_second_tmp;
|
||||
float speed_tmp;
|
||||
double lati_cent_tmp = 0, lati_second_tmp = 0;
|
||||
double long_cent_tmp = 0, long_second_tmp = 0;
|
||||
float speed_tmp = 0;
|
||||
char *buf = line;
|
||||
uint8 return_state = 0;
|
||||
|
||||
state = buf[get_parameter_index(2, buf)];
|
||||
|
||||
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;
|
||||
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>
|
||||
lati_cent_tmp = (latitude - gps->latitude_degree * 100);
|
||||
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->longitude_degree = (int)longitude / 100; // <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD>
|
||||
long_cent_tmp = (longitude - gps->longitude_degree * 100);
|
||||
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->latitude = gps->latitude_degree + (double)gps->latitude_cent / 60 + (double)gps->latitude_second / 600000;
|
||||
gps->longitude = gps->longitude_degree + (double)gps->longitude_cent / 60 + (double)gps->longitude_second / 600000;
|
||||
gps->latitude = gps->latitude_degree + lati_cent_tmp / 60;
|
||||
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>/Сʱ)
|
||||
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)
|
||||
{
|
||||
uint8 state;
|
||||
uint8 state = 0;
|
||||
char *buf = line;
|
||||
uint8 return_state = 0;
|
||||
|
||||
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->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)
|
||||
{
|
||||
const double EARTH_RADIUS = 6378137; // <20><><EFBFBD><EFBFBD><EFBFBD>뾶(<28><>λ<EFBFBD><CEBB>m)
|
||||
double rad_latitude1;
|
||||
double rad_latitude2;
|
||||
double rad_longitude1;
|
||||
double rad_longitude2;
|
||||
double distance;
|
||||
double a;
|
||||
double b;
|
||||
double rad_latitude1 = 0;
|
||||
double rad_latitude2 = 0;
|
||||
double rad_longitude1 = 0;
|
||||
double rad_longitude2 = 0;
|
||||
double distance = 0;
|
||||
double a = 0;
|
||||
double b = 0;
|
||||
|
||||
rad_latitude1 = ANGLE_TO_RAD(latitude1); // <20><><EFBFBD>ݽǶȼ<C7B6><C8BC>㻡<EFBFBD><E3BBA1>
|
||||
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 y = cos(latitude1) * sin(latitude2) - sin(latitude1) * cos(latitude2) * cos(longitude2 - longitude1);
|
||||
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 bbc_xor_origin = 0;
|
||||
uint8 bbc_xor_calculation = 0;
|
||||
uint32 data_len;
|
||||
uint32 data_len = 0;
|
||||
|
||||
do
|
||||
{
|
||||
if(GPS_STATE_RECEIVED == gps_rmc_state)
|
||||
{
|
||||
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);
|
||||
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];
|
||||
}
|
||||
@@ -402,10 +402,10 @@ uint8 gps_data_parse (void)
|
||||
if(GPS_STATE_RECEIVED == gps_gga_state)
|
||||
{
|
||||
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);
|
||||
|
||||
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];
|
||||
}
|
||||
@@ -435,7 +435,7 @@ uint8 gps_data_parse (void)
|
||||
void gps_uart_callback (void)
|
||||
{
|
||||
uint8 temp_gps[6];
|
||||
uint32 temp_length;
|
||||
uint32 temp_length = 0;
|
||||
|
||||
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);
|
||||
system_delay_ms(500); // <20>ȴ<EFBFBD>GPS<50><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>ʼ<EFBFBD><CABC>
|
||||
uart_init(GPS_TAU1201_UART, 115200, GPS_TAU1201_RX, GPS_TAU1201_TX);
|
||||
|
||||
set_wireless_type(GPS_TAU1201, gps_uart_callback);
|
||||
uart_rx_interrupt(GPS_TAU1201_UART, 0);
|
||||
|
||||
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);
|
||||
|
||||
@@ -49,9 +49,9 @@
|
||||
#include "zf_common_typedef.h"
|
||||
|
||||
//===============================================GPS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||
#define GPS_TAU1201_UART (UART_2)
|
||||
#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_TX (UART2_RX_P10_6) // GPS TX<54><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define GPS_TAU1201_UART (UART_3)
|
||||
#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 (UART3_RX_P15_7) // GPS TX<54><58><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>
|
||||
|
||||
@@ -137,8 +137,8 @@
|
||||
//================================================<3D><><EFBFBD><EFBFBD> IMU963RA <20>ڲ<EFBFBD><DAB2><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>ٶȼ<D9B6><C8BC><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_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>
|
||||
//===============================================<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>
|
||||
*
|
||||
* <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><> 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><CBBE><EFBFBD><EFBFBD> <20>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD><EFBFBD>˾
|
||||
* <20>汾<EFBFBD><E6B1BE>Ϣ <20>鿴 libraries/doc <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> version <20>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
|
||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IAR 8.32.4 or MDK 5.37
|
||||
* <20><><EFBFBD><EFBFBD>ƽ̨ MM32F327X_G9P
|
||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ADS v1.8.0
|
||||
* <20><><EFBFBD><EFBFBD>ƽ̨ TC264D
|
||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> https://seekfree.taobao.com/
|
||||
*
|
||||
* <20>ļ<DEB8>¼
|
||||
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
|
||||
* 2022-08-10 Teternal first version
|
||||
* 2022-09-15 pudding first version
|
||||
********************************************************************************************************************/
|
||||
/*********************************************************************************************************************
|
||||
* <20><><EFBFBD>߶<EFBFBD><DFB6>壺
|
||||
@@ -45,6 +45,7 @@
|
||||
********************************************************************************************************************/
|
||||
|
||||
#include "zf_common_debug.h"
|
||||
|
||||
#include "zf_device_key.h"
|
||||
|
||||
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;
|
||||
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:
|
||||
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_CHECK_SHOCK;
|
||||
}
|
||||
}
|
||||
break;
|
||||
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;
|
||||
|
||||
key_press_time[i] ++;
|
||||
if(key_press_time[i] >= KEY_LONG_PRESS_PERIOD / scanner_period)
|
||||
{
|
||||
key_state[i] = KEY_LONG_PRESS;
|
||||
}
|
||||
}
|
||||
else // <20><><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>
|
||||
{
|
||||
if(key_state[i] != KEY_LONG_PRESS && key_press_time[i] >= KEY_MAX_SHOCK_PERIOD / scanner_period)
|
||||
{
|
||||
key_state[i] = KEY_SHORT_PRESS;
|
||||
}
|
||||
key_press_time[i] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -129,6 +97,33 @@ key_state_enum key_get_state (key_index_enum 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><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);
|
||||
// <20><>ע<EFBFBD><D7A2>Ϣ
|
||||
//-------------------------------------------------------------------------------------------------------------------
|
||||
uint8 key_init (uint32 period)
|
||||
void key_init (uint32 period)
|
||||
{
|
||||
zf_assert(0 < period);
|
||||
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 ++)
|
||||
{
|
||||
gpio_init(key_index[loop_temp], GPI, GPIO_HIGH, GPI_PULL_UP);
|
||||
key_state[loop_temp] = KEY_RELEASE;
|
||||
}
|
||||
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>
|
||||
*
|
||||
* <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><> 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><CBBE><EFBFBD><EFBFBD> <20>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD><EFBFBD>˾
|
||||
* <20>汾<EFBFBD><E6B1BE>Ϣ <20>鿴 libraries/doc <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> version <20>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
|
||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IAR 8.32.4 or MDK 5.37
|
||||
* <20><><EFBFBD><EFBFBD>ƽ̨ MM32F327X_G9P
|
||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ADS v1.8.0
|
||||
* <20><><EFBFBD><EFBFBD>ƽ̨ TC264D
|
||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> https://seekfree.taobao.com/
|
||||
*
|
||||
* <20>ļ<DEB8>¼
|
||||
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
|
||||
* 2022-08-10 Teternal first version
|
||||
* 2022-09-15 pudding first version
|
||||
********************************************************************************************************************/
|
||||
/*********************************************************************************************************************
|
||||
* <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><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>
|
||||
#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_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
|
||||
{
|
||||
KEY_1,
|
||||
@@ -72,15 +71,14 @@ typedef enum
|
||||
typedef enum
|
||||
{
|
||||
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_LONG_PRESS, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
||||
}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); // <20><><EFBFBD><EFBFBD>״̬ɨ<CCAC><C9A8>
|
||||
key_state_enum key_get_state (key_index_enum key_n); // <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>״̬
|
||||
uint8 key_init (uint32 period); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
||||
//====================================================<3D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>=================================================
|
||||
void key_scanner (void);
|
||||
key_state_enum key_get_state (key_index_enum key_n);
|
||||
void key_clear_state (key_index_enum key_n);
|
||||
void key_clear_all_state (void);
|
||||
void key_init (uint32 period);
|
||||
|
||||
#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>
|
||||
#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_DATA_LEN (128 ) // TSL1401 <20><><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
|
||||
//=================================================TSL1401 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================
|
||||
|
||||
@@ -53,9 +53,7 @@ typedef enum
|
||||
NO_WIRELESS = 0, // <20><><EFBFBD>豸
|
||||
WIRELESS_UART, // <20><><EFBFBD>ߴ<EFBFBD><DFB4><EFBFBD>
|
||||
BLUETOOTH_CH9141, // <20><><EFBFBD><EFBFBD> CH9141
|
||||
GPS_TAU1201,
|
||||
WIFI_UART,
|
||||
WIFI_SPI,
|
||||
WIFI_UART, // <20><><EFBFBD><EFBFBD> WiFi
|
||||
}wireless_type_enum;
|
||||
//==============================================<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> num <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <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"
|
||||
|
||||
|
||||
void system_delay (uint32 time, uint32 num);
|
||||
|
||||
//====================================================<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
|
||||
#define system_delay_us(time) system_delay((time*1000), (1)) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<CAB1><CAB1> <20><>λus
|
||||
#define system_delay_ns(time) system_delay((time), (1)) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<CAB1><CAB1> <20><>λns
|
||||
void system_delay (uint32 time, uint32 num);
|
||||
void system_delay_us (uint32 time);
|
||||
void system_delay_ms (uint32 time);
|
||||
//====================================================<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>
|
||||
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> ****************************
|
||||
|
||||
@@ -88,9 +86,6 @@ IFX_INTERRUPT(exti_ch0_ch4_isr, 0, EXTI_CH0_CH4_INT_PRIO)
|
||||
{
|
||||
exti_flag_clear(ERU_CH0_REQ0_P15_4);
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
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);
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -263,7 +256,7 @@ IFX_INTERRUPT(uart3_rx_isr, 0, UART3_RX_INT_PRIO)
|
||||
IfxAsclin_Asc_isrReceive(&uart3_handle);
|
||||
|
||||
|
||||
|
||||
gps_uart_callback();
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user