Spurius
22.03.2005, 17:38
Hallo,
ich habe mich jetzt länger mit diversen Tutorials und dem Datenblatt des ATMega8 beschäftigt, und will ein Zeichen über USART an den PC senden, leider geht der Code nicht:
#include <avr/io.h>
void init_usart(void)
{
UCSRB |= (1<<RXEN) | (1<<TXEN);
UBRRL |= 0b01100111;
UCSRC |= (1<<URSEL);
UCSRC |= (1<<UCSZ1) | (1<<UCSZ0);
}
void main(void)
{
unsigned int i;
i = 0;
init_usart;
DDRB = 0xFF;
PORTB = 0b00000001; //Nur zur Kontrolle
do
{
while (!(UCSRA & (1<<UDRE))) {}
UDR = 'C';
} while (i != 0);
}
Einstellungen am Hyperterminal:
Parität: Keine
Baudrate: 9600
Stopbits: 1
Es kommt einfach nichts im Hyperterminal an, die Hardware geht, da Bascom-Basic Programme funktioneren.
Ich hoffe ihr könnt mir helfen
Gruß
Spurius
ich habe mich jetzt länger mit diversen Tutorials und dem Datenblatt des ATMega8 beschäftigt, und will ein Zeichen über USART an den PC senden, leider geht der Code nicht:
#include <avr/io.h>
void init_usart(void)
{
UCSRB |= (1<<RXEN) | (1<<TXEN);
UBRRL |= 0b01100111;
UCSRC |= (1<<URSEL);
UCSRC |= (1<<UCSZ1) | (1<<UCSZ0);
}
void main(void)
{
unsigned int i;
i = 0;
init_usart;
DDRB = 0xFF;
PORTB = 0b00000001; //Nur zur Kontrolle
do
{
while (!(UCSRA & (1<<UDRE))) {}
UDR = 'C';
} while (i != 0);
}
Einstellungen am Hyperterminal:
Parität: Keine
Baudrate: 9600
Stopbits: 1
Es kommt einfach nichts im Hyperterminal an, die Hardware geht, da Bascom-Basic Programme funktioneren.
Ich hoffe ihr könnt mir helfen
Gruß
Spurius