Bonjour,

J'utilise une carte de développement stk200 avec l'atmega8515, je programme en c sous avrstudio 4, os windows 7, je veux envoyer un caractère sur le port série COM1 mais à chaque exécution du code je reçois une interruption break et lle caractère 'nul' voici mon code:

#include <avr/io.h>
#include <avr/iom8515.h>
#include <stdlib.h>
#include <stdint.h>
#include <avr/interrupt.h>

#define fosc 8000000 // 8 MHz
#define BAUD 9600 //38400
#define UBRR fosc/BAUD/16-1


volatile unsigned char value;

ISR(UART_TX_vect){

PORTB |= ~value; // invert and output to LED (0=on)
}

void Led_init(void){
DDRB =0xFF; // set as outputs
PORTB = 0xFF; // all off (0 = LED on)

}

// Initialisation du port série

void USART_Init( unsigned int baud )
{
/* Set baud rate */
UBRRH |= (unsigned char)(baud>>8);
UBRRL |= (unsigned char)baud;
/* Mode réception et transmission */
UCSRB |=(1<<TXEN)|(1<<TXCIE);
/* format de la trame: 8 bits de données, 2 bits de stop */
UCSRC |= (1<<URSEL)|(0<<USBS)|(3<<UCSZ0 );
}

//Transmission sur le port série

int USART_Transmit( unsigned char data )
{
/* Wait for empty transmit buffer */
while (!( UCSRA & (1<<UDRE)))
{
}
/* Put data into buffer, sends the data */
UDR = data;
return 0;
}


void Att (unsigned int duree){
unsigned int i;
for (i=0; i<duree; i++) {
}
}

int main () {

sei();
Led_init();
USART_Init(UBRR);
DDRD=0xFF;//port D en sortie
uint8_t i;
char *c;
for (i=1;i<=9;i++)
{
itoa(i,c,10);
value = i + '0';
USART_Transmit(value);
UCSRA&=~(1<<TXC);
Att (500);
}

//Fin programme principal
return 0;

}

Merci de m'aidez svp