Beispiel #1
0
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;
        }
		
		}
  
}
Beispiel #2
0
static void setupTimer(void)
{
	CLK_Init(0);
	TMR8_Tick_Init(1, 0);

	appTick.reload = APPLICATION_TICK_MS;
	appTick.active = true;
	TMR8_Tick_AddTimerConfig(&appTick);
}
Beispiel #3
0
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);
}
Beispiel #4
0
//=====================================
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);

	}

}
Beispiel #7
0
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);

}
Beispiel #8
0
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;
}
Beispiel #9
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;
}