Browse Source

updata

master
zhuang 4 years ago
parent
commit
3e3f017bb2
  1. 64
      app.c
  2. 22
      lcd.c
  3. 2
      lcd.h
  4. 46
      motor.c
  5. 5
      t21_t8.c
  6. 1
      t21_t8.h

64
app.c

@ -43,42 +43,68 @@ void start_up(void)
}
}
//================================================================
//================================================================
//
extern uint8_t g_lcd_rxbuf_isready;//lcd数据接收过程中为真
extern volatile char lcd_rxbuff[50] = {0};
extern volatile int32_t lcd_count = 0;
extern uint8_t g_lcd_rxbuf_isready;//lcd数据接收过程中为真
extern uint32_t g_process_recv_lcd_data_time = 0;
uint32_t judge_recv_lcd_data_finish_main(uint32_t time)
void judge_recv_lcd_data_finish_main(uint32_t time)
{
/**
* @brief LCD的数据完成
*/
static uint32_t recv_lcd_data_time = 0;
recv_lcd_data_time = time;
if(recv_lcd_data_time=0)
{
recv_lcd_data_time = hal_get_ticket();
return recv_lcd_data_time;
}
else if (hal_has_passedms(recv_lcd_data_time) > 10) {
g_lcd_rxbuf_isready=false;
recv_lcd_data_time = hal_get_ticket();
send_cmd_to_lcd(lcd_rxbuff,lcd_count);//
lcd_count=0;
return 0;
}
static uint32_t recv_lcd_data_time = 0;
recv_lcd_data_time = time;
if (hal_has_passedms(recv_lcd_data_time) > 10) {
g_lcd_rxbuf_isready=false;
recv_lcd_data_time = hal_get_ticket();
send_cmd_to_lcd(lcd_rxbuff,lcd_count);//
lcd_count=0;
}
}
//================================================================
//================================================================
//
extern uint8_t g_motor_rxbuf_isready;//lcd数据接收过程中为真
extern volatile char motor_rxbuff[50] = {0};
extern volatile int32_t motor_count = 0;
extern uint32_t g_process_recv_motor_data_time = 0;
void judge_recv_motor_data_finish_main(uint32_t time)
{
/**
* @brief motor的数据完成
*/
static uint32_t recv_motor_data_time = 0;
recv_motor_data_time = time;
if (hal_has_passedms(recv_motor_data_time) > 10) {
g_lcd_rxbuf_isready=false;
recv_motor_data_time = hal_get_ticket();
send_cmd_to_motor(motor_rxbuff,motor_count);//
send_cmd_to_lcd(motor_rxbuff,motor_count);//
motor_count=0;
}
}
void main()
{
peripheral_config();//ram清零
uint32_t record_last_time=0;
while (1)
{
debug_light_ctrl_process_in_main_loop();//
if(g_lcd_rxbuf_isready)//
{
record_last_time = judge_recv_lcd_data_finish_main(record_last_time);
judge_recv_lcd_data_finish_main(g_process_recv_lcd_data_time);
}
if(g_motor_rxbuf_isready)
{
judge_recv_motor_data_finish_main(g_process_recv_motor_data_time);
}
}
}

22
lcd.c

@ -19,7 +19,6 @@ volatile int32_t lcd_issue_motor_speed=0;
volatile int16_t judge_now_foreward_or_reversal_state=0;//01
volatile int32_t first_set_speed_state=0;
extern volatile int32_t speed_dsp_now;//dsp
extern int32_t recv_lcd_data_time;
extern volatile int32_t motor_jerk_state;//1
//-----------------------------------------
@ -52,7 +51,7 @@ void send_cmd_to_lcd(volatile char buff[20], unsigned int num)
//---------------------------------------
//---------------------------------------
uint8_t g_lcd_rxbuf_isready = 0;
static uint32_t process_recv_lcd_data_time = 0;
uint32_t g_process_recv_lcd_data_time = 0;
void recv_from_lcd_data(unsigned char data)
{
/**
@ -61,22 +60,27 @@ void recv_from_lcd_data(unsigned char data)
*/
g_lcd_rxbuf_isready=true;//
lcd_rxbuff[lcd_count++] = data;
g_process_recv_lcd_data_time= hal_get_irqticket();//
}
void judge_recv_lcd_data_finish(void)
uint32_t judge_recv_lcd_data_finish(uint32_t time)
{
/**
* @brief LCD的数据完成
*/
static uint32_t recv_lcd_data_time = 0;
if (hal_has_passedms(recv_lcd_data_time) > 10) {
g_lcd_rxbuf_isready=false;
recv_lcd_data_time = hal_get_ticket();
send_cmd_to_lcd(lcd_rxbuff,lcd_count);//
}
static uint32_t recv_lcd_data_time = 0;
recv_lcd_data_time = time;
if (hal_has_passedms(recv_lcd_data_time) > 10) {
g_lcd_rxbuf_isready=false;
recv_lcd_data_time = hal_get_ticket();
send_cmd_to_lcd(lcd_rxbuff,lcd_count);//
lcd_count=0;
return 0;
}
}
/**
* @brief lcd的指令进行分析
* @param buff num

2
lcd.h

@ -10,7 +10,7 @@
void lcd_uart_config(void);
void lcd_send_commands(void);
void send_cmd_to_lcd(volatile char buff[20],unsigned int num);
void judge_recv_lcd_data_finish(void);
uint32_t judge_recv_lcd_data_finish(uint32_t time);
uint8_t lcd_data_analyse(volatile char buff[20], unsigned int num);
void recv_from_lcd_data(unsigned char data);
void lcd_switch_anomaly_page(void);

46
motor.c

@ -15,8 +15,6 @@ extern volatile int32_t lcd_issue_motor_speed;
volatile int16_t motor_off_state=0;
extern int32_t recv_motor_data_time;
extern int32_t inquire_error_time=0;
volatile char motor_recv_rxbuff[50] = {0};
volatile int32_t motor_recv_count = 0;
void motor_uart_config(void)
{
/**
@ -77,34 +75,44 @@ void inquire_motor_error_state(void)
sleep_ms(10);
}
}
//----------------------------------------------------
//----------------------------------------------------
//----------------------------------------------------
uint8_t g_motor_rxbuf_isready = 0;
volatile char motor_rxbuff[50] = {0};
volatile uint32_t motor_count = 0;
uint32_t g_process_recv_motor_data_time = 0;
void recv_from_motor_data(unsigned char data)
{
/**
* @brief
*
*/
recv_motor_data_state=1;
recv_motor_data_time=0;
motor_recv_rxbuff[motor_recv_count++]=data;
g_motor_rxbuf_isready=true;//
motor_rxbuff[motor_count++] = data;
g_process_recv_motor_data_time= hal_get_irqticket();//
}
void data_from_motor_recv_Ok(void)
uint32_t judge_recv_motor_data_finish(uint32_t time)
{
/**
* @brief
* 1
* 2lcd
*/
if(recv_motor_data_time>30)
/**
* @brief motor的数据完
*/
static uint32_t recv_motor_data_time = 0;
recv_motor_data_time = time;
if(recv_motor_data_time=0)
{
send_cmd_to_motor(motor_recv_rxbuff, motor_recv_count);
send_cmd_to_lcd(motor_recv_rxbuff, motor_recv_count);
//recv_motor_data_state=0;
motor_recv_count=0;
//motor_data_analyse(motor_rxbuff, motor_count);
recv_motor_data_time = hal_get_ticket();
return recv_motor_data_time;
}
else if (hal_has_passedms(recv_motor_data_time) > 10) {
g_motor_rxbuf_isready=false;
recv_motor_data_time = hal_get_ticket();
send_cmd_to_motor(motor_rxbuff,motor_count);//
motor_count=0;
return 0;
}
}

5
t21_t8.c

@ -83,6 +83,11 @@ int32_t hal_get_ticket()
return g_ticket100us;
}
int32_t hal_get_irqticket()
{
return g_ticket100us;
}
int32_t sleep_ms(int32_t time)
{
/**

1
t21_t8.h

@ -16,6 +16,7 @@ void system_module_process_interrupt();
int32_t sleep_ms(int32_t time);
void init_timer1_as_ticketustimer_in32M();
int32_t hal_get_ticket();
int32_t hal_get_irqticket();
uint32_t hal_has_passedms(uint32_t lastticket);
#endif
Loading…
Cancel
Save