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);
}
}