Hallo zusammen! Ich möchte eine kommunikation zwischen microcontroller und Pc mit hyper terminal machen. Funktioniert irgendwie nicht.
1 | #include <asf.h> |
2 | #include <avr/io.h> |
3 | #define F_CPU 8000000UL
|
4 | #include <util/delay.h> |
5 | #include <stdio.h> |
6 | #include <interrupt.h> |
7 | #define Baud 19200UL
|
8 | #define UART_empty ((UCSRA&0x20)==0x20)
|
9 | |
10 | char string1[5] = {0}; |
11 | unsigned char speicher ; |
12 | unsigned char start; |
13 | void senden(char* Text); |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | int main (void) |
20 | {
|
21 | |
22 | DDRB |= 0xff; |
23 | DDRA |= 0x00; |
24 | UBRRH |= 0; |
25 | UBRRL |= 25; |
26 | UCSRB |= (1<<TXEN) | (1<<RXEN); |
27 | UCSRC |= (1<<URSEL) | (1<< UCSZ1) | (1<<UCSZ0); |
28 | |
29 | void senden (string1); |
30 | |
31 | while(1) |
32 | {
|
33 | if (start ==1) |
34 | {
|
35 | start = 0; |
36 | void senden (string1); |
37 | }
|
38 | |
39 | }
|
40 | }
|
41 | |
42 | void senden (char* Text) |
43 | {
|
44 | unsigned int i = 0; |
45 | while(Text[i] != '\0') |
46 | |
47 | if (UART_empty) |
48 | {
|
49 | UDR = (int)Text[i]; |
50 | i++; |
51 | }
|
52 | }
|
53 | |
54 | ISR(USART_RXC_vect) |
55 | {
|
56 | speicher = UDR; |
57 | start = 1; |
58 | switch(speicher) |
59 | {
|
60 | case '1' : |
61 | {
|
62 | string1[0] = 'H'; |
63 | string1[1] = 'A'; |
64 | string1[2] = 'L'; |
65 | string1[3] = 'L'; |
66 | string1[4] = 'O'; |
67 | string1[5] = '\0'; |
68 | |
69 | break; |
70 | }
|
71 | }
|
72 | }
|
Was mache ich falsch ?! Ich bedanke mich im voraus. Mfg Daniel