working terminal toggle of PWM

This commit is contained in:
Filipriec
2025-10-16 18:49:43 +02:00
parent d33d23b845
commit b27c29aa61
40 changed files with 374 additions and 3 deletions

56
hod4_uart_b/main.cpp Normal file
View File

@@ -0,0 +1,56 @@
// main.cpp
#include "mbed.h"
#define MAXIMUM_BUFFER_SIZE 32
PwmOut led_pwm(LED1);
DigitalIn button(PC_13);
static BufferedSerial serial_port(USBTX, USBRX);
int press_duty(int num_presses) {
if (num_presses > 10) {
num_presses = 0;
}
num_presses += 1;
return num_presses;
}
int main()
{
serial_port.set_baud(9600);
serial_port.set_format(
/* bits */ 8,
/* parity */ BufferedSerial::None,
/* stop bit */ 1
);
char buf[MAXIMUM_BUFFER_SIZE] = {0};
char msg[64];
int num_presses = 1;
float strieda = 0.0f;
led_pwm.period(0.02f);
led_pwm.write(0.50f);
while (1) {
float strieda = 0;
if (uint32_t num = serial_port.read(buf, sizeof(buf))) {
strieda = press_duty(num_presses)/10.0;
led_pwm.write(strieda);
int len = snprintf(msg, sizeof(msg), "strieda = %.3f\r\n", strieda);
// serial_port.write(buf, len);
// Echo the input back to the terminal.
serial_port.write(buf, strieda);
num_presses = press_duty(num_presses);
while (num == 0) {
ThisThread::sleep_for(10ms);
}
}
ThisThread::sleep_for(150ms);
}
}