Danke _R2D2 für den Hinweis, nur bereitet mir nicht der Anschluss die Probleme, ich besitze, wie oben beschrieben ein myAVR MK2 lernboard mit fertigem USB Adapter, und Daten kann ich über die Entwicklungsumgebungs senden, mein Problem nach langem Lesen und ausprobieren ist nun, dass eine Kontrolllampe auf dem Board sagt, dass Daten empfangen wurden, das kriegt das Programm aber iwie nich mit -.-, hier mal der code, fals es jemanden weiter bringt. Ich bin über jede Hilfe dankbar.
zum Code: Wenn Daten empfangen wurden sollte der Interrupt ausgelöst werden und die Lampe ausgehn, tut sie aber nich-.-.
Code:
#define F_CPU 3686400 // Taktfrequenz des myAVR-Boards
#define FOSC 1843200// Clock Speed
#define BAUD 9600
#define MYUBRR FOSC/16/BAUD-1
#include <avr\io.h> // AVR Register und Konstantendefinitionen
#include <avr/interrupt.h>
#include <avr/iom8.h>
void USART_Init(unsigned int);
unsigned char USART_Receive( void );
main ()
{
cli(); //Global Interrupts deaktivieren
DDRB=0xFF; //PORTB als Schreibport definieren
DDRC=0xFF; //PORTC als Schreibport definieren
DDRD=0xFF; //PORTD lowbytes=Leseports & highbytes=Schreibeports
PORTD=0x80;
PORTB=0xFF;
USART_Init ( MYUBRR );
sei(); //Global Interrupts aktivieren
while(1)
{
USART_Receive();
PORTB=0x00;
}
}
void USART_Init( unsigned int ubrr)
{
/* Set baud rate */
UBRRH = (unsigned char)(ubrr>>8);
UBRRL = (unsigned char)ubrr;
/* Enable receiver and transmitter */
UCSRB = (1<<RXEN);//|(1<<TXEN);
/* Set frame format: 8data, 2stop bit */
UCSRC = (1<<USBS)|(3<<UCSZ0);
}
ISR(USART_RXC_vect)
{
PORTB=0x00;
}
ISR(USART_TXC_vect)
{
PORTB=0x00;
}
unsigned char USART_Receive( void )
{
/* Wait for data to be received */
while ( !(UCSRA & (1<<RXC)) )
;
/* Get and return received data from buffer */
return UDR;
}
der Code ist so übrigens aus dem Datenblatt, die sfr sind also richtig.
Lesezeichen