if line number 55 is omitted the program runs. But why?

Committer:
harsha
Date:
Wed Jan 11 05:12:37 2012 +0000
Revision:
0:e1853421807f
mbos with fprintf

Who changed what in which revision?

UserRevisionLine numberNew contents of line
harsha 0:e1853421807f 1 // mbos Blinky demonstration.
harsha 0:e1853421807f 2 // Task 1 toggles LED1 every second, under control of a timer. It then posts an event to
harsha 0:e1853421807f 3 // task 2 which flashed LED2 briefly.
harsha 0:e1853421807f 4 #include "mbed.h"
harsha 0:e1853421807f 5 #include "mbos.h"
harsha 0:e1853421807f 6
harsha 0:e1853421807f 7 #define TASK1_ID 1 // Id for task 1 (idle task is 0)
harsha 0:e1853421807f 8 #define TASK1_PRIO 95 // priority for task 1
harsha 0:e1853421807f 9 #define TASK1_STACK_SZ 64 // stack size for task 1 in words
harsha 0:e1853421807f 10 #define TASK2_ID 2 // Id for task 2
harsha 0:e1853421807f 11 #define TASK2_PRIO 65 // priority for task 2
harsha 0:e1853421807f 12 #define TASK2_STACK_SZ 64 // stack size for task 2 in words
harsha 0:e1853421807f 13 #define TIMER0_ID 0 // Id for timer 0
harsha 0:e1853421807f 14 #define TIMER0_PERIOD 1000 // Time period in milliseconds
harsha 0:e1853421807f 15 #define TIMER0_EVENT 1 // Event flag (1 << 0)
harsha 0:e1853421807f 16 #define T1_TO_T2_EVENT 2 // Event flag (1 << 1)
harsha 0:e1853421807f 17
harsha 0:e1853421807f 18 LocalFileSystem local("local");
harsha 0:e1853421807f 19 FILE *fp ;
harsha 0:e1853421807f 20 void task1(void); // task function prototypes
harsha 0:e1853421807f 21 void task2(void);
harsha 0:e1853421807f 22
harsha 0:e1853421807f 23 DigitalOut led1(LED1);
harsha 0:e1853421807f 24 DigitalOut led2(LED2);
harsha 0:e1853421807f 25 mbos os(2, 1); // Instantiate mbos with 2 tasks & 1 timer
harsha 0:e1853421807f 26 int i=0;
harsha 0:e1853421807f 27 int main(void)
harsha 0:e1853421807f 28 {
harsha 0:e1853421807f 29 FILE *fp = fopen("/local/out.txt", "w");
harsha 0:e1853421807f 30 // Configure tasks and timers
harsha 0:e1853421807f 31 os.CreateTask(TASK1_ID, TASK1_PRIO, TASK1_STACK_SZ, task1);
harsha 0:e1853421807f 32 os.CreateTask(TASK2_ID, TASK2_PRIO, TASK2_STACK_SZ, task2);
harsha 0:e1853421807f 33 os.CreateTimer(TIMER0_ID, TIMER0_EVENT, TASK1_ID);
harsha 0:e1853421807f 34 // Start mbos
harsha 0:e1853421807f 35 os.Start();
harsha 0:e1853421807f 36 // never return!
harsha 0:e1853421807f 37 }
harsha 0:e1853421807f 38
harsha 0:e1853421807f 39 void task1(void)
harsha 0:e1853421807f 40 {
harsha 0:e1853421807f 41 os.SetTimer(TIMER0_ID, TIMER0_PERIOD, TIMER0_PERIOD);
harsha 0:e1853421807f 42 while(i<15){
harsha 0:e1853421807f 43 os.WaitEvent(TIMER0_EVENT);
harsha 0:e1853421807f 44 led1 = !led1;
harsha 0:e1853421807f 45 i++;
harsha 0:e1853421807f 46
harsha 0:e1853421807f 47 }
harsha 0:e1853421807f 48 }
harsha 0:e1853421807f 49
harsha 0:e1853421807f 50 void task2(void)
harsha 0:e1853421807f 51 {
harsha 0:e1853421807f 52 while(i<15){
harsha 0:e1853421807f 53
harsha 0:e1853421807f 54 led2 = !led2;
harsha 0:e1853421807f 55 fprintf(fp, "Hello World!");
harsha 0:e1853421807f 56
harsha 0:e1853421807f 57 wait_ms(100);
harsha 0:e1853421807f 58
harsha 0:e1853421807f 59 }
harsha 0:e1853421807f 60 fclose(fp);
harsha 0:e1853421807f 61 }