URS - LV11 - HMI - 3. zadatak - Servo
Dependencies: mbed
main.cpp
- Committer:
- dfraj
- Date:
- 2022-01-19
- Revision:
- 0:0bb9abf8a951
- Child:
- 1:a59853df510d
File content as of revision 0:0bb9abf8a951:
#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); } }