hallo, ich nutze einen Atmega8, programmiere mit Amtel Studio6 und
möchte eine Kommunikation über RS232 zum PC. Als Terminal verwende ich
HTerm port com1,baud 9600, data 8, stop1, parity non.
am terminal kommt nix an, was mach ich falsch? danke fürs feedback!
1 | #include <avr/io.h>
|
2 | #include <stdio.h>
|
3 | #include <string.h>
|
4 | #include <util/delay.h>
|
5 | #include <avr/interrupt.h>
|
6 | #include <stdint.h>
|
7 | #include <inttypes.h>
|
8 |
|
9 |
|
10 | #define BAUD 9600
|
11 | #define MYUBRR F_CPU/16/BAUD -1 //#define F_CPU 4000000
|
12 |
|
13 |
|
14 | volatile char ReceivedChar;
|
15 | void sendletter(unsigned char);
|
16 |
|
17 | void sendletter(unsigned char letter)
|
18 | {
|
19 | while ( !(UCSRA & (1 << RXC)) )
|
20 | letter= UDR;
|
21 |
|
22 | while ( !( UCSRA & (1<<UDRE)) )
|
23 | UDR = letter;
|
24 | }
|
25 |
|
26 | void inituart()
|
27 | {
|
28 | UBRRH = (MYUBRR >> 8);
|
29 | UBRRL = MYUBRR;
|
30 | UCSRB = (1<<RXEN)|(1<<TXEN);
|
31 | UCSRC = (1<<URSEL)|(1<<USBS)|(1<<UCSZ0);
|
32 | }
|
33 |
|
34 | int main(void)
|
35 | {
|
36 |
|
37 | inituart();
|
38 |
|
39 | while(1==1)
|
40 | {
|
41 |
|
42 | sendletter('.');
|
43 |
|
44 |
|
45 | }
|
46 |
|
47 | return 0;
|
48 |
|
49 | }
|