Nextion - HMI - 1. zadatak

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
dfraj
Date:
Mon Jan 24 09:05:33 2022 +0000
Parent:
2:d4209a7955c3
Child:
4:11d61285b2f0
Commit message:
zamjenjena logika citanja podataka

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/main.cpp	Mon Jan 24 08:26:18 2022 +0000
+++ b/main.cpp	Mon Jan 24 09:05:33 2022 +0000
@@ -1,32 +1,38 @@
-#include "mbed.h"
+#include "mbed.h" 
+ 
+Serial nextion(p28, p27); 
+PwmOut servo(p21);            
  
-Serial nextion(p28, p27);  
-DigitalOut myled1(LED2);
-DigitalOut myled2(LED4);
+char buffer[20]; 
+int znak = 0; 
  
-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)) {
-            if (buffer[0] == 0x43){
-                myled1 = !myled1;
-            }else if (buffer[0] == 0x5A){
-                myled2 = buffer[1] - 48;
+ 
+        if ((znak >= 2) && (buffer[znak-1] == 0x0d)) {  
+            pozicija = 0;
+            for(int i = 0; i < 3; i++) {
+                if(buffer[i] == 0x0d) break;
+                pozicija = pozicija * 10 + (buffer[i] - 48);
             }
-            memset(buffer,0,strlen(buffer)); 
-            znak = 0; 
+            servo.pulsewidth_us(5.56*pozicija+1000);
+            memset(buffer,0,strlen(buffer));
+            znak = 0;
         }
     }
-}
+} 
  
 int main(){
-    nextion.attach(&Rx_interrupt, Serial::RxIrq);
+    nextion .attach(&Rx_interrupt, Serial::RxIrq); 
+    servo.period(0.02);    
     while (1) {
+        wait(1.0);     
     }
 }
\ No newline at end of file