Hallo

ich bin jetz soweit, leider funktioniert entweder der UART oder das PWM signal sieht einer einen fehler

Danke
Martin

Code:
#include <avr/io.h>
#include <avr/interrupt.h>

#define BAUD        9600L
#define UBRR_BAUD   ((16000000/(16UL*BAUD))-1)
//function definition
void uart_init(void)
{

UBRR0H |= (uint8_t) (UBRR_BAUD>>8);
UBRR0L |= (uint8_t) (UBRR_BAUD);
UCSR0B |= ((1<<RXCIE0) | (1<<RXEN0)|(1<<TXEN0));    /* Enable receiver */
UCSR0C |= ((1<<UCSZ10) | (1<<UCSZ00)); //8 bits

}
void pwm_init(void)
{  DDRB=0x00;
   DDRB|=(1<<PB7)|(1<<PB6)|(1<<PB5) | (1<<PB4);
   
   TCCR0|=(1<<WGM00)|(1<<COM01)|(1<<CS01);
   TCCR2|=(1<<WGM20)|(1<<COM21)|(1<<CS20);
   TCCR1A|= (1<<WGM10)|(1<<COM1A1)|(1<<COM1B1);
   TCCR1B|= (1<<CS10);
   
   OCR0=128;
   OCR1A=128; 
   OCR1B=128;
   OCR2=128;  
}


void put_uart_c(uint8_t c)
{
while(!( UCSR0A & (1<<UDRE0)));
   UDR0 = c; 
return;
}

uint8_t get_data(void)
{
  while(!(UCSR0A & (1<<RXC0)));
  return UDR0;
}
ISR (USART0_RX_vect)
{ 
    char c=UDR0;
	put_uart_c(c);
}
int main(void){


    
	sei();
	uart_init();
	pwm_init();
	put_uart_c('H');
	

while(1);
return 0;
}