Skip to content
Snippets Groups Projects
Commit 9d04c6f7 authored by Tom Feng's avatar Tom Feng
Browse files

100 = 2^7 - 2^5 + 2^2

parent 34f346ba
Branches backup727
No related tags found
1 merge request!16Withtime
......@@ -203,17 +203,21 @@ void ClockClient4() {
}
void TimeDisplay() {
int Dsec,Sec,Minute,Hour;
int Sec,Minute,Hour;
int ClkId = WhoIs("ClockServer");
int TenTick = 0;
Sec = Minute = Hour = 0;
FOREVER{
Delay(ClkId,10);
TenTick++;
Dsec = TenTick % 10;
Sec = (TenTick / 10) % 60;
Minute = (TenTick / 600) % 60;
Hour = (TenTick / (10 * 3600)) % 24;
Printf(COM2,"%s%c[%d;%dH%d:%d:%d:%d%s",SAVE_CURSOR,ESC,9,14,Hour,Minute,Sec,Dsec,RESTORE_CURSOR);
Delay(ClkId,100);
Sec ++;
if(Sec>60){
Minute++;
Sec -= 60;
}
if(Minute>60){
Hour++;
Minute -= 60;
}
Printf(COM2,"%s%c[%d;%dH%d:%d:%d%s",SAVE_CURSOR,ESC,9,14,Hour,Minute,Sec,RESTORE_CURSOR);
//Printf(COM2,"%c[%d;%dH",ESC,9,14);
//Printf(COM2, "%c7%c[%d;%dH%d:%d:%d:%d%c8", ESC,ESC,9,14,Hour,Minute,Sec,Dsec,ESC);
//CURSOR(9,14);
......
......@@ -23,9 +23,10 @@ void IdleTask() {
if(LastTick != CurrentTick){
Accum++;
LastTick = CurrentTick;
Ten = Accum * 100 / CurrentTick;
mid = (Accum * 100) % CurrentTick;
Cen = (mid * 100) / CurrentTick;
// Accum * 100 = Accum*128 - Accum*32 + Accum*4
Ten = ((Accum << 7) - (Accum << 5) + (Accum << 2)) / CurrentTick;
mid = ((Accum << 7) - (Accum << 5) + (Accum << 2)) % CurrentTick;
Cen = ((mid << 7) - (mid<<5) + (mid << 2) ) / CurrentTick;
//Printf(COM2,"%s",SAVE_CURSOR);
//CURSOR(9,55);
//Printf(COM2,"%d.%d",Ten,Cen);
......
......@@ -140,11 +140,11 @@ void FirstUserTask() {
// COM2 IOServer
Args.arg0 = (void*) 2;
Args.arg0 = (void*) 1;
Args.arg1 = (void*) (&IServer2);
tid = Create(&Args);
Args.arg0 = (void*) 2;
Args.arg0 = (void*) 1;
Args.arg1 = (void*) (&OServer2);
tid = Create(&Args);
......@@ -156,12 +156,12 @@ void FirstUserTask() {
Args.arg1 = (void *)(&IdleTask);
tid = Create(&Args);
Args.arg0 = (void *) 1;
Args.arg0 = (void *) 0;
Args.arg1 = (void *) (&TermInNotifier);
tid = Create(&Args);
Args.arg0 = (void *) 1;
Args.arg0 = (void *) 0;
Args.arg1 = (void *) (&TermOutNotifier);
tid = Create(&Args);
// COM1 IO server
......@@ -185,13 +185,13 @@ void FirstUserTask() {
Pass();
Args.arg0 = (void *) 1;
Args.arg0 = (void *) 0;
Args.arg1 = (void *) (&TrainInNotifier);
tid = Create(&Args);
//Delay(clkid,1);
//bwprintf(COM2,"FUT: TinNotifier %d\n\r",tid);
Args.arg0 = (void *) 1;
Args.arg0 = (void *) 0;
Args.arg1 = (void *) (&TrainOutNotifier);
tid = Create(&Args);
//bwprintf(COM2,"FUT: TOut %d\n\r",tid);
......@@ -255,7 +255,7 @@ void FirstUserTask() {
// Pass();
Args.arg0 = (void *)3;
Args.arg0 = (void *)5;
Args.arg1 = (void *)(&TCServer);
tid = Create(&Args);
Delay(clkid,1);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment