void InitAll(void) { RCC->APB2ENR |= RCC_APB2ENR_IOPBEN; //Clock port GPIOB->CRL &= ~(GPIO_CRL_CNF0 | GPIO_CRL_CNF1); GPIOB->CRL |= (GPIO_CRL_MODE0_0 | GPIO_CRL_MODE1_0); InitRCC(); //Разрешаем прерывание если кварц плохо init_bad_clock_inter(); delay_timer_ms_init(); lcd_init(); InitUSART(9600); InitUSART2(9600); usart_interrupt_init(); usart2_interrupt_init(); init_keyboard(); //timer2_init(10); InitSim900Port(); InitBuz(); InitMenu(); Init_Slow_Timer(); }
int main() { int ledID = 0; InitRCC(); InitVTimers(); STM_EVAL_LEDInit(LED4); STM_EVAL_LEDInit(LED3); STM_EVAL_LEDInit(LED5); STM_EVAL_LEDInit(LED6); // //ADC test // InitTrimmer(TRIMMER_1); // InitDAC(DAC_2, MIN_ANALOG_VALUE_12b); // // while(1) // { // // trimmerValue = GetTrimmerValue(TRIMMER_1); // // SetAnalogOutput(DAC_2, trimmerValue * 4); // // dacValue = GetAnalogOutput(DAC_2); // // volts = 2.979 * ((float)dacValue / (float)MAX_ANALOG_VALUE_12b); // } SetVTimerValue(TIMER_1, 500); ClearVTimer(TIMER_15); ClearVTimer(TIMER_10); ClearVTimer(TIMER_12); while(1) { if(IsVTimerElapsed(TIMER_1) == ELAPSED) { STM_EVAL_LEDOff(LED3); STM_EVAL_LEDOff(LED4); STM_EVAL_LEDOff(LED5); STM_EVAL_LEDOff(LED6); STM_EVAL_LEDOn(ledID); if(ledID == 3) { ledID = 0; } else { ledID = ledID + 1; } SetVTimerValue(TIMER_1, 500); } VTimerTask(); } }
int main() { InitRCC(); InitVTimers(); InitControllerPeripheral(); SetInitialConditions(); InitLCD(); while(1) { ControllerDisplayDataTask(); } return 0; }
int main(void) { float tempf; InitRCC(); InitGPIO(); InitADC(); I2CInit(); InitIT(); Delay_Init(24); // reset pot value PotWrite(0x00); while(1) { if (mode == MODE_CAL) { LED_GREEN_ON(); LED_RED_OFF(); uint16_t av = ADC_GetConversionValue(AN_ADCx); if (av > trig_level) { trig_level = av; tempf = GetADCVolt(trig_level)*VOLT_DIV; // get voltage from piezo tempf = GetTargetK(tempf); // get target amp coefficient tempf = GetTargetR(tempf); // get R2 for opamp feedback tempf = GetPotR(tempf); // get target resistance for pot as part of R2 PotWrite(GetWStep(tempf)); // write step to pot } } else { // turn on red for working mode indication, turn green if mcu gets opamp output high LED_RED_ON(); if (GPIO_ReadInputDataBit(OP_PORT, OP_PIN) == SET) { LED_GREEN_ON(); delay_ms(500); } else { LED_GREEN_OFF(); } } } }