test3.c


1
#include <stdio.h>
2
#include <stdlib.h>
3
#include <string.h>
4
#include <math.h>
5
6
char uart_string[]="G01 X69.204775 Y23.337389 Z-0.100000 G01 X80.964849 Y21.666507 Z-0.100000 G00 Z0.100000";
7
8
    float  coord[10][3];
9
10
    int number_of_coord = -1;
11
12
void readcoord(void)
13
{
14
15
16
    while (1)
17
    {
18
        switch (uart_char)  // UART direkt lesen
19
        {
20
            case 'G':
21
                number_of_coord++;
22
                break;
23
24
            case 'X':
25
                 coord[number_of_coord][0]=atof(px);
26
                break;
27
28
            case 'Y':
29
                 coord[number_of_coord][1]=atof(px);
30
                break;
31
        
32
            case 'Z':
33
                 coord[number_of_coord][2]=atof(px);
34
                break;
35
36
      case 0: // Abbruchbedingung 1 NULL-CHAR
37
        return;
38
39
      case '(': // Abbruchbedingung 2
40
        return;
41
42
            default:
43
                break;
44
        }
45
    }
46
}
47
48
49
int main(void)
50
{
51
52
    px=uart_string;
53
54
    memset( coord,0,sizeof( coord));
55
56
  readcoord();
57
58
    for (number_of_coord=0;number_of_coord<10;number_of_coord++)
59
    {
60
        printf("%d\tx=%f\t\ty=%f\t\tz=%f\r\n",number_of_coord, coord[number_of_coord][0], coord[number_of_coord][1], coord[number_of_coord][2]);
61
    }
62
}