源码:- void main0()
- {
- OS0.OS_init();
- 控制器.OS_init();
- 延时器.OS_init();
- 屏幕2004.OS_init();
- 功能.OS_init();
- 设置加.OS_init();
- 信息显示器.OS_init();
- 设置减.OS_init();
- 数据列表.OS_init();
- OS0.CreateDriver( (#addr 控制器.OS_run), 控制器.OS_time );
- OS0.CreateDriver( (#addr 延时器.OS_run), 延时器.OS_time );
- OS0.CreateDriver( (#addr 功能.OS_run), 功能.OS_time );
- OS0.CreateDriver( (#addr 设置加.OS_run), 设置加.OS_time );
- OS0.CreateDriver( (#addr 设置减.OS_run), 设置减.OS_time );
- OS0.CreateTask( #addr dispatch );
- OS_VarInit();
- OS0.Start();
- dispatch:
- forever {
- if( 控制器.OS_EventFlag.0(bit) == 1 ) {
- 控制器.OS_EventFlag.0(bit) = 0;
- if( 控制器_系统启动时_enable && x_控制器_0_ResCount == 0 ) {
- OS0.AppTCB[OS0.CurrentTaskIndex].e_res_count -> x_控制器_0_ResCount;
- OS0.CreateTask( #addr 控制器_系统启动时 ); OS0.Schedule();
- }
- }
- if( 控制器.OS_EventFlag.1(bit) == 1 ) {
- 控制器.OS_EventFlag.1(bit) = 0;
- if( 控制器_反复执行_enable && x_控制器_1_ResCount == 0 ) {
- OS0.AppTCB[OS0.CurrentTaskIndex].e_res_count -> x_控制器_1_ResCount;
- OS0.CreateTask( #addr 控制器_反复执行 ); OS0.Schedule();
- }
- }
- if( 功能.OS_EventFlag.0(bit) == 1 ) {
- 功能.OS_EventFlag.0(bit) = 0;
- if( 功能_按键按下时_enable && x_功能_0_ResCount == 0 ) {
- OS0.AppTCB[OS0.CurrentTaskIndex].e_res_count -> x_功能_0_ResCount;
- OS0.CreateTask( #addr 功能_按键按下时 ); OS0.Schedule();
- }
- }
- if( 设置加.OS_EventFlag.0(bit) == 1 ) {
- 设置加.OS_EventFlag.0(bit) = 0;
- if( 设置加_按键按下时_enable && x_设置加_0_ResCount == 0 ) {
- OS0.AppTCB[OS0.CurrentTaskIndex].e_res_count -> x_设置加_0_ResCount;
- OS0.CreateTask( #addr 设置加_按键按下时 ); OS0.Schedule();
- }
- }
- if( 设置减.OS_EventFlag.0(bit) == 1 ) {
- 设置减.OS_EventFlag.0(bit) = 0;
- if( 设置减_按键按下时_enable && x_设置减_0_ResCount == 0 ) {
- OS0.AppTCB[OS0.CurrentTaskIndex].e_res_count -> x_设置减_0_ResCount;
- OS0.CreateTask( #addr 设置减_按键按下时 ); OS0.Schedule();
- }
- }
- 控制器.OS_thread();
- 屏幕2004.OS_thread();
- OS0.Schedule();
- 控制器.OS_ClearWatchDog();
- }
- }
- void 控制器_系统启动时()
- {
- 控制器_反复执行_enable = false;
- 屏幕2004.清空();
- (月个位)=(1);
- (日个位)=(1);
- 信息显示器.在第_行第_列显示信息_((1),(1),("20"));
- 屏幕2004.第_行第_列显示字符_((1),(3),(年十位));
- 屏幕2004.第_行第_列显示字符_((1),(4),(年个位));
- 屏幕2004.第_行第_列显示字符_((1),(6),(月十位));
- 屏幕2004.第_行第_列显示字符_((1),(7),(月个位));
- 屏幕2004.第_行第_列显示字符_((1),(9),(日十位));
- 屏幕2004.第_行第_列显示字符_((1),(10),(日个位));
- 屏幕2004.第_行第_列显示字符_((2),(8),(秒个位));
- 屏幕2004.第_行第_列显示字符_((2),(7),(秒十位));
- 屏幕2004.第_行第_列显示字符_((2),(6),(':'));
- 屏幕2004.第_行第_列显示字符_((2),(5),(分钟个位));
- 屏幕2004.第_行第_列显示字符_((2),(4),(分钟十位));
- 屏幕2004.第_行第_列显示字符_((2),(3),(':'));
- 屏幕2004.第_行第_列显示字符_((2),(2),(小时个位));
- 屏幕2004.第_行第_列显示字符_((2),(1),(小时十位));
- (w)=(0);
- if( (w)==(0) ) {
- 信息显示器.在第_行第_列显示信息_((2),(10),(" SET"));
- }
- 数据列表.添加数据_((1));
- 数据列表.添加数据_((0));
- 数据列表.添加数据_((3));
- 数据列表.添加数据_((0));
- 数据列表.添加数据_((5));
- 数据列表.添加数据_((0));
- 数据列表.添加数据_((7));
- 数据列表.添加数据_((8));
- 数据列表.添加数据_((0));
- 数据列表.添加数据_((10));
- 数据列表.添加数据_((0));
- 数据列表.添加数据_((12));
- }
- void 加_次( int32 A )
- {
- if( (w)==(1) ) {
- (年)+(1);
- if( (年)>(99) ) {
- (年)=(0);
- }
- (年个位)=((年)%(10));
- (年十位)=((年)/(10));
- 屏幕2004.第_行第_列显示字符_((1),(4),(年个位));
- 屏幕2004.第_行第_列显示字符_((1),(3),(年十位));
- }
- if( (w)==(2) ) {
- (月)+(1);
- if( (月)>(12) ) {
- (月)=(1);
- }
- (月个位)=((月)%(10));
- (月十位)=((月)/(10));
- 屏幕2004.第_行第_列显示字符_((1),(7),(月个位));
- 屏幕2004.第_行第_列显示字符_((1),(6),(月十位));
- }
- if( (w)==(3) ) {
- (日)+(1);
- if( !((月)==(2)) ) {
- if( (月)==(数据列表.读取第_个数据((月))) ) {
- if( (日)>(31) ) {
- (日)=(1);
- }
- }
- else {
- if( (日)>(30) ) {
- (日)=(1);
- }
- }
- }
- else {
- if( (日)>(28) ) {
- (日)=(1);
- }
- }
- (日个位)=((日)%(10));
- (日十位)=((日)/(10));
- 屏幕2004.第_行第_列显示字符_((1),(10),(日个位));
- 屏幕2004.第_行第_列显示字符_((1),(9),(日十位));
- }
- if( (w)==(4) ) {
- (小时)+(1);
- if( (小时)>(23) ) {
- (小时)=(0);
- }
- (小时个位)=((小时)%(10));
- (小时十位)=((小时)/(10));
- 屏幕2004.第_行第_列显示字符_((2),(2),(小时个位));
- 屏幕2004.第_行第_列显示字符_((2),(1),(小时十位));
- }
- if( (w)==(5) ) {
- (分钟)+(1);
- if( (分钟)>(59) ) {
- (分钟)=(0);
- }
- (分钟个位)=((分钟)%(10));
- (分钟十位)=((分钟)/(10));
- 屏幕2004.第_行第_列显示字符_((2),(5),(分钟个位));
- 屏幕2004.第_行第_列显示字符_((2),(4),(分钟十位));
- }
- }
- void 功能_按键按下时()
- {
- (w)+(1);
- if( (w)==(1) ) {
- 信息显示器.在第_行第_列显示信息_((2),(10),(" Year"));
- }
- if( (w)==(2) ) {
- 信息显示器.在第_行第_列显示信息_((2),(10),(" Month"));
- }
- if( (w)==(3) ) {
- 信息显示器.在第_行第_列显示信息_((2),(10),(" Day "));
- }
- if( (w)==(4) ) {
- 信息显示器.在第_行第_列显示信息_((2),(10),(" Hour "));
- }
- if( (w)==(5) ) {
- 信息显示器.在第_行第_列显示信息_((2),(10),("Minute"));
- }
- if( (w)==(6) ) {
- (w)=(0);
- 设置加_按键按下时_enable = false;
- 设置减_按键按下时_enable = false;
- 控制器_反复执行_enable = true;
- 信息显示器.清空第_行((3));
- 信息显示器.在第_行第_列显示信息_((2),(10),(" Time "));
- (秒)=(0);
- }
- else {
- 设置加_按键按下时_enable = true;
- 设置减_按键按下时_enable = true;
- 控制器_反复执行_enable = false;
- }
- 延时器.延时_毫秒((200));
- }
- void 设置加_按键按下时()
- {
- forever {
- OS0.Schedule();
- 加_次((1));
- 延时器.延时_毫秒((200));
- if( 设置加.按键松开 ) {
- break;
- }
- }
- }
- void 减_次( int32 B )
- {
- if( (w)==(1) ) {
- (年)-(1);
- if( (年)<(1) ) {
- (年)=(99);
- }
- (年个位)=((年)%(10));
- (年十位)=((年)/(10));
- 屏幕2004.第_行第_列显示字符_((1),(4),(年个位));
- 屏幕2004.第_行第_列显示字符_((1),(3),(年十位));
- }
- if( (w)==(2) ) {
- (月)-(1);
- if( (月)<(1) ) {
- (月)=(12);
- }
- (月个位)=((月)%(10));
- (月十位)=((月)/(10));
- 屏幕2004.第_行第_列显示字符_((1),(7),(月个位));
- 屏幕2004.第_行第_列显示字符_((1),(6),(月十位));
- }
- if( (w)==(3) ) {
- (日)-(1);
- if( !((月)==(2)) ) {
- if( (月)==(数据列表.读取第_个数据((月))) ) {
- if( (日)<(1) ) {
- (日)=(31);
- }
- }
- else {
- if( (日)<(1) ) {
- (日)=(30);
- }
- }
- }
- else {
- if( (日)<(1) ) {
- (日)=(28);
- }
- }
- (日个位)=((日)%(10));
- (日十位)=((日)/(10));
- 屏幕2004.第_行第_列显示字符_((1),(10),(日个位));
- 屏幕2004.第_行第_列显示字符_((1),(9),(日十位));
- }
- if( (w)==(4) ) {
- (小时)-(1);
- if( (小时)<(0) ) {
- (小时)=(23);
- }
- (小时个位)=((小时)%(10));
- (小时十位)=((小时)/(10));
- 屏幕2004.第_行第_列显示字符_((2),(2),(小时个位));
- 屏幕2004.第_行第_列显示字符_((2),(1),(小时十位));
- }
- if( (w)==(5) ) {
- (分钟)-(1);
- if( (分钟)<(0) ) {
- (分钟)=(59);
- }
- (分钟个位)=((分钟)%(10));
- (分钟十位)=((分钟)/(10));
- 屏幕2004.第_行第_列显示字符_((2),(5),(分钟个位));
- 屏幕2004.第_行第_列显示字符_((2),(4),(分钟十位));
- }
- }
- void 设置减_按键按下时()
- {
- forever {
- OS0.Schedule();
- 减_次((1));
- 延时器.延时_毫秒((200));
- if( 设置减.按键松开 ) {
- break;
- }
- }
- }
- void 控制器_反复执行()
- {
- (秒)+(1);
- if( (月)==(0) ) {
- (月)=(1);
- }
- if( (日)==(0) ) {
- (日)=(1);
- }
- if( (秒)>(59) ) {
- (秒)=(0);
- (分钟)+(1);
- }
- if( (分钟)>(59) ) {
- (分钟)=(0);
- (小时)+(1);
- }
- if( (小时)>(23) ) {
- (小时)=(0);
- (日)+(1);
- }
- if( !((月)==(2)) ) {
- if( (月)==(数据列表.读取第_个数据((月))) ) {
- if( (日)>(31) ) {
- (日)=(1);
- (月)+(1);
- }
- }
- else {
- if( (日)>(30) ) {
- (日)=(1);
- (月)+(1);
- }
- }
- }
- else {
- if( (日)>(28) ) {
- (日)=(1);
- (月)+(1);
- }
- }
- if( (月)>(12) ) {
- (月)=(1);
- (年)+(1);
- }
- if( (小时)<(12) ) {
- 信息显示器.在第_行第_列显示信息_((1),(12),("AM"));
- }
- else {
- 信息显示器.在第_行第_列显示信息_((1),(12),("PM"));
- }
- (秒个位)=((秒)%(10));
- (秒十位)=((秒)/(10));
- (分钟个位)=((分钟)%(10));
- (分钟十位)=((分钟)/(10));
- (小时个位)=((小时)%(10));
- (小时十位)=((小时)/(10));
- (日个位)=((日)%(10));
- (日十位)=((日)/(10));
- (月个位)=((月)%(10));
- (月十位)=((月)/(10));
- (年个位)=((年)%(10));
- (年十位)=((年)/(10));
- 信息显示器.在第_行第_列显示信息_((1),(1),("20"));
- 屏幕2004.第_行第_列显示字符_((1),(3),(年十位));
- 屏幕2004.第_行第_列显示字符_((1),(4),(年个位));
- 屏幕2004.第_行第_列显示字符_((1),(6),(月十位));
- 屏幕2004.第_行第_列显示字符_((1),(7),(月个位));
- 屏幕2004.第_行第_列显示字符_((1),(9),(日十位));
- 屏幕2004.第_行第_列显示字符_((1),(10),(日个位));
- 屏幕2004.第_行第_列显示字符_((2),(8),(秒个位));
- 屏幕2004.第_行第_列显示字符_((2),(7),(秒十位));
- 屏幕2004.第_行第_列显示字符_((2),(5),(分钟个位));
- 屏幕2004.第_行第_列显示字符_((2),(4),(分钟十位));
- 屏幕2004.第_行第_列显示字符_((2),(2),(小时个位));
- 屏幕2004.第_行第_列显示字符_((2),(1),(小时十位));
- 屏幕2004.第_行第_列显示字符_((2),(6),(':'));
- 屏幕2004.第_行第_列显示字符_((2),(3),(':'));
- 延时器.延时_毫秒((500));
- 屏幕2004.第_行第_列显示字符_((2),(6),('无'));
- 屏幕2004.第_行第_列显示字符_((2),(3),('无'));
- 延时器.延时_毫秒((500));
- }
- int32 秒个位;
- int32 秒十位;
- int32 分钟个位;
- int32 分钟十位;
- int32 小时十位;
- int32 小时个位;
- int32 w;
- int32 秒;
- int32 分钟;
- int32 小时;
- int32 年;
- int32 年个位;
- int32 年十位;
- int32 月;
- int32 月个位;
- int32 月十位;
- int32 日;
- int32 日个位;
- int32 日十位;
- int32 D1;
- int32 D2;
- int32 D3;
- bool B1;
- bool B2;
- bool B3;
- uint8 x_控制器_0_ResCount;
- bool 控制器_系统启动时_enable;
- uint8 x_控制器_1_ResCount;
- bool 控制器_反复执行_enable;
- uint8 x_功能_0_ResCount;
- bool 功能_按键按下时_enable;
- uint8 x_设置加_0_ResCount;
- bool 设置加_按键按下时_enable;
- uint8 x_设置减_0_ResCount;
- bool 设置减_按键按下时_enable;
- void OS_VarInit()
- {
- 控制器_系统启动时_enable = true;
- 控制器_反复执行_enable = true;
- 功能_按键按下时_enable = true;
- 设置加_按键按下时_enable = true;
- 设置减_按键按下时_enable = true;
- }
复制代码
|