hmmm j'ai pas trop d'idée là comme ça... je pensais d'abord à un dépassement de pile : le uC a 1024 octets de RAM et 128 sont utilisés pour les fifo d'émission / réception. Celà dit s'il n'y a que ça comme code, je n'y crois pas trop.
Que se passe-t-il exactement lorsque tu émets ? Est-ce que tu vois quelques caractères sortir avant le reset ? Est-ce que tu peux reproduire le problème en émettant juste un seul caractère ? J'ai testé le module UART sur atmega8, 32, 128 et 2560. Il se peut que ça déconne sur un 168... Jette à tout hasard un coup d'oeil aux valeurs des vecteurs d'interruptions dans iom168.h. Tu peux aussi essayer de configurer l'uart à la main, et comparer les valeurs des registres. Il est possible qu'il y ait un bug dans le module... Oliv Antoine albertelli wrote: > le voilà : > > > #ifndef UART_CONFIG_H > #define UART_CONFIG_H > > /* > * UART0 definitions > */ > > /* compile uart0 fonctions, undefine it to pass compilation */ > #define UART0_COMPILE > > /* enable uart0 if == 1, disable if == 0 */ > #define UART0_ENABLED 1 > > /* enable uart0 interrupts if == 1, disable if == 0 */ > #define UART0_INTERRUPT_ENABLED 1 > > #define UART0_BAUDRATE 38400 > > /* > * if you enable this, the maximum baudrate you can reach is > * higher, but the precision is lower. > */ > #define UART0_USE_DOUBLE_SPEED 0 > //#define UART0_USE_DOUBLE_SPEED 1 > > #define UART0_RX_FIFO_SIZE 64 > #define UART0_TX_FIFO_SIZE 64 > //#define UART0_NBITS 5 > //#define UART0_NBITS 6 > //#define UART0_NBITS 7 > #define UART0_NBITS 8 > //#define UART0_NBITS 9 > > #define UART0_PARITY UART_PARTITY_NONE > //#define UART0_PARITY UART_PARTITY_ODD > //#define UART0_PARITY UART_PARTITY_EVEN > > #define UART0_STOP_BIT UART_STOP_BITS_1 > //#define UART0_STOP_BIT UART_STOP_BITS_2 > > > > > /* .... same for uart 1, 2, 3 ... */ > > > Le 26 mai 2009 22:21, Olivier MATZ <z...@droids-corp.org > <mailto:z...@droids-corp.org>> a écrit : > > Salut Antoine, > > Tu pourrais envoyer ton fichier uart_config.h aussi ? > > Olivier > > Antoine albertelli wrote: > > Hello, > > Voilà, j'ai faits quelques tests du module UART de Aversive, et > j'ai des > > petits bugs. Tant que je n'active pas les interrupts, tout va très > bien. > > Mais dés que je mets un sei() pour utiliser le scheduler, le > module UART > > déclenche ce que je pense être un reset du processeur... une idée ? > > Merci pour votre attention > > > > Antoine > > > > P.S. : Je travaille sur Atmega168, et voici mon code (tiré en grande > > partie du code microb 2009) : > > > > int main(void) { > > > > sbi(DDRB,5); > > /* Met la LED en sortie. */ > > > > uart_init(); > > fdevopen(uart0_dev_send, NULL); > > sei(); /* BUG. */ > > for(counter = 0;counter < 5;counter++) { // chenillard pour le > reset > > BIT_TOGGLE(PORTB,5); > > wait_ms(500); > > } > > for(;;) printf_P(PSTR("Dass das Gluck deinen Haus setzt.\r\n")); > > return 0; > > } > > > > > > > ------------------------------------------------------------------------ > > > > _______________________________________________ > > Avr-list mailing list > > Avr-list@droids-corp.org <mailto: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 <mailto: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 _______________________________________________ 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