This commit is contained in:
2022-10-14 11:37:48 +02:00
parent 9e3969dfc5
commit 49d8d4269d
31 changed files with 9098 additions and 0 deletions

View File

@@ -0,0 +1,3 @@
idf_component_register(
SRC_DIRS "."
INCLUDE_DIRS ".")

View File

@@ -0,0 +1,2 @@
COMPONENT_SRCDIRS := .
COMPONENT_ADD_INCLUDEDIRS := .

View File

@@ -0,0 +1,89 @@
/****************************************************************************
* Copyright (C) 2020 by Fabrice Muller *
* *
* This file is useful for ESP32 Design course. *
* *
****************************************************************************/
/**
* @file lab4-2_main.c
* @author Fabrice Muller
* @date 30 Sept. 2020
* @brief File containing the lab4-2 of Part 2.
*
* @see https://github.com/fmuller-pns/esp32-vscode-project-template
*/
#include <stdio.h>
#include <unistd.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/gpio.h"
// Led: RTC_GPIO12
static const gpio_num_t PIN_LED = 2;
// Push button: RTC_GPIO13
static const gpio_num_t PIN_PUSH_BUTTON = 15;
// Press Counter
static volatile uint32_t count=0;
/**
* @brief interrupt when push switch
*
* @param args
*/
static void IRAM_ATTR gpio_switch_isr_handler(void *args) {
int pinLedNumber = (int)args;
count++;
gpio_set_level(pinLedNumber, (count % 2));
}
/**
* @brief Starting point function
*
*/
void app_main(void) {
gpio_config_t config_out = {
.intr_type = GPIO_INTR_DISABLE,
.mode = GPIO_MODE_OUTPUT,
.pin_bit_mask = (1ULL<<PIN_LED),
};
gpio_config(&config_out);
gpio_config_t config_in = {
.intr_type = GPIO_INTR_POSEDGE,
.mode = GPIO_MODE_INPUT,
.pull_down_en= GPIO_PULLDOWN_DISABLE,
.pull_up_en = GPIO_PULLUP_ENABLE,
.pin_bit_mask = (1ULL<<PIN_PUSH_BUTTON),
};
gpio_config(&config_in);
gpio_install_isr_service(0);
gpio_isr_handler_add(PIN_PUSH_BUTTON, gpio_switch_isr_handler, (void *)PIN_LED);
uint32_t previous_count=-1;
uint32_t tmpCount;
for (;;){
tmpCount = count;
if (previous_count != tmpCount) {
uint32_t pressNumber = tmpCount-previous_count;
if (pressNumber == 1)
printf("count: %d\n", tmpCount);
else
printf("count (bounce: %d): %d\n", pressNumber, tmpCount);
previous_count = tmpCount;
}
}
}