0% found this document useful (0 votes)
50 views11 pages

RTOS Project Report

This document summarizes a project on a real-time operating system based washing machine. The washing machine will have different programs that users can select. The real-time OS will manage the tasks of the wash cycle, including filling the drum with water, the spin cycle, and an optional drying cycle. It will use the Keil μVision μcos-II real-time kernel and have tasks for starting, stopping, and running programs. The code defines tasks for washing, drying, starting, and stopping and uses mailboxes to communicate between tasks.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
50 views11 pages

RTOS Project Report

This document summarizes a project on a real-time operating system based washing machine. The washing machine will have different programs that users can select. The real-time OS will manage the tasks of the wash cycle, including filling the drum with water, the spin cycle, and an optional drying cycle. It will use the Keil μVision μcos-II real-time kernel and have tasks for starting, stopping, and running programs. The code defines tasks for washing, drying, starting, and stopping and uses mailboxes to communicate between tasks.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 11

WALCHAND COLLAGE OF ENGINEERING SANGLI

A Synopsis on

Real time operating based washing machine


SUBMITTED BY

Pranali Pramod Vasudev

Vaishali Gorakh Waghmode

Under the guidance of

Mrs. Meghana Khare

Department of Electronics Engineering,

Year 2021-22
INDEX

SR No. Contents Page No


1 Introduction 1

2 Software used 2
3 Code 3
4 Output 5
5 Conclusion 6
INTRODUCTION

In the wash machine the system knows of different programs that are
available, once a program is selected then the real-time operating
system will start and tell the user how much time is left on the machine,
but the user can add a drying cycle onto the normal wash. The real-time
operating system will have to be able to switch between each task of the
wash, and that goes from water into the drum then the spin cycle and
then the drying cycle. Once all the tasks are done on the application of
the cycle it will release the door for the user to retrieve the cloths from
the machine.
TASKS :
1) Start :
In the start task our machine will start working for selected
program .here we receive message from the program to start selected
task
2) Stop
In the stop task our machine will stop either after completing
the task or after the interrupt will occur .

3) Program
For our project we have defined programs for execution i.e.,
Dry When we select dry option on machine in the program .it will dry
cloths and send message to start that dry is running

Wash - In wash program machine will wash , rinse , spin the cloths
without any time limit . means according to our compatibility we can stop
the machine .
Flow diagram:

Software used:

For this project execution we have used keil µVision µcos-II .


It is a priority-based real-time multitasking operating system kernel for
microprocessors, written mainly in the C programming language. It
is intended for use in embedded systems. It is Highly portable , Very
scalable , Preemptive real time , deterministic kernel . It can manage up
to 64 tasks(56 user tasks available ) .
µcos-II Environment :

Output
CONCLUSION:
By using such software we build the real time based embedded
system ,so here we have successfully completed our project in keil
µVision µcos-II .which gives output for two task that is drying and
washing
CODE:
#include "config.h"
#include "stdlib.h"
#include <stdio.h>

#define TaskStkLengh 64 //Define the Task0


stack length

OS_STK programStack [TaskStkLengh]; //Define the Task


stack
OS_STK startStack [TaskStkLengh]; //Define the Task stack
OS_STK stopStk[TaskStkLengh];

void program(void *pdata);


void start(void *pdata);
void stop(void *pdata);

OS_EVENT *MyMailBox; // mail box


OS_EVENT *MyMailBox2;
uint8 err;

// Required for semnding time to serial port


char buffer[25];

int main (void)


{
LED_init();
//UART1_Init();
UART0_Init();
TargetInit();
OSInit ();
MyMailBox = OSMboxCreate((void*)0); // create mail box with no
message
MyMailBox2 = OSMboxCreate((void*)0);
OSTaskCreate (stop,(void *)0, &stopStk[TaskStkLengh - 1], 6);
OSTaskCreate (program,(void *)0, &programStack[TaskStkLengh
- 1], 7);
OSTaskCreate (start,(void *)0, &startStack[TaskStkLengh - 1], 8);

OSStart();
return 0;

void program(void *pdata)


{
unsigned int c,d;
pdata = pdata; /* Dummy data
*/
while(1)
{
c = 10;
OSMboxPost(MyMailBox, &c);
OSTimeDlyHMSM(0,0,6,0);
d=20;
OSMboxPost(MyMailBox2, &d);
OSTimeDlyHMSM(0,0,6,0);
UART0_SendData("Data Sent!!\n");
//OSTimeDly(5);
}
}

void start(void *pdata)


{
unsigned int* ptr;
unsigned int* cmd;
int i;
unsigned int b, d;
pdata = pdata; /* Dummy data
*/

while(1)
{
ptr = OSMboxPend(MyMailBox, 0, &err);
b=*ptr;
if(b==10){UART0_SendData("Wash Runnig!\n");}
cmd=OSMboxPend(MyMailBox2, 0, &err);
d=*cmd;
if(d==20){UART0_SendData("DRY Running\n");}
}
}

void stop(void *pdata){


OSTimeDlyHMSM(0,0,12,0);
OSTaskDel(7);
OSTaskDel(8);
UART0_SendData("All Task Stopped!!");
}

You might also like