Umut Aradağ / Mbed 2 deprecated Semaphores

Dependencies:   mbed

Committer:
umutaradag
Date:
Thu Aug 04 09:56:53 2011 +0000
Revision:
0:3b35413050ff
Child:
1:5c7d8d760ece

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
umutaradag 0:3b35413050ff 1 #include "mbed.h"
umutaradag 0:3b35413050ff 2 #include "semaphore.h"
umutaradag 0:3b35413050ff 3
umutaradag 0:3b35413050ff 4 Ticker printer1;
umutaradag 0:3b35413050ff 5 semaphore printSem;
umutaradag 0:3b35413050ff 6 DigitalOut led1(LED1);
umutaradag 0:3b35413050ff 7 DigitalOut led2(LED2);
umutaradag 0:3b35413050ff 8
umutaradag 0:3b35413050ff 9 volatile int sharedVariable;
umutaradag 0:3b35413050ff 10
umutaradag 0:3b35413050ff 11 #define SEM_ENABLE 1
umutaradag 0:3b35413050ff 12
umutaradag 0:3b35413050ff 13 void print1()
umutaradag 0:3b35413050ff 14 {
umutaradag 0:3b35413050ff 15 #if SEM_ENABLE==1
umutaradag 0:3b35413050ff 16 if(semPend(&printSem, 5) == SEM_ERR)
umutaradag 0:3b35413050ff 17 return;
umutaradag 0:3b35413050ff 18 #endif
umutaradag 0:3b35413050ff 19
umutaradag 0:3b35413050ff 20 sharedVariable++;
umutaradag 0:3b35413050ff 21
umutaradag 0:3b35413050ff 22 #if SEM_ENABLE==1
umutaradag 0:3b35413050ff 23 semPost(&printSem);
umutaradag 0:3b35413050ff 24 #endif
umutaradag 0:3b35413050ff 25 }
umutaradag 0:3b35413050ff 26
umutaradag 0:3b35413050ff 27 int main()
umutaradag 0:3b35413050ff 28 {
umutaradag 0:3b35413050ff 29 sharedVariable = 0;
umutaradag 0:3b35413050ff 30 semInit(&printSem, 1);
umutaradag 0:3b35413050ff 31 printer1.attach(&print1, 0.25);
umutaradag 0:3b35413050ff 32
umutaradag 0:3b35413050ff 33 while(1)
umutaradag 0:3b35413050ff 34 {
umutaradag 0:3b35413050ff 35 #if SEM_ENABLE==1
umutaradag 0:3b35413050ff 36 semPend(&printSem, 10000);
umutaradag 0:3b35413050ff 37 #endif
umutaradag 0:3b35413050ff 38
umutaradag 0:3b35413050ff 39 printf("\nfirst val = %d\n",sharedVariable);
umutaradag 0:3b35413050ff 40 sharedVariable++;
umutaradag 0:3b35413050ff 41 wait(1);
umutaradag 0:3b35413050ff 42 printf("second val = %d\n",sharedVariable);
umutaradag 0:3b35413050ff 43
umutaradag 0:3b35413050ff 44 #if SEM_ENABLE==1
umutaradag 0:3b35413050ff 45 semPost(&printSem);
umutaradag 0:3b35413050ff 46 #endif
umutaradag 0:3b35413050ff 47
umutaradag 0:3b35413050ff 48 wait(1);
umutaradag 0:3b35413050ff 49 }
umutaradag 0:3b35413050ff 50 }