Hallo liebe Gemeinede,
Ich hätte kurz ne Frage weil ich irgendwie auf dem Schlauch steh.
hab bei einem uC/OS-II zwei Task´s die über Mailboxen Daten schicken. In
Task1 wird mein double Wert erzeugt in einen String geschrieben und an
die Mailbox verschickt. In Task2 soll der Wert an ein LCD ausgegeben
werden bis hierhin kein Problem nur will ich jetzt noch den erzeugeten
Wert der in dem String steht Im Task2 weiter bearbeiten, wie kann ich
nun denn Wert in Task zwei aus dem String lösen und in double umwandeln?
1 | void Task1( void *pdata)
|
2 | {
|
3 |
|
4 | uint16_t temp;
|
5 | double dtemp;
|
6 | char adwert[80];
|
7 | INT8U err;
|
8 |
|
9 | while(1){
|
10 | OSTimeDlyHMSM(0,0,0,50);
|
11 | // temp = ADC_WERT(0); // MUX-Bits auf 0b0000 -> Channel 0
|
12 | // dtemp = (double)temp*100;
|
13 | // dtemp = dtemp+2;
|
14 | dtemp = 10;
|
15 | sprintf(adwert, "%d", dtemp);
|
16 | OSMboxPost(TxMbox, (void*) adwert);
|
17 | OSMboxPend(AckMbox, 0, &err);
|
18 | }
|
19 | }
|
20 |
|
21 |
|
22 | void TASK2( void *pdata)
|
23 | {
|
24 | char *rxmsg;
|
25 | char s[80];
|
26 | INT8U err;
|
27 | double tempw;
|
28 |
|
29 | while(1){
|
30 | OSTimeDlyHMSM(0,0,2,500);
|
31 | rxmsg = (char *)OSMboxPend(TxMbox, 0, &err);
|
32 | sprintf(s, "Mailbox = %s", rxmsg);
|
33 | LCDPrint(s);
|
34 | OSTimeDlyHMSM(0,0,0,500);
|
35 | OSMboxPost(AckMbox, (void*) 1); //benutze als Semaphore
|
36 |
|
37 | tempw=?????;
|
38 | }
|
39 | }
|
mfg
Jo