-
-
Hallo Jens und Besserwessi,
vielen Dank für eure Mühe. Es war mir eine große Hilfe. Dass mit den Bitoperatoren kenne ich auch, ich hatte nur den Code von einem anderen C-Skript genommen und gedacht, dass die Konstanten weitestgehend gleich sind. Naja, ich habe es verbessert. Doch zeigt das Terminal nur lauter komische Zeichen trotz korrekter Einstellung.
Mein verbesserter Code (ohne <?php und ?>):
main.c:
[php:1:535e303ed1]
#include <avr/io.h>
#include <util/delay.h>
#include "usart.h"
int main()
{
//USART konfigurieren
init_usart();
usart_write_crlf();
while(1){//USART-Ausgabe
usart_sendchar('H');
usart_sendchar('a');
usart_sendchar('l');
usart_sendchar('l');
usart_sendchar('o');
usart_write_crlf();
}
return(0);
}
[/php:1:535e303ed1]
usart.c:
[php:1:535e303ed1]
#include <avr/io.h>
#include <util/delay.h>
#include "usart.h"
void init_usart(){
//Eingabeparameter einstellen - Aktivierung
UBRR0H = (uint8_t) (UART_BAUD_CALC(UART_BAUD_RATE,16000000)>>
;
UBRR0L = (uint8_t) UART_BAUD_CALC(UART_BAUD_RATE,16000000);
UCSR0A = 0x00;
DDRD = 10;
//Senden aktivieren
//Empfangen aktivieren
UCSR0B = (1<<RXEN0)|(1<<TXEN0);
//Konfiguration der Bitlaenge
UCSR0C = (3<<UCSZ00); // 8-Bit character length
}
void usart_sendchar(uint8_t data){
while(!( UCSR0A & (1<<UDRE0)));//Warten bis UDR bereit ist
UDR0 = data;
}
void usart_write_crlf()
{
usart_sendchar(USART_CHAR_CR);
usart_sendchar(USART_CHAR_LF);
}
[/php:1:535e303ed1]
und zu guter letzt:
usart.h:
[php:1:535e303ed1]// Macros
#define UART_BAUD_RATE 38400L
#define UART_BAUD_CALC(UART_BAUD_RATE,F_CPU) ((F_CPU)/((UART_BAUD_RATE)*16L)-1L)
#define USART_CHAR_LF 10L
#define USART_CHAR_CR 13L
void init_usart();
void usart_sendchar(uint8_t data);
void usart_write_crlf();
[/php:1:535e303ed1]
Liegt es an den Fuses oder wodran kann der Fehler liegen?
(Laut Datenblatt müsste alles funktionieren!)
MfG Sebastian
PS: Ich komme auch aus Lippe (also doch Nachbar
)
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen