From 285211fae6c11227cc1737cd9900921fe56d7d38 Mon Sep 17 00:00:00 2001 From: helgie22 Date: Thu, 10 Sep 2026 12:58:40 +0000 Subject: [PATCH] rpm function added for part 1 --- .vscode/c_cpp_properties.json | 8 ++++---- .vscode/launch.json | 6 +++--- include/rotary_encoder_driver.h | 1 + src/main.cpp | 6 ++++-- src/part1_first_working_main.cpp | 4 ++-- src/part1part2.cpp | 3 ++- src/part3part1.cpp | 3 ++- src/rotary_encoder_driver.cpp | 4 ++++ src/timer_usec.cpp | 2 ++ 9 files changed, 24 insertions(+), 13 deletions(-) diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json index 302c706..931738c 100644 --- a/.vscode/c_cpp_properties.json +++ b/.vscode/c_cpp_properties.json @@ -8,8 +8,8 @@ { "name": "PlatformIO", "includePath": [ - "C:/Users/helgi/H26/ESP/Projects/esp_project1_h26/include", - "C:/Users/helgi/H26/ESP/Projects/esp_project1_h26/src", + "C:/Users/helgi/H26/ESP/Projects/ESP_Project2_H26/include", + "C:/Users/helgi/H26/ESP/Projects/ESP_Project2_H26/src", "C:/Users/helgi/.platformio/packages/framework-arduino-avr/cores/arduino", "C:/Users/helgi/.platformio/packages/framework-arduino-avr/variants/eightanaloginputs", "C:/Users/helgi/.platformio/packages/framework-arduino-avr/libraries/EEPROM/src", @@ -22,8 +22,8 @@ "browse": { "limitSymbolsToIncludedHeaders": true, "path": [ - "C:/Users/helgi/H26/ESP/Projects/esp_project1_h26/include", - "C:/Users/helgi/H26/ESP/Projects/esp_project1_h26/src", + "C:/Users/helgi/H26/ESP/Projects/ESP_Project2_H26/include", + "C:/Users/helgi/H26/ESP/Projects/ESP_Project2_H26/src", "C:/Users/helgi/.platformio/packages/framework-arduino-avr/cores/arduino", "C:/Users/helgi/.platformio/packages/framework-arduino-avr/variants/eightanaloginputs", "C:/Users/helgi/.platformio/packages/framework-arduino-avr/libraries/EEPROM/src", diff --git a/.vscode/launch.json b/.vscode/launch.json index e4dc3f7..120fa44 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -12,7 +12,7 @@ "type": "platformio-debug", "request": "launch", "name": "PIO Debug", - "executable": "C:/Users/helgi/H26/ESP/Projects/esp_project1_h26/.pio/build/nanoatmega328new/firmware.elf", + "executable": "C:/Users/helgi/H26/ESP/Projects/ESP_Project2_H26/.pio/build/nanoatmega328new/firmware.elf", "projectEnvName": "nanoatmega328new", "toolchainBinDir": "C:/Users/helgi/.platformio/packages/toolchain-atmelavr/bin", "internalConsoleOptions": "openOnSessionStart", @@ -25,7 +25,7 @@ "type": "platformio-debug", "request": "launch", "name": "PIO Debug (skip Pre-Debug)", - "executable": "C:/Users/helgi/H26/ESP/Projects/esp_project1_h26/.pio/build/nanoatmega328new/firmware.elf", + "executable": "C:/Users/helgi/H26/ESP/Projects/ESP_Project2_H26/.pio/build/nanoatmega328new/firmware.elf", "projectEnvName": "nanoatmega328new", "toolchainBinDir": "C:/Users/helgi/.platformio/packages/toolchain-atmelavr/bin", "internalConsoleOptions": "openOnSessionStart" @@ -34,7 +34,7 @@ "type": "platformio-debug", "request": "launch", "name": "PIO Debug (without uploading)", - "executable": "C:/Users/helgi/H26/ESP/Projects/esp_project1_h26/.pio/build/nanoatmega328new/firmware.elf", + "executable": "C:/Users/helgi/H26/ESP/Projects/ESP_Project2_H26/.pio/build/nanoatmega328new/firmware.elf", "projectEnvName": "nanoatmega328new", "toolchainBinDir": "C:/Users/helgi/.platformio/packages/toolchain-atmelavr/bin", "internalConsoleOptions": "openOnSessionStart", diff --git a/include/rotary_encoder_driver.h b/include/rotary_encoder_driver.h index 3fdcf4b..8355bb0 100644 --- a/include/rotary_encoder_driver.h +++ b/include/rotary_encoder_driver.h @@ -26,6 +26,7 @@ public: int position(); void update_delta(); float count_per_sec(); + float rpm(); }; #endif diff --git a/src/main.cpp b/src/main.cpp index fa6a791..7d42d43 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -16,8 +16,10 @@ int main() { while (true) { _delay_ms(50); - Serial.print("Counts per second: "); - Serial.println(encoder.count_per_sec()); + // Serial.print("Counts per second: "); + // Serial.println(encoder.count_per_sec()); + Serial.print("RPM: "); + Serial.println(encoder.rpm()); } return 0; } diff --git a/src/part1_first_working_main.cpp b/src/part1_first_working_main.cpp index 54faf56..f62fd70 100644 --- a/src/part1_first_working_main.cpp +++ b/src/part1_first_working_main.cpp @@ -1,4 +1,4 @@ -#include +/* #include #include #include @@ -47,4 +47,4 @@ int main() { return 0; -} +} */ diff --git a/src/part1part2.cpp b/src/part1part2.cpp index 6163131..47fa231 100644 --- a/src/part1part2.cpp +++ b/src/part1part2.cpp @@ -1,4 +1,4 @@ -#include +/* #include #include #include @@ -63,3 +63,4 @@ int main() { } return 0; } + */ \ No newline at end of file diff --git a/src/part3part1.cpp b/src/part3part1.cpp index 5fefa31..2419209 100644 --- a/src/part3part1.cpp +++ b/src/part3part1.cpp @@ -1,4 +1,4 @@ -#include +/* #include #include #include @@ -66,3 +66,4 @@ int main() { ISR(INT0_vect) { encoder.update(); } + */ \ No newline at end of file diff --git a/src/rotary_encoder_driver.cpp b/src/rotary_encoder_driver.cpp index f7bf86e..6dd2767 100644 --- a/src/rotary_encoder_driver.cpp +++ b/src/rotary_encoder_driver.cpp @@ -44,6 +44,10 @@ void RotaryEncoderDriver::update_delta() { float RotaryEncoderDriver::count_per_sec() { return delta / (256.0f * 0.0001f); +} + +float RotaryEncoderDriver::rpm() { + return (count_per_sec() * 60) / 1050.0; } diff --git a/src/timer_usec.cpp b/src/timer_usec.cpp index fe954ec..762359f 100644 --- a/src/timer_usec.cpp +++ b/src/timer_usec.cpp @@ -1,5 +1,7 @@ #include "timer_usec.h" +Timer_usec::Timer_usec() = default; + void Timer_usec::init(uint16_t period_us) { // for custom duty cycle duration in ms in part 1 TCCR1A = 0; TCCR1B = 0;