URS - LV11 - HMI - 3. zadatak - Servo
Dependencies: mbed
main.cpp@2:71767bf8e14d, 2022-01-24 (annotated)
- Committer:
- dfraj
- Date:
- Mon Jan 24 09:25:18 2022 +0000
- Revision:
- 2:71767bf8e14d
- Parent:
- 1:a59853df510d
manji estetski ispravci
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
dfraj | 1:a59853df510d | 1 | #include "mbed.h" |
dfraj | 1:a59853df510d | 2 | |
dfraj | 0:0bb9abf8a951 | 3 | Serial nextion(p28, p27); |
dfraj | 0:0bb9abf8a951 | 4 | PwmOut servo(p21); |
dfraj | 1:a59853df510d | 5 | |
dfraj | 0:0bb9abf8a951 | 6 | char buffer[20]; |
dfraj | 0:0bb9abf8a951 | 7 | int znak = 0; |
dfraj | 1:a59853df510d | 8 | |
dfraj | 0:0bb9abf8a951 | 9 | uint8_t pozicija = 0; |
dfraj | 1:a59853df510d | 10 | |
dfraj | 0:0bb9abf8a951 | 11 | void Rx_interrupt(void){ |
dfraj | 0:0bb9abf8a951 | 12 | char c; |
dfraj | 1:a59853df510d | 13 | |
dfraj | 0:0bb9abf8a951 | 14 | if(nextion.readable()) { |
dfraj | 0:0bb9abf8a951 | 15 | c = nextion.getc(); |
dfraj | 0:0bb9abf8a951 | 16 | buffer[znak] = c; |
dfraj | 0:0bb9abf8a951 | 17 | znak++; |
dfraj | 1:a59853df510d | 18 | if ((znak >= 2) && (buffer[znak-1] == 0x0d)) { |
dfraj | 0:0bb9abf8a951 | 19 | pozicija = 0; |
dfraj | 0:0bb9abf8a951 | 20 | for(int i = 0; i < 3; i++) { |
dfraj | 1:a59853df510d | 21 | if(buffer[i] == 0x0d) break; |
dfraj | 0:0bb9abf8a951 | 22 | pozicija = pozicija * 10 + (buffer[i] - 48); |
dfraj | 0:0bb9abf8a951 | 23 | } |
dfraj | 0:0bb9abf8a951 | 24 | servo.pulsewidth_us(5.56*pozicija+1000); |
dfraj | 0:0bb9abf8a951 | 25 | memset(buffer,0,strlen(buffer)); |
dfraj | 0:0bb9abf8a951 | 26 | znak = 0; |
dfraj | 0:0bb9abf8a951 | 27 | } |
dfraj | 0:0bb9abf8a951 | 28 | } |
dfraj | 0:0bb9abf8a951 | 29 | } |
dfraj | 1:a59853df510d | 30 | |
dfraj | 0:0bb9abf8a951 | 31 | int main(){ |
dfraj | 0:0bb9abf8a951 | 32 | nextion .attach(&Rx_interrupt, Serial::RxIrq); |
dfraj | 0:0bb9abf8a951 | 33 | servo.period(0.02); |
dfraj | 0:0bb9abf8a951 | 34 | while (1) { |
dfraj | 0:0bb9abf8a951 | 35 | wait(1.0); |
dfraj | 0:0bb9abf8a951 | 36 | } |
dfraj | 0:0bb9abf8a951 | 37 | } |