Gast
#1992225
Hallo,
ich arbeite noch nicht sehr lange mit meinem mrc board, ich habe aber
ein programm geschrieben, sodass ich über ein terminal programm Zeichen
zu meinem board schiken kann und diese werden mir als acsii code auf dem
board angezeigt. das ganze passiert über die serielle schnittstelle.
hier mal der code:
#include <avr/io.h>
#include <util/delay.h>
int x = 65;
void usart1_init(unsigned long baudrate) // Initialize USART0
{
UBRR1H = 0;
UBRR1L = 0x10; // set baud rate UBRRN sei 12 für 8 MHZ und 38400
UCSR1B = (1<<RXEN) | (1<<TXEN); // enable receiver and transmitter
UCSR1C = 0x06;// 8 Datenbit 1 Stoppbit no parity
}
void usart1_tx (char data) // transmit byte via usart0
{
while (!(UCSR1A & (1 << UDRE1))); // wait for empty transmit buffer
UDR1 = data; // put data to buffer = send data
}
void uart1_send(unsigned char *buf, unsigned int size) // sendet
Daten über UART
{
for(int i=0; i<=size;i++)
{
while ( !(UCSR1A &(1<<UDRE1))); /* warten bis Senden moeglich
*/
{
}
UDR1 = buf[i];
}
}
void main()
{
DDRA = 0xFF;
usart1_init(16);
while(1)
{
unsigned char buffer;
// Warten bis Daten empfangen wurden
while ( !(UCSR1A & (1<<RXC)) )
;
// Empfangsregister auslesen
buffer = UDR1;
PORTA= buffer;
/* PORTA = 0x01;
_delay_ms(3000);
PORTA = 0x00;
_delay_ms(3000);
*/
}
}
ich will jetzt nurnoch das das borad nicht nur empfangen sondern auch
senden kann, und das will eifach nicht klappen. ich hab jetzt
stundenlang seiten durchsucht, und ihr seid meine letzte hoffnung^^
ich bedanke mich schonmal im vorraus für die hilfe :-)
lg
koshiro