N K
/
analoghalls_part_4
yup
Fork of analoghalls by
Diff: util.cpp
- Revision:
- 2:b5c19d4eddcc
- Parent:
- 1:70eed554399b
- Child:
- 3:86ccde39f61b
diff -r 70eed554399b -r b5c19d4eddcc util.cpp --- a/util.cpp Sat Feb 21 21:39:33 2015 +0000 +++ b/util.cpp Mon Feb 23 19:42:50 2015 +0000 @@ -4,16 +4,48 @@ #include <stdlib.h> void initTimers() { +#ifdef __USE_THROTTLE dtc_upd_ticker.attach_us(&dtc_update, 200); throttle_upd_ticker.attach_us(&throttle_update, 100000); - - pha.period_us(200); - phb.period_us(200); - phc.period_us(200); +#endif + +#ifndef __NATIVE + pha.period_us(100); + phb.period_us(100); + phc.period_us(100); pha = 0; phb = 1.0f; phc = 0; +#endif + TIM2->CR1 &= ~(TIM_CR1_CEN); + TIM2->CR1 |= TIM_CR1_CMS; + +#ifdef __NATIVE + TIM2->CCMR1 |= TIM_CCMR1_OC1M_2; + TIM2->CCMR1 |= TIM_CCMR1_OC1M_1; + TIM2->CCMR1 |= TIM_CCMR1_OC2M_2; + TIM2->CCMR1 |= TIM_CCMR1_OC2M_1; + TIM2->CCMR2 |= TIM_CCMR2_OC3M_2; + TIM2->CCMR2 |= TIM_CCMR2_OC3M_1; + + TIM2->CCER &= ~TIM_CCER_CC1P; + TIM2->CCER &= ~TIM_CCER_CC2P; + TIM2->CCER &= ~TIM_CCER_CC3P; + + TIM2->CCER |= TIM_CCER_CC1E; + TIM2->CCER |= TIM_CCER_CC2E; + TIM2->CCER |= TIM_CCER_CC3E; + + TIM2->PSC = 0; + + TIM2->ARR = 10000; + TIM2->CCR1 = 0; + TIM2->CCR2 = 0; + TIM2->CCR3 = 0; +#endif + + TIM2->CR1 |= TIM_CR1_CEN; } void initPins() { @@ -23,9 +55,10 @@ void initData() { motor = (Motor*) malloc(sizeof(Motor)); motor->sensor_phase = SENSOR_PHASE; - motor->halt = 1; - motor->angle =0; + motor->halt = 0; + motor->angle = 0; +#ifdef __USE_THROTTLE float throttle_raw; do { throttle_raw = throttle; @@ -39,4 +72,31 @@ } else { motor->halt = 0; } +#else + motor->throttle = 1.0f; +#endif +} + +void setDtcA(float f) { +#ifdef __NATIVE + TIM2->CCR3 = (uint16_t) (f * 10000.0f); +#else + pha = f; +#endif +} + +void setDtcB(float f) { +#ifdef __NATIVE + TIM2->CCR1 = (uint16_t) (f * 10000.0f); +#else + phb = f; +#endif +} + +void setDtcC(float f) { +#ifdef __NATIVE + TIM2->CCR2 = (uint16_t) (f * 10000.0f); +#else + phc = f; +#endif } \ No newline at end of file