usart per adapter

Gast #2163513
Lesenswert?

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
Gast #2163629
Lesenswert?

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren