将TaskB和TaskC分成若干步,每步运行时间不超过10 ms(这个时间可视系统需求而定,例如TaskA若为40
ms内响应,则每步可扩至20
ms)。任务以3个Protothread的方式运行。首先执行TaskA,在TaskA执行完成1次后,释放执行权限,让TaskB和TaskC执行。
TaskB或TaskC在每执行1步之前检查运行时间,一旦发现30
ms内不够执行1步时,阻塞运行,让出执行权限给TaskA。同样,TaskB和TaskC的调度关系也类似,先运行TaskB,完成时释放执行权限,让
TaskC执行;TaskC在每执行1步之前检查运行时间,若发现200 ms内不够执行1步时,阻塞运行,让出执行权限重新交给TaskB。
任务 | 程序运行时刻 | 运行时长 | 30ms计数器 | 200ms计数器 |
Ta | 0.495 | 18.452 | 18 | 18 |
Tb1 | 19.097 | 9.856 | 28 | 10 |
Ta | 29.198 | 18.452 | 18 | 28 |
Tb2 | 47.732 | 9.856 | 28 | 39 |
Ta | 57.795 | 18.473 | 19 | 57 |
Tb3 | 76.356 | 9.856 | 29 | 67 |
Ta | 86.403 | 18.474 | 18 | 85 |
Tc1 | 105.037 | 9.856 | 28 | 95 |
Ta | 115.059 | 18.476 | 19 | 114 |
Tc2 | 133.681 | 9.834 | 28 | 123 |
Ta | 143.703 | 18.452 | 18 | 142 |
Tc3 | 162.303 | 9.856 | 28 | 152 |
Ta | 172.555 | 18.474 | 19 | 19 |
Tb1 | 191.108 | 9.834 | 28 | 28 |
Ta | 201.171 | 18.452 | 18 | 47 |
Tb2 | 219.705 | 9.856 | 28 | 57 |
Ta | 229.766 | 18.452 | 18 | 75 |
Tb3 | 248.305 | 9.856 | 28 | 85 |
Ta | 258.35 | 18.474 | 19 | 104 |
Tc4 | 277.006 | 9.856 | 29 | 114 |
Ta | 287.195 | 18.452 | 18 | 132 |
Tc1 | 305.795 | 9.856 | 28 | 142 |
Ta | 315.817 | 18.474 | 19 | 161 |
Tc2 | 334.439 | 9.834 | 28 | 170 |
Ta | 344.693 | 18.452 | 18 | 18 |
Tb1 | 363.224 | 9.856 | 28 | 28 |
Ta | 373.289 | 18.474 | 19 | 47 |
Tb2 | 391.845 | 9.834 | 28 | 56 |
Ta | 401.908 | 18.452 | 18 | 75 |
Tb3 | 420.447 | 9.856 | 28 | 85 |
Ta | 430.494 | 18.452 | 18 | 103 |
Tc3 | 449.128 | 9.856 | 28 | 113 |
Ta | 459.148 | 18.474 | 19 | 132 |
Tc4 | 477.77 | 9.856 | 29 | 142 |
用户377235 2014-6-5 11:13
看了您的简历~和freecode!大赞~
想问问~您在dwt上有很深理解,想问问sadwt肿么样?有没有实践过写成m文件呢
用户1370039 2011-8-4 21:17
tengjingshu_112148725 2009-9-18 11:40
用户1359682 2009-5-14 23:17
tengjingshu_112148725 2009-5-4 19:50