Salut Antoine,
J'ai pas vraiment trop d'idée non plus. Peut-être que tu peux
essayer de remplacer la ligne par:
UCSRB |= (1 UDRIE);
(UDRIE = Data Register Empty Interrupt Enable)
Ca permettra de tester que le tableau uart_reg est bien initialisé,
mais j'imagine que c'est bon de ce coté...
J'ai ouvert un rapport de bug sur le bugzilla.
Après un peu de debug, j'ai trouvé que la ligne qui causait le reset est
celle-ci (dans uart_send_nowait.c, ligne 61) :
sbi(*uart_regs[num].ucsrb, UDRIE); //FIXME: Apparement le bug est ici
T'aurais pas une idée, parce que là je sèche un peu...
A+
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
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
En fait, à l'émission, le 1er caractère passe, mais les suivants ne passent
jamais et le uc fait un reset. Bon sinon c'est pas trop grave, de toute
façon je passe bientôt au 128, parce que le 168, pour faire tourner un
asserv, c'est chaud quand même :D
A+
Le 26 mai 2009 22:44, Olivier MATZ