Prius IPM controller

Dependencies:   mbed

Fork of analoghalls5_5 by N K

Revision:
31:86b87913d8e1
Parent:
30:2b6d426f3bfc
Child:
33:e7b132029bae
--- a/context.cpp	Sun Mar 15 01:45:22 2015 +0000
+++ b/context.cpp	Sun Mar 15 02:21:32 2015 +0000
@@ -115,30 +115,30 @@
     filter_d = new MeanFilter(_filter_strength);
     filter_q = new MeanFilter(_filter_strength);
     
-    wait_us(100000);
+    wait(1);
     
-    float ib_mean, ic_mean;
-    TIM2->DIER = 0x0000;
-    for (int i = 0; i < 1000; i++) {
-        TIM2->SR &= ~1;
-        ADC1->SQR1 &= ~ADC_SQR1_L;
+    double ib_mean, ic_mean;
+    TIM2->DIER = 0;
+    for (int i = 0; i < 100; i++) {
         ADC1->SQR3 = 0;
         ADC1->SQR3 |= channel_ib;
         ADC1->CR2 |= ADC_CR2_SWSTART;
         while ((ADC1->SR & 2) == 0){}
-        ib_mean += (float) ADC1->DR / 4095.0f;
+        ib_mean += (float) ADC1->DR;
         
         ADC1->SQR3 = 0;
         ADC1->SQR3 |= channel_ic;
         ADC1->CR2 |= ADC_CR2_SWSTART;
         while ((ADC1->SR & 2) == 0){}
-        ic_mean += (float) ADC1->DR / 4095.0f;
+        ic_mean += (float) ADC1->DR;
     }
-    TIM2->DIER = 0x0001;
-    ib_mean /= 1000.0f;
-    ic_mean /= 1000.0f;
+    TIM2->DIER = 1;
+    ib_mean /= 100.0f;
+    ib_mean /= 4095.0f;
+    ic_mean /= 100.0f;
+    ic_mean /= 4095.0f;
     
-    motor->InitSensors(ib_mean, ic_mean, _scale);
+    motor->InitSensors((float) ib_mean, (float) ic_mean, _scale);
     
     debugger = new BufferedDebugger(this, _debugger_channels, _debugger_size);
 }