Hello,J'ai enfin trouvé la raison du "reset" de l'atmega ! Je mets reset
entre guillemet, parce que c'est pas vraiment un reset : le programme
sautait à l'adresse 0x00. C'est lié à l'avr-libc qui lorsque elle recoit une
interruption  pour laquelle elle n'a pas de gestionnaire appelle la
fonction _vector_default() qui fait un JUMP 0x00. Or sur l'Atmega168 n'a pas
un UART mais un USART. le handler correct s'appelle donc SIG_USART_RECV et
pas SIG_UART_RECV. J'ai fait un test et ça marche nickel. Par contre je
connais pas assez bien Aversive et les Atmel pour savoir comment faire un
patch propre. Une idée ? J'ai vu qu'il y avait une macro UART_IS_USART. je
vais creuser de ce côté là.

A+
Antoine

Le 30 mai 2009 23:17, Olivier MATZ <z...@droids-corp.org> a écrit :

> J'ai pas vraiment trop d'idée non plus. Peut-être que tu peux
>> essayer de remplacer la ligne par:
>>   UCSRB |= (1 << UDRIE);
>>
>
> Je voulais dire UCSR0B et pas UCSRB. Evidemment ça ne marche
> que pour l'uart 0.
>
>
>
> _______________________________________________
> Avr-list mailing list
> Avr-list@droids-corp.org
> CVSWEB : http://cvsweb.droids-corp.org/cgi-bin/viewcvs.cgi/aversive
> WIKI : http://wiki.droids-corp.org/index.php/Aversive
> DOXYGEN : http://zer0.droids-corp.org/doxygen_aversive/html/
> BUGZILLA : http://bugzilla.droids-corp.org
> COMMIT LOGS : http://zer0.droids-corp.org/aversive_commitlog
>
_______________________________________________
Avr-list mailing list
Avr-list@droids-corp.org
CVSWEB : http://cvsweb.droids-corp.org/cgi-bin/viewcvs.cgi/aversive
WIKI : http://wiki.droids-corp.org/index.php/Aversive
DOXYGEN : http://zer0.droids-corp.org/doxygen_aversive/html/
BUGZILLA : http://bugzilla.droids-corp.org
COMMIT LOGS : http://zer0.droids-corp.org/aversive_commitlog

Répondre à