Acabo de comenzar a usar el STM32F051 para mi proyecto y me gustaría aprovechar del comparador construido dentro del chip.
He estado tratando de usar COMP 2 en una configuración de comparador simple, con
- PA3 como la no inversión
- PA2 como la inversión
- PA7 como salida (no invertida, velocidad completa, sin histéresis, sin modo de ventana).
Como conecto mi referencia a 0 V, estoy esperando un 1 lógico de PA7 si el voltaje es mayor que 0 en PA2 . Aquí está el ejemplo de mi código:
RCC_AHBENR &= 0x00000000; //Resetting Timer for Pin Inputs
RCC_AHBENR |= 0x00020000; //Initializing Inputs for pin A;
GPIOA_AFRL &= 0x00000000; //Resetting
GPIOA_AFRH &= 0x00000000; //Resetting
GPIOA_MODER &= 0x00000000; //Resetting Input, see page 151 of RM0091
COMP_CSR &= 0x00000000; /*!< Set COMP_CSR register to reset value */
COMP_CSR |= 0x00610000; //All bits set to zero except (16,22,21), have to set PA3 and PA2 to analog, PA7 as alternate function
GPIOA_MODER|= 0x000080F0; //PA7 in Alternate Mode, PA3 PA2 in analog mode
GPIOA_AFRH |= 0x00000000; //No Alternate Function for High
GPIOA_AFRL |= 0x70000000; //AF7 for PA7 (COMP2OUT)
Hasta ahora, independientemente de la entrada, la salida en PA7 sigue siendo cero. ¿Tengo que inicializar un temporizador (estaba leyendo algo sobre PCLK)? Gracias.