Hello,

Voici quelques pistes (je n'ai pas de quoi faire l'essai avant qqs jours).


- Dans scheduler_config.h, les deux valeurs suivantes doivent être
cohérentes, par exemple : TIMER0_PRESCALER_DIV_32 et
SCHEDULER_CLOCK_PRESCALER 32.

Là il y a :
#define SCHEDULER_CK TIMER0_PRESCALER_DIV_8
#define SCHEDULER_CLOCK_PRESCALER 32 /* must coherent with value above */

Je vais ajouter un exemple en commentaire pour être bien sûr que c'est
clair.


- Probablement rien à voir avec ton pb, mais tu ne dois pas avoir une
version récente de avr-gcc, car le prototype de fdevopen() est passé de :
fdevopen((int(*)(char))uart0_send, (int(*)(void))uart0_recv, 0);

à :
fdevopen(uart0_dev_send, uart0_dev_recv);


- Le prototype de time_init() est (vous noterez la faute de frappe à
given) :
/** init time module : schedule the event with the givent priority */
void time_init(uint8_t priority);

Le fait de mettre un priorité de 0 à cet évenement et 128 à l'évenement
transmettre() (c'est la priorité par défaut) fait que l'évenement sera
delayé tant que le plus prioritaire n'est pas terminé. Du coup ton
horloge dérive très légèrement. Je verrais plus un time_init(200);

Je dirais que d'une manière générale, les printf doivent aller dans les
fonctions main() ou évenements à faible priorité. A noter que
d'augmenter significativement la taille de la fifo d'émission dans
l'uart devrait aussi permettre de résoudre le pb en rendant le printf
bcp plus court.


- Encore 2 choses qui n'ont probablement rien à voir :
void transmettre(void) doit avoir comme prototype
void transmettre(void * dummy), même si dummy n'est pas utilisé.

Et time_get_s() retourne des 'seconds', qui est un uint32_t, donc le
cast en (unsigned int) le transforme en 16 bits sur AVR, tu ne
dépasseras donc pas 65536 secondes dans le printf()... attention par
contre à la chaine de format "%ld" dans le cas d'un 32 bits.


Vala, tiens moi au courant si ça marche (ou pas).

Oliv

Fabien M wrote:
>> Tu m'envoies par mail un tgz de ton projet ?
>> Je peux jeter un coup d'oeil.
>>
>> Oliv
>>
>>   
> voilou
> 
> FabM
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> 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 à