void receivedHandler(void) { /* This function needs to signal to the communication task that the last command was received and completed. We will do this using a semaphore. */ YKSemPost(CommSem); }
void TaskWord(void) { while (1) { YKSemPend(WSemPtr); printString("Hey"); YKSemPost(PSemPtr); YKSemPend(WSemPtr); printString("it"); YKSemPost(SSemPtr); YKSemPend(WSemPtr); printString("works"); YKSemPost(PSemPtr); } }
void TaskSpace(void) { while (1) { YKSemPend(SSemPtr); printChar(' '); YKSemPost(WSemPtr); } }
void TaskPunc(void) { while (1) { YKSemPend(PSemPtr); printChar('"'); YKSemPost(WSemPtr); YKSemPend(PSemPtr); printChar(','); YKSemPost(SSemPtr); YKSemPend(PSemPtr); printString("!\"\r\n"); YKSemPost(PSemPtr); YKDelayTask(6); } }
int YKQPost(YKQ *queue, void *msg){ //check if head == index if(queue->head == queue->tail){ // full //YKSemPost(queue->sem); return 0; }else{ //not full if(queue->head == -1) // empty queue->head = queue->tail; queue->queue[queue->tail++] = msg; if(queue->tail == queue->length) queue->tail = 0; YKSemPost(queue->sem); return 1; } }
void handleRC(){ /* Received Command */ /* Releases semaphore */ YKSemPost(RCSem); }
void recievedHandler(void) { YKEnterMutex(); YKSemPost(MoveSemPtr); YKEnterMutex(); }