Carte Romeo

De Wiki Arobose
(Langage C)
m (Commande à distance)
 
Ligne 99 : Ligne 99 :
 
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="c">
 
<syntaxhighlight lang="c">
void
 
motor_setup(void)
 
{
 
  /* Motor controller */
 
  DDRD = (1 << PORTD4); /* E1 (PD4) as output pin */
 
  DDRE = (1 << PORTE6); /* E2 (PE6) as output pin */
 
 
  pwm_3_setup();
 
  pwm_4_setup();
 
 
  pwm_3A_enable();
 
  pwm_4D_enable();
 
}
 
  
 
/* stop */
 
/* stop */
Ligne 168 : Ligne 155 :
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
Pour finir, les fonctions main() et setup()
+
Pour finir, la fonction principale main() et les fonctions setup() qui définissent l'état des pins (entrée ou sortie) et active les modules PWM.
 
<syntaxhighlight lang="c">
 
<syntaxhighlight lang="c">
 
 
void
 
void
pin_setup(void)
+
motor_setup(void)
 
{
 
{
 
   /* Motor controller */
 
   /* Motor controller */
   DDRD = (1 << PORTD4); /* PD4 as output pin */
+
   DDRD = (1 << PORTD4); /* E1 (PD4) as output pin */
   DDRE = (1 << PORTE6); /* PE6 as output pin */
+
   DDRE = (1 << PORTE6); /* E2 (PE6) as output pin */
 +
 
 +
  pwm_3_setup();
 +
  pwm_4_setup();
 +
 
 +
  pwm_3A_enable();
 +
  pwm_4D_enable();
 
}
 
}
  
Ligne 182 : Ligne 174 :
 
setup(void)
 
setup(void)
 
{
 
{
   pin_setup();
+
   motor_setup();
  pwm_3_setup();
+
  pwm_4_setup();
+
  pwm_3A_enable();
+
  pwm_4D_enable();
+
 
}
 
}
  
Ligne 220 : Ligne 208 :
 
USART_1_setup(void)
 
USART_1_setup(void)
 
{
 
{
   PORTD &= ~(1 << PORT2); /* initialize pin PD2 (RX) as input pin */
+
   DDRD &= ~(1 << PD2); /* initialize pin PD2 (RX) as input pin */
   PORTD |= (1 << PORT3); /* initialize pin PD3 (TX) as output pin */
+
   DDRD |= (1 << PD3); /* initialize pin PD3 (TX) as output pin */
  
 
   UBRR1 = 103; /* 9600 Baud at 16MHz */
 
   UBRR1 = 103; /* 9600 Baud at 16MHz */

Version actuelle en date du 29 juillet 2013 à 14:29

Catégories