📄 uart_comm.c
字号:
}
}
}
}
/*************************************************************
// name: ;
// function: 以中断方式发送uart0_trs 中制定的缓冲区中的数据 ;
// hardware use: none ;
// pra in: ;
// pra out: ;
// ;
// ;
// ;
// note: ;
// author: jerry chen .
*************************************************************/
void uart0_send_irq (uint8 *buff_point, uint8 send_num )
{
uart0_trs.comm_cnt = 0;
uart0_trs.rtx_num = send_num;
uart0_trs.tx_buff = buff_point;
uart0_trs.lsr_status.tx_finish_flag = 0;
U0THR = (uart0_trs.tx_buff)[uart0_trs.comm_cnt++];
}
/*************************************************************
// name: ;
// function: ;
// hardware use: none ;
// pra in: ;
// pra out: ;
// ;
// ;
// ;
// note: ;
// author: jerry chen .
*************************************************************/
void frame_det (void)
{
uint8 i,j,tx_num_temp,det_point,finish,head_over_max,*level_temp,key_position_temp;
if( uart0_rec.rtx_num > 0 )
{
for(i=0;i<PROTOCOL_MAX;i++)
{
finish = 0;
while( (multi_frame_det.frame_det[i].valid==0) && (finish==0) )
{
if( multi_frame_det.frame_det[i].level == 0 )
{
det_point = multi_frame_det.detected_positon + 1;
if( det_point >= COM_QUE_MAX )
{
det_point -= COM_QUE_MAX;
}
wait
}
level_temp = &multi_frame_det.frame_det[i].level;
if( level_temp > 0 )
{
key_position_temp = multi_frame_det.frame_det[i].frame_start + PROTOCOL_ARRAY[i].key_array[ level_temp ].offset;
if(uart0_rec_que.head<uart0_rec_que.trail)
{
head_over_max =uart0_rec_que.head + COM_QUE_MAX;
}
else
{
head_over_max =uart0_rec_que.head;
}
if( PROTOCOL_ARRAY[i].key_array[ level_temp ].type == 0 )
{
if( key_position_temp <= head_over_max )
{
if( PROTOCOL_ARRAY[i].key_array[ level_temp ].key == uart0_rec_que.queue[ key_position_temp ] )
{
(*level_temp)++ ;
if( (*level_temp) >= PROTOCOL_ARRAY[i].level_num )
{
multi_frame_det.frame_det[i].valid = 1;
}
}
else
{
multi_frame_det.frame_det[i].frame_start =0;
multi_frame_det.frame_det[i].level = 0;
multi_frame_det.frame_det[i].valid = 0;
finish = 0;
}
}
else
{
finish = 1;
}
}
else if( PROTOCOL_ARRAY[i].key_array[ multi_frame_det.frame_det[i].level ].type == 1 )
{
if(uart0_rec_que.queue[ key_position_temp ] > PROTOCOL_ARRAY[i].key_array[ level_temp ].key_point_max)
{
multi_frame_det.frame_det[i].frame_start =0;
multi_frame_det.frame_det[i].level = 0;
multi_frame_det.frame_det[i].valid = 0;
finish = 0;
}
else
{
if()
}
}
}
for(j=0;j<uart0_rec.rtx_num;j++)
{
if( uart0_rec_que.queue[det_point] == PROTOCOL_ARRAY[i].key_array[0].key )
{
multi_frame_det.frame_det[i].level++;
if(multi_frame_det.frame_det[i].level >= PROTOCOL_ARRAY[i].level_num)
{
multi_frame_det.frame_det[i].valid = 1;
}
else
{
multi_frame_det.frame_det[i].frame_start = det_point;
for(;j<uart0_rec.rtx_num;j++)
{
if( uart0_rec_que.queue[det_point] == PROTOCOL_ARRAY[i].key_array[ multi_frame_det.frame_det[i].level ].key )
}
}
break;
}
else
{
det_point++;
if( det_point >= COM_QUE_MAX )
{
det_point -= COM_QUE_MAX;
}
}
}
// if(multi_frame_det.frame_det[i].level == 1)
// {
// det_point++;
// if( det_point >= COM_QUE_MAX )
// {
// det_point -= COM_QUE_MAX;
// }
//
// for(;j<uart0_rec.rtx_num;j++)
// {
// if( uart0_rec_que.queue[det_point] == PROTOCOL_ARRAY[i].key_array[0].key )
// {
// multi_frame_det.frame_det[i].level++;
// multi_frame_det.frame_det[i].frame_start = det_point;
// break;
// }
// else
// {
// det_point++;
// if( det_point >= COM_QUE_MAX )
// {
// det_point -= COM_QUE_MAX;
// }
// }
// }
//
// }
}
else
{
}
}
uart0_rec.rtx_num = 0;
}
}
/*************************************************************
// name: ;
// function: ;
// hardware use: none ;
// pra in: ;
// pra out: ;
// ;
// ;
// ;
// note: ;
// author: jerry chen .
*************************************************************/
uint8 protocol_op_DLT645( uint8 valid_frame_start )
{
uint8 i;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -