From bc481107298791bf0efd984ecc53dc92b8719878 Mon Sep 17 00:00:00 2001 From: Clyhtsuriva Date: Tue, 26 Jan 2021 18:26:26 +0100 Subject: Insertion du projet dans sa totalité MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- simonnnnn/Core/Src/button.c | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 simonnnnn/Core/Src/button.c (limited to 'simonnnnn/Core/Src/button.c') diff --git a/simonnnnn/Core/Src/button.c b/simonnnnn/Core/Src/button.c new file mode 100644 index 0000000..a9333d9 --- /dev/null +++ b/simonnnnn/Core/Src/button.c @@ -0,0 +1,33 @@ +/* + * button.c + * + * Created on: 2 déc. 2020 + * Author: root + */ + +#include "button.h" + +void Button_init(BUTTON_TypeDef *button, GPIO_TypeDef * port, uint8_t pn,uint8_t pl) { +button->gpioPort = port; +button->pin = pn; +button->pull = pl; + +//Activation de l'horloge sur le port en question + +//déterminer le numéro du port 0--> GPIOA, 1-->GPIOB, etc. +uint8_t nb_port; +nb_port = ((uint32_t) port - IOPPERIPH_BASE) / 0x400; +//activation de l'hologe +RCC->IOPENR |= 1 << nb_port; +//configuration de la pin en entrée +button->gpioPort->MODER &= ~(0b11 << 2 * pn); +//configuration du type de pull +button->gpioPort->PUPDR &= ~(0b11 << 2 * pn); +button->gpioPort->PUPDR |= (pl << 2 * pn); +} + +uint8_t Button_State(BUTTON_TypeDef *button) { +if ((button->gpioPort->IDR & (1 << button->pin)) != 0) +return 1; +return 0; +} -- cgit v1.2.3