Example #1
0
void Oled_Displayinit()
{
	OLED_Fill(0);
	OLED_ShowStr(16,0,"Select mode",2);
	OLED_ShowStr(0,2,"  Fixed line  ",2);
	OLED_ShowStr(0,7,"OK             NEST",1);
}
Example #2
0
void mode3_Display(u8 angle)
{
	OLED_ShowStr(0,4,"                ",2);
	OLED_ShowStr(0,4,"angle:       du",2);
	OLED_ShowNum(angle);
	
}
Example #3
0
int main()
{
    UART_InitTypeDef UART_InitStructure;

	SystemInit();
  /* Configure UART2 */
   	S_UART_Init(115200);
    
    conf.scl = I2C_PA_9;
    conf.sda = I2C_PA_10;

    I2C_Init(&conf);
    OLED_Init();
	
	
	OLED_Fill(0xFF);
	delay_ms(20);
	OLED_Fill(0x00);
	delay_ms(10);
    
	OLED_ShowStr(0,3,"Welcome to",1);
	OLED_ShowStr(0,4,"WIznet ^^",2);	

  } 
Example #4
0
void OLED_ShowNum(u8 num)
{
	u8 data[3]={48,48,48},i;
	for(i=0;num;i++)
	{
		data[2-i]=num%10+0x30;
		num/=10;	
	}
	for(;i!=3;i++)
	{
		data[2-i]=0x20;
	}
	if(data[2]==0x20)data[2]=0x30;
	OLED_ShowStr(60, 4, data, 2);
	
}
Example #5
0
void Oled_Display()
{
	switch(mode)
	{
		case 0:OLED_ShowStr(0,2,"   Fixed line   ",2);break;      //第一步任务:不短于50cm直线段
		case 1:OLED_ShowStr(0,2," change Length  ",2);break;			 //第二部任务:固定方向30-60cm直线
		case 2:OLED_ShowStr(0,2,"change direction",2);break;			 //第三部任务:任意方向,大于20cm直线
		case 3:OLED_ShowStr(0,2,"   Standstill   ",2);break;			 //第四步任务:拉起角度,可以达到静止
		case 4:OLED_ShowStr(0,2,"  Draw a circle ",2);break;			 //第五步任务: 重复三次可设置半径15-35的圆环内
		case 5:OLED_ShowStr(0,2,"  Draw a circle2",2);break;			 //
		case 6:OLED_ShowStr(0,2,"     Other      ",2);break;
		
	}
	
}
Example #6
0
void clear()
{
	OLED_ShowStr(0,4,"                ",2);
}
Example #7
0
void mode5_Display(u8 r)
{
	OLED_ShowStr(0,4,"             cm",2);
	OLED_ShowStr(0,4,"R:",2);
	OLED_ShowNum(r);
}
Example #8
0
void mode2_Display(u8 lenth)
{
	OLED_ShowStr(0,4,"                ",2);
	OLED_ShowStr(0,4,"lenth:       cm",2);
	OLED_ShowNum(lenth);
}
Example #9
0
void fct_stc_opt(void)
{
  int i = 0;
    switch(function)
    {
        case 0:  //off
        {
          OLED_OFF();
          for (i = 1; i > 0; i--)
          {
            P4OUT |= BIT7;
            Delay_ms(50);
            P4OUT &= ~BIT7;
            Delay_ms(50);
          }
        }
        break;

        case 1:
        {
            switch(mode)
            {
                case 0:
                {
//                  mode = 1;
                    OLED_ON();
                    OLED_Clear(0x00);
                    OLED_ShowStr(0,0,"Current_bt",11,1); //6*8
                }
                break;

                case 1:
                {
//                  function = 2;
                    OLED_ON();
                    OLED_Clear(0x00);
                    OLED_ShowStr(0,0,"Current_Pot",11,1); //6*8
                }
                break;
            }
        }
        break;

        case 2: //R_test
        {
//          function = 1;
//          mode = 0;
        	OLED_ON();
            OLED_Clear(0x00);
            OLED_ShowStr(0,0,"R_test",11,1); //6*8
        }
        break;

        case 3:   //sleep
        {
          OLED_OFF();
          for (i = 3; i > 0; i--)
          {
            P4OUT |= BIT7;
            Delay_ms(50);
            P4OUT &= ~BIT7;
            Delay_ms(50);
          }
        }
        break;
    }
  fct_stc_flag = 0;
}
Example #10
0
int main(void)
{
//    double Datav=123.4;

    str = a;
    int i;

//    char *str_1 = "abc" ;


  WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT


  //Timer0
  TA0CCTL0 = CCIE;                          // CCR0 interrupt enabled
  TA0CCR0 = 5000;
  TA0CTL = TASSEL_2 + MC_1 + TACLR;         // SMCLK, upmode, clear TAR

  //GPIO
  P4DIR |= BIT7;                            // Set P4.7 to output direction
  P1DIR |= BIT0;                            // Set P1.0 to output direction
  P1DIR |= 0x3C;
  P3DIR |= BIT5+BIT6;
  P1OUT |= BIT5+BIT4;

  //buttom
  P2REN |= BIT1;
  P2OUT |= BIT1;
  P2IES |= BIT1;
  P2IFG &= ~BIT1;
  P2IE |= BIT1;

  P1REN |= BIT1;
  P1OUT |= BIT1;
  P1IES |= BIT1;
  P1IFG &= ~BIT1;
  P1IE |= BIT1;

  //IIC
  OLED_Init();
  OLED_ShowStr(0,2,"Please Set:",99,2);
//  Delay_ms(100);
//  OLED_Clear(0x00);
//end of IIC

  DMAInit();
  ADCInit();   //启动需要在增加 enable

  //UART
  UART_Init(UARTA0); //bluetooth
  UART_Init(UARTB0); //SPI

  UCA0IE |= UCRXIE;                         // Enable USCI_A0 RX interrupt
  //  UCB0IE |= UCRXIE;                         // Enable USCI_B0 RX interrupt

  //SPI
    P2OUT |= BIT5;                            // reset slave
    P2OUT &= ~BIT5;                           // Now with SPI signals initialized,
    for(i=50;i>0;i--);                        // Wait for slave to initialize

    MST_Data = 0x8FFF;                          // Initialize data values
    SLV_Data = 0x00;                          //
    while (!(UCB0IFG&UCTXIFG));               // USCI_B0 TX buffer ready?
  //end of SPI


  __bis_SR_register(LPM3_bits + GIE);       // Enter LPM0, enable interrupts
  while(1)
  {
//    OLED_ShowStr(12,2,(unsigned char *)F2S(Datav,tstr),6,1); //6*8
//    UartTX_Send("Done!\r\n",7);

      if(buttom_fct_flag != 0)
      {
    	  buttom_fct_stc_opt();
    	  buttom_fct_flag = 0;
      }

      if(buttom_fct_flags != 0)
      {
    	  buttom_fct_stcs_opt();
    	  buttom_fct_flags = 0;
      }


//    OLED_ShowStr(0,0,(unsigned char *)F2S(DMA_A1,tstr),8,1); //6*8
      if(fct_stc_flag != 0)
      {
          fct_stc_flag = 0;
          fct_stc_opt();
      }

      if(function!=0) // not off
      {
          ADC12CTL0 |= ADC12SC;   // Start sampling/conversion
      }

      switch(function)
      {
          case 0:
          {
//            OLED_OFF();
              __bis_SR_register(LPM3_bits + GIE);       // Enter LPM3, interrupts enabled;
          }
          break;

          case 1:
          {
              if(mode == 0)
              {
                    if(set_ack_flag == 1)
                    {
//                      OLED_ON();
//                      OLED_Clear(0x00);
                        set_ack_flag = 0;
                        MST_Data = (u16)(Datavin);
                        MST_Data |= 0x8000;
                        SPISend(MST_Data);
                        OLED_ShowStr(0,1,"I:",2,1); //6*8
                        OLED_ShowStr(16,1,(unsigned char *)F2S(Datai,tstr),8,1); //6*8
                        OLED_ShowStr(0,2,"stalls:",7,1); //6*8
                        OLED_ShowStr(42,2,(unsigned char *)I2S(stalls,tstr),6,1); //6*8
                    }
              }
              else   // current_pot
              {
                  Datavin = (double)DMA_A1*4/3.3;
                  MST_Data = (u16)(Datavin*4095/4);
                  MST_Data |= 0x8000;
                  SPISend(MST_Data);
                  I_out = (double)DMA_A2*3.3/4095*10;
                  OLED_ShowStr(0,2,"stalls:",7,1); //6*8
				  OLED_ShowStr(42,2,(unsigned char *)I2S(stalls,tstr),6,1); //6*8
//                OLED_ShowStr(0,2,"I_out:",6,1); //6*8
//                OLED_ShowStr(36,2,(unsigned char *)F2S(I_out,tstr),6,1); //6*8
                  if(!((Pre_A3 - ADC12MEM3)<40 | (ADC12MEM3 - Pre_A3)<40))
                  {
                      OLED_ShowStr(24,6,(unsigned char *)F2S(ADC12MEM3,tstr),4,1); //6*8
                  }
                  Pre_A3 = ADC12MEM3;

              }

          }
          break;

          case 2:
          {
            if(set_ack_flag == 1)
            {
                OLED_ON();
                set_ack_flag = 0;
            }
          }
          break;

          case 3:   //off
          {
//            OLED_OFF();
              //shutdown the circuit
              __bis_SR_register(LPM3_bits + GIE);       // Enter LPM3, interrupts enabled;
          }
          break;

      }//end of function switch;
      OLED_ShowStr(0,4,(unsigned char *)F2S(DMA_A0,tstr),4,1); //6*8
      OLED_ShowStr(0,5,(unsigned char *)F2S(DMA_A1,tstr),4,1); //6*8
      OLED_ShowStr(0,6,(unsigned char *)F2S(DMA_A2,tstr),4,1); //6*8
      OLED_ShowStr(0,7,(unsigned char *)F2S(ADC12MEM3,tstr),4,1); //6*8

//      Delay_ms(200);
      // if(strcmp(str_1,str)==0)
      // {
      //     P1OUT |= BIT0;
      //     UartTX_Send("Great!\r\n",8);
      //     Delay_ms(200);
      // }
      // else P1OUT &= ~BIT0;
  } //end of while

}