Salut Antoine, Alors il y a 3 méthodes pour le scheduler:
- timer0: dans ce cas c'est le code du scheduler qui configure le timer 0 pour avoir son interruption - timer generique: utilise le module timer generique pour être appelé - manuel: dans ce cas c'est à l'utilisateur d'appeler la fonction scheduler_interrupt() à intervale régulier la méthode utilisée à microb est la 3e. On enregistre une fonction avec un timer générique sur le timer0: void main_timer_interrupt() C'est cette fonction qui appelle le scheduler une fois sur 4. La raison est historique: il y a 2 ans, il fallait poller les codeurs très régulièrements (toutes les 128us) et c'était fait dans cette fonction. Le scheduler était lui appelé toutes les 512 us. En fait, un appel à scheduler_interrupt() est un peu couteux, même s'il n'y a aucune tâche à lancer. Voilà voilà ++ Olivier PS: j'ai bien reçu les TSOP, merci encore ! Antoine albertelli wrote: > Comme quoi il faut jamais écrire un mail à 3:45 du matin :) > J'ai trouvé la solution après une bonne nuit de sommeil : il suffisait > d'activer les interrupts avec sei()... Ca a aussi résolu des problèmes > d'UART au passage ^^ > Par contre je reste quand même curieux sur la méthode utilisée dans le > robot de microb d'utiliser le module timer. Il y a une raison spéciale > ? > > Desolé d'avoir écrit pour rien, et au plaisir de voir des robots > distribuer de la nourriture ! > > A+ > Antoine > > Le 31 mars 2010 03:42, Antoine albertelli <antoinea...@gmail.com> a écrit : >> Hello, >> Au CVRA on vient de finir de monter nos cartes éléc, et en testant le >> code dessus, je me suis rendu compte que je n'arrive pas à faire >> tourner le module scheduler (avec l'option use_timer0). Les fonctions >> que je schedule ne sont jamais appelées. En regardant le code de >> Microb, j'ai vu que vous utilisiez un appel à scheduler_interrupt dans >> le cadre d'une interruption de timer0. >> Je voulais savoir si vous avez eu des problèmes du même genre et >> comment vous les avez résolu ? >> >> A+ >> Antoine >> > > _______________________________________________ > 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