Carte Romeo

De Wiki Arobose
(Langage C)
Ligne 24 : Ligne 24 :
  
 
Dans un premier temps, il faut initialiser les timers en mode PWM. Nous configurons le mode PWM avec des valeurs fréquemment utilisées pour la commande de moteurs.
 
Dans un premier temps, il faut initialiser les timers en mode PWM. Nous configurons le mode PWM avec des valeurs fréquemment utilisées pour la commande de moteurs.
<syntaxhighlight lang="php">
+
<syntaxhighlight lang="c">
 
/* timer3 is used for phase-correct 8-bits PWM mode  
 
/* timer3 is used for phase-correct 8-bits PWM mode  
 
and with clock prescaled to system clock divided by 64 */
 
and with clock prescaled to system clock divided by 64 */
Ligne 54 : Ligne 54 :
  
 
Il faut activer les pins utilisées par le L298 (5:OC3A et 6:OC4D).
 
Il faut activer les pins utilisées par le L298 (5:OC3A et 6:OC4D).
<syntaxhighlight lang="php">
+
<syntaxhighlight lang="c">
 
/* enable OC4D (pin D6) as pwm output */
 
/* enable OC4D (pin D6) as pwm output */
 
void
 
void
Ligne 75 : Ligne 75 :
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
Pour finir, il faut indiquer la valeur du PWM : cette valeur indique le temps haut du signal compris entre 0 et 255. Par exemple, pour avoir un signal carré (temps haut = temps bas), il faut avoir une valeur de 127. Ces valeurs sont écrites dans les registres OCRnx.
 +
 +
<syntaxhighlight lang="c">
 +
 +
/* write value a in PWM 3A */
 +
void
 +
pwm_3A_write(char a)
 +
{
 +
  OCR3A = a;
 +
}
 +
 +
/* write value a in PWM 4D */
 +
void
 +
pwm_4D_write(char a)
 +
{
 +
  OCR4D = a;
 +
}
 +
 +
</syntaxhighlight>
 +
 
Nous avons ensuite créer des fonctions qui permettent au robot d'avancer, reculer et tourner en précisant la vitesse (de 0 à 255).
 
Nous avons ensuite créer des fonctions qui permettent au robot d'avancer, reculer et tourner en précisant la vitesse (de 0 à 255).
<syntaxhighlight lang="php">
+
<syntaxhighlight lang="c">
 
/* stop */
 
/* stop */
 
void
 
void
Ligne 130 : Ligne 150 :
 
</syntaxhighlight>
 
</syntaxhighlight>
 
Pour finir, les fonctions main() et setup()
 
Pour finir, les fonctions main() et setup()
<syntaxhighlight lang="php">
+
<syntaxhighlight lang="c">
 +
 
 +
void
 +
pin_setup(void)
 +
{
 +
  /* Motor controller */
 +
  DDRD = (1 << PORTD4); /* PD4 as output pin */
 +
  DDRE = (1 << PORTE6); /* PE6 as output pin */
 +
}
 +
 
 
void
 
void
 
setup(void)
 
setup(void)

Version du 28 juin 2013 à 10:44

Outils personnels
Catégories