C51 COMPILER V9.54 TTSS_TASK 09/06/2024 14:31:12 PAGE 1 C51 COMPILER V9.54, COMPILATION OF MODULE TTSS_TASK OBJECT MODULE PLACED IN ..\out\TTSS_task.obj COMPILER INVOKED BY: E:\KeilC51\C51\BIN\C51.EXE ..\source\ctask\TTSS_task.c LARGE OMF2 OPTIMIZE(0,SIZE) BROWSE ORDER NOI -NTPROMOTE INCDIR(..\source\bsp;..\source\msp;..\source\app;..\source\clib;..\source\cpu;..\source\ctask;..\source\tpc;.. -\source\asp;..\source\debug;..\source\msp\uart;..\source\msp\simiic;..\source\bsp\oled;..\source\bsp\TTSSbsp) DEBUG PRIN -T(..\out\TTSS_task.lst) TABS(2) OBJECT(..\out\TTSS_task.obj) line level source 1 /***************************************************** 2 *============================================================================ 3 * HISTORY 4 * Below this line, this part is controlled by TSTS. DO NOT MODIFY!! 5 伪时间片嵌入式平台(Task Step by Step Turn by Turn Structure,简称TSTS) 6 20220830_23642 CCmodify 优化了task handdle 7 ///cc 2023/04/08--12:13:47 TS_task_val_ tst_v;////TTSS常用的全局变量 8 9 *============================================================================ 10 ****************************************************************************/ 11 12 #include "TTSS_task.h" *** WARNING C320 IN LINE 51 OF ..\source\bsp\TTSSbsp\bsp_config.h: "MainFre_22M" 13 //任务命名规则: 14 // 1:第一层 15 /// 0驱动芯片级 flash 16 /// 1芯片应用级 save 17 /// 2任务应用级 jilu_save 18 // 19 // 2:第二层/flash/i2c/7290/等各类芯片 20 // 3:任务序号/不同的芯片/ 21 // 22 23 TS_task ts_task_init = 24 { 25 0L, ///vU32 n; 26 /// volatile UN_TYPE en; //关闭任务,也可以理解为暂停,但是使用idelay的地方时间在 -台计数任务在延时到了后才暂停,而的delay相当于暂停 27 0, ///volatile UN_TYPE sh; //当前任务段 28 0 ///volatile UN_TYPE sh_next; //下一个任务段,并不代表一定下一任务段一定是他,有可 -能中间插入延时等任务段 29 /// volatile UN_TYPE sh_pre; //前一个任务段,一般为调出缓存任务段使用 30 31 32 }; 33 ////L1_task_init 34 TS_task_val_ tst_v;////TTSS常用的全局变量 35 36 void L1_task_reg_clear(TS_task *s) 37 { 38 1 // s->en = 1; 39 1 // s->pfun = 0; 40 1 s->sh = 0; 41 1 s->sh_next= 0; 42 1 /// s->sh_pre= 0; 43 1 s->n= 0; 44 1 } 45 46 47 /////>>>>>>>>>>>>>>>>>>>>>>>>>>>>>供演示task 结构的使用 不可删除>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 48 #define D_task_test_01 0x20 49 #define D_task_test_02 0x22 C51 COMPILER V9.54 TTSS_TASK 09/06/2024 14:31:12 PAGE 2 50 #define D_task_test_03 0x23 51 52 #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 92 ////<<<<<<<<<<<<<<<<<<<<<_s_task_test_<<<<<<<<<<<<<<<<<<<<<< 93 94 95 96 //example : 97 #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; C51 COMPILER V9.54 TTSS_TASK 09/06/2024 14:31:12 PAGE 3 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--; C51 COMPILER V9.54 TTSS_TASK 09/06/2024 14:31:12 PAGE 4 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 C51 COMPILER V9.54 TTSS_TASK 09/06/2024 14:31:12 PAGE 5 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 281 282 MODULE INFORMATION: STATIC OVERLAYABLE CODE SIZE = 52 ---- CONSTANT SIZE = ---- ---- XDATA SIZE = 16 ---- PDATA SIZE = ---- ---- DATA SIZE = ---- ---- IDATA SIZE = ---- ---- BIT SIZE = ---- ---- EDATA SIZE = ---- ---- HDATA SIZE = ---- ---- XDATA CONST SIZE = ---- ---- FAR CONST SIZE = ---- ---- C51 COMPILER V9.54 TTSS_TASK 09/06/2024 14:31:12 PAGE 6 END OF MODULE INFORMATION. C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)