void SYS_INIT(void) { LED_INIT(); //LED及串口IO 初始化 LED_FLASH(); //LED闪烁 Tim3_Init(500); //中断初始化 //1000=1MS,500=0.5MS Moto_Init(); //PWM // Uart1_Init(115200); //串口初始化,飞控上几乎无用 Spi1_Init(); //SPI初始化 Nvic_Init(); //中断初始化 Nrf24l01_Init(MODEL_TX2,40); //2401中断初始化 主发送 通道 40 // if(Nrf24l01_Check()) Uart1_Put_String("NRF24L01 IS OK !\r\n"); //检测2401是否初始化成功 // else Uart1_Put_String("NRF24L01 IS NOT OK !\r\n"); InitMPU6050(); ADC1_Init(); //检测电池电压 FLASH_Unlock(); //保存飞飞控参数 EE_INIT(); EE_READ_ACC_OFFSET(); EE_READ_GYRO_OFFSET(); EE_READ_PID(); PID_ROL.P = PID_PIT.P = 5; //用于初始化pid,如用匿名上位机写入pid,则屏蔽 PID_ROL.D = PID_PIT.D = 0.1; PID_YAW.P = 0.5; PID_YAW.D = 0.05; }
void Init_ADC() { AD1PCFG = 0xFFFF; PCFG12_bit = 0; PCFG13_bit = 0; // PMP setup ADC1_Init(); }
/* * 函数名:BSP_Init * 描述 :时钟初始化、硬件初始化 * 输入 :无 * 输出 :无 */ void BSP_Init(void) { SysTick_init(); switch (RCC_GetSYSCLKSource()) { case 0x00 : printf("\r\n HSI used as system clock.\r\n"); break; case 0x04 : printf("\r\n HSE used as system clock.\r\n"); break; case 0x08 : printf("\r\n PLL used as system clock.\r\n"); break; default: printf("\r\n * unkonwn clock soure. *"); break; } /* LED 端口初始化 */ LED_GPIO_Config(); //EXTI_Cfg(); USART1_Config(); ADC1_Init(); //DAC_Config(); //RTC_Configuration(); //SoftTimerInit(); //NVIC_Configuration(); }
void SYS_INIT(void) { LED_INIT(); LED_FLASH(); Moto_Init(); LED_FLASH(); Tim3_Init(500); Nvic_Init(); Uart1_Init(115200); ANO_TC_I2C2_INIT(0xA6,400000,1,1,3,3); MPU6050_Init(); Spi1_Init(); Nrf24l01_Init(MODEL_TX2,40); if(Nrf24l01_Check()) Uart1_Put_String("NRF24L01 IS OK !\r\n"); else Uart1_Put_String("NRF24L01 IS NOT OK !\r\n"); ADC1_Init(); FLASH_Unlock(); EE_INIT(); EE_READ_ACC_OFFSET(); EE_READ_GYRO_OFFSET(); EE_READ_PID(); Tim3_Control(1); }
void TaskPlan(void *Tags) { static float CHValue[2]; ADC1_Init((uintbus)&UIShowValue.ADC[0]); ISL1208_Init((void *)IO_ISL1208_P); Sensor_Init(); Tos_TaskDelay(3000); ISL1208_GetDateTime(&UIShowValue.DateTime); DS_Read_Value(&UIShowValue.CH_Value[0],&UIShowValue.CH_Value[1]); DS_Read_Value(&UIShowValue.CH_Value[0],&UIShowValue.CH_Value[1]); UIShowValue.RecordCount=Get_PrintfRecordCount(); while(1) { ISL1208_GetDateTime(&UIShowValue.DateTime); Tos_TaskDelay(500); DS_Read_Value(&CHValue[0],&CHValue[1]); UIShowValue.CH_Value[0]=UIShowValue.SaveValue.CorrectValue[0]+CHValue[0]; UIShowValue.CH_Value[1]=UIShowValue.SaveValue.CorrectValue[1]+CHValue[1]; if(0)UIShowValue.CH_Value[1]=UIShowValue.SaveValue.CorrectValue[1]+CHValue[1]+(CHValue[0]-(int)CHValue[0]);//¸ßʪ¶È¼ÓÌø±ä if(1) { if(UIShowValue.CH_Value[0]>=UIShowValue.SaveValue.CH_Limit[0].Max)UIShowValue.CH_Value[0]=(UIShowValue.SaveValue.CH_Limit[0].Max*0.98+UIShowValue.CH_Value[0]*0.01); if(UIShowValue.CH_Value[0]<=UIShowValue.SaveValue.CH_Limit[0].Min)UIShowValue.CH_Value[0]=(UIShowValue.SaveValue.CH_Limit[0].Min+UIShowValue.CH_Value[0]*0.01); if(UIShowValue.CH_Value[1]>=UIShowValue.SaveValue.CH_Limit[1].Max)UIShowValue.CH_Value[1]=(UIShowValue.SaveValue.CH_Limit[1].Max*0.98+UIShowValue.CH_Value[1]*0.01); if(UIShowValue.CH_Value[1]<=UIShowValue.SaveValue.CH_Limit[1].Min)UIShowValue.CH_Value[1]=(UIShowValue.SaveValue.CH_Limit[1].Min+UIShowValue.CH_Value[1]*0.01); } Task_Plan(); if(UIShowValue.SaveValue.WorkBit&WCB_RecordEN)Task_Record(); if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_4))UIShowValue.RunFlag|=WRF_USB_Connected;else UIShowValue.RunFlag&=~WRF_USB_Connected; if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_5))UIShowValue.RunFlag|=WRF_EXP_Connected;else UIShowValue.RunFlag&=~WRF_EXP_Connected; } }
void ADC_Test(void) { // 局部变量,用于保存转换计算后的电压值 float ADC_ConvertedValueLocal; #ifdef LCD_DISPLAY uint8_t lcd_char[20]; #endif /* enable adc1 and config adc1 to dma mode */ ADC1_Init(); printf("\r\n ----这是一个ADC实验(DMA传输)----\r\n"); while (1) { ADC_ConvertedValueLocal =(float) ADC_ConvertedValue/4096*3.3; // 读取转换的AD值 printf("\r\n The current AD value = 0x%04X \r\n", ADC_ConvertedValue); printf("\r\n The current AD value = %f V \r\n",ADC_ConvertedValueLocal); #ifdef LCD_DISPLAY sprintf(lcd_char,"电压值:%f V",ADC_ConvertedValueLocal); LCD_DispEnCh(20,150,lcd_char,BLUE); #endif ADC_Delay(0x4fffee); } }
//-----------------------------------------------------------------// // Setup ADC // ADC_CLK = 4 MHz // ADC single conversion time is ADC_StartDelay + // (29 to 36 ADC clock cycles depending on ADC_DelayGo) // ADC clock = 4MHz / 128 = 31.250kHz (T = 32uS) //-----------------------------------------------------------------// void HW_ADCInit(void) { ADC_InitTypeDef sADC; ADCx_InitTypeDef sADCx; // ADC Configuration // Reset all ADC settings ADC_DeInit(); ADC_StructInit(&sADC); sADC.ADC_SynchronousMode = ADC_SyncMode_Independent; sADC.ADC_StartDelay = 10; sADC.ADC_TempSensor = ADC_TEMP_SENSOR_Enable; sADC.ADC_TempSensorAmplifier = ADC_TEMP_SENSOR_AMPLIFIER_Enable; sADC.ADC_TempSensorConversion = ADC_TEMP_SENSOR_CONVERSION_Enable; sADC.ADC_IntVRefConversion = ADC_VREF_CONVERSION_Enable; sADC.ADC_IntVRefTrimming = 1; ADC_Init (&sADC); // ADC1 Configuration ADCx_StructInit (&sADCx); sADCx.ADC_ClockSource = ADC_CLOCK_SOURCE_ADC; sADCx.ADC_SamplingMode = ADC_SAMPLING_MODE_SINGLE_CONV; sADCx.ADC_ChannelSwitching = ADC_CH_SWITCHING_Disable; sADCx.ADC_ChannelNumber = ADC_CH_TEMP_SENSOR; sADCx.ADC_Channels = 0; sADCx.ADC_LevelControl = ADC_LEVEL_CONTROL_Disable; sADCx.ADC_LowLevel = 0; sADCx.ADC_HighLevel = 0; sADCx.ADC_VRefSource = ADC_VREF_SOURCE_EXTERNAL; sADCx.ADC_IntVRefSource = ADC_INT_VREF_SOURCE_EXACT; sADCx.ADC_Prescaler = ADC_CLK_div_128; sADCx.ADC_DelayGo = 0; // CHECKME ADC1_Init (&sADCx); ADC2_Init (&sADCx); // Disable ADC interupts ADC1_ITConfig((ADCx_IT_END_OF_CONVERSION | ADCx_IT_OUT_OF_RANGE), DISABLE); ADC2_ITConfig((ADCx_IT_END_OF_CONVERSION | ADCx_IT_OUT_OF_RANGE), DISABLE); // ADC1 enable ADC1_Cmd (ENABLE); ADC2_Cmd (ENABLE); //-------------------// /* ADC1_SetChannel(ADC_CH_TEMP_SENSOR); ADC1_Start(); while( ADC_GetFlagStatus(ADC1_FLAG_END_OF_CONVERSION)==RESET ); temp_adc = ADC1_GetResult(); ADC1_Start(); while( ADC_GetFlagStatus(ADC1_FLAG_END_OF_CONVERSION)==RESET ); temp_adc = ADC1_GetResult(); temp_adc = temp_adc; */ }
/** * ADC HW init * * @return void */ static void adc_hw_init(void) { ADC1_DeInit(); ADC1_Init(ADC_CHANNEL, ADC_PRESCALER); ADC1_Cmd(ENABLE); }
void ADC1_Config() { ADC1_DeInit(); #ifdef EN_SENSOR_MIC ADC1_Init(ADC1_CONVERSIONMODE_CONTINUOUS, ADC1_CHANNEL_1, ADC1_PRESSEL_FCPU_D4, ADC1_EXTTRIG_TIM, DISABLE, ADC1_ALIGN_RIGHT, ADC1_SCHMITTTRIG_CHANNEL1, DISABLE); ADC1_ScanModeCmd(ENABLE); #else ADC1_Init(ADC1_CONVERSIONMODE_CONTINUOUS, ADC1_CHANNEL_0, ADC1_PRESSEL_FCPU_D4, ADC1_EXTTRIG_TIM, DISABLE, ADC1_ALIGN_RIGHT, ADC1_SCHMITTTRIG_CHANNEL0, DISABLE); ADC1_Cmd(ENABLE); #endif //ADC1_ITConfig(ADC1_IT_AWS0, ENABLE); ADC1_StartConversion(); }
/** * @brief Main program. * @param None * @retval None */ void main ( void ) { ClockConfigure(); #if defined (_USE_DEBUG_UART_) DebugUARTInit(); #endif /* #if defined (_USE_DEBUG_UART_) */ /* ADC Configuration */ /* Reset all ADC settings */ ADC_DeInit(); DEBUG_PRINTF("ADC Init..."); // Inti clock ADC RST_CLK_ADCclkSelection(RST_CLK_ADCclkCPU_C1); RST_CLK_ADCclkPrescaler(RST_CLK_ADCclkDIV2); // Enable clock ADC RST_CLK_ADCclkEnable(ENABLE); RST_CLK_PCLKcmd(RST_CLK_PCLK_ADC, ENABLE); ADC_StructInit(&sADC); sADC.ADC_StartDelay = 0; sADC.ADC_TempSensor = ADC_TEMP_SENSOR_Enable; sADC.ADC_TempSensorAmplifier = ADC_TEMP_SENSOR_AMPLIFIER_Enable; sADC.ADC_TempSensorConversion = ADC_TEMP_SENSOR_CONVERSION_Enable; sADC.ADC_IntVRefConversion = ADC_VREF_CONVERSION_Disable; sADC.ADC_IntVRefTrimming = 1; ADC_Init(&sADC); /* ADC1 Configuration */ ADCx_StructInit(&sADCx); sADCx.ADC_ClockSource = ADC_CLOCK_SOURCE_CPU; sADCx.ADC_SamplingMode = ADC_SAMPLING_MODE_CICLIC_CONV; sADCx.ADC_ChannelSwitching = ADC_CH_SWITCHING_Disable; sADCx.ADC_ChannelNumber = ADC_CH_TEMP_SENSOR; sADCx.ADC_Channels = 0; sADCx.ADC_LevelControl = ADC_LEVEL_CONTROL_Disable; sADCx.ADC_LowLevel = 0; sADCx.ADC_HighLevel = 0; sADCx.ADC_VRefSource = ADC_VREF_SOURCE_INTERNAL; sADCx.ADC_IntVRefSource = ADC_INT_VREF_SOURCE_INEXACT; sADCx.ADC_Prescaler = ADC_CLK_div_512; sADCx.ADC_DelayGo = 7; ADC1_Init(&sADCx); /* Enable ADC1 EOCIF and AWOIFEN interupts */ ADC1_ITConfig(ADCx_IT_END_OF_CONVERSION, ENABLE); /* Enable ADC IRQ */ NVIC_EnableIRQ(ADC_IRQn); DEBUG_PRINTF("Ok\r\n"); /* ADC1 enable */ ADC1_Cmd(ENABLE); while (1); }
/* * 函数名:BSP * 描述 :时钟初始化、硬件初始化 */ void BSP_Init(void) { SystemInit(); /* 配置系统时钟为72MHz */ SysTick_Init(); /* 初始化并使能SysTick定时器 */ LED_GPIO_config(); /* LED端口初始化 */ USART1_Inter_Config(); /* 串口-中断 */ LEDDIS_GPIO_Configuration(); /* 数码管 */ ADC1_Init(); /* ADC1 */ EXTI_PA0_Config(); /* 按键0-中断0 */ I2C_EE_Init(); /* EEPROM */ }
void MCU_Init(void) { RCC_Configuration(); NVIC_Configuration(); GPIO_Configuration(); //TIM2_Configuration(); SysTick_Init(); SpiInit(); USART_Config(); ADC1_Init(); // IWDG_Configuration(); }
int main(void) { int dianya_fly = 0; SysTick_Init(); Tim3_Init(500); Nvic_Init(); LED_Init(); ADC1_Init(); USART1_Config(115200); KEY_Init(); NRF24L01_Init(); while (NRF24L01_Check()) //检查NRF24L01是否在位.要放在设置TX_MODE之前,否则设置的发送地址会变成check中的0XA5 ,将与原接收地址对不上 { LED2_ON; LED1_OFF; printf("no"); } LED1_ON; LED2_OFF; //TX mode //NRF24L01_TX_Mode(); //NRF24L01_Mode_Config(2); //RX mode NRF24L01_Mode_Config(3); while (1) { key = KEY_scan(); if (NRF24L01_RxPacket(tmp_buf) == 0) { NRF24L01_TxPacket_AP(rc_buf); LED1_ON; if(tmp_buf[0]==0x88 && tmp_buf[1]==0xAE && tmp_buf[2]==0x1C) { dianya_fly = tmp_buf[17]<<8|tmp_buf[18]; if(dianya_fly<36 && dianya_fly>20) { LED2_ON; } } send_wave(32,tmp_buf); } else { LED1_OFF; } } }
void InitModules() { OLED_Init(); OLED_DrawImage( &methane_bmp, 0, 0 ); OLED_SetFont( guiFont_Tahoma_8_Regular, OLED_COLOR_BLACK, 0 ); OLED_WriteText( ppmText, 25, 75 ); /** initialize ADC */ ADC1_Init(); /** pause for 100ms for ADC module stabilization */ Delay_ms(100); }
/* Configure ADC1 Continuous Conversion with End Of Conversion interrupt enabled . */ void InitADC() { /* De-Init ADC1 peripheral */ ADC1_DeInit(); /* Enable EOC interrupt */ ADC1_ITConfig(ADC1_IT_EOCIE, ENABLE); /* Enable conversion data buffering */ ADC1_DataBufferCmd(ENABLE); /* Enable scan mode conversion */ ADC1_ScanModeCmd(ENABLE); /* Init ADC1 peripheral */ /* ADC1 Channel 3 */ ADC1_Init(ADC1_CONVERSIONMODE_CONTINUOUS, REF_2V5_ANALOG, ADC1_PRESSEL_FCPU_D4, \ ADC1_EXTTRIG_TIM, DISABLE, ADC1_ALIGN_RIGHT, ADC1_SCHMITTTRIG_CHANNEL3,\ DISABLE); /* ADC1 Channel 4 */ ADC1_Init(ADC1_CONVERSIONMODE_CONTINUOUS, L9110_U3_DRAW, ADC1_PRESSEL_FCPU_D4, \ ADC1_EXTTRIG_TIM, DISABLE, ADC1_ALIGN_RIGHT, ADC1_SCHMITTTRIG_CHANNEL4,\ DISABLE); /* ADC1 Channel 5 */ ADC1_Init(ADC1_CONVERSIONMODE_CONTINUOUS, L9110_U4_DRAW, ADC1_PRESSEL_FCPU_D4, \ ADC1_EXTTRIG_TIM, DISABLE, ADC1_ALIGN_RIGHT, ADC1_SCHMITTTRIG_CHANNEL5,\ DISABLE); /* ADC1 Channel 6 */ ADC1_Init(ADC1_CONVERSIONMODE_CONTINUOUS, L9110_U5_DRAW, ADC1_PRESSEL_FCPU_D4, \ ADC1_EXTTRIG_TIM, DISABLE, ADC1_ALIGN_RIGHT, ADC1_SCHMITTTRIG_CHANNEL6,\ DISABLE); ADC1_Cmd(ENABLE); }
void IAC_Init(void) { delay_init(72); MCO_INIT(); Nvic_Init(); LED_GPIO_Config(); I2C_INIT(); delay(0XFFF); TIM3_Init(2500); usart1_config(); ADC1_Init(); NRF24L01_Init(); Moto_Init(); LED_SHOW(); FLASH_Unlock(); EE_Init(); }
void Screen_init(void) { PenColor=1; shape=0; painted=0; TFT_Set_Default_Mode(); //TFT_Init_ILI9341_8bit(240,320); TFT_Init_ILI9341_8bit(320,240); ADC_Set_Input_Channel(_ADC_CHANNEL_8 | _ADC_CHANNEL_9); ADC1_Init(); TP_TFT_Init(320, 240, 8, 9); TP_TFT_Set_ADC_Threshold(600); TFT_Fill_Screen(colors[14]); TP_TFT_Calibrate_Min(); Delay_ms(500); TP_TFT_Calibrate_Max(); }
/******************************************************************************** * adc_init * ********************************************************************************/ void adc_channel_init(void){ //io init GPIO_Init(IDSG_PORT, IDSG_PIN, GPIO_MODE_IN_FL_NO_IT); GPIO_Init(ICHG_PORT, ICHG_PIN, GPIO_MODE_IN_FL_NO_IT); GPIO_Init(VBAT_PORT, VBAT_PIN, GPIO_MODE_IN_FL_NO_IT); GPIO_Init(THS1_PORT, THS1_PIN, GPIO_MODE_IN_FL_NO_IT); //io init GPIO_Init(THS2_PORT, THS2_PIN, GPIO_MODE_IN_FL_NO_IT); ADC1_Init(ADC1_CONVERSIONMODE_SINGLE, ADC1_CHANNEL_0, ADC1_PRESSEL_FCPU_D18, ADC1_EXTTRIG_GPIO, DISABLE, ADC1_ALIGN_RIGHT, ADC1_SCHMITTTRIG_CHANNEL5, DISABLE); //ADC1_CONVERSIONMODE_SINGLE ADC1_ScanModeCmd(ENABLE); //ADC1_ScanModeCmd(DISABLE); adc_scan_times_flag = 0; }
/** * @brief Main program. * @param None * @retval None */ int main(void) { /*!< At this stage the microcontroller clock setting is already configured, this is done through SystemInit() function which is called from startup file (startup_stm32f10x_xx.s) before to branch to application main. To reconfigure the default setting of SystemInit() function, refer to system_stm32f10x.c file */ u32 i = 0; IWDG_Init(); EN_GPIO_Init(); Relay_Status_No_Init(); Signal_Relay_OFF(); LED_OFF(LED_A_1_G_Group ,LED_A_1_G ); LED_OFF(LED_B_1_G_Group ,LED_B_1_G ); LED_OFF(LED_B_2_G_Group ,LED_B_2_G ); LED_OFF(LED_A_2_G_Group ,LED_A_2_G ); LED_OFF(LED_A_1_R_Group ,LED_A_1_R ); LED_OFF(LED_B_1_R_Group ,LED_B_1_R ); LED_OFF(LED_B_2_R_Group ,LED_B_2_R ); LED_OFF(LED_A_2_R_Group ,LED_A_2_R ); LED_OFF(LED_NS_Group ,LED_NS ); LED_OFF(LED_ER_Group ,LED_ER ); Timer2_Init(); ADC1_Init(); uart_init(115200); IWDG_ReloadCounter(); while (1) { IWDG_ReloadCounter(); Power12V_Check(); Voltage_Check(); Status_Process(); if( t1s_SW_counter < 500 ) { t1s_SW_counter = 501; IWDG_ReloadCounter(); SW_Status_Check(); } } }
/** * @brief Initializes the ADC. * ADC conversion mode: continious, EOC interrupt enabled * @retval : None */ void pot_init(void){ /* Init GPIO for ADC7 */ GPIO_Init(GPIOB, GPIO_PIN_7, GPIO_MODE_IN_FL_NO_IT); /* De-Init ADC peripheral*/ ADC1_DeInit(); /* Init ADC1 peripheral */ ADC1_Init(ADC1_CONVERSIONMODE_CONTINUOUS, ADC1_CHANNEL_7, ADC1_PRESSEL_FCPU_D18, \ ADC1_EXTTRIG_TIM, DISABLE, ADC1_ALIGN_RIGHT, ADC1_SCHMITTTRIG_CHANNEL7,\ DISABLE); /* Enable EOC interrupt */ ADC1_ITConfig(ADC1_IT_EOCIE,ENABLE); /* Enable general interrupts */ enableInterrupts(); /*Start Conversion */ ADC1_StartConversion(); }
void TaskPlan(void *Tags) { static float CHValue[2]; ADC1_Init((uintbus)&UIShowValue.ADC[0]); Sensor_Init(); ISL1208_Init((void *)IO_ISL1208_P); DS_Read_Value(&UIShowValue.CH_Value[0],&UIShowValue.CH_Value[1]); Tos_TaskDelay(1000); DS_Read_Value(&UIShowValue.CH_Value[0],&UIShowValue.CH_Value[1]); UIShowValue.RecordCount=Get_PrintfRecordCount(); while(1) { ISL1208_GetDateTime(&UIShowValue.DateTime); //DeBug("20%02d-%02d-%02d %02d:%02d",UIShowValue.DateTime.Year,UIShowValue.DateTime.Mon,UIShowValue.DateTime.Day,UIShowValue.DateTime.Hour,UIShowValue.DateTime.Min,0); Tos_TaskDelay(500); DS_Read_Value(&CHValue[0],&CHValue[1]); UIShowValue.CH_Value[0]=UIShowValue.SaveValue.CorrectValue[0]+CHValue[0]; UIShowValue.CH_Value[1]=UIShowValue.SaveValue.CorrectValue[1]+CHValue[1]; if(UIShowValue.SaveValue.WorkBit&WCB_RecordEN)Task_Record(); Task_Plan(); } }
void ANO_Remoter_board_Init(void) { u8 data[32]={0};u8 ack[32]={0}; //中断优先级组别设置 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //初始化系统滴答定时器 SysTick_Config(SystemCoreClock / 1000); LED_INIT(); //初始化模拟I2C ANO_I2C_Soft::Init(); //初始化串口1 Uart1_Init(115200); //初始化SPI2 ANO_SPI2::Init(); while(nrf.Check()==false); //初始化NRF nrf.Init(MODEL_RX2,40); //while(1) //{ // //memset(data,0,sizeof(data)); // data[0]=0x31;data[1]=0x32;data[2]=0x33; // nrf.NRF_Tx_Dat(data,ack); // nrf.delayms(50); //} //初始化ADC采样 ADC1_Init(); //解锁flash FLASH_Unlock(); //初始化虚拟eeprom设置 EE_Init(); }
/** * @brief Description 外设初始化 * @param None * @retval None */ void PeripheralInit(void) { RCC_Config(); SysTick_Init(); TIM2_Configuration(); LED_GPIO_Config(); KEY_GPIO_Config(); EXTI15_10_Config(); General_GPIO_Config(); LCD_GLASS_Init(); USART1_Config(115200); // Delay_ms(10); //开启滴答定时 LCD_GLASS_Clear(); AVCC1_POWER(OFF); //关ADC1电源 BATTEST_POWER(OFF); //关电池电压检测电源 MODEL_PWRCTRL(ON); //开对外接口电源 ADC1_Init(); /* 8M串行flash W25Q64初始化 */ SPI_FLASH_Init(); I2C_GPIO_Config(); //rtc 初始化 rtc_init(); }
/** * @brief 串口打印输出 * @param None * @retval None */ int main(void) { uint8_t data[64],BrailleDots[40],InPacket[2]; uint32_t i=0,ret=0,voltemp; /************************系统初始化函数*****************************/ Set_System();//系统时钟初始化 power_initial(); //电源控制管脚初始化 USART_Configuration();//串口1初始化 GP_initial(); //MCU串口初始化 blooth_initial(); //蓝牙串口初始化 delay_init(); //延时函数初始化 NVIC_Configuration(); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级 OLED_Init(); //初始化OLED ADC1_Init(); //初始化ADC1 //USB初始化 USB_Interrupts_Config(); Set_USBClock(); USB_Init(); /*******************************************************************/ Board_ON();//板载自锁供电 Blooth_Down(); //初始化关闭蓝牙 GP_Down(); //初始化关闭51单片机 IDrive_Down(); //初始化关闭恒流源 OLED_Clear(); //刷新 // OLED_ShowString(0,0, "DAISY IS HOT"); //字符串显示 OLED_ShowString(0,0, "Welcome to BD"); OLED_ShowString(0,2, "Starting..."); delay_ms(1000); EXTI_PD2_Config(); //KEY外部中断检测 EXTI_PD3_Config(); //关机检测 //printf("\x0c\0");printf("\x0c\0");//超级终端清屏 //printf("\033[1;40;32m");//设置超级终端背景为黑色,字符为绿色 //开机测试 printf("\r\n*******************************************************************************"); printf("\r\n************************ Copyright 2009-2012, ViewTool ************************"); printf("\r\n*************************** http://www.viewtool.com ***************************"); printf("\r\n***************************** All Rights Reserved *****************************"); printf("\r\n*******************************************************************************"); printf("\r\n"); /*****************OLED显示*******************/ delay_ms(3000); OLED_Clear(); //刷新 OLED_ShowString(0,0,"DISCHARGING..."); delay_ms(3000); //OLED_DrawBMP(0,0,128,8,gImage_daisy); //delay_ms(3000); // blooth_printf(USART2,"blooth is OK"); //GP_printf OLED_Clear(); /***********************************************/ // GPIO_SetBits(GPIOE,GPIO_Pin_3); while(1) { /******************USB消息轮询*********************/ USBDataGet(data,BrailleDots,InPacket); /****************************************************/ if(GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_12)) OLED_ShowString(0,0,"DISCHARGING"); else OLED_ShowString(0,0,"CHARGING"); /***************电池电压检测******************/ ADC_ConvertedValueLocal =(float) ADC_ConvertedValue[1]/2048*3.3*1.07; // 读取转换的AD值、 printf("\r\n The PC4 current AD value = 0x%04X \r\n", ADC_ConvertedValue); printf("\r\n The PC4 current AD value = %f V \r\n",ADC_ConvertedValueLocal); OLED_ShowString(0,4,"ICPOWER="); voltemp=ADC_ConvertedValueLocal*1000; OLED_ShowNum(64,4,voltemp,4,16); OLED_ShowString(100,4,"mv"); ADC_ConvertedValueLocal =(float) ADC_ConvertedValue[0]/2048*3.3*1.08;// 读取转换的AD值、 printf("\r\n The PC5 current AD value = 0x%04X \r\n", ADC_ConvertedValue); printf("\r\n The PC5 current AD value = %f V \r\n",ADC_ConvertedValueLocal); OLED_ShowString(0,6,"SYSPOWER="); voltemp=ADC_ConvertedValueLocal*1000; OLED_ShowNum(72,6,voltemp,4,16); OLED_ShowString(108,6,"mv"); /****************************************************************/ /**********************蓝牙打印测试***********************/ blooth_printf(USART2,"\r\nblooth is ok!\r\n"); GP_printf(USART3,"\r\nMCU Connect\r\n"); /****************************************************************/ // IDrive_ON(); // printf("\r\nIC on"); Delay(0x0FFFEF); Delay(0x0FFFEF); Delay(0x0FFFEF); Delay(0x0FFFEF); Delay(0x0FFFEF); Delay(0x0FFFEF); // IDrive_Down(); // printf("\r\nIC down"); Delay(0x0FFFEF); Delay(0x0FFFEF); Delay(0x0FFFEF); Delay(0x0FFFEF); Delay(0x0FFFEF); Delay(0x0FFFEF); //GPIO_ResetBits(GPIOB,GPIO_Pin_13); /*****************复位*********************/ } }
void Init_ADC() { AD1PCFGL = 0xCFFF; AD1PCFGH = 0xCFFF; ADC1_Init(); }
void Peripherals_Init(void) { #ifdef NVIC_AUTOINIT NVIC_Init(); #endif /* NVIC_AUTOINIT */ #ifdef SIM_AUTOINIT SIM_Init(); #endif /* SIM_AUTOINIT */ #ifdef MCM_AUTOINIT MCM_Init(); #endif /* MCM_AUTOINIT */ #ifdef PMC_AUTOINIT PMC_Init(); #endif /* PMC_AUTOINIT */ #ifdef PORTA_AUTOINIT PORTA_Init(); #endif /* PORTA_AUTOINIT */ #ifdef PORTB_AUTOINIT PORTB_Init(); #endif /* PORTB_AUTOINIT */ #ifdef PORTC_AUTOINIT PORTC_Init(); #endif /* PORTC_AUTOINIT */ #ifdef PORTD_AUTOINIT PORTD_Init(); #endif /* PORTD_AUTOINIT */ #ifdef PORTE_AUTOINIT PORTE_Init(); #endif /* PORTE_AUTOINIT */ #ifdef ADC0_AUTOINIT ADC0_Init(); #endif /* ADC0_AUTOINIT */ #ifdef ADC1_AUTOINIT ADC1_Init(); #endif /* ADC1_AUTOINIT */ #ifdef AIPS0_AUTOINIT AIPS0_Init(); #endif /* AIPS0_AUTOINIT */ #ifdef AIPS1_AUTOINIT AIPS1_Init(); #endif /* AIPS1_AUTOINIT */ #ifdef AXBS_AUTOINIT AXBS_Init(); #endif /* AXBS_AUTOINIT */ #ifdef CAN0_AUTOINIT CAN0_Init(); #endif /* CAN0_AUTOINIT */ #ifdef CMP0_AUTOINIT CMP0_Init(); #endif /* CMP0_AUTOINIT */ #ifdef CMP1_AUTOINIT CMP1_Init(); #endif /* CMP1_AUTOINIT */ #ifdef CMP2_AUTOINIT CMP2_Init(); #endif /* CMP2_AUTOINIT */ #ifdef CMT_AUTOINIT CMT_Init(); #endif /* CMT_AUTOINIT */ #ifdef CRC_AUTOINIT CRC_Init(); #endif /* CRC_AUTOINIT */ #ifdef DAC0_AUTOINIT DAC0_Init(); #endif /* DAC0_AUTOINIT */ #ifdef DMAMUX_AUTOINIT DMAMUX_Init(); #endif /* DMAMUX_AUTOINIT */ #ifdef DMA_AUTOINIT DMA_Init(); #endif /* DMA_AUTOINIT */ #ifdef ENET_AUTOINIT ENET_Init(); #endif /* ENET_AUTOINIT */ #ifdef EWM_AUTOINIT EWM_Init(); #endif /* EWM_AUTOINIT */ #ifdef FB_AUTOINIT FB_Init(); #endif /* FB_AUTOINIT */ #ifdef FMC_AUTOINIT FMC_Init(); #endif /* FMC_AUTOINIT */ #ifdef FTFE_AUTOINIT FTFE_Init(); #endif /* FTFE_AUTOINIT */ #ifdef FTM0_AUTOINIT FTM0_Init(); #endif /* FTM0_AUTOINIT */ #ifdef FTM1_AUTOINIT FTM1_Init(); #endif /* FTM1_AUTOINIT */ #ifdef FTM2_AUTOINIT FTM2_Init(); #endif /* FTM2_AUTOINIT */ #ifdef FTM3_AUTOINIT FTM3_Init(); #endif /* FTM3_AUTOINIT */ #ifdef I2C0_AUTOINIT I2C0_Init(); #endif /* I2C0_AUTOINIT */ #ifdef I2C1_AUTOINIT I2C1_Init(); #endif /* I2C1_AUTOINIT */ #ifdef I2C2_AUTOINIT I2C2_Init(); #endif /* I2C2_AUTOINIT */ #ifdef I2S0_AUTOINIT I2S0_Init(); #endif /* I2S0_AUTOINIT */ #ifdef LLWU_AUTOINIT LLWU_Init(); #endif /* LLWU_AUTOINIT */ #ifdef LPTMR0_AUTOINIT LPTMR0_Init(); #endif /* LPTMR0_AUTOINIT */ #ifdef MPU_AUTOINIT MPU_Init(); #endif /* MPU_AUTOINIT */ #ifdef PDB0_AUTOINIT PDB0_Init(); #endif /* PDB0_AUTOINIT */ #ifdef PIT_AUTOINIT PIT_Init(); #endif /* PIT_AUTOINIT */ #ifdef PTA_AUTOINIT PTA_Init(); #endif /* PTA_AUTOINIT */ #ifdef PTB_AUTOINIT PTB_Init(); #endif /* PTB_AUTOINIT */ #ifdef PTC_AUTOINIT PTC_Init(); #endif /* PTC_AUTOINIT */ #ifdef PTD_AUTOINIT PTD_Init(); #endif /* PTD_AUTOINIT */ #ifdef PTE_AUTOINIT PTE_Init(); #endif /* PTE_AUTOINIT */ #ifdef RCM_AUTOINIT RCM_Init(); #endif /* RCM_AUTOINIT */ #ifdef RNG_AUTOINIT RNG_Init(); #endif /* RNG_AUTOINIT */ #ifdef RTC_AUTOINIT RTC_Init(); #endif /* RTC_AUTOINIT */ #ifdef SDHC_AUTOINIT SDHC_Init(); #endif /* SDHC_AUTOINIT */ #ifdef SMC_AUTOINIT SMC_Init(); #endif /* SMC_AUTOINIT */ #ifdef SPI0_AUTOINIT SPI0_Init(); #endif /* SPI0_AUTOINIT */ #ifdef SPI1_AUTOINIT SPI1_Init(); #endif /* SPI1_AUTOINIT */ #ifdef SPI2_AUTOINIT SPI2_Init(); #endif /* SPI2_AUTOINIT */ #ifdef SystemControl_AUTOINIT SystemControl_Init(); #endif /* SystemControl_AUTOINIT */ #ifdef SysTick_AUTOINIT SysTick_Init(); #endif /* SysTick_AUTOINIT */ #ifdef UART0_AUTOINIT UART0_Init(); #endif /* UART0_AUTOINIT */ #ifdef UART1_AUTOINIT UART1_Init(); #endif /* UART1_AUTOINIT */ #ifdef UART2_AUTOINIT UART2_Init(); #endif /* UART2_AUTOINIT */ #ifdef UART3_AUTOINIT UART3_Init(); #endif /* UART3_AUTOINIT */ #ifdef UART4_AUTOINIT UART4_Init(); #endif /* UART4_AUTOINIT */ #ifdef UART5_AUTOINIT UART5_Init(); #endif /* UART5_AUTOINIT */ #ifdef USB0_AUTOINIT USB0_Init(); #endif /* USB0_AUTOINIT */ #ifdef USBDCD_AUTOINIT USBDCD_Init(); #endif /* USBDCD_AUTOINIT */ #ifdef VREF_AUTOINIT VREF_Init(); #endif /* VREF_AUTOINIT */ #ifdef WDOG_AUTOINIT WDOG_Init(); #endif /* WDOG_AUTOINIT */ }
static void rt_hw_adc_init(void) { ADC1_Init(); rt_kprintf("ACD init.....OK\n\r"); }
void Peripherals_Init(void) { #ifdef NVIC_AUTOINIT NVIC_Init(); #endif /* NVIC_AUTOINIT */ #ifdef SIM_AUTOINIT SIM_Init(); #endif /* SIM_AUTOINIT */ #ifdef MCM_AUTOINIT MCM_Init(); #endif /* MCM_AUTOINIT */ #ifdef PMC_AUTOINIT PMC_Init(); #endif /* PMC_AUTOINIT */ #ifdef PORTA_AUTOINIT PORTA_Init(); #endif /* PORTA_AUTOINIT */ #ifdef PORTB_AUTOINIT PORTB_Init(); #endif /* PORTB_AUTOINIT */ #ifdef PORTC_AUTOINIT PORTC_Init(); #endif /* PORTC_AUTOINIT */ #ifdef PORTD_AUTOINIT PORTD_Init(); #endif /* PORTD_AUTOINIT */ #ifdef PORTE_AUTOINIT PORTE_Init(); #endif /* PORTE_AUTOINIT */ #ifdef ADC0_AUTOINIT ADC0_Init(); #endif /* ADC0_AUTOINIT */ #ifdef ADC1_AUTOINIT ADC1_Init(); #endif /* ADC1_AUTOINIT */ #ifdef CMP0_AUTOINIT CMP0_Init(); #endif /* CMP0_AUTOINIT */ #ifdef CMP1_AUTOINIT CMP1_Init(); #endif /* CMP1_AUTOINIT */ #ifdef CRC_AUTOINIT CRC_Init(); #endif /* CRC_AUTOINIT */ #ifdef DAC0_AUTOINIT DAC0_Init(); #endif /* DAC0_AUTOINIT */ #ifdef DMAMUX_AUTOINIT DMAMUX_Init(); #endif /* DMAMUX_AUTOINIT */ #ifdef DMA_AUTOINIT DMA_Init(); #endif /* DMA_AUTOINIT */ #ifdef EWM_AUTOINIT EWM_Init(); #endif /* EWM_AUTOINIT */ #ifdef FTFA_AUTOINIT FTFA_Init(); #endif /* FTFA_AUTOINIT */ #ifdef FTM0_AUTOINIT FTM0_Init(); #endif /* FTM0_AUTOINIT */ #ifdef FTM1_AUTOINIT FTM1_Init(); #endif /* FTM1_AUTOINIT */ #ifdef FTM2_AUTOINIT FTM2_Init(); #endif /* FTM2_AUTOINIT */ #ifdef GPIOA_AUTOINIT GPIOA_Init(); #endif /* GPIOA_AUTOINIT */ #ifdef GPIOB_AUTOINIT GPIOB_Init(); #endif /* GPIOB_AUTOINIT */ #ifdef GPIOC_AUTOINIT GPIOC_Init(); #endif /* GPIOC_AUTOINIT */ #ifdef GPIOD_AUTOINIT GPIOD_Init(); #endif /* GPIOD_AUTOINIT */ #ifdef GPIOE_AUTOINIT GPIOE_Init(); #endif /* GPIOE_AUTOINIT */ #ifdef I2C0_AUTOINIT I2C0_Init(); #endif /* I2C0_AUTOINIT */ #ifdef LLWU_AUTOINIT LLWU_Init(); #endif /* LLWU_AUTOINIT */ #ifdef LPTMR0_AUTOINIT LPTMR0_Init(); #endif /* LPTMR0_AUTOINIT */ #ifdef PDB0_AUTOINIT PDB0_Init(); #endif /* PDB0_AUTOINIT */ #ifdef RCM_AUTOINIT RCM_Init(); #endif /* RCM_AUTOINIT */ #ifdef SMC_AUTOINIT SMC_Init(); #endif /* SMC_AUTOINIT */ #ifdef SPI0_AUTOINIT SPI0_Init(); #endif /* SPI0_AUTOINIT */ #ifdef SystemControl_AUTOINIT SystemControl_Init(); #endif /* SystemControl_AUTOINIT */ #ifdef SysTick_AUTOINIT SysTick_Init(); #endif /* SysTick_AUTOINIT */ #ifdef UART0_AUTOINIT UART0_Init(); #endif /* UART0_AUTOINIT */ #ifdef UART1_AUTOINIT UART1_Init(); #endif /* UART1_AUTOINIT */ #ifdef WDOG_AUTOINIT WDOG_Init(); #endif /* WDOG_AUTOINIT */ }
void Config_adc(void){ ADC_Set_Input_Channel(_ADC_CHANNEL_10); ADC1_Init(); }
void main(void) { int32_t t_spread; uint32_t i; NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x8000); LED_ON(LED_RING_OE); //actually turns the LED ring off LEDDriver_Init(5); for (i=0;i<26;i++) LEDDriver_setRGBLED(i,0); LED_OFF(LED_RING_OE); //actually turns the LED ring on flag_update_LED_ring=1; init_inouts(); init_rotary(); init_envout_pwm(); ADC1_Init((uint16_t *)adc_buffer); ADC3_Init((uint16_t *)potadc_buffer); Codec_Init(SAMPLERATE); delay(); set_default_param_values(); set_default_color_scheme(); set_default_user_scalebank(); //overwrite default parameters if a startup bank exists cur_param_bank = load_startup_params(); if (cur_param_bank == 0xFF){ factory_reset(); cur_param_bank=0; } I2S_Block_Init(); TIM6_Config(); DAC_Ch1_NoiseConfig(); spread=(adc_buffer[SPREAD_ADC] >> 8) + 1; I2S_Block_PlayRec(); //update_spread(1); while(1){ check_errors(); param_read_switches(); update_ENVOUT_PWM(); update_LED_ring(); update_lock_leds(); t_spread=read_spread(); if (t_spread!=-1) update_spread(t_spread); process_lock_jacks(); process_lock_buttons(); param_read_q(); param_read_freq_nudge(); param_read_channel_level(); process_rotary_button(); process_rotary_rotation(); if (ui_mode==PLAY) check_rotary_pressed_repeatedly(); if (ui_mode==EDIT_SCALES) handle_edit_scale(); if (ui_mode==EDIT_COLORS) handle_edit_colors(); if (ui_mode==SELECT_PARAMS){ handle_freqpot_changing_filtermode(); handle_slider_changing_clipmode(); } if (do_ROTUP){ do_ROTUP=0; rotate_up(); } if (do_ROTDOWN){ do_ROTDOWN=0; rotate_down(); } process_rotateCV(); process_scaleCV(); } //end main loop } //end main()