Discussion:IMA4 2020/2021 EC3 : Différence entre versions

De Wiki d'activités IMA
(Page créée avec « = Lecture du Wiki au 24/2/2021 = »)
 
 
Ligne 1 : Ligne 1 :
 
= Lecture du Wiki au 24/2/2021 =
 
= Lecture du Wiki au 24/2/2021 =
 +
 +
* Wiki vide mis à part un schéma non expliqué ;
 +
* pas de soin porté au formatage de la page Wiki ;
 +
* le choix des E/S pour la commande moteur semble aléatoire, réfléchir un peu en considérant le code ci-dessous permettant de générer des signaux PWM sur un ATMega328p.
 +
 +
// For servo-motors PWM (pulse between 1ms and 2ms)
 +
void init_servos(void){
 +
/* Timer 2 control pins 3 and 11 */
 +
DDRD |= 0x08; // Pin 3
 +
DDRB |= 0x08; // Pin 11
 +
/* Timer 2 configuration              */
 +
/*  - WGM2 for fast PWM = 011        */
 +
/*  - COM2 for normal outputs = 10    */
 +
/*  - CS2 with 256 as prescaler = 110 */
 +
TCCR2A = (1<<COM2A1) | (1<<COM2B1) | (1<<WGM21) | (1<<WGM20);
 +
TCCR2B = (1<<CS21) | (1<<CS22);
 +
/* So one unit in OCR2A or OCR2B represents 256/16000000*1000*1000=16 us */
 +
/* For a pulse of 1ms, 62 units are needed, 125 for a pulse of 2ms      */
 +
/* The servo-motor must work with a period of 4ms                        */
 +
}

Version actuelle datée du 24 février 2021 à 10:48

Lecture du Wiki au 24/2/2021

  • Wiki vide mis à part un schéma non expliqué ;
  • pas de soin porté au formatage de la page Wiki ;
  • le choix des E/S pour la commande moteur semble aléatoire, réfléchir un peu en considérant le code ci-dessous permettant de générer des signaux PWM sur un ATMega328p.
// For servo-motors PWM (pulse between 1ms and 2ms)
void init_servos(void){
/* Timer 2 control pins 3 and 11 */
DDRD |= 0x08; // Pin 3
DDRB |= 0x08; // Pin 11
/* Timer 2 configuration               */
/*   - WGM2 for fast PWM = 011         */
/*   - COM2 for normal outputs = 10    */
/*   - CS2 with 256 as prescaler = 110 */
TCCR2A = (1<<COM2A1) | (1<<COM2B1) | (1<<WGM21) | (1<<WGM20);
TCCR2B = (1<<CS21) | (1<<CS22);
/* So one unit in OCR2A or OCR2B represents 256/16000000*1000*1000=16 us */
/* For a pulse of 1ms, 62 units are needed, 125 for a pulse of 2ms       */
/* The servo-motor must work with a period of 4ms                        */
}