[RESOLU] Attiny2313 et PWM sur timer1

Salut à tous,

Petit souci sur un montage à base d'Attiny2313 + Arduino 1.6.5. J'ai testé deux cores pour Attiny j'ai le même souci, à savoir qu'il m'est impossible de faire du PWM sur les pin 12 et 13 (PB3 et PB4) les deux étant sur le timer 1. J'ai trouvé un code "en dur" sur le net que j'ai adapté et il marche :

void setup() {
  // put your setup code here, to run once:

  /* Set Fast PWM mode. */
TCCR1A |= (1<<WGM00) | (1<<WGM01);
/* Clear 0C0A on compare. */
TCCR1A |= (1<<COM0A1);
/* Start timer, no prescaling. */
TCCR1B |= (1<<CS00);
/* Duty cycle 0% */
OCR1A = 0;

pinMode(12,OUTPUT);

}

void loop() {
  int i;
 for(i=0; i < 255; i++) {
      OCR1A = i;
      delay(10);
  }
 
  for(i=255; i > 0; i--) {
      OCR1A = i;
delay(10);
  }

}

Il y a donc vraisemblablement un souci dans le core tiny ...

La partie intéressante dans le wiring_analog.c :

#if defined(TCCR1A) && defined(COM1A1) && !defined(TCCR1E)
 if( timer == TIMER1A){
 
 // connect pwm to pin on timer 1, channel A
 sbi(TCCR1A, COM1A1);
 cbi(TCCR1A, COM1A0);
 #ifdef OC1AX 
 cbi(TCCR1D, OC1AV);
 cbi(TCCR1D, OC1AU);
 cbi(TCCR1D, OC1AW);
 sbi(TCCR1D, OC1AX);
 #endif
 OCR1A = val; // set pwm duty
 } else
 #endif

En bidouillant un peu et en uploadant l'exemple "fade" j'arrive presque à faire ce que je veux (et c'est pas parfait). N'étant pas familier des registres AVR, j'imagine que pour un initié ça lui sautera aux yeux :slight_smile:

EDIT : bon bin je me répond tout seul :slight_smile: j'ai posé la question sur le github et réponse immédiate :

En français, il suffit d'aller dans

C:\Users\votrenomdutilisateur\AppData\Roaming\Arduino15\packages\ATTinyCore\hardware\avr\1.0.6\variants\tinyX313 et d'éditer pins_arduino.h et de changer

//Choosing not to initialise saves power and flash. 1 = initialise.
#define INITIALIZE_SECONDARY_TIMERS              0

En

//Choosing not to initialise saves power and flash. 1 = initialise.
#define INITIALIZE_SECONDARY_TIMERS              1

merci de ce retour

intrigué par TCCR1E, j'étais allé voir les data sheets des µ
et je n'ai trouvé TCCR1E que sur la data sheet des µ Atiny 261, 461, 861

en page 119