Line

Dependencies:   BertlLib mbed

Files at this revision

API Documentation at this revision

Comitter:
markus2410
Date:
Tue Apr 14 15:54:47 2015 +0000
Child:
1:2e48f1a47d07
Commit message:
lo

Changed in this revision

BertlLib.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/BertlLib.lib	Tue Apr 14 15:54:47 2015 +0000
@@ -0,0 +1,1 @@
+http://developer.mbed.org/users/hollegha2/code/BertlLib/#78243412d2b3
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Tue Apr 14 15:54:47 2015 +0000
@@ -0,0 +1,116 @@
+#include "mbed.h"
+#include "Serial_HL.h"
+#include "Bertl14.h"
+#include "BertlObjects.h"
+ 
+SerialBLK pc(USBTX, USBRX);
+SvProtocol ua0(&pc);
+AnalogInHL ls1(p18), ls2(p16), ls3(p19), ls4(p17);
+
+void CommandHandler();
+void followmaster();
+void blinkvorne();
+void blinkhinten();
+void messen();
+void rechts();
+void links();
+void gerade();
+
+Timer t1;
+unsigned int led=1;
+
+
+int main(void)
+{
+  InitBertl();
+    pex.useISR=0; leds=9;
+    pex.ClearLeds();
+  pc.format(8,SerialBLK::None,1); pc.baud(500000); // 115200
+  
+  ua0.SvMessage("MotorTest1"); // Meldung zum PC senden
+  
+  Timer stw; stw.start();
+  while(1)
+  { 
+    
+        
+        messen(); 
+
+     CommandHandler();
+    if( (stw.read_ms()>10) ) // 100Hz
+    { // dieser Teil wird mit 100Hz aufgerufen
+      stw.reset();
+      if( ua0.acqON ) {
+        // nur wenn vom PC aus das Senden eingeschaltet wurde
+        // wird auch etwas gesendet
+        ua0.WriteSvI16(1, mL.encCnt);
+        ua0.WriteSvI16(2, mR.encCnt);
+        ua0.WriteSvI16(3, us.distCM*100.0);
+        us.StartMeas(); // for next cycle
+      }
+    }
+  }
+  return 1;
+}
+
+void CommandHandler()
+{
+  uint8_t cmd;
+  // Fragen ob überhaupt etwas im RX-Reg steht
+  if( !pc.IsDataAvail() )
+    return;
+  // wenn etwas im RX-Reg steht
+    // Kommando lesen
+    cmd = ua0.GetCommand();
+  
+  if( cmd==2 ) // Encoder auf 0 setzen
+    {
+    mL.encCnt=0; mR.encCnt=0;
+    ua0.SvMessage("Clear Encoder");
+  }
+  if( cmd==3 ) // bei beiden Motoren Gas geben
+  {
+    mL.SetPow(ua0.ReadF());
+    mR.SetPow(ua0.ReadF());
+    ua0.SvMessage("Set Power");
+  }
+}
+
+
+
+
+
+
+void messen()
+{
+ls1.Read();
+ls2.Read();
+ls3.Read();
+ls4.Read();
+
+if (ls1.Read() > 800)
+rechts();
+
+else if (ls4.Read()> 800)
+links();
+
+else
+gerade();
+}
+
+
+void links()
+{
+    mL.SetPow(0.3);
+    mR.SetPow(0.0); 
+}
+void rechts()
+{
+    mL.SetPow(0.0);
+    mR.SetPow(0.3); 
+}
+void gerade()
+{
+    mL.SetPow(0.3);
+    mR.SetPow(0.3); 
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Tue Apr 14 15:54:47 2015 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/487b796308b0
\ No newline at end of file