
URS - LV11 - HMI - 3. zadatak - Servo
Dependencies: mbed
Diff: main.cpp
- Revision:
- 0:0bb9abf8a951
- Child:
- 1:a59853df510d
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Wed Jan 19 14:42:24 2022 +0000 @@ -0,0 +1,39 @@ +#include "mbed.h" + +Serial nextion(p28, p27); +PwmOut servo(p21); + +char buffer[20]; +int znak = 0; + +uint8_t pozicija = 0; + +void Rx_interrupt(void){ + char c; + + if(nextion.readable()) { + c = nextion.getc(); + buffer[znak] = c; + znak++; + + if ((znak >= 3) && (buffer[znak-1] == 0xff) && (buffer[znak-2] == 0xff) && (buffer[znak-3] == 0xff)) { + buffer[znak-3] = '\0'; + pozicija = 0; + for(int i = 0; i < 3; i++) { + if(buffer[i] == '\0') break; + pozicija = pozicija * 10 + (buffer[i] - 48); + } + servo.pulsewidth_us(5.56*pozicija+1000); + memset(buffer,0,strlen(buffer)); + znak = 0; + } + } +} + +int main(){ + nextion .attach(&Rx_interrupt, Serial::RxIrq); + servo.period(0.02); + while (1) { + wait(1.0); + } +} \ No newline at end of file