반응형

C++ 2

[IoT] Esp32 여유 Heap 정보 알아보기

C#이나 Java, Javascript등의 언어들은 GC를 통해 매모리를 관리하기에 개발자가 특별히 메모리 관리를 해줄 필요가 없습니다. (물론 GC를 생각하며 프로그램 안짜면 메모리 누수가 발생될수 있다.) 그러나 C++의 경우 개발자가 메모리를 관리를 해줘야합니다. 이것은 ESP32를 C++로 돌릴때도 마찬가지입니다. 코드를 잘못짜게 되면 Heap영역을 계속적으로 잡아먹게 되고 결국에는 ESP32가 재부팅됩니다. if(millis() - heapCheckMillis > 1000){ memcurr = ESP.getFreeHeap(); Serial.printf("FREEHeap: %d; DIFF %d\n", memcurr, memcurr - memlast); memlast = memcurr; heapCh..

프로그래밍/IoT 2020.11.25

[Arduino] Button Control

우리가 Arduino나 마이크로 프로세서 등을 사용할 때 I/O를 이용하는 가장 기본적으로 예는 바로 버튼일 것이다. 이같은 회로를 바로 사용하면 채터링(Chattering) 현상이 발생하게 되는데 시그널로 확인해본다면 아래와 같다. 채터링 현상이 일어나는동안 SW적으로 데이터를 읽으면 1도 아니고 0도 아닌 이상한 상태가 되어 의도하지 않은 값을 읽어올수 있다. 이와 같은 상황을 해결하기 위해서 Debouncing이라는 기법을 이용하여 해결한다. 쉽게 설명하여 버튼 입력이 일어나는 동안 Debouncing Time만큼 입력을 무시하면 된다. 그리고 또한 실제 개발 환경에서는 이러한 버튼들에 대해 많은 I/O를 할당 하기 어려운 경우들이 대부분이다. 그러면 적은 수의 버튼을 이용하여 셋팅이나 조작을 해야..

프로그래밍/IoT 2020.09.14
반응형