Mein Ziel ist es mit einem Visual C# Programm durch ReadLine() immer nur
eine Zeile auszulesen, und ich würde gerne haben, dass es so aussieht:
55 65 79
12 39 48
12 65 79
...
...
(diese Daten stehen jetzt so in einer richtextbox zB)
damit ich dann via Stringmanipulation die einzelnen Werte zerlegen kann
und dann weiterverarbeiten.
Dazu habe ich ein Programm geschrieben, das Daten vom uC (Atmega16) an
den PC via Serieller Schnittstelle sendet.
1 | #include <avr/io.h>
|
2 | #include <stdint.h>
|
3 | #include <stdlib.h>
|
4 | #include <util/delay.h>
|
5 |
|
6 | #define UART_BAUD_RATE 9600 //UART Baudrate
|
7 | #define BufferMAX 100
|
8 |
|
9 | //Headerfiles+Subroutines---------------------------------------------
|
10 | #include "uart.h"
|
11 | //--------------------------------------------------------------------
|
12 |
|
13 | //Global deklarierte Variablen----------------------------------------
|
14 | char buffer[BufferMAX] = { 0 };
|
15 | unsigned int i = 0; //Zählervariable
|
16 |
|
17 |
|
18 | int main(void)
|
19 | {
|
20 | //Deklarierte Variablen im RAM:
|
21 | int Zahl = 0;
|
22 |
|
23 | //UART_Init:
|
24 | uart_init(UART_BAUD_SELECT(UART_BAUD_RATE, F_CPU));
|
25 |
|
26 | //Main-Loop:*********************************************************************
|
27 | while(1)
|
28 | {
|
29 | i++; //Zählervar
|
30 |
|
31 | itoa(Zahl, buffer, 10);
|
32 | uart_puts(buffer); //Zahl ausgeben
|
33 |
|
34 | if(i == 3)
|
35 | {
|
36 | uart_puts("\n"); //Neue Zeile
|
37 | i = 0; //Wieder drei Zahlen mit einem Abstang getrennt senden
|
38 | }
|
39 | else
|
40 | {
|
41 | uart_puts(" "); //Abstand
|
42 | }
|
43 |
|
44 | Zahl++; //Zahl-variabel
|
45 |
|
46 | _delay_ms(500);
|
47 | }
|
48 | //back***************************************************************************
|
49 | return 0;
|
50 | }
|
Meine Frage jetzt da ich heute nicht mehr ins Labor kann ob so
tatsächlich die Daten ankommen würden.
lg andy