Gast
#411152
hallo,
ich schaff es einfach nicht das Senden mit Uart zum laufen zu bringen.
Es gab ein Testprogramm des Boardherstellers, welches ich aber nicht
einsehen kann. Das funktioniert, also muss es an meinem C-Code liegen.
Mit meinem Code werden zwar zahlen übertragen, aber bei sämtlichen
anderen Zeichen kommen bei mir nur Punkte ("......")an.
Was kann ich besser machen an dem Code hier?
Danke für jede Hilfe!!
#define F_CPU 3686400 // Taktferquenz des myAVR-Boards
#include <avr\io.h> // AVR Register und Konstantendefinitionen
#define UART_BAUD_RATE 9600 // 9600 BAUD
#define USARTSPEED F_CPU/(UART_BAUD_RATE*16L)-1
#define LOW(x) ((x) & 0xFF)
#define HIGH(x) (((x) >> 8) & 0xFF)
//----------------------------------------------------------------------
void UART_senden()
{
while ((UCSRA & (1<<UDRE))) /*warten bis senden möglich */
UDR = 'a';
}
void init_UART ()
{
UBRRH= HIGH(USARTSPEED);
UBRRL= LOW(USARTSPEED);
UCSRB = (1<<RXEN)|(1<<TXEN);
UCSRC|=(1<<URSEL)|(3<<UCSZ0);
}
main ()
{
init_UART();
do
{
// Schleifenanfang Mainloop
UART_senden();
}
while (true); // Schleifenende Mainloop
}