working terminal toggle of PWM
This commit is contained in:
56
hod4_uart_b/main.cpp
Normal file
56
hod4_uart_b/main.cpp
Normal 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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user