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.

283 lines
6.1 KiB

1 year ago
/*****************************************************
*============================================================================
* HISTORY
* Below this line, this part is controlled by TSTS. DO NOT MODIFY!!
(Task Step by Step Turn by Turn StructureTSTS
20220830_23642 CCmodify task handdle
///cc 2023/04/08--12:13:47 TS_task_val_ tst_v;////TTSS常用的全局变量
*============================================================================
****************************************************************************/
#include "TTSS_task.h"
//任务命名规则:
// 1:第一层
/// 0驱动芯片级 flash
/// 1芯片应用级 save
/// 2任务应用级 jilu_save
//
// 2:第二层/flash/i2c/7290/等各类芯片
// 3:任务序号/不同的芯片/
//
TS_task ts_task_init =
{
0L, ///vU32 n;
/// volatile UN_TYPE en; //关闭任务,也可以理解为暂停,但是使用idelay的地方时间在后台计数任务在延时到了后才暂停,而的delay相当于暂停
0, ///volatile UN_TYPE sh; //当前任务段
0 ///volatile UN_TYPE sh_next; //下一个任务段,并不代表一定下一任务段一定是他,有可能中间插入延时等任务段
/// volatile UN_TYPE sh_pre; //前一个任务段,一般为调出缓存任务段使用
};
////L1_task_init
TS_task_val_ tst_v;////TTSS常用的全局变量
void L1_task_reg_clear(TS_task *s)
{
// s->en = 1;
// s->pfun = 0;
s->sh = 0;
s->sh_next= 0;
/// s->sh_pre= 0;
s->n= 0;
}
/////>>>>>>>>>>>>>>>>>>>>>>>>>>>>>供演示task 结构的使用 不可删除>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#define D_task_test_01 0x20
#define D_task_test_02 0x22
#define D_task_test_03 0x23
#ifdef D_debug_task_test
////>>>>>>>>>>>>>>>>>>>>>_s_task_test_>>>>>>>>>>>>>>>>>>>>>>
TS_task_test_ ts_task_test;
void L2_task_test_register(void)
{
ddd
L1_task_reg_clear(&ts_task_test.task);
L3_task_s_go(ts_task_test,D_task_init);
}
///L2_task_test_handle(&ts_task_test);
void L2_task_test_handle(TS_task_test_ *s)
{
unsigned char d = 0;
TTSS_Task_init():
L2_task_go(D_task_test_01);
TTSS_Task_step(D_task_test_01):
if(d > 8)
{
d = 0;
L2_task_go(D_task_test_02);
L1_task_Cdelay(D_Cdelay_200us);
}else
{
d ++;
}
TTSS_Task_step(D_task_test_02):
if(d > 4)
{
d = 0;
L2_task_go(D_task_test_01);
L1_task_Tdelay(D_Tdelay_100ms);
}else
{
d ++;
}
TTSS_Task_end();
}
#endif//#ifdef D_debug_task_test
////<<<<<<<<<<<<<<<<<<<<<_s_task_test_<<<<<<<<<<<<<<<<<<<<<<
//example :
#if 0
//L2_task_voice_handle(&s_task_music.task);
//L1_task_go(D_task_close);
//if(L1_task_busy(s)){ L1_task_goout(s_task_music.task,D_task_voice_send_single) }
void L2_task_voice_handle(struct _s_task_music_ *s)
{ //s_task_music.task.sh
switch(s->task.sh)
{
case D_task_voice_init://
s->sector = 0;
break;
case D_task_voice_cuimian :
s->sector = D_voice_music_wantsleep;
L2_task_go_son(D_task_voice_play,D_task_voice_cuimian1);
break;
case D_task_voice_cuimian1://
L2_task_go(D_task_voice_cuimian2);
break;
case D_task_voice_cuimian2://
if(0 == s->volume_change)
{
//L3_voice_stop();
s->sector = D_voice_stop;
s->status = D_voice_status_stop;
//L2_task_go(D_task_voice_play);
L2_task_go_son(D_task_voice_play,0);
}else
{
s->volume_change --;
s->volume_temp = s->volume;
s->volume = s->volume_change*s->volume_shop/20;//
if (s->volume_temp != s->volume)
{
s->sector = D_voice_volume|s->volume;
//s->status = D_voice_status_stop;
//L2_task_go(D_task_voice_volume3);
L2_task_go_son(D_task_voice_play,D_task_voice_cuimian2);
}
//else
{
L2_task_delay(D_task_delay_1m);
}
}
break;
//>>>>>>>>>>>>>>>>>> son function
case D_task_voice_play://
if(L3_task_s_busy(s_task_wt558d))
{
}else
{
s_task_wt558d.reg = s_task_music.sector;
L3_task_s_go(s_task_wt558d,D_task_wt558d_fun);
L2_task_go(D_task_voice_ask);
}
break;
case D_task_voice_ask://
if(L3_task_s_busy(s_task_wt558d))
{
}else
{
L2_task_go_father();//回到
}
break;
//<<<<<<<<<<<<<<<<<<<<<< son function
//-----------------------task standerd code
case D_task_Tdelay://----
s->task.n--;
if (s->task.n == 0)
{
s->task.n = 0;
L2_task_delay_over();
}
break;
default :
break;
}
L2_task_wt558d_handle(&s_task_wt558d);
}
void L2_task_voice_handle(struct _s_task_music_ *s)
{ //s_task_music.task.sh
switch(s->task.sh)
{
case D_task_voice_init://
s->sector = 0;
break;
case D_task_voice_cuimian :
s->sector = D_voice_music_wantsleep;
L2_task_go_son(D_task_voice_play,D_task_voice_cuimian1);
break;
case D_task_voice_cuimian1://
L2_task_go(D_task_voice_cuimian2);
break;
//-----------------------task standerd code
case D_task_Tdelay://----
s->task.n--;
if (s->task.n == 0)
{
s->task.n = 0;
L2_task_delay_over();
}
break;
default :
break;
}
L2_task_wt558d_handle(&s_task_wt558d);
}
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
//>>>>>>>>>>>>>>>>>>>>>记录task
struct _s_task_4ChuShengRiQi_
{
TS_task task;
unsigned char pic_id;//画面ID
};
extern struct _s_task_4ChuShengRiQi_ s_task_4ChuShengRiQi_;
#define D_task_4ChuShengRiQi_init 0x10
#define D_task_4ChuShengRiQi_key 0x11
extern void L2_task_4ChuShengRiQi_handle(struct _s_task_4ChuShengRiQi_ *s);
void L2_task_4ChuShengRiQi_handle(struct _s_task_4ChuShengRiQi_ *s)
{
switch(s->task.sh)
{
case D_task_4ChuShengRiQi_init://
s->pic_id= 0;
break;
case D_task_4ChuShengRiQi_key :
if(1 == s_task_keyx1.down )
{
s_task_keyx1.down = 0;
if(D_keyx_left == s_task_keyx1.key_value)
{}
}else if(1 == s_task_keyx_4.down)
{
s_task_keyx_4.down = 0;
}
else {}
//L2_task_go_son(D_task_4ChuShengRiQi_play,D_task_4ChuShengRiQi_cuimian1);
break;
L0_task_delay();
}
}
//<<<<<<<<<<<<<<<<<<<记录task
/////<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<供演示task 结构的使用 不可删除<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
#endif