Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: HIDScope_motor_ff QEI mbed FastPWM MODSERIAL
Fork of HID_scope_test by
Diff: main.cpp
- Revision:
- 5:36788b154e25
- Parent:
- 3:ce0f979f15fb
- Child:
- 6:ed11342ab079
diff -r 4f471e508986 -r 36788b154e25 main.cpp
--- a/main.cpp Fri Oct 07 09:15:29 2016 +0000
+++ b/main.cpp Fri Oct 07 12:06:16 2016 +0000
@@ -1,57 +1,38 @@
#include "mbed.h"
#include "HIDScope.h"
+#include "QEI.h"
#define SERIAL_BAUD 115200 // baud rate for serial communication
- Serial pc(USBTX,USBRX);
-
-// Define the HIDScope and Ticker object
-HIDScope scope(1);
-Ticker scopeTimer;
-
-// Read the analog input
-AnalogIn a0(A0);
-// AnalogIn pot(A0);
-
-// Set LED out
-DigitalOut led(LED_RED);
-volatile int i = 0;
+Serial pc(USBTX,USBRX);
-
-const float kTimeLedToggle = .5f; // period of blinking
-const int kLedOn=0; // Led on if 0
-volatile float pot = 0.0;
-
-// The data read and send function
-void scopeSend()
-{
- i=i+a0.read();
-
- if (i > 100){
- i=0;
- }
- // pot = a0.read();
- scope.set(0, i);
- scope.send();
- pc.printf("\r\n b \r\n");
- pc.printf("\r\n %f \r\n",i);
-}
+int countsCW = 0;
+int countsCCW = 0;
+int net_counts = 0;
+float degrees = 0.0;
+const float counts_per_rev = 4200.0;
+QEI EncoderCW(D12,D13,NC,32);
+QEI EncoderCCW(D13,D12,NC,32);
-void SwitchLed(){
- led = not led;
-}
-
+void PrintDegrees(){
+ pc.printf("\r\n Nett Pulses %i \r\n", net_counts);
+ pc.printf("\r\n Output degrees %f \r\n", degrees);
+ }
+
int main()
{
pc.baud(SERIAL_BAUD);
pc.printf("\r\n ***THERMONUCLEAR WARFARE COMMENCES*** \r\n");
- led = not kLedOn;
- // Create ticker for LED and attach
- Ticker tick_toggle_led;
- tick_toggle_led.attach(SwitchLed,kTimeLedToggle);
+ // Set ticker for serial communication of counts and degrees
+ Ticker PrintDegreesTicker;
+ PrintDegreesTicker.attach(&PrintDegrees,0.1);
- // Attach the data read and send function at 100 Hz
- scopeTimer.attach(&scopeSend, 0.01f);
-
- while(true);
+ // count the CW and CCW counts and calculate the output degrees
+ while(true){
+ countsCW = EncoderCW.getPulses();
+ countsCCW= EncoderCCW.getPulses();
+ net_counts=countsCW-countsCCW;
+ degrees=(net_counts*360.0)/counts_per_rev;
+
+ }
}
\ No newline at end of file
