Je me met aux avr... un peu a contre coeur, mais enfait j'ai pas le choix... donc...
J'utilise un Atmega162. et pour commencer je veux juste faire un echo de ce que j'envoie par le ligne série...
l'atmega est cadencé à 4.608Mhz, vitesse de communication 57600bauds, j'ai généré au travers de codevision 1.24.8dun programme avec tous les parametres de l'uart, ensuite j'ai simplement mis dans la boucle principale :
Code : Tout sélectionner
while (1)
{
// Place your code here
putchar(getchar());
};
si j'envoie en décimale 10, il me renvoie rien, si j'envoie 20 il me renvoie 20, si j'envoie 97 (a) il me renvoie 255...
Si je travail directement dans la routine d'interruption en faisant :
interrupt [USART0_RXC] void usart0_rx_isr(void)
{
char status;
char data;
status=UCSR0A;
data=UDR0;
UDR0=data;
}
quand j'envoie 'a', il me renvoie 'q'
quand j'envoie 10 il me renvoie 250
quand j'envoie 127 il me renvoie 127
quand j'envoie 128 il me renvoie 240
Je comprend rien, mes port com fonctionnent bien, j'utilise Docklight pour envoyer mes caracteres, celui-ci ne m'a jamais fait défaut
Si quelqu'un a une idée se serait super
Benjamin