Пример #1
0
int rt_rau_application_init(void) 
{
    rt_thread_t tid;

 //   rt_scheduler_sethook(rt_thread_switch_hook);
/*
    tid = rt_thread_create("rau_send",
                           rt_rau_app_send_msg_entry, RT_NULL,
                           2048, RT_THREAD_RAUAPP_PRIORITY, 20);

    if (tid != RT_NULL)
        rt_thread_startup(tid);
*/
#ifdef RCU_UART
    Clock_Init();
    rcu_uart_init();
    rcu_uart_set_device("uart1");
#endif //RCU_UART

    tid = rt_thread_create("rau_receive",
                           rt_rau_app_receive_msg_entry, RT_NULL,
                           2048, RT_THREAD_RAUAPP_PRIORITY, 20);
    
    if (tid != RT_NULL)
        rt_thread_startup(tid);
    
    return 0;
}
Пример #2
0
int main(void) {
    char c;

    INTCON1bits.NSTDIS = 1;
    openQEI();
    OpenUART();
//    openPWM();
//    InitTMR2();

    Clock_Init();
//    enablePWM;
//    ch1Run;
//    ch2Run;

    initInterpreter();
    initOdometrie();
    initAsservissement();
    initPIDs();

    while(1)
    {
        c = (char)ReadUART1();

        if(buildCommande())
        {
            interpreteCommande();
            clearCommande();
        }
    }

    return 0;
}
Пример #3
0
int main()
{
    WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT

    Clock_Init(0,0,0,1); // 1M DCO
    Drive_Init(0, 100);

    LCD5110_Init();
    LCD5110_Write_String(0,0,LCD_BUFFER1);
    _EINT();
    while(1)
    {
        if(SPEED_DISPLAY_FLAG == 1)
        {
            SPEED_DISPLAY_FLAG = 0;

            SPEED_L = Drive_Speed_L();
            SPEED_R = Drive_Speed_R();
            LCD5110_Long2char(SPEED_L / 5);
            LCD5110_Write_String(0,1,LCD5110_BUFFER);
            LCD5110_Long2char(SPEED_R / 5);
            LCD5110_Write_String(0,2,LCD5110_BUFFER);
        }
    }
}
Пример #4
0
/******************************************************************************
* Function Name : SystemInit
* Description : 
* Argument : none
* Return Value : none
******************************************************************************/
void SystemInit( void )
{
	/* clock generator initialize */
	Clock_Init();
	/* low-voltage detector initialize */
	Lvi_Init();
}
Пример #5
0
void init() {
    // Clock Initialize
    Clock_Init();    
    Timer_Init();
    _NSTDIS = 1;  //Interrupt Nesting Disable    
            
    // Digital Communication Initialize
    //UART1_Init(); 
    ADC_Init();
    I2C1_Init();    
            
    // Peripherals Initialize
    LCD_Init();
     
    // Interrupt 3 Initialize    
    SW_TRIS = TRIS_INPUT; // RA2/INT3 as input;
    
    _INT3IP = 1;
    _INT3IF = 0;
    _INT3IE = 1;
    _INT3EP = 1; //Interrupt on negative edge
    
    // Make relay drive port as output
    RELAY_SOURCE_TRIS = TRIS_OUTPUT; 
    RELAY_LED_TRIS = TRIS_OUTPUT;
    
    // Select battery as voltage source and turn on LED light
    RELAY_SOURCE = SOURCE_BATTERY; 
    RELAY_LED = TURN_OFF_LED;
    
    SDC_Start();
}
Пример #6
0
int main()
{
    WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
    Clock_Init(0,0,0,12); // 12M DCO
    TimerB_ConMode_Init(2, 4); // 3M的持续计数模式.

    LCD5110_Init();
    LCD5110_Write_String(0,0,LCD_BUFFER1);

    Drive_UTL_Init();

    _EINT();

    while(1)    //间隔1s 进行一次超声波测距
    {

        ULT_TRIG1;
        DELAY_US(30);
        ULT_TRIG0;

        DELAY_MS(300);

        Drive_UTL_DISTANCE();
        UTL_START_TIME = 0;
        LCD5110_Long2Char(UTL_BUFFER);
        LCD5110_Write_String(0,1,0);
        UTL_FLAG = 0;
    }


}
Пример #7
0
void main()
{
    WDTCTL = WDTPW + WDTHOLD;
    Clock_Init(0,0,0,CPU_FF); // 12M DCO

    LCD5110_Init();

    LCD5110_Write_String(0,0,LCD_MAIN_BUFFER1);
    LCD5110_Write_String(0,1,LCD_MAIN_BUFFER2);
    LCD5110_Write_String(0,2,LCD_MAIN_BUFFER3);

    LCD5110_Write_String(0,3,LCD_MAIN_BUFFER4);
    LCD5110_Write_String(0,4,LCD_MAIN_BUFFER5);

    MPU6050_Init();


    while(1)
    {
        MPU6050_AccelX();
        LCD5110_Long2Char(MPU6050_AX);
        LCD5110_Write_String(18,0,0);

        MPU6050_AccelY();
        LCD5110_Long2Char(MPU6050_AY);
        LCD5110_Write_String(18,1,0);

        MPU6050_AccelZ();
        LCD5110_Long2Char(MPU6050_AZ);
        LCD5110_Write_String(18,2,0);

        MPU6050_Angle_XZX();
        MPU6050_Angle_YZY();
        LCD5110_Long2Char(MPU6050_ANGLE_XZX);
        LCD5110_Write_String(18,3,0);
        LCD5110_Long2Char(MPU6050_ANGLE_YZY);
        LCD5110_Write_String(18,4,0);




        /*
                MPU6050_AnguX();
                LCD5110_Long2Char(MPU6050_GX);
                LCD5110_Write_String(18,3,0);

                MPU6050_AnguY();
                LCD5110_Long2Char(MPU6050_GY);
                LCD5110_Write_String(18,4,0);

                MPU6050_AnguZ();
                LCD5110_Long2Char(MPU6050_GZ);
                LCD5110_Write_String(18,5,0);
        */
        DELAY_MS(500);

    }

}
Пример #8
0
void Basic_Init(void)
{
  Watchdog_Init();            //WatchdogInig
  Clock_Init();               //CLKInit
  TC0_Wait_msWhile(5);        //wait
  PORT_Init();                //PortInit
  CAN_Init();                 //CANInit
  TC0_Wait_msWhile(5);        //wait
  TC0_Stop();                 //StopTimer

  CAN_RXMOb_SetAddr(0x01);    //SetCANAdress
}
Пример #9
0
/*Main Function*/
int main()
{
	Clock_Init();
	GPIO_Init();
	while(1)
	{
		if(!(GPIOC->IDR & (Pin_13)))
		{GPIO_PinOff(FK_GPIOA,5);}
		else
		{GPIO_PinOn(FK_GPIOA,5);}
	}
}
Пример #10
0
int main()
{
    WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
    Clock_Init(0,0,0,1); // 1M DCO

    USCI_SPI_Init(0, 0, 1, 0, 0); //涓绘満A0
    USCI_SPI_Init(1, 0, 0, 0, 0);
    USCI_A1RX_ENABLE;
    UCA0TXBUF = 1;
    _EINT();
    while(1);

}
Пример #11
0
int main(void) {
	
	Clock_Init();
	PortG_Init();
	Sound_Init();	
	OLED_Init();	
	LED_Blink();
	SysTickInt_Init();	
	IntMasterEnable();

	

	while(1) { 
		// SLEEP 
		}
	
}
Пример #12
0
int main (void)
{
    P1DIR = 0XFF;P1OUT = 0XFF;               // P1DIR = 0XF0;P1OUT = 0X0F;
    P2DIR = 0XFF;P2OUT = 0XFF;
    P3DIR = 0XFF;P3OUT = 0XFF;
    P4DIR = 0XFF;P4OUT = 0XFF;
    P5DIR = 0XFF;P5OUT = 0XFF;
    P6DIR = 0XFF;P6OUT = 0XFF; 
  
  Wdt_Init();
  Clock_Init();
  Lcd_Reset();
  //Lcd_WriteStr(0,0,"yes");
  
  P6SEL=0x00;
  P6DIR=0x02;
  
  //CTL_RC1;

  while(1)
  {
  rst=Ads_Convert();
  Delay(100);
  Ads_Str();
  }
  /*
  while(1)
  {
  if(count<10)
  {
    Ads_Convert();//系统误差,调整截距
    Delay(1000);
    count++;
  }
  else
  {
    count=0;
    rst/=10;
    Ads_Str();
    Delay(1000);
    rst=0;
  }
  }
  */
}
Пример #13
0
int main()
{
    WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT

    Clock_Init(0,0,0,1); // 1M DCO
    Drive_IO_Init();
    Drive_PWM_Init();

    _EINT();

    	while(1){
    		Drive_Motor_L(0, 60);
    		Drive_Motor_R(1, 60);
    		DELAY_MS(333);
    		Drive_Motor_L(0, 10);
    		Drive_Motor_R(1, 10);
    		DELAY_MS(333);
    	}
}
Пример #14
0
void main(void)
{
    WDTCTL = WDTPW + WDTHOLD;                 // Stop watchdog
    Clock_Init(0,0,0,CPU_FF);  // 1M DCO, 9K VLO ACLK

    LCD5110_Init();
    LCD5110_Write_String(0,0,(char*)LCD_BUFFER1);


    P6SEL = 0x03;                             // Enable A/D channel inputs
    ADC12CTL0 = ADC12ON + MSC + SHT0_8;           // Turn on ADC12, extend sampling time
    // to avoid overflow of results
    ADC12CTL1 = SHP + CONSEQ_3;                 // Use sampling timer, repeated sequence
    ADC12MCTL0 = INCH_0;                      // ref+=AVcc, channel = A0
    ADC12MCTL1 = INCH_1 + EOS;                  // ref+=AVcc, channel = A1, end seq.
    ADC12IE = 0x02;                           // Enable ADC12IFG.3
    ADC12CTL0 |= ENC;                         // Enable conversions
    ADC12CTL0 |= ADC12SC;                     // Start convn - software trigger
    _BIS_SR(LPM0_bits + GIE);                 // Enter LPM0, Enable interrupts
}
Пример #15
0
void main()
{
    WDTCTL =WDTPW + WDTHOLD;

    Clock_Init(4,4,0,CPU_FF);
    CJMCU_INIT();
    LCD5110_Init();

    _EINT();         //必须开中断

    DELAY_MS(3000);


    CJMCU_Aline();  //自动校准
    LCD5110_Long2Char(CJMCU_YAW_OFFSET);
    LCD5110_Write_String(0,0,0);
    LCD5110_Long2Char(CJMCU_PITCH_OFFSET);
    LCD5110_Write_String(0,1,0);
    LCD5110_Long2Char(CJMCU_ROLL_OFFSET);
    LCD5110_Write_String(0,2,0);

    DELAY_MS(3000);


    while(1)
    {
        CJMCU_START(); //只读取一次。每次读取数据时都要调用该函数
        while(CJMCU_RCV_FLAG==0);
        CJMCU_GET_VALUE(&yaw, &pitch, &roll);

        LCD5110_Long2Char(yaw);
        LCD5110_Write_String(0,0,0);
        LCD5110_Long2Char(pitch);
        LCD5110_Write_String(0,1,0);
        LCD5110_Long2Char(roll);
        LCD5110_Write_String(0,2,0);

        DELAY_US(10);
    }                         // Enable USCI_A0 RX interrupt
}
Пример #16
0
void main( void )
{
  // Stop watchdog timer to prevent time out reset
  uint t=0,time=0;
  WDTCTL = WDTPW + WDTHOLD;
  
  Clock_Init();
  SMG_init();
  
  while(1)
  {
    SMG_Display(time);
    if(t++>10)
    {
      t=0;
      if(time++>=9999)
      {
        time=0;
      }
    }
  }
}
Пример #17
0
void main( void )
{

  // Stop watchdog timer to prevent time out reset
  WDTCTL = WDTPW + WDTHOLD;
  button_init();
  led_init();
  Clock_Init();
  NRF24L01_init(1,1);
  NRF24L01_ConfigMode(MODETX);
  NRF24L01_TxPacket(temp);
  NRF24L01_ConfigMode(MODERX);
  while(1)
  {
    LPM3;  

    //SMG_Display(rece_buf[0]);
    led1_on(0);
    Delay_ms(300);
    led1_off(0);
    Delay_ms(300);
  }
}
Пример #18
0
void main(void)
{
    WDTCTL = WDTPW + WDTHOLD;                 // Stop watchdog
    Clock_Init(0,0,0,1); // 1M DCO, 9K VLO ACLK

    P1OUT = 0x00;                             // Clear P1
    P1DIR = 0x01;                             // P1.0 as output LED.
    LCD5110_Init();
    LCD5110_Write_String(0,0,(char*)LCD_BUFFER1);

    ADC12_Init(3,1,2,7);        // smclk, /1, 单通道序列采样, 采样保持时间2^7 adcclk.
    ADC12_Sample_Source(1, 1);  // TimeA.out 触发采样,采样定时器控制采样
    ADC12_Set_VREF2_5();        // 2.5V参考电压开启

    ADC12_MCTL(0, 1, 10);       // 内存单元0开启温度传感器通道A10, 参考电压选择VREF+.
    ADC12_Enable((BIT0));           //内存单元中断,存放值以后是否中断.
    ADC12_ENC;

    TACCTL1 = OUTMOD_4;                       // Toggle on EQU1 (TAR = 0)
    TACTL = TASSEL_2 + MC_2;                  // SMCLK, cont-mode

    _EINT();
    while(1);
}
Пример #19
0
//***********************************************************************
//			主程序
//***********************************************************************
void main(void)
{
  unsigned char qq;
 // unsigned char adxl_state;
  unsigned char mmc_state;
    unsigned char eeprom_state;
  for (qq=0;qq<0xf0;qq++)
  {
  _NOP();
  }
  WDT_Init();                                   //看门狗设置
 //  _DINT();
  Clock_Init();                                 //系统时钟设置
  delay_ms(100);                                //延时100ms
  Port_Init();                                  //系统初始化,设置IO口属性
  GM8125_Init(0);
  delay_ms(100); 
  DeBug_Print_Str("System Start!\r\n");  
  TimerA_init();
 
  mmc_state = mmc_test();
  if ( mmc_state == 1)
  {
   DeBug_Print_Str("MMC Verify Success!\r\n");  
   cardSize =  MMC_ReadCardSize();
   SDsizeDisplay(cardSize); 
   SD_File_Create();
  }
  else
  {
      DeBug_Print_Str("MMC Verify Failure!\r\n");  
  }
    //延时100ms
 _EINT(); 

   eeprom_state = eeprom_test();
   if ( eeprom_state == 1)
  {
     DeBug_Print_Str("EEPROM Verify Success!\r\n");  

  }
  else
  {
      DeBug_Print_Str("EEPROM Verify Failure!\r\n");  
  }
   
      Init_ADXL345();                 	//初始化ADXL345
      devid=Single_Read_ADXL345(0X00);	//读出的数据为0XE5,表示正确
      if(devid!=0XE5)
      {				
          DeBug_Print_Str("No ADXL345\r\n");	
      }
      else
      {			
      	  DeBug_Print_Str("ADXL345 init Success!\r\n");	    
      } 

  while(1)
  {
    /*
     adxl_state = ADXL345_Work(&X_data,&Y_data,&Z_data);
     if (adxl_state == FALSE)
     {
         DeBug_Print_Str("Adxl345 no work!\r\n");	
     }
     
     delay_ms(5);
     ProcessingData();
     delay_ms(5);
     */
    
    while (0 == ConnectFlag)
    {
         gprs_band_rate();
         DeBug_Print_Str("GPRS BandRate Set OK!\r\n"); 
         delay_ms(1000);
         gprs_check_china_mobile();
         DeBug_Print_Str("GPRS Check China Mobile OK!\r\n"); 
         delay_ms(1000);
         ConnectFlag = gprs_connect_server();//while (connect ok)
         if (1 == ConnectFlag)
         {
           DeBug_Print_Str("GPRS Connect Server is OK!\r\n"); 
           LogFlag=0;   //登上服务器后将logon标志置零
         }
         else
         {
            DeBug_Print_Str("GPRS Connect Server Fail!\r\n"); 
         }
         delay_ms(1000);  
    }
    
     while(1 == ConnectFlag)
    {
      DoRcv();
      if(LogFlag)
      {
        SendData(); 
      }
     
      delay_ms(1000);  
    }  
    
      //delay_ms(1000);  

  }
}
int main(void)
{
    //int ret;
    
    NVIC_SetVectorTable(NVIC_VectTab_FLASH,VECTOR_TABLE_BASE_ADDRESS);
    
    /* Identify the BlueNRG platform */
    SdkEvalIdentification();

    RCC_Configuration();
    /* Basic button init function for handling application jumping */
    Configure_Button();
 
#if 0 /* TBR */
    PWR_PVDCmd(DISABLE);
    
    /* Disable FLASH during Sleep  */
    FLASH_SLEEPPowerDownCmd(ENABLE);
    
    /* Enable Ultra low power mode */
    PWR_UltraLowPowerCmd(ENABLE);
    
    PWR_FastWakeUpCmd(DISABLE);
#endif 
    
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
    
    Clock_Init();
    
    HCI_Init();
 
    /* Init SPI interface */
    SdkEvalSpiInit(SPI_MODE_EXTI);
    /* Reset BlueNRG SPI interface */
    BlueNRG_RST();
    
    /* Init leds */
    SdkEvalLedInit(LED1);
    SdkEvalLedInit(LED2);

    {
        tHalUint8 bdaddr[] = {0x12, 0x34, 0x00, 0xE1, 0x80, 0x02};

        aci_hal_write_config_data(CONFIG_DATA_PUBADDR_OFFSET, CONFIG_DATA_PUBADDR_LEN,
                                        bdaddr);
    }
    
    aci_gatt_init();    
    
    {
        uint16_t service_handle, dev_name_char_handle, appearance_char_handle;
        aci_gap_init(1, &service_handle, &dev_name_char_handle, &appearance_char_handle);        
    }
    
#if 0/* TBR */
    aci_gap_set_auth_requirement(MITM_PROTECTION_REQUIRED,
                                       OOB_AUTH_DATA_ABSENT,
                                       NULL,
                                       7,
                                       16,
                                       USE_FIXED_PIN_FOR_PAIRING,
                                       123456,
                                       BONDING);
#endif 
    
    //PRINTF("BLE Stack Initialized.\n");
    
#ifdef ST_OTA_BTL
    /* Add OTA bootloader service */
    Add_Btl_Service();
#endif
    
    /* -2 dBm output power */
    aci_hal_set_tx_power_level(1,4);
    
    while(1)
    {
#ifdef ST_OTA_BTL
      static tClockTime startTime = 0;

      if (Clock_Time() - startTime >led_blinking_rate)
      {    
        /* LED D1 is toggling on OTA_Service Manager */
        SdkEvalLedToggle(LED1);     
        startTime = Clock_Time();
      }
#endif /* end ST_OTA_BTL */

        HCI_Process();
        
        if(set_connectable){
            setConnectable();
            set_connectable = 0;
        }
        
      /* Use button to switch to the basic Reset Manager */
      if (GPIO_ReadInputDataBit(ButtonPort,ButtonPin) == RESET)
      {
        /* Add delay to avoid conlict with DFU activation */
        Clock_Wait(2000);
        
        /* Check if an application has been loaded previously through OTA service
           manager */
        if (*((uint32_t*) NEW_APP_MEM_INFO)!= 0) 
          /* Service Manager will jump to the Application previously loaded at
           address  APPLICATION_JUMP_ADDRESS */
          Switch_To_OTA_Service_Manager_Application(APPLICATION_JUMP_ADDRESS);
      }
    }
}
Пример #21
0
/*
 * main.c
 */
int main(void) {
    //WDTCTL = WDTPW | WDTHOLD;	// Stop watchdog timer
	Clock_Init();
    WDT_Init();
    WX315_Init();
	led_init();
	Init_HC05();
	TimerA_Init();
	Key_Init();
	MQ2_Init();
	Ir_Init();
	Sound_Init();

//	//__bis_SR_register(LPM0_bits + GIE);
	_EINT();

	led0_off();//默认开蓝牙使能
	delay_ms(1000);

	while(1){
		if(temp_tx_flag==1){
			for(i=0;i<8;i++){
				UartPutchar(ch[i]);
			}
			temp_tx_flag=0;
		}
		if(flag_mq2==1){
			flag_mq2=0;
			UartPutchar('V');//Vapour 烟雾传感器 有漏气 向APP发送指令'V'
		}
		if(flag_ir==1){
			flag_ir=0;
			UartPutchar('I');//Ir 红外传感器 有漏气 向APP发送指令'I'
		}
		if(flag_sound==1){
			flag_sound=0;
			UartPutchar('S');//Sound 声音传感器 有大风 向APP发送指令'S'
		}
		switch(uart_temp){

			 		//color
			 		case 'r':
			 			RGB_r();
			 			uart_temp=' ';
			 			break;
			 		case 'o':
			 			RGB_o();
			 			uart_temp=' ';
			 			break;
			 		case 'y':
			 			RGB_y();
			 			uart_temp=' ';
			 			break;
			 		case 'g':
			 			RGB_g();
			 			uart_temp=' ';
			 			break;
			 		case 'b':
			 			RGB_b();
			 			uart_temp=' ';
			 			break;
			 		case 'p':
			 			RGB_p();
			 			uart_temp=' ';
			 			break;
			 		case 'w':
			 			RGB_w();
			 			uart_temp=' ';
			 			break;
			 		case 'd'://关灯 dieout
			 			RGB_d();
			 			uart_temp=' ';
			 			break;
			 			//***********************************************************
			 		case 'm'://开窗 m motor
			 			Window_m();
			 			uart_temp=' ';
			 			break;
			 		case 'n'://关窗
			 			Window_n();
			 			uart_temp=' ';
			 			break;
			 			//***********************************************************
			 		case 'u'://加热 u up
			 			TempNew_u();
			 			uart_temp=' ';
			 			break;
			 		case 'v'://制冷
			 			TempNew_v();
			 			uart_temp=' ';
			 			break;
			 		case 'x'://停止加热
			 			TempNew_x();
			 			uart_temp=' ';
			 			break;
			 		case 'z'://停止制冷
			 			TempNew_z();
			 			uart_temp=' ';
			 			break;
			 			//************************************************************
			 		case 'c'://回家模式
			 			Home_Mode_Backhome();
			 			break;
			 		case 'e'://浪漫模式
			 			Home_Mode_Romatic();
			 			break;
			 		case 'f'://离家模式
			 			Home_Mode_Awayhome();
			 			break;


			 		default:break;
			 		}
	}

	
	//return 0;
}