' Projet Wiibot Lycée Louis Payen 2011 'Squelette du Programme gestion 3 servos sur sortie PORTA 'CBOY F1 . Carte micro 1 et micro 2 ' #include "startcf1.bas" byte n,n1,n2,n3,T ' déclaration des variables utilisées sur 8bits DDRA = 255 'PORT A en Sortie DDRG.2 = 0 ' G2 et G3 en entrée DDRG.3 = 0 ' pour sélection du cboyf1 par carte USB DDRD.4 = 0 ' PORTD.4 et PORTD.5 sont Utilisés pour piloter bras (carte micro 2) DDRD.5 = 0 ' programmés en entrée PACTL.1 = 1 ' selectionner la vitesse 16,4ms PACTL.0 = 1 TMSK2.6 = 1 ' declencher le timer n1=100 n2=100 n3=100 cli ' autoriser les inter do ' pour toujours ' Lire PORT G (G2 et G3) ' si sélection ok, alors lire Port E ' En fonction du code sur E6 et E7, affecter le numéro de servo correspondant ' avec la valeur de E0 à E5 ' On a donc 64 positions possible pour les servo ' Pour carte micro 2 : Piloter la sortie ou la rentrée du bras en fonction ordre sur PORTD.4 et PORTD.5 loop function tempo(cnt) int i, k for cnt=cnt to 0 step -1 for i=0 to 1000 next next end function ' La fonction d'interruption ci-dessous est déclenchée toutes les 16ms ' et sert à générer le signal de commande des servos moteurs. interrupt function rtiint at $FFF0 PORTA.0 = 1 'commande servomoteur 1 FOR T = 1 to n1 ' temporisation largeur n1 ' à mesurer sur oscillo NEXT T PORTA.0 = 0 PORTA.1 = 1 'commande servomoteur 2 FOR T = 1 to n2 NEXT T PORTA.1 = 0 'commande servomoteur 3 ' à Faire TFLG2.6 = 1 ' autoriser ints a nouveau end function ' #include "lcd.bas"