WIP: keep local changes before merging remote
This commit is contained in:
@@ -2,58 +2,31 @@
|
||||
|
||||
#include "mbed.h"
|
||||
|
||||
#define MAXIMUM_BUFFER_SIZE 32
|
||||
DigitalOut led(LED1);
|
||||
Ticker ticker;
|
||||
|
||||
class Led {
|
||||
private:
|
||||
DigitalOut led;
|
||||
Ticker ticker;
|
||||
float period;
|
||||
|
||||
public:
|
||||
Led(PinName pin) : led(pin), period(1.0) {
|
||||
led = 0;
|
||||
}
|
||||
|
||||
void setBlinkPeriod(float period) {
|
||||
this->period = period;
|
||||
ticker.detach();
|
||||
if (period > 0) {
|
||||
auto us = std::chrono::microseconds(static_cast<long long>(period * 1000000));
|
||||
ticker.attach(callback(this, &Led::tickerHandler), us);
|
||||
}
|
||||
}
|
||||
|
||||
void tickerHandler() {
|
||||
led = !led;
|
||||
}
|
||||
};
|
||||
void toggle_led() { led = !led; }
|
||||
|
||||
int main() {
|
||||
Led myLed(LED1);
|
||||
static BufferedSerial serial_port(USBTX, USBRX);
|
||||
|
||||
serial_port.set_baud(9600);
|
||||
serial_port.set_format(8, BufferedSerial::None, 1);
|
||||
|
||||
char buf[MAXIMUM_BUFFER_SIZE] = {0};
|
||||
char msg[] = "Zadaj cislicu 0-9:\r\n";
|
||||
serial_port.write(msg, sizeof(msg));
|
||||
|
||||
while(1) {
|
||||
if (uint32_t num = serial_port.read(buf, sizeof(buf))) {
|
||||
BufferedSerial serial(USBTX, USBRX);
|
||||
serial.set_baud(9600);
|
||||
|
||||
char buf[32];
|
||||
char msg[] = "Zadajte cislicu 1-9:\r\n";
|
||||
serial.write(msg, sizeof(msg));
|
||||
|
||||
// Use explicit chrono type for full compatibility
|
||||
ticker.attach(&toggle_led, std::chrono::seconds(1));
|
||||
|
||||
while (1) {
|
||||
if (uint32_t num = serial.read(buf, sizeof(buf))) {
|
||||
char c = buf[0];
|
||||
|
||||
if (c >= '0' && c <= '9') {
|
||||
int digit = c - '0';
|
||||
float newPeriod = (float)digit;
|
||||
|
||||
myLed.setBlinkPeriod(newPeriod);
|
||||
|
||||
serial_port.write(buf, num);
|
||||
if (c >= '1' && c <= '9') {
|
||||
int period = c - '0';
|
||||
ticker.detach();
|
||||
ticker.attach(&toggle_led, std::chrono::seconds(period));
|
||||
}
|
||||
}
|
||||
|
||||
ThisThread::sleep_for(150ms);
|
||||
ThisThread::sleep_for(100ms);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user