You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

211 lines
6.0 KiB

5 years ago
/*****************************************************************************
* uart.h: Header file for NXP LPC17xx Family Microprocessors
*
* Copyright(C) 2017,SensorControl
* All rights reserved.
*
* History
* 2009.05.27 ver 1.00 Prelimnary version, first Release
*2017.01.10 ver 1.10 rename tick.h tick.c
******************************************************************************/
/*****************************************************
*============================================================================
* HISTORY
* Below this line, this part is controlled by TSTS. DO NOT MODIFY!!
αʱƬǶʽƽ̨(Task Step by Step Turn by Turn StructureTSTS
*============================================================================
****************************************************************************/
#ifndef __tick_H
#define __tick_H
#include "../clib/Type.h"
//#include "../bsp/type_hs.h"
#include "../msp/time.h"
#define D_use_tick_fum
struct _s_nos_tick_
{
vU32 tp_count; //����һ�ν�������ʱ�䵽Ŀǰ��tick����
/// vU32 sys_clock;
// vU32 t_n; // noosϵͳ��ʱ����С������Ԫ
vU32 t_10ms; // noos ϵͳ��ʱ��10m����
#ifdef D_use_tick_fum
//volatile INT32U t_100ms;
vU32 t_1s;
/// vU32 t_10s;
// vU32 t_60s;
vU8 flag_1s;
vU8 flag_1s2;
/// volatile INT32U tmp;
/// volatile INT32U time_left;
/// volatile INT32U h;
/// volatile INT32U m;
vU32 n_stamp;
// vU32 t1s_flag[6]; //fixme: INT32U ���ݲ�ͬ��ϵͳ������
//volatile unsigned char t1s_flag;
/// vU8 ts_flag;
vU32 n_stamp3;
#endif
vU8 t1s_heatbeart; //noos ϵͳ��ʱ������ʱ�̱�־,��Ҫ��������
};
extern struct _s_nos_tick_ s_nos_tick;
#ifdef D_timer0_10ms
//10ms ����ʹ�ã�10ms����С����ʱ������������޷�ʹ��
#define D_Tdelay_ms D_TIMER0_10MS_COUNT//D_TIMER0_10MS_COUNT
#define D_Tdelay_10ms 2
#define D_Tdelay_20ms (2+D_Tdelay_ms)
#define D_Tdelay_30ms (3+D_Tdelay_ms)
#define D_Tdelay_40ms (4+D_Tdelay_ms)
#define D_Tdelay_50ms (5+D_Tdelay_ms)
#define D_Tdelay_60ms (6+D_Tdelay_ms)
#define D_Tdelay_80ms (8+D_Tdelay_ms)
#define D_Tdelay_100ms (10+D_Tdelay_ms)
#else
//10ms ����ʹ�ã�10ms����С����ʱ������������޷�ʹ��
#define D_Tdelay_ms D_TIMER0_10MS_COUNT//D_TIMER0_10MS_COUNT
#define D_Tdelay_10ms 1
#define D_Tdelay_20ms (0+D_Tdelay_ms)
#define D_Tdelay_30ms (0+D_Tdelay_ms)
#define D_Tdelay_40ms (2+D_Tdelay_ms)
#define D_Tdelay_50ms (2+D_Tdelay_ms)
#define D_Tdelay_60ms (2+D_Tdelay_ms)
#define D_Tdelay_80ms (3+D_Tdelay_ms)
#define D_Tdelay_100ms (4+D_Tdelay_ms)
#endif
#define D_Tdelay_200ms (D_Tdelay_100ms*2)
#define D_Tdelay_300ms (D_Tdelay_100ms*3)
#define D_Tdelay_400ms (D_Tdelay_100ms*4)
#define D_Tdelay_500ms (D_Tdelay_100ms*5)
#define D_Tdelay_600ms (D_Tdelay_100ms*6)
#define D_Tdelay_700ms (D_Tdelay_100ms*7)
#define D_Tdelay_800ms (D_Tdelay_100ms*8)
#define D_Tdelay_900ms (D_Tdelay_100ms*9)
#define D_Tdelay_1s (D_Tdelay_100ms*10)
#define D_Tdelay_1s2 (D_Tdelay_100ms*12)
#define D_Tdelay_1s5 (D_Tdelay_100ms*15)
#define D_Tdelay_2s (D_Tdelay_100ms*20)
#define D_Tdelay_2s5 (D_Tdelay_100ms*25)
#define D_Tdelay_3s (D_Tdelay_100ms*30)
#define D_Tdelay_5s (D_Tdelay_100ms*50)
#define D_Tdelay_8s (D_Tdelay_100ms*80)
#define D_Tdelay_9s (D_Tdelay_100ms*90)
#define D_Tdelay_10s (D_Tdelay_100ms*100)
#define D_Tdelay_1min (D_Tdelay_1s*60)
#define D_Tdelay_1h (D_Tdelay_1min*60)
#define D_Tdelay_1day (D_Tdelay_1h*24)
#define D_TIMER0_1S_COUNT 100
//#define D_10mS 1//D_TIMER0_10MS_COUNT
//#define D_100mS (D_10mS*10)
//#define D_1S (D_10mS*100)
//>> ��ʱ��: ��ʼ�� ����ʱ�䵽
// L0_nos_tick10ms_start(s->times); ��ʼ��ʼ��s->times ��10msΪһ����λ
// if( L0_nos_tick10ms_interval(s->times) < 20)// s->times ִ����20�κ�,Ҳ���� ��ʱ20*10m����
//��������
#define L0_nos_tick10ms_start(start_n) start_n = s_nos_tick.t_10ms
#define L0_nos_tick10ms_interval(start_n) (s_nos_tick.t_10ms - start_n)
#define L0_nos_tick1s_start(start_n) start_n = s_nos_tick.t_1s
#define L0_nos_tick1s_interval(start_n) (s_nos_tick.t_1s - start_n)
//>>>//��������
#define L2_tick_time_stamp(time_stamp) time_stamp = s_nos_tick.t_10ms;
#define L2_tick_time_interval(time_stamp,time_overflow) (( s_nos_tick.t_10ms - time_stamp) > time_overflow)
#define L3_tick_interval(x) L2_tick_time_interval(s_nos_tick.n_stamp,x)
#define L2_tick_stamp() L2_tick_time_stamp(s_nos_tick.n_stamp);
//>>>ʾ������:
#if 0
{
case D_task_init://
Lc_print_buf(" \r\n YL_ init");
s->step = D_AT;
L0_esp_open();
L2_task_go(D_task_YL_ready);
s_uart0_rec.ok = 0;
L2_tick_time_stamp(s->t_stamp);
// L1_task_Tdelay(1*D_Tdelay_1s); //��Լ6s
break;
case D_task_YL_ready:
if(1 == s_uart0_rec.ok)
{
if(strstr(s_uart0_rec.array,"ready") != NULL)
{
Ldi_print("ready..\r\n");
s->step = D_AT;
L2_task_go(D_task_YL_ask);
}
s_uart0_rec.ok = 0;
}
if(L2_tick_time_stamp(s->t_stamp,1*D_Tdelay_1s))
{// ʱ������
L0_esp_close();
Ldi_print("fail esp restart.\r\n");
L2_task_go(D_task_init);
L1_task_Tdelay(2*D_Tdelay_1s);
}
break;
}
#endif
// ����t_10ms ����,����t_10ms����Ϊ1ʱ����Ϊ(D_TIMER0_10MS_COUNT*��ʱ������)
/// #define D_TIMER0_10MS_COUNT 1 //��ʱ��Ϊ 10msһ�ж�
#ifdef D_use_tick_fum
extern void L1_tick_init(void);
extern void L1_tick_tick (void);
#else
#define L1_tick_init()
#define L1_tick_tick() s_nos_tick.t_10ms ++;
#endif
//L2_time_beat_heart(D_TBH_ch1,2,'t')
#define D_TBH_ch0 0
#define D_TBH_ch1 1
#define D_TBH_ch2 2
#define D_TBH_ch3 3
#define D_TBH_ch4 4
#define D_TBH_ch5 5
extern void L2_time_beat_heart(vU32 ch,U8 invent,U8 s);
//void L2_time_beat_heart_fun(INT32U ch,unsigned char invent,void *fun(void));
extern void L2_time_beat_heart_fun(vU32 ch,U8 invent,void (*fun)(void));
#endif /* end __tick_H */
/*****************************************************************************
** End Of File
******************************************************************************/