hallo, ich versuche über usart meinem pc einfach ein zeichen zu senden.
ich mache das mit dem stk500 (atmega8515) und über einen usb->rs232
adapter.
doch nichts passiert (ich benutze hterm) ;(
kabel von rxd /txd sind verlegt, baudraten sind beiderseits gleich
eingestellt (9600 asynchron 8N1)..
hier der code:
[c]
#define F_CPU 1000000UL
#define BAUD 9600
#include <avr/io.h>
#include <inttypes.h>
#include <avr/interrupt.h>
#include <util/setbaud.h>
#include <util/delay.h>
void init_USART ()
{
UCSRB |= (1<<RXEN) | (1<<TXEN); //send und recieve anschalten
UCSRC |= (1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0); //Asynchron 8N1
UBRRH |= UBRRH_VALUE; //Baudrate durch "setbaud.h" bestimmen
UBRRL |= UBRRL_VALUE;
}
void USART_Transmit( unsigned char data )
{
/* Wait for empty transmit buffer */
while ( !( UCSRA & (1<<UDRE)) )
;
/* Put data into buffer, sends the data */
UDR = data;
}
unsigned char USART_Receive( void )
{
/* Wait for data to be received */
while ( !(UCSRA & (1<<RXC)) )
;
/* Get and return received data from buffer */
return UDR;
}
void USART_Flush( void )
{
unsigned char dummy;
while ( UCSRA & (1<<RXC) ) dummy = UDR;
}
int main ()
{
init_USART();
USART_Flush();
unsigned char test = 'a';
while (1)
{
USART_Transmit (test);
_delay_ms(1000);
}
return 0;
}
[c]
danke für jede hilfe
ok fehler gefunden.. txd als vergessen als output zu schalten. und ein pin falsch angeschlossen..
Hi >ok fehler gefunden. >txd als vergessen als output zu schalten. Ist kein Fehler. Datenblatt: • TXD – Port D, Bit 1 TXD, Transmit Data (Data output pin for the USART). When the USART Transmitter is enabled, this pin is configured as an output regardless of the value of DDD1. MfG Spess
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.