Bonjour à tous,
J'ai à programmer une Arduino Due afin qu'elle génère un signal PWM jusqu'à 1 MHz.
J'ai choisi le pin 8 de la carte (C22), qui gère le PWM.
Bon, pour être honnête, je n'arrive ni à faire fonctionner le PWM, ni le basculement de l'état du pin.
Mais commençons par le changement d'état.
Datasheet :
https://ww1.microchip.com/downloads/..._datasheet.pdf
Pour mon code je me suis aidé de l'exemple p.629 (31.6. I/O Lines Programming Example).
J'appelle donc ce code d'init :
Puis, (non écrit dans l'exemple), j'appelle cette ligne afin de passer ma broche à l'état haut :Code:REG_PIOC_PER = 0x00200000; // Enables the PIO to control C.22 //REG_PIOC_PDR = ~REG_PIOC_PER; // disables P16 to P31 REG_PIOC_OER = 0x00200000; // enables output for I/O C.22 //REG_PIOC_ODR = 0xFFFFFF00; // disables output for the others pins REG_PIOC_SODR = 0x00000000; // set the data to be driven REG_PIOC_CODR = 0x0FFFFFFF; // clear the data to be driven REG_PIOC_IER = 0x00000000; // enable input change IT register REG_PIOC_IDR = 0xFFFFFFFF; // disable "" REG_PIOC_MDER = 0x00000000; // enables mutli-drive for none REG_PIOC_MDDR = 0xFFFFFFFF; // disable "" REG_PIOC_ABSR = 0x00000000; // assigns C.22 to the Peripheral A function //REG_PIOC_PUER = 0x0F0FFF0F; // enables pull up resistor //REG_PIOC_PUDR = 0xF0F000F0; REG_PIOC_OWER = 0x00200000; // output write enable register : enables writing PIO_OSDR //REG_PIOC_OWDR = 0x0FFF FFF0; // output write disable register
Mais... rien.Code:REG_PIOC_ODSR = 0x00200000;
Merci par avance pour vos réponses !
A bientôt.
-----