flipflop test

Dependencies:   mbed

Revision:
0:db474e15b188
Child:
1:b82afb355b62
diff -r 000000000000 -r db474e15b188 main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Wed Jun 06 09:01:55 2018 +0000
@@ -0,0 +1,139 @@
+/* mbed software with debugger
+ *
+ * author : Mike van Doorn
+ *
+ */
+
+#include "mbed.h"
+#define slaveAdress     0xFF
+#define functioncode    0x03
+
+Serial pc(USBTX, USBRX);
+Serial bus(PA_9,PA_10);
+DigitalOut led1(LED1);
+DigitalOut activateSN65(PA_8);
+int Read(void); 
+
+int main()
+{
+    int count = 0 ;
+    int data = 0 ; 
+    int buffer = 0 ;
+    int value = 0 ;
+    activateSN65 = 0 ;
+    pc.baud(115200);
+    wait(1);
+    
+    while(1)
+    {
+        if ( count == 10 )
+        {
+            count = 0 ;     
+        }
+        activateSN65 = 0 ;
+        if(bus.readable())
+        { 
+            data = bus.getc();
+            pc.putc(data);
+            if ( data == 0x07 && buffer == 0) 
+            {
+               buffer = 1;    
+            }
+            else if ( data == 0x02 && buffer == 1)
+            {
+                buffer = 2; 
+            } 
+            else if ( buffer == 2 || buffer == 3 )
+            {
+               if ( buffer == 2 ) 
+               {
+                   value = data ;  
+                   value = value << 8  ;
+                   buffer = 3 ;
+               }
+               else
+               {
+                   value = value + data ;
+                   //if ( value > 0 && value < 0xFFFF )
+                   //{
+                       buffer = 5 ; 
+                   //}    
+               }                      
+            }
+            else if ( buffer == 5 )
+            {
+                // crc check 
+                buffer = 6 ;     
+            }
+            else if ( buffer == 6 )
+            {
+                // crc check 
+                buffer = 7 ;    
+            }    
+            else 
+            {
+                buffer = 0 ;     
+            }
+              
+        }
+        if ( buffer == 7 )
+        {
+            if ( count < 5 )
+            {
+                led1 = !led1; 
+                wait_ms(3);
+                activateSN65 = 1 ; 
+                //adress
+                bus.putc(0x07);
+                wait_us(900);
+                //send function code
+                bus.putc(0x02);
+                wait_us(900);
+                // Byte count
+                bus.putc(0x01);
+                wait_us(900); 
+                //data
+                bus.putc(0x01);
+                wait_us(900);
+                // crc check 
+                bus.putc(0x60);
+                wait_us(900);
+                bus.putc(0xC0);
+                buffer = 0 ; 
+                wait_ms(2) ;
+                activateSN65 = 0 ; 
+                count++;
+            }
+            else 
+            {
+                led1 = !led1; 
+                wait_ms(3);
+                activateSN65 = 1 ; 
+                //adress
+                bus.putc(0x07);
+                wait_us(900);
+                //send function code
+                bus.putc(0x02);
+                wait_us(900);
+                // Byte count
+                bus.putc(0x02);
+                wait_us(900); 
+                //data
+                bus.putc(0x02);
+                wait_us(900);
+                bus.putc(0x02);
+                wait_us(900);
+                // crc check 
+                bus.putc(0xB1);
+                wait_us(900);
+                bus.putc(0x19);
+                buffer = 0 ; 
+                wait_ms(2) ;
+                activateSN65 = 0 ; 
+                count++;
+            }
+        }
+            
+    }
+
+}
\ No newline at end of file