N K
/
GaNtroller
a fork of priustroller
Fork of priustroller_current by
main.cpp@29:cb03760ba9ea, 2015-03-14 (annotated)
- 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?
User | Revision | Line number | New 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 | } |