Esempio n. 1
0
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();
   }
Esempio n. 2
0
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();
        
    }
    
}
Esempio n. 3
0
int main()
{
    InitRCC();
    InitVTimers();
    InitControllerPeripheral();
    SetInitialConditions();
    InitLCD();
    
    while(1)
    {
        ControllerDisplayDataTask();
    }
    
    return 0;
}
Esempio n. 4
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();
    		}


    	}

    }

}