Exemplo n.º 1
0
void main()
{
    P0M0 = 0x00;
    P0M1 = 0x00;
    P1M0 = 0x00;
    P1M1 = 0x00;
    P2M0 = 0x00;
    P2M1 = 0x00;
    P3M0 = 0x00;
    P3M1 = 0x00;
    P4M0 = 0x00;
    P4M1 = 0x00;
    P5M0 = 0x00;
    P5M1 = 0x00;
    P6M0 = 0x00;
    P6M1 = 0x00;
    P7M0 = 0x00;
    P7M1 = 0x00;

    InitUart();                     //初始化串口
    InitADC();                      //初始化ADC
    IE = 0xa0;                      //使能ADC中断
    //开始AD转换
    while (1);
}
Exemplo n.º 2
0
void InitSystem(void)
{
	InitLed();
	InitUart();
	BluetoothInit();
	InitAdc();
	InitSensor();
	InitFan();
	InitRtc();
	InitSecondTimer();
}
Exemplo n.º 3
0
static void InitCom( MB_PORT *pPort )
{
	INT32U nBaud = 0;
	UART_MODE uart;	
	UART_PARAM UartParam;
	
	if (pPort == NULL)
		return;	
	else
	{
		poeUart0ReviceSem = NULL;  
		poeUart3ReviceSem = NULL;  

		UartParam.bps=9600;        //波特率
		UartParam.datab=8;         // 字长度,5/6/7/8
		UartParam.stopb=1;         // 停止位,1/2
		UartParam.parity=0;    	  // 奇偶校验位,0为无校验,1奇数校验,2为偶数校验
 
		//串口初始化
	//	UART0_Init(9600,&uart);
		InitUart( UART0, &UartParam,NULL);
		SetVICIRQ(VIC_UART0, 9, (INT32U)IRQASMUart0);
//		DisableVICIRQ(VIC_UART0);

		UartParam.bps = pPort->Baud;        //波特率
		UartParam.datab = pPort->DataBit;         // 字长度,5/6/7/8
		UartParam.stopb = 1;//pPort->StopBit;         // 停止位,1/2
		UartParam.parity = pPort->ParityBit;      // 奇偶校验位,0为无校验,1奇数校验,2为偶数校验
		InitUart( UART3, &UartParam,NULL);
		SetVICIRQ(VIC_UART3, 8, (INT32U)IRQASMUart3);

//	 	DisableVICIRQ(VIC_UART3); 
// 		nBaud = pPort->Baud;
// 		uart.datab = pPort->DataBit;
// 		uart.stopb = pPort->StopBit + 1;
// 		uart.parity = pPort->ParityBit;
// 		UART3_Init(nBaud ,&uart);
		return;
	}
}
Exemplo n.º 4
0
/************
  虚拟示波器使用方法
  使用前配置:应该选择破解之后的VisualScope_Crack程序,兼容性选择win95或者98
  然后在Setup->Communication protocol->CRC16设置。同时在Tools->Scom Assistant中点击
  Open,查看是否有数据发过来。要是有,则关闭后叉掉。再点击
  优势:操作比较人性化,可以显示当前状态值。可以不需要延时处理。

***************/

#include"stm32f10x.h"
#include"delay.h"
#include"usart.h" /* printf函数定向输出到串口,所以必须包含这个文件 */
#include"ocsctl.h"
#include<stdio.h>  /* 因为用到了printf函数,所以必须包含这个文件 */
int main(void)
{
   SystemInit();
   delay_init(72);
   InitUart();
 	
   while(1)
   {
       OCS_displayData(10.0,100.0,255.0,1000.9);
	   delay_us(1);								
   }
  
}
Exemplo n.º 5
0
int main (void)
{
	InitUart();	//Init uart
	initInput(); //Init interrupt to start button, stop button and speed sensor	
	initMotorPWM(); //Init Fast PWM on Timer 0 (Pin PE1)
	initSpeedTimer(); //Init Timer 1 (16bit normal mode)
	initCurrentADC(); //Init ADC on PC5
	
	
	//Init speed array
	for (int i = 0; i<(SPEED_ARRAY_SIZE); i++)
	{
		speedArray[i]=65535;
	}
	
	while (1)
	{
		//Switch to stop state if something is rotten
		Protection(&Sm_State, &speed);
		
		switch (Sm_State)
		{
			case STATE_STOP:
			Stop(&motor);
			break;
				
			case STATE_RAMP_INIT:
			RampInit(&Sm_State, &motor);
			break;
				
			case STATE_RAMP_SEARCH:
			RampSearch(&Sm_State, &motor, &speed, &lastSpeed);
			break;
				
			case STATE_ACC:
			Acc(&Sm_State,&motor, speedArray);
			break;
				
			case STATE_COAST:
			Coast(&Sm_State, &motor, &speed);
			break;
				
			default:
			Sm_State = STATE_STOP;
			break;
		}
		
	}

}
Exemplo n.º 6
0
void main()
{
    InitUart();                 //initial UART
    InitSPI();                  //initial SPI
    IE2 |= ESPI;
    EA = 1;

    while (1)
    {
#ifdef MASTER                   //for master (receive UART data from PC and send it to slave, in the meantime
                                //            receive SPI data from slave and send it to PC)
        ACC = RecvUart();
        SPISS = 0;              //pull low slave SS
        SPDAT = ACC;            //trigger SPI send
#endif
    }
}
Exemplo n.º 7
0
void main(void)
{
	u16 id;
	InitUart();
	InitKeyBoard();
	//***********************************
//	Prints("adfasdfadsfasf");
//	LightUpLed(LED1);
//	TurnOffLed(LED2);
	Prints("\nGetting chip ID...");
	D12ReadID(&id);
	PrintShortIntHex(id);
	Prints(",over\n");
	
	USBConnect();
   	
	//************************************
	while(1);
}
Exemplo n.º 8
0
int main() {

	char cmd, data;
	char config[8];
//	char state = 0;		// State: 0=failure, 1=success
	int i;
	InitUart();

	//Error:
	while(1)
	{
		if(!EmptyUart1())
		{
			cmd = GetUart1();
			switch(cmd)
			{
			// 'test' command
			case 't':
				if (start_test())
					PutUart1('s');
				else
					PutUart1('f');
				break;
			// 'ready' inquiry
			case 'r':
				PutUart1('a');		// Acknowledge
				break;
			// 'memory' command
			case 'm':
				PutUart1('a');		// Acknowledge
//				flush_rx_buffer();
				if(dump_memory())
					PutUart1('s');
				else
					PutUart1('f');
				break;
			// 'configuration' command
			case 'c':
#if REMOTE_CONFIG == 0
				PutUart1('f');
#else
				PutUart1('a');		// Acknowledge
				for(i=0; i<8; i++)
				{
					if(!wait_for_answer(&data))
						break;
					config[i] = data;
				}
				if(i<8)
					PutUart1('f');
				else
				{
					INT_A_PERIOD = config[0];
					INT_B_PERIOD = config[1];
					INT_C_PERIOD = config[2];
					INT_D_PERIOD = config[3];
					BURST_WRITE = config[4]>0 ? 1 : 0;
					TIME_SCALER = config[5]>0 ? config[5] : 1;
					HOLD_TIME = config[6];
					TEST_DURATION = config[7];
					PutUart1('s');
				}
#endif
				break;
			default:

				break;
			}
		}
	}
	return( 0 );
}
Exemplo n.º 9
0
void main()
{
	u8 time_counter_for_cycle = 4;
    disable_all_interrupt();
	//设置输出口、中断
	require_delay_init();
	InitUart();
	init_system_component();
	//初始化端口
	P33 = 0;
	enable_all_interrupt();
	//检测当前状态
	detect_current_state();
    while(1) {
    	// Feed dog
    	reset_watch_dog();
    	// 驱动灯光开关
 //   	toggle_once();
   		// 5ms system tick-tock
    	if (INT_PROC & TICK_DUTY) {
    		cycle_based_adjust(counter_for_cycle);
            INT_PROC &= ~TICK_DUTY;
 //   		continue;
    	}

    	if (INT_PROC & EXINT_PROC) {
            EX0 = 0;
 //           SendData(time_counter>>8);
 //           SendData(time_counter);
    		if(time_counter <= 80)
            {
    			if(display_mode_set == combination)
                {
                    -- time_counter_for_cycle;
                }
                // 循环四次跳至下一个功能
                if(!time_counter_for_cycle)
                {
                    display_mode_logic++;
                    time_counter_for_cycle = 4;
                }
                if(display_mode_logic == 13)
                    display_mode_logic = 1;
 //               SendData(display_mode_logic);
                display_mode_set_changed();
            }
            if(display_mode_set == bi_directional_storbing)
    		{
    			if(time_counter >= 4000 && time_counter < 20000){
    				display_mode_logic ++;
                    if(display_mode_logic == 13)
                        display_mode_logic = 1;
                }
    			if(time_counter >= 40000)
    				display_mode_logic = 2;
                EEPROM_SectorErase(IAP_ADDRESS);
    			EEPROM_write(IAP_ADDRESS, display_mode_logic);
//                SendData(display_mode_logic);
    			display_mode_set_changed();
    		}
    		time_counter = 0;
    		INT_PROC &= ~EXINT_PROC;
            EX0 = 1;
    		continue;
    	}
    }
}
Exemplo n.º 10
0
void main( void )
{  
  // Stop watchdog timer to prevent time out reset 
  WDTCTL = WDTPW + WDTHOLD; 
  TA1CCTL0 = CCIE;                          // CCR0 interrupt enabled
  TA1CCR0 = 50000;
  TA1CTL = TASSEL_2 + MC_1 + TACLR;         // SMCLK, upmode, clear TAR
   __bis_SR_register(GIE);
  //WDTCTL = WDT_ARST_250;
  //SFRIE1 |= WDTIE;                          // Enable WDT interrupt
  // Increase PMMCOREV level to 2 for proper radio operation
  SetVCore(2);                            
  
  ResetRadioCore();     
  InitRadio();
  InitButtonLeds();
  InitUart();
    
  ReceiveOn(); 
  receiving = 1; 
  _EINT();  
  while (1)
  { 
    //WDTCTL = WDT_ARST_250;
   // __bis_SR_register( LPM3_bits + GIE ); 
    __no_operation();
    
  if((!(BUTTON_IN & (1<<BUTTON_BIT))))
    {
      _NOP();
      delayms(30);
      if(!(BUTTON_IN & (1<<BUTTON_BIT)))
      {
        _NOP();
		buttonPressed = 1;		
        LEDR_ON();
        ReceiveOff();
        receiving = 0;
        Transmit( (unsigned char*)TxBuffer,sizeof TxBuffer);
        transmitting = 1;
		while(!(BUTTON_IN & (1<<BUTTON_BIT)));
      }
      
    }
    if(!transmitting)
    {
      ReceiveOn();
      receiving = 1;
    }
	if(buttonPressed && transmit == 1)
	{
		LEDR_ON();
        ReceiveOff();
        receiving = 0;
        Transmit( (unsigned char*)TxBuffer,sizeof TxBuffer);
        transmitting = 1;
		transmit = 0;
		receive = 1;
		delayms(500);
		buttonPressed = 0;	
	}
	if(count == 20 && buttonPressed == 0 && receive == 1)
	{
	buttonPressed = 1;	
	count = 0;
	transmit = 1;
	receive = 0;
	}
  }
}