Umut Aradağ / Mbed 2 deprecated Semaphores

Dependencies:   mbed

Committer:
umutaradag
Date:
Thu Aug 04 09:58:58 2011 +0000
Revision:
1:5c7d8d760ece
Parent:
0:3b35413050ff
Child:
2:ac3746d21033

        

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 1:5c7d8d760ece 4 Ticker ticker;
umutaradag 0:3b35413050ff 5 semaphore printSem;
umutaradag 0:3b35413050ff 6
umutaradag 0:3b35413050ff 7 volatile int sharedVariable;
umutaradag 0:3b35413050ff 8
umutaradag 0:3b35413050ff 9 #define SEM_ENABLE 1
umutaradag 0:3b35413050ff 10
umutaradag 1:5c7d8d760ece 11 void incrementer()
umutaradag 0:3b35413050ff 12 {
umutaradag 0:3b35413050ff 13 #if SEM_ENABLE==1
umutaradag 0:3b35413050ff 14 if(semPend(&printSem, 5) == SEM_ERR)
umutaradag 0:3b35413050ff 15 return;
umutaradag 0:3b35413050ff 16 #endif
umutaradag 0:3b35413050ff 17
umutaradag 0:3b35413050ff 18 sharedVariable++;
umutaradag 0:3b35413050ff 19
umutaradag 0:3b35413050ff 20 #if SEM_ENABLE==1
umutaradag 0:3b35413050ff 21 semPost(&printSem);
umutaradag 0:3b35413050ff 22 #endif
umutaradag 0:3b35413050ff 23 }
umutaradag 0:3b35413050ff 24
umutaradag 0:3b35413050ff 25 int main()
umutaradag 0:3b35413050ff 26 {
umutaradag 0:3b35413050ff 27 sharedVariable = 0;
umutaradag 0:3b35413050ff 28 semInit(&printSem, 1);
umutaradag 1:5c7d8d760ece 29 ticker.attach(&incrementer, 0.25);
umutaradag 0:3b35413050ff 30
umutaradag 0:3b35413050ff 31 while(1)
umutaradag 0:3b35413050ff 32 {
umutaradag 0:3b35413050ff 33 #if SEM_ENABLE==1
umutaradag 0:3b35413050ff 34 semPend(&printSem, 10000);
umutaradag 0:3b35413050ff 35 #endif
umutaradag 0:3b35413050ff 36
umutaradag 0:3b35413050ff 37 printf("\nfirst val = %d\n",sharedVariable);
umutaradag 0:3b35413050ff 38 sharedVariable++;
umutaradag 0:3b35413050ff 39 wait(1);
umutaradag 0:3b35413050ff 40 printf("second val = %d\n",sharedVariable);
umutaradag 0:3b35413050ff 41
umutaradag 0:3b35413050ff 42 #if SEM_ENABLE==1
umutaradag 0:3b35413050ff 43 semPost(&printSem);
umutaradag 0:3b35413050ff 44 #endif
umutaradag 0:3b35413050ff 45
umutaradag 0:3b35413050ff 46 wait(1);
umutaradag 0:3b35413050ff 47 }
umutaradag 0:3b35413050ff 48 }