lolly

Dependencies:   mbed-rtos mbed

Fork of cdms_rtos_summer_lite by Pradeep Kotipalli

Committer:
pradeepvk2208
Date:
Wed Jun 10 09:25:02 2015 +0000
Revision:
2:5b3bd8bd753f
Parent:
1:d89391152298
green

Who changed what in which revision?

UserRevisionLine numberNew contents of line
pradeepvk2208 0:0e52cd8d26c8 1 #include "mbed.h"
pradeepvk2208 0:0e52cd8d26c8 2 #include "rtos.h"
pradeepvk2208 0:0e52cd8d26c8 3
pradeepvk2208 0:0e52cd8d26c8 4 Serial pc(USBTX, USBRX);
pradeepvk2208 0:0e52cd8d26c8 5
pradeepvk2208 0:0e52cd8d26c8 6
pradeepvk2208 0:0e52cd8d26c8 7 Thread *ptr_hk_bae;
pradeepvk2208 0:0e52cd8d26c8 8 Thread *ptr_hk_cdms;
pradeepvk2208 0:0e52cd8d26c8 9 Thread *ptr_hk_payload;
pradeepvk2208 0:0e52cd8d26c8 10
pradeepvk2208 2:5b3bd8bd753f 11 InterruptIn data_ready1(PTC3);
pradeepvk2208 2:5b3bd8bd753f 12
pradeepvk2208 2:5b3bd8bd753f 13
pradeepvk2208 0:0e52cd8d26c8 14 Timer t1;
pradeepvk2208 0:0e52cd8d26c8 15
pradeepvk2208 0:0e52cd8d26c8 16
pradeepvk2208 0:0e52cd8d26c8 17
pradeepvk2208 0:0e52cd8d26c8 18 void HK_BAE(void const *args)
pradeepvk2208 0:0e52cd8d26c8 19 {
pradeepvk2208 0:0e52cd8d26c8 20 while(1)
pradeepvk2208 0:0e52cd8d26c8 21 {
pradeepvk2208 0:0e52cd8d26c8 22 Thread::signal_wait(0x1);
pradeepvk2208 1:d89391152298 23 printf("Entered HK_BAE\n");
pradeepvk2208 0:0e52cd8d26c8 24 }
pradeepvk2208 0:0e52cd8d26c8 25 }
pradeepvk2208 2:5b3bd8bd753f 26
pradeepvk2208 2:5b3bd8bd753f 27 void FUNC_INIT_HK_PAYLOAD()
pradeepvk2208 2:5b3bd8bd753f 28 {
pradeepvk2208 2:5b3bd8bd753f 29
pradeepvk2208 2:5b3bd8bd753f 30 ptr_hk_payload -> signal_set(0x3);
pradeepvk2208 2:5b3bd8bd753f 31
pradeepvk2208 2:5b3bd8bd753f 32 }
pradeepvk2208 0:0e52cd8d26c8 33 void HK_CDMS(void const *args)
pradeepvk2208 0:0e52cd8d26c8 34 {
pradeepvk2208 0:0e52cd8d26c8 35 while(1)
pradeepvk2208 0:0e52cd8d26c8 36 {
pradeepvk2208 0:0e52cd8d26c8 37 Thread::signal_wait(0x2);
pradeepvk2208 1:d89391152298 38 printf("Entered HK_CDMS\n");
pradeepvk2208 2:5b3bd8bd753f 39
pradeepvk2208 0:0e52cd8d26c8 40 }
pradeepvk2208 0:0e52cd8d26c8 41 }
pradeepvk2208 0:0e52cd8d26c8 42 void HK_PAYLOAD(void const *args)
pradeepvk2208 0:0e52cd8d26c8 43 {
pradeepvk2208 0:0e52cd8d26c8 44 while(1)
pradeepvk2208 0:0e52cd8d26c8 45 {
pradeepvk2208 0:0e52cd8d26c8 46 Thread::signal_wait(0x3);
pradeepvk2208 1:d89391152298 47 printf("Entered HK_PAYLOAD\n");
pradeepvk2208 0:0e52cd8d26c8 48 }
pradeepvk2208 0:0e52cd8d26c8 49 }
pradeepvk2208 0:0e52cd8d26c8 50
pradeepvk2208 0:0e52cd8d26c8 51 uint16_t schedcount=1;
pradeepvk2208 0:0e52cd8d26c8 52
pradeepvk2208 0:0e52cd8d26c8 53 void T_SC(void const *args)
pradeepvk2208 0:0e52cd8d26c8 54 {
pradeepvk2208 0:0e52cd8d26c8 55
pradeepvk2208 0:0e52cd8d26c8 56 printf("The value of i in scheduler is %d\n",schedcount);
pradeepvk2208 0:0e52cd8d26c8 57 if(schedcount == 65532) //to reset the counter
pradeepvk2208 0:0e52cd8d26c8 58 {
pradeepvk2208 0:0e52cd8d26c8 59 schedcount = 0;
pradeepvk2208 0:0e52cd8d26c8 60 }
pradeepvk2208 0:0e52cd8d26c8 61
pradeepvk2208 0:0e52cd8d26c8 62 if(schedcount%20==0)
pradeepvk2208 0:0e52cd8d26c8 63 {
pradeepvk2208 0:0e52cd8d26c8 64 ptr_hk_bae -> signal_set(0x1);
pradeepvk2208 0:0e52cd8d26c8 65 ptr_hk_cdms -> signal_set(0x2);
pradeepvk2208 2:5b3bd8bd753f 66
pradeepvk2208 0:0e52cd8d26c8 67 }
pradeepvk2208 0:0e52cd8d26c8 68 schedcount++;
pradeepvk2208 0:0e52cd8d26c8 69 }
pradeepvk2208 0:0e52cd8d26c8 70
pradeepvk2208 0:0e52cd8d26c8 71
pradeepvk2208 0:0e52cd8d26c8 72 int main()
pradeepvk2208 0:0e52cd8d26c8 73 {
pradeepvk2208 0:0e52cd8d26c8 74 ptr_hk_bae = new Thread (HK_BAE);
pradeepvk2208 2:5b3bd8bd753f 75 data_ready1.rise(&FUNC_INIT_HK_PAYLOAD);
pradeepvk2208 2:5b3bd8bd753f 76
pradeepvk2208 0:0e52cd8d26c8 77 ptr_hk_cdms=new Thread (HK_CDMS);
pradeepvk2208 0:0e52cd8d26c8 78 ptr_hk_payload=new Thread (HK_PAYLOAD);
pradeepvk2208 0:0e52cd8d26c8 79
pradeepvk2208 0:0e52cd8d26c8 80 ptr_hk_bae->set_priority(osPriorityAboveNormal);
pradeepvk2208 2:5b3bd8bd753f 81 ptr_hk_cdms->set_priority(osPriorityNormal);
pradeepvk2208 2:5b3bd8bd753f 82 ptr_hk_payload->set_priority(osPriorityHigh);
pradeepvk2208 0:0e52cd8d26c8 83
pradeepvk2208 0:0e52cd8d26c8 84 printf("\n T_HK_BAE priority is %d",ptr_hk_bae->get_priority());
pradeepvk2208 0:0e52cd8d26c8 85 printf("\n T_HK_CDMS priority is %d",ptr_hk_cdms->get_priority());
pradeepvk2208 0:0e52cd8d26c8 86 printf("\n T_HK_PAYLOAD priority is %d",ptr_hk_payload->get_priority());
pradeepvk2208 0:0e52cd8d26c8 87
pradeepvk2208 0:0e52cd8d26c8 88 RtosTimer t_sc_timer(T_SC,osTimerPeriodic);
pradeepvk2208 0:0e52cd8d26c8 89 t_sc_timer.start(1000);
pradeepvk2208 0:0e52cd8d26c8 90
pradeepvk2208 1:d89391152298 91
pradeepvk2208 0:0e52cd8d26c8 92 while(1)
pradeepvk2208 0:0e52cd8d26c8 93 {
pradeepvk2208 0:0e52cd8d26c8 94 Thread::wait(5000);
pradeepvk2208 0:0e52cd8d26c8 95 }
pradeepvk2208 0:0e52cd8d26c8 96
pradeepvk2208 0:0e52cd8d26c8 97
pradeepvk2208 0:0e52cd8d26c8 98
pradeepvk2208 0:0e52cd8d26c8 99 }
pradeepvk2208 0:0e52cd8d26c8 100
pradeepvk2208 0:0e52cd8d26c8 101