Bonjour,
Je suis nouveau dans la programmation des ATmega, j'essaie de programmer une interface RS232 .. J'utilise ce code :
#define USART_BAUD_RATE 2400
#define USART_BAUD_SELECT (F_CPU/(USART_BAUD_RATE*16L)-1)
void RF_Set_Puissance()
{
PORTD &= 0x7F; // 01111111
;_delay_ms(200);
uart_putchar(0xAA);
_delay_ms(200);
uart_putchar(0x41);
_delay_ms(200);
uart_putchar(0x5A);
_delay_ms(200);
uart_putchar(0xA5);
_delay_ms(200);
uart_putchar(0xBB);
_delay_ms(200);
PORTD |= 0x80; // 10000000
;_delay_ms(200);
}
void USART_Init( unsigned int baud )
{
/* Set baud rate */
UBRR0H = (unsigned char)(baud>>8);
UBRR0L = (unsigned char)baud;
/* Enable receiver and transmitter */
UCSR0B = (1<<RXEN0)|(1<<TXEN0) | (1<<RXCIE0);
/* Set frame format: 8data, 2stop bit */
UCSR0C = (1<<USBS0)|(3<<UCSZ00);
}
J'utilise une interface RS232 pour connecter à mon ordi et avec mon terminal, je reçois les caractères : 0xAA + 0x41 + 0x5A + 0x25 + 0x3B
En binaire, on voit que c'est toujours le premier bit(poids le plus fort) qui embête.. Pouvez-vous m'aider ? Et comment définit-on la parité ? Par exemple parité paire ou impaire ??
Merci beaucoup de votre aide,
Flavien
-----