]>
git.gir.st - tmk_keyboard.git/blob - tmk_core/tool/mbed/mbed-sdk/libraries/tests/rtos/cmsis/mail/main.cpp
5 float voltage
; /* AD result of measured voltage */
6 float current
; /* AD result of measured current */
7 uint32_t counter
; /* A counter value */
10 osMailQDef(mail_box
, 16, mail_t
);
13 void send_thread (void const *argument
) {
16 i
++; // fake data update
17 mail_t
*mail
= (mail_t
*)osMailAlloc(mail_box
, osWaitForever
);
18 mail
->voltage
= (i
* 0.1) * 33;
19 mail
->current
= (i
* 0.1) * 11;
21 osMailPut(mail_box
, mail
);
26 osThreadDef(send_thread
, osPriorityNormal
, DEFAULT_STACK_SIZE
);
29 mail_box
= osMailCreate(osMailQ(mail_box
), NULL
);
30 osThreadCreate(osThread(send_thread
), NULL
);
33 osEvent evt
= osMailGet(mail_box
, osWaitForever
);
34 if (evt
.status
== osEventMail
) {
35 mail_t
*mail
= (mail_t
*)evt
.value
.p
;
36 printf("\nVoltage: %.2f V\n\r" , mail
->voltage
);
37 printf("Current: %.2f A\n\r" , mail
->current
);
38 printf("Number of cycles: %u\n\r", mail
->counter
);
40 osMailFree(mail_box
, mail
);