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 */ }