Prius IPM controller

Dependencies:   mbed

Fork of analoghalls5_5 by N K

Committer:
nki
Date:
Sat Mar 14 23:42:46 2015 +0000
Revision:
29:cb03760ba9ea
Parent:
27:846c08fb3697
Child:
30:2b6d426f3bfc
Cautionary commit, possibly works

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bwang 0:54cf32d35f4d 1 #include "includes.h"
bwang 11:dccbaa9274c5 2 #include "transforms.h"
bwang 11:dccbaa9274c5 3 #include "filters.h"
bwang 11:dccbaa9274c5 4 #include "context.h"
bwang 1:1f58bdcf2956 5 #include "core.h"
bwang 1:1f58bdcf2956 6 #include "meta.h"
bwang 11:dccbaa9274c5 7 #include "sensors.h"
bwang 11:dccbaa9274c5 8 #include "callbacks.h"
nki 4:fdadf4a3577a 9
nki 29:cb03760ba9ea 10 unsigned short global_ib, global_ic;
nki 29:cb03760ba9ea 11 unsigned char channel_ib, channel_ic;
nki 27:846c08fb3697 12
nki 27:846c08fb3697 13 extern "C" void TIM2_Derpy_Handler()
nki 27:846c08fb3697 14 {
nki 29:cb03760ba9ea 15 TIM2->SR &= ~1;
nki 29:cb03760ba9ea 16
nki 29:cb03760ba9ea 17 TIM2->DIER = 0x0000;
nki 29:cb03760ba9ea 18 ADC1->SQR3 = channel_ib;
nki 29:cb03760ba9ea 19 ADC1->CR2 |= ADC_CR2_SWSTART;
nki 29:cb03760ba9ea 20 while ((ADC1->SR & 2) == 0){}
nki 29:cb03760ba9ea 21 global_ib = ADC1->DR;
nki 29:cb03760ba9ea 22
nki 29:cb03760ba9ea 23 ADC1->SQR3 = channel_ic;
nki 29:cb03760ba9ea 24 ADC1->CR2 |= ADC_CR2_SWSTART;
nki 29:cb03760ba9ea 25 while ((ADC1->SR & 2) == 0){}
nki 29:cb03760ba9ea 26 TIM2->DIER = 0x0001;
nki 29:cb03760ba9ea 27 global_ic = ADC1->DR;
nki 27:846c08fb3697 28 }
nki 27:846c08fb3697 29
bwang 11:dccbaa9274c5 30 int main() {
nki 27:846c08fb3697 31 NVIC_EnableIRQ(TIM2_IRQn);
nki 29:cb03760ba9ea 32 NVIC_SetVector(TIM2_IRQn, (uint32_t)TIM2_Derpy_Handler);
nki 29:cb03760ba9ea 33
bwang 11:dccbaa9274c5 34 Context *context = new Context();
bwang 11:dccbaa9274c5 35 context->ConfigureOutputs(D6, D13, D3, D8);
nki 29:cb03760ba9ea 36 context->ConfigurePositionSensor(A4, A5, 0.249f, 0.497f, 0.231f, 0.499f, 205.0f);
nki 27:846c08fb3697 37 context->ConfigureIdPidController(0.0000f, 0.0f, 0.0f, 5.0f, -5.0f);
nki 27:846c08fb3697 38 context->ConfigureIqPidController(0.0001f, 0.1f, 0.0f, 5.0f, -5.0f);
bwang 11:dccbaa9274c5 39 context->ConfigureThrottle(A0, 0.8f, 3.0f);
nki 29:cb03760ba9ea 40 context->ConfigureCurrentSensors(A1, A2, 0.01f, 0.7f); // I guess this configures the ADCs or something
bwang 24:f1ff9c7256b5 41 context->ConfigureReference(5.0f);
bwang 24:f1ff9c7256b5 42 context->ConfigureDebugger(2, 1000);
bwang 11:dccbaa9274c5 43 context->AttachCallBack(&fast, 5000);
bwang 11:dccbaa9274c5 44 context->AttachCallBack(&slow, 10);
bwang 11:dccbaa9274c5 45 context->AttachCallBack(&debug, 10);
bwang 24:f1ff9c7256b5 46 context->AttachCallBack(&log, 500);
nki 29:cb03760ba9ea 47 context->InitData();
bwang 11:dccbaa9274c5 48 context->Start();
bwang 0:54cf32d35f4d 49 }