Test for MAxon EASY 16 Absolute encoder
Revision 0:c9716d965276, committed 2018-01-10
- Comitter:
- SGLaws
- Date:
- Wed Jan 10 11:31:04 2018 +0000
- Commit message:
- Encoder Test MAXON EASY 16 Absolute
Changed in this revision
| 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/main.cpp Wed Jan 10 11:31:04 2018 +0000
@@ -0,0 +1,51 @@
+#include "mbed.h"
+Serial pc(USBTX, USBRX); // tx, rx
+DigitalOut led1(LED1);
+DigitalOut led2(LED2);
+DigitalOut led3(LED3);
+DigitalIn butt = (USER_BUTTON);
+
+DigitalOut CLK(PA_3);
+DigitalIn DATA(PD_7);
+
+int readSSI(DigitalOut CLK, DigitalIn DATA){
+ int i,tmp,numBits = 13;
+ int angle = 0b00000000000000; //Initialise 13 bit 0 binary
+ CLK=1; //Bring CLK high
+ for(i =0;i<numBits;i++){
+ CLK = 0;
+ wait_us(10);
+ CLK =1;
+ wait_us(10); //CLK cycle
+ tmp = DATA.read();
+ angle = angle<<1; //Shift previous read bits
+ angle += tmp; //Add new bit
+ }
+ wait_us(16); //Timeout 16us from datasheet
+ CLK =0;
+ return angle;
+}
+
+
+int angle;
+
+int main() {
+ while(butt == 0){ //Startup readings
+ led1 =!led1;
+ led2=!led2;
+ led3=!led3;
+ wait(0.1f);
+ }
+ wait(0.5f);
+ printf("\r\n Start");
+
+ while(1){
+ printf("\r\n");
+ CLK =0;
+ angle = readSSI(CLK, DATA);
+ printf("\r\n%d\r\n",angle);
+ wait(.5f);
+ }
+}
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Wed Jan 10 11:31:04 2018 +0000 @@ -0,0 +1,1 @@ +https://os.mbed.com/users/mbed_official/code/mbed/builds/7130f322cb7e \ No newline at end of file