FRDM_wahadlo_torsyjne

Dependencies:   mbed BufferedSerial

Fork of FRDM_wahadlo_torsyjne by Wojciech M

Revision:
11:b3bd4b86f914
Parent:
10:497e9a0da7d6
Child:
12:103f3fbeab78
--- a/main.cpp	Thu Jun 12 17:30:39 2014 +0000
+++ b/main.cpp	Sat Jun 14 11:15:33 2014 +0000
@@ -2,49 +2,35 @@
 #include "TSISensor.h"
 #include "Timer.h"
 
-Ticker triger1; 
-Ticker triger2;
+Ticker triger1;                                             //przerwanie sterowania silnikiem
+Ticker triger2;                                             //przerwanie wysyłania danych
+TSISensor tsi;                                              //sensor dotykowy
 
-int motor_PWM_period_us = 200;  //okres sygnału PWM (w mikrosekundach) wyzwalającego kolejny krok silnika
-int i_start = 0;
-int EXC_angle = 3200/4;       //360 stopni to 3200 krok. przy mkrok. = 1.8/16
-float switch_dir_time=(float)((float)EXC_angle/500.0)*((float)motor_PWM_period_us/1000.0);
-int DIR_switched = 0;
+int motor_PWM_period_us = 200;                              //okres sygnału PWM (w mikrosekundach) wyzwalającego kolejny krok silnika
+int EXC_angle = 3200/4;                                     //360 stopni to 3200 krok. przy mkrok. = 1.8/16
+float switch_dir_time=(float)((float)EXC_angle/500.0)*((float)motor_PWM_period_us/1000.0);  
+                                                            //czas po któym następuje zmiana obrotów (żeby nie liczyć po każdej zmianie kierunku w pętli)
+int DIR_switched = 0;                                       
 int SWITCH_DIR = EXC_angle;
     
-DigitalOut direction(PTC7);     //zmiana wartości logicznej na wyjściu PTC7 powoduje zmianę kieruneku obrotów
-DigitalOut myled(LED_GREEN);    //dioda zielona sygnalizuje zmianę kierunku obrotów
-
-AnalogIn analog_IN_0(PTB0);     //odczyt napięć z wejść analogowych (kąty obrotu)
-AnalogIn analog_IN_1(PTB1);
-
-PwmOut motor(PTA5);             //sygnał PWM do sterowania sterownikiem silnika krokowego
-Serial pc(USBTX,USBRX);         //komunikacja z PC
-
-TSISensor tsi;
+DigitalOut direction(PTC7);                                 //zmiana wartości logicznej na wyjściu PTC7 powoduje zmianę kieruneku obrotów
+DigitalOut myled(LED_GREEN);                                //dioda zielona sygnalizuje zmianę kierunku obrotów
+AnalogIn analog_IN_0(PTB0);                                 //odczyt napięcia z wejścia analogowego 0 (kąt obrotu kolumny)
+AnalogIn analog_IN_1(PTB1);                                 //odczyt napięcia z wejścia analogowego 1 (kąt obrotu ciała swobodnego)
+PwmOut motor(PTA5);                                         //sygnał PWM do sterowania sterownikiem silnika krokowego
+Serial pc(USBTX,USBRX);                                     //komunikacja z PC
 
 Timer timer;
 
 float get_voltage_in(AnalogIn analog_in, float zero_analog_in) {
-    return (analog_in.read() - zero_analog_in) * 2.9035;       // przesunięcie do zera i skalowanie napiecia do zakresu
+    return (analog_in.read() - zero_analog_in) * 2.9035;    //przesunięcie do zera i skalowanie napiecia do zakresu
 }
 void task1() { 
-    //i_start += 1;1
-    //if (i_start == SWITCH_DIR) {
-      //  i_start = 0;
         myled = !myled;
         direction = !direction;
-        /*if (DIR_switched == 0) {
-            if (SWITCH_DIR == EXC_angle) {
-                SWITCH_DIR = 2*EXC_angle;
-                DIR_switched = 1;
-            }
-        }*/
-    //}
 } 
 
 void task2() { 
-    //wyslij dane
     int zero_analog_IN_0 = analog_IN_0.read();
     int zero_analog_IN_1 = analog_IN_1.read();
 
@@ -54,32 +40,16 @@
 
 int main() {    
     motor.period_us(motor_PWM_period_us);
-    motor = 0.0;    // wypełnienie PWM sygnału CLK
-    pc.baud(115200); // największa szybkość standardowa, jaką można zadać to 19200
-   
-    wait(5);                   //czas na ustawienia początkowe 15 sek.
-    
-    triger2.attach(&task2, 0.02); //1/1000000); 
-    
-    
-    motor = 0.5;
-    
-    //wait(switch_dir_time/2);      //tu jest teoretyczna ćwiartka obrotu
-    //direction = !direction;
-    
-    triger1.attach(&task1, switch_dir_time); //motor_PWM_period_us/1000000); 
-     
+    motor = 0.5;                                // wypełnienie PWM sygnału CLK
+    pc.baud(115200);                            // największa szybkość standardowa, jaką można zadać to 19200  
+                                                //dla 115200 mamy mniejsze czasy wysyłania (możemy wysyłać częściej- co 10ms
+    //int zero_analog_IN_0 = analog_IN_0.read();
+    //int zero_analog_IN_1 = analog_IN_1.read();
+    wait(5);                                    //czas na ustawienia początkowe 5 sek.   
+    triger2.attach(&task2, 0.02);
+    triger1.attach(&task1, switch_dir_time);  
 
     while (true) {
-      //  t0 = timer.read_us();
-        //if (tsi.readPercentage() < 0.5)
-    
-        //else motor = 0.0; // silnik zatrzyma się po dotknięciu prawej strony potencjometru
         wait(10);     // "nic nierobienie, żeby się nie zawiesił"  
-        
-        //t1 = timer.read_us();
-        //t0_t1 = t1 - t0;
-        //wait_us(motor_PWM_period_us);
     }
-}
-
+}
\ No newline at end of file