Hallo kann mir jemand sagen wie ich mit den Quelltexten das im C
Tutorial unter "Der UART" stehen eine Zeichenkette von: 00010000
00100000 00110000 01000000 und so weiter senden kann, es sollen
insgesamt 14 stück gesendet werden, mit einer rate von 2400
Ich habe den Quelltext füt den atmega16 in mein 16er geladen aber es
geht nicht. Der Quelltext aus UART initialisieren hat denke ich
funktioniert bin mir aber nicht sicher, jetzt muss ich noch Schreiben
einer Zeichenkette (String) einfügen, was ich auch schon versucht habe
aber ich bekomme kein ausgangssignal.
Kann mir "bitte bitte bitte" jemand den Quelltext so zusammenstellen,
das ich 14 Byte mit einer Übertragungsrate von 2400 bound und einem
Stopbit für den atmega 16, senden kann.
1 | /* USART-Init beim ATmega16 */
|
2 |
|
3 | int main(void)
|
4 | {
|
5 | UCSRB |= (1<<TXEN); // UART TX einschalten
|
6 | UCSRC |= (1<<URSEL)|(3<<UCSZ0); // Asynchron 8N1
|
7 |
|
8 | UBRRH = UBRR_VAL >> 8;
|
9 | UBRRL = UBRR_VAL & 0xFF;
|
10 | }
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
|
18 | / bei neueren AVRs andere Bezeichnung fuer die Statusregister, hier ATmega16:
|
19 | int uart_putc(unsigned char c)
|
20 | {
|
21 | while (!(UCSRA & (1<<UDRE))) /* warten bis Senden moeglich */
|
22 | {
|
23 | }
|
24 |
|
25 | UDR = c; /* sende Zeichen */
|
26 | return 0;
|
27 | }
|