Re: [Avr-list] noob help ;-)
yop, printf(%lu %u\n,(unsigned long)sec,(unsigned int)nbre_tours); en déclarant sec comme seconds et j'ai quand même un débordement sur 16bits. ça devrait marcher pourtant. Par défaut je mets %ld mais je pense que c'est pareil. Sinon rebalance le code ;) Ci-joint. Je vois pas l'erreur là. J'essayerai sur sur notre robot la semaine prochaine parce que ça m'intrigue ;) Essaye de regarder si un truc comme ça fonctionne : long i=153548L; printf(%ld\n, i); Sinon, je pense pas que ce soit ça, mais dans le menuconfig, tu peux choisir différents types de printf (dans generation options). Sinon, j'ai du mal à comprendre comment marche tout le bousin. Je voudrai utiliser le timer0 pour avoir un rapport cyclique variable sur OC0, est-ce que c'est possible de le faire tout en ayant le scheduler sur le même timer ? Je pense que c'est possible... même si le module est pas vraiment prévu pour. Dans le cas où tu utilises le scheduler avec le timer0 (sans utiliser le module hardware/timer), il va initialiser les registres de la manière suivante : sbi(TIMSK, TOIE0); TCNT0 = 0; TCCR0 = SCHEDULER_CK; En gros, tu dois pouvoir changer la valeur de TCCR0 après l'initialisation du scheduler pour utiliser le mode PWM du timer 0, tout en gardant l'interruption overflow, utilisée par le scheduler. a+ Olivier ___ 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
Re: [Avr-list] noob help ;-)
Laisser quoi configurable ? le timer, le prescaler, et le fait d'utiliser soit l'int de debordement, soit celle du compare auto-resettant (bien pratique pour les valeurs rondes ) Oui, le output compare j'y avait pensé aussi, mais pour le moment ça n'est pas encore faisable... quand ça sera implémenté dans le module hardware/timer, ça sera facilement utilisable par le scheduler. Oliv ___ 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
Re: [Avr-list] noob help ;-)
Ok ok, donc si je veut la ms à 8Mhz ça me f'ra 32. c'est ça : 8 000 000 / (32*256) = 976 Hz soit une période de 1024 us bin le base/time, mon but c'est d'avoir l'heure pour pouvoir faire des log (en secondes unix ça me semble bien). Est-ce que l'heure est précise ? Est-ce qu'elle est corrélée avec le scheduler ? Est-ce que je peut faire de la PWM, de l'ADC, utiliser le scheduler ET base/time en même temps sans avoir de problèmes de manque de timer ? je dirais oui. base/time utilise le scheduler, et donc l'heure sera mise à jour toute les ms dans ton cas, et elle sera précise (pas de dérive) s'il n'y a pas de bug :) En fait le arg2 c'est la fonction (car scheduler_add_periodical_event() est en fait une macro). Du coup le prototype de transmettre() ne doit pas etre correct. Ca doit etre qqchose du genre void f(void *). Aaah ok, c'est un peu tordu toutes ces macros ;-) hum certes. Je voulais refaire l'interface, mais je ne voulais pas trop casser la compatibilité avec le reste. Cela dit des static inline seraient peut être mieux. ++ Oliv ___ 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
Re: [Avr-list] noob help ;-)
Yop, - Le scheduler est-il obligatoirement synchronisé sur la us, parce que moi la ms me suffit ? Si je me souviens bien les proto de scheduler prennent des SCHEDULER_UNIT non ? 1 Scheduler Unit = prescaler * (256e6/freq CPU) cycles horloge. http://zer0.droids-corp.org/doxygen_aversive/html/scheduler_8h-source.html Ouais alors euh... C'est bien ça, si on utilise un timer 8 bits (pendant longtemps on ne pouvait utiliser que le timer 0). Mais je me demande si la formule n'est pas fausse si on utilise un timer autre que le 0. Bref, je vais regarder demain. Bon, par contre, si tu réponds non dans le menuconfig à Use timer module (recommended) - CONFIG_MODULE_SCHEDULER_USE_TIMERS, alors tu utilises le timer 0 et dans ce cas le pb ne devrait pas se poser. Tu regles la résolution du scheduler en fonction du prescaler : http://cvsweb.droids-corp.org/cgi-bin/viewcvs.cgi/aversive/modules/base/scheduler/config/scheduler_config.h?revision=1.3view=markup Typiquement, s'il vaut 8, à 16Mhz, la résolution est 128us. - Idem pour time, en plus sur un Atmega16 (8MHz) j'ai peur que ça le surcharge et que ça ne marche pas. time, tu parles de base/time ou hardware/timer ? - Comment on fait pour passer des arguments à une fonction schédulée j'ai fait ça : scheduler_add_periodical_event(transmettre,(void *)nbre_tours,1); mais il me met toujours un warning : /home/sonde/station-project/aversive/projects/anemometre/main.c:44: warning: passing argument 2 of 'scheduler_add_event' from incompatible pointer type En fait le arg2 c'est la fonction (car scheduler_add_periodical_event() est en fait une macro). Du coup le prototype de transmettre() ne doit pas etre correct. Ca doit etre qqchose du genre void f(void *). Si on se réfère au main, il semble qu'un paramètre unicity ai fait son apparition. Je sais pas trop à quoi il sert :) unicity c'est pour dire si l'evenement est periodique ou s'il est unique. Désolé si ces questions sont connes ou ont déjà été posées, mais je vous jures que j'ai regarder la doc avant :-) aaah cool elle est où cette fameuse doc ? ;) Un jour les manchots seront les maîtres du monde gnark ! Et les loutres de l'otter space... Mouais... on ne parle pas assez de l'ornithorynque sur cette liste. Oliv ___ 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