void main(void) { u16 trigpos; u8 keycode; SystemState = AutoRunMode; // 现在还是使用软件触发 ADCState = Triggered; // ADCState = WaitTrigger; CLK_Init(); // 主时钟初始化 TIM4_Init(); // TIM4 用于产生系统运行需要的定时信号 KEY_Init(); // 按键驱动初始化 KeyParse_Init(); // 按键处理模块初始化 LCD_Init(); // LCD驱动初始化 WDraw_Init(); // 波形显示模块初始化 TriggerInterruptInit(); // 外部触发中断初始化 ADC_Init(); // ADC采样程控模块初始化 DProc_Init(); // 数据处理模块初始化 enableInterrupts(); /* Infinite loop */ while (1) { if(flag_10ms_ok) { flag_10ms_ok = 0; keycode = KEY_Scan(); switch(GET_KTYPE(keycode)) { case KTYPE_NORMAL: KeyParse(GET_KCODE(keycode)); default: break; } } switch(SystemState) { // to do case AutoRunMode: case ManualMode: // 处理数据 if( ADCState == ADC_Buffer_Full ) { trigpos = GetTriggerPostion(0, 64); WDraw_DisplayUpdate(&ADC_Buffer[trigpos]); ADCState = Triggered; ADC_Index = 0; } break; default: break; } } }
static void setupTimer(void) { CLK_Init(0); TMR8_Tick_Init(1, 0); appTick.reload = APPLICATION_TICK_MS; appTick.active = true; TMR8_Tick_AddTimerConfig(&appTick); }
static void setupTimer(void) { CLK_Init(0); TMR8_Tick_Init(3, 0); appTick.reload = APP_TICK_MS; appTick.active = true; TMR8_Tick_AddTimerConfig(&appTick); heartbeatTick.reload = BLINK_TICK_MS; heartbeatTick.active = true; TMR8_Tick_AddTimerConfig(&heartbeatTick); }
//===================================== void mcu_init(void) //===================================== { CLK_Init();// base clock power_on_delay(); //Power on delay GPIO_Init(); TIM_Init(); //reset LoRa PD_ODR=0b00000000; delay_ms(20); PD_ODR=0b00000100; delay_ms(20); FLASH_DeInit(); FLASH_Unlock(FLASH_MEMTYPE_DATA); }
/* * ======== SERVICES_Init ======== * Purpose: * Initializes SERVICES modules. */ bool SERVICES_Init(void) { bool fInit = true; bool fCFG, fDBG, fMEM; bool fREG, fSYNC, fCLK, fNTFY; GT_init(); GT_create(&SERVICES_debugMask, "OS"); /* OS for OSal */ /* Perform required initialization of SERVICES modules. */ fMEM = MEM_Init(); fSYNC = SYNC_Init(); fREG = REG_Init(); fCFG = CFG_Init(); fDBG = DBG_Init(); fCLK = CLK_Init(); fNTFY = NTFY_Init(); fInit = fCFG && fDBG && fMEM && fREG && fSYNC && fCLK; if (!fInit) { if (fNTFY) NTFY_Exit(); if (fSYNC) SYNC_Exit(); if (fCLK) CLK_Exit(); if (fREG) REG_Exit(); if (fDBG) DBG_Exit(); if (fCFG) CFG_Exit(); if (fMEM) MEM_Exit(); } return fInit; }
//===================================================================================================================== int main (void) { BYTE* pReadBuffer; BYTE* pWriteBuffer; DWORD Version; PINSEL0 = 0; PINSEL1 = 0; Init_IO(); CLK_Init(); CLK_SetupTimer(cCLK_TimerBlink, 500, Main_BlinkLED); CMD_Init((DWORD*)&pWriteBuffer, (DWORD*)&pReadBuffer); IOCLR = cPB_LED1 + cPB_LED2 + cPB_LED3; while(1) { IOCLR = cPB_LED1; if (!CMD_GetVersion((WORD*)(&Version))) { continue; } if (!(CMD_Detect())) { continue; } IOSET = cPB_LED1; //等待But0按下,则开始写数据 if (IOPIN & cPB_BUT0) { continue; } DoTest2(pReadBuffer, pWriteBuffer); } }
void main() { u16 tmp; u8 tmp8, tmp8_A; static tCANMsg RxMsgBuff; CLK_Init(CLK_HSE); disableInterrupts(); GPIO_Init(); TIM4_Init(); // TIM2_Init(); TIM1_Init(); ADC_Init(); /* Configure CAN - Interface */ CAN_Init(); // init CAN - interface enableInterrupts(); CAN_Start(); CAN_TxMsg1.Length = 4; CAN_TxMsg1.Xtd = false; CAN_TxMsg1.rtr = false; CAN_TxMsg1.ID = 0x280; CAN_TxMsg1.Data[0] =0 ; CAN_TxMsg1.Data[1] =0; //PWM_SetFrequency(1); do { if ( IsCAN_MSG1_Send()) { tmp = ADC_GetValue(ADC_REV_CHANEL); tmp = tmp *24; if ( tmp < 100 ) { OIL_PRESS = false; } else { OIL_PRESS = true; } CAN_TxMsg1.Data[3] =(u8)(tmp >> 8) ; CAN_TxMsg1.Data[2] =(u8)(tmp & 0x00FF); CAN_Write(&CAN_TxMsg1); } if ( IsSpeedAdjustTime()) { tmp = ADC_GetValue(ADC_SPEED_CHANEL); tmp = tmp * 10; tmp = tmp/ 34; PWM_SetFrequency(tmp); // 1023 = 300 Hz } /* if( CAN_GetMsg(&RxMsgBuff)== RET_OK){ if (RxMsgBuff.Xtd ){ // EID tmp8 = (u8)(RxMsgBuff.timeStamp >>3) & 0xE0U; if (RxMsgBuff.rtr) tmp8 |= 0x10; tmp8 |= (RxMsgBuff.Length & 0x0F); tmp8_A = (RxMsgBuff.ID>>24) & 0x001f; tmp8_A |= (RxMsgBuff.FilterID << 5); USART_SendBytesMessage (CAN_MSG_EXT_1, tmp8,(u8)((RxMsgBuff.timeStamp) & 0x00FF), tmp8_A ,(RxMsgBuff.ID>>16) & 0x00ffU); USART_SendBytesMessage (CAN_MSG_EXT_2, (RxMsgBuff.ID>>8) & 0x00ffU,RxMsgBuff.ID & 0x00ffU,RxMsgBuff.Data[0], RxMsgBuff.Data[1] ); if (RxMsgBuff.Length > 2) USART_SendBytesMessage (CAN_MSG_EXT_3, RxMsgBuff.Data[2], RxMsgBuff.Data[3], RxMsgBuff.Data[4], RxMsgBuff.Data[5]); if (RxMsgBuff.Length > 6 ) USART_SendBytesMessage (CAN_MSG_EXT_4, RxMsgBuff.Data[6], RxMsgBuff.Data[7],0,0); }else{ // standard ID tmp8 = (u8)(RxMsgBuff.timeStamp >>3) & 0xE0U; if (RxMsgBuff.rtr) tmp8 |= 0x10; tmp8 |= (RxMsgBuff.Length & 0x0F); tmp8_A = (RxMsgBuff.ID>>8) & 0x007f; tmp8_A |= (RxMsgBuff.FilterID << 3); USART_SendBytesMessage (CAN_MSG_STD_1, tmp8,(u8)((RxMsgBuff.timeStamp) & 0x00FF), tmp8_A ,RxMsgBuff.ID & 0x00ff); if (RxMsgBuff.Length > 0) USART_SendBytesMessage (CAN_MSG_STD_2, RxMsgBuff.Data[0], RxMsgBuff.Data[1], RxMsgBuff.Data[2], RxMsgBuff.Data[3]); if (RxMsgBuff.Length > 4 ) USART_SendBytesMessage (CAN_MSG_STD_3, RxMsgBuff.Data[4], RxMsgBuff.Data[5], RxMsgBuff.Data[6], RxMsgBuff.Data[7]); } }*/ /** LED Flashing **/ if (GetLedState()) { LED_ON; } else { LED_OFF; } } while (1); }
int main( void ) { uint32_t Address_EEPROM=EEPROM_START+4; uint32_t n0=0; uint32_t n1=0; uint32_t k0=0; uint32_t k1=0; uint8_t ERR=2; uint8_t rr=0; CLK_Init(); UART_Init(); GP_IO_Init(); TIMR2_Init(); FLASH_EEPROM_Unlock(); A_D_C_Init(); //enableInterrupts(); //Разрешаем прерывания. while(1) { /* if(GPIO_ReadInputPin(GPIOC, GPIO_PIN_2)==0) { GPIO_WriteLow(GPIOB, GPIO_PIN_6); delay_ms(50); GPIO_WriteHigh(GPIOB, GPIO_PIN_6); while(GPIO_ReadInputPin(GPIOC, GPIO_PIN_2)==0){delay_ms(10);}; }; if(GPIO_ReadInputPin(GPIOE, GPIO_PIN_5)==0) { GPIO_WriteLow(GPIOB, GPIO_PIN_7); delay_ms(50); GPIO_WriteHigh(GPIOB, GPIO_PIN_7); while(GPIO_ReadInputPin(GPIOE, GPIO_PIN_5)==0){delay_ms(10);}; }; */ if(GPIO_ReadInputPin(GPIOC, GPIO_PIN_1)==0) { ERR=0; GPIO_WriteHigh(GPIOB, GPIO_PIN_5); GPIO_WriteHigh(GPIOB, GPIO_PIN_6); while(GPIO_ReadInputPin(GPIOC, GPIO_PIN_1)==0){delay_ms(10);}; }; if(ERR==0) { GPIO_WriteLow(GPIOB, GPIO_PIN_7); //delay_ms(6); FLASH_ProgramWord(Address_EEPROM, n0); //FLASH_WaitForLastOperation(FLASH_MEMTYPE_DATA); GPIO_WriteHigh(GPIOB, GPIO_PIN_7); delay_ms(4); n1 = FLASH_ReadWord(Address_EEPROM); if(n1!=n0) { ERR=1; }else { n0++; GPIO_WriteReverse(GPIOF, GPIO_PIN_4); }; }else if(ERR==1) { GPIO_WriteReverse(GPIOB, GPIO_PIN_5); delay_ms(100); }else if(ERR==2) { GPIO_WriteReverse(GPIOB, GPIO_PIN_6); delay_ms(100); }; /* GPIO_WriteLow(GPIOB, GPIO_PIN_6); delay_ms(50); GPIO_WriteHigh(GPIOB, GPIO_PIN_6); GPIO_WriteLow(GPIOB, GPIO_PIN_7); delay_ms(50); GPIO_WriteHigh(GPIOB, GPIO_PIN_7); GPIO_WriteLow(GPIOB, GPIO_PIN_5); delay_ms(50); GPIO_WriteHigh(GPIOB, GPIO_PIN_5); delay_ms(1000); */ } //return 0; }
/* * ======== SERVICES_Init ======== * Purpose: * Initializes SERVICES modules. */ bool SERVICES_Init(void) { bool fInit = true; bool fCFG, fCSL, fDBG, fDPC, fKFILE, fLST, fMEM; bool fREG, fSYNC, fCLK, fNTFY; DBC_Require(cRefs >= 0); if (cRefs == 0) { GT_init(); GT_create(&SERVICES_debugMask, "OS"); /* OS for OSal */ GT_0trace(SERVICES_debugMask, GT_ENTER, "SERVICES_Init: entered\n"); /* Perform required initialization of SERVICES modules. */ fMEM = MEM_Init(); fREG = REG_Init(); fCFG = CFG_Init(); fCSL = CSL_Init(); fDBG = DBG_Init(); fDPC = DPC_Init(); fKFILE = KFILE_Init(); fLST = LST_Init(); fSYNC = SYNC_Init(); fCLK = CLK_Init(); fNTFY = NTFY_Init(); fInit = fCFG && fCSL && fDBG && fDPC && fKFILE && fLST && fMEM && fREG && fSYNC && fCLK; if (!fInit) { if (fNTFY) NTFY_Exit(); if (fSYNC) SYNC_Exit(); if (fCLK) CLK_Exit(); if (fREG) REG_Exit(); if (fLST) LST_Exit(); if (fKFILE) KFILE_Exit(); if (fDPC) DPC_Exit(); if (fDBG) DBG_Exit(); if (fCSL) CSL_Exit(); if (fCFG) CFG_Exit(); if (fMEM) MEM_Exit(); } } if (fInit) cRefs++; GT_1trace(SERVICES_debugMask, GT_5CLASS, "SERVICES_Init: cRefs 0x%x\n", cRefs); DBC_Ensure((fInit && (cRefs > 0)) || (!fInit && (cRefs >= 0))); return fInit; }