Mesure pos
Dependencies: C12832 SWSPI mbed
Fork of IonScan_DO_SPI by
Diff: main.cpp
- Revision:
- 1:45b74f1f9c47
- Parent:
- 0:c8c1409ea335
diff -r c8c1409ea335 -r 45b74f1f9c47 main.cpp --- a/main.cpp Wed Apr 11 14:53:34 2018 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,96 +0,0 @@ -#include "mbed.h" -#include "C12832.h" -#include "SWSPI.h" -#include <cmath> - -SWSPI spi(PC_4,PC_12,PA_13); // MOSI"bidon" / MISO /CLK - -C12832 lcd(D11, D13, D12, D7, D10); - -DigitalOut CS(PA_14); - -DigitalIn DO(PC_12); - -InterruptIn index(PA_15); - -double cpt_fall=0; - -float distance=0,cpt_rise=0,compteur_index=0; - -short cpt=0; - -long x=0,x1=0,pas,RAZ = 0,pos_finale=0, pos_initiale=0; - - - -void pressed() -{ - if (x >= 3000) { - cpt_rise++; - } - if (x <= 1000) { - cpt_rise--; - } - -} - -void released() -{ - cpt_fall++; -} - -int main () -{ - spi.format(18,3); ////////////////////////////////////// - spi.frequency(100000); // Initialisation SPI software - CS=1; - lcd.cls();///////////////////////////////////////////// - - wait_ms(100);/////////////////////////////////////////// - CS=0; - wait_us(50); - - pos_initiale=spi.write(0); //Determination pos_initialetion initiale - - wait_us(50); - CS=1; - pos_initiale = pos_initiale>>5;///////////////////////////////////////////// - - pos_finale=x-pos_initiale; - - //pas = (abs(x-x1))%4095; - distance=((pos_finale*(0.000488)+(cpt_rise*2))); - - while(1) { - pos_finale=x-pos_initiale; - - index.fall(&pressed); - index.rise(&released); - - wait_ms(100); - CS=0; - wait_us(50); - - x1=x; - x=spi.write(0); - - //pas = (abs(x-x1))%4095; - distance=((pos_finale*(0.000488)+(cpt_rise*2))); // Calcul de la distance parcouru depuis le 0 en mm - - wait_us(50); - CS=1; - x = x>>5; - - lcd.locate(0,3); - lcd.printf("DIST= %.5f",distance); - lcd.locate(0,14); - lcd.printf("POS= %5ld", x); - - /* - lcd.locate(0,3); - lcd.printf("pos_initiale= %ld",pos_initiale); - lcd.locate(0,14); - lcd.printf("POS= %5ld", x); - */ - } -} \ No newline at end of file