示例#1
0
void setup()
{
	Serial.begin(38400);

	pinMode(PIN_SW,INPUT);
	pinMode(PIN_LED3,OUTPUT);

	Init_OLED(MARY2);
	OLED_printf_Font(OLED_FONT_MEDIUM);
	OLED_printf_Position(0, 0);
	OLED_printf_Color(OLED_WHT, OLED_BLK);

    OLED_printf_Font(OLED_FONT_MEDIUM);
    OLED_printf_Position(0, 1);
    OLED_printf_Color(OLED_WHT, OLED_BLK);
    OLED_printf(MARY2,"TOKUSHU");
    OLED_printf_Position(1, 3);
    OLED_printf_Color(OLED_YEL, OLED_BLK);
	OLED_printf(MARY2,"DENSHI");
    OLED_printf_Position(1, 5);
    OLED_printf_Color(OLED_BLU, OLED_BLK);
	OLED_printf(MARY2,"KAIRO");
    OLED_printf_Position(2, 7);
    OLED_printf_Color(OLED_CYN, OLED_BLK);
	OLED_printf(MARY2,"Inc.");

	delay(1000);
}
示例#2
0
volatile void Init_Devicelib(){
  Init_OLED();
  En_OLED();
  Init_TA();
  Init_TB();
  ClearISRMessage(&ISRMSG);
}
示例#3
0
文件: main.c 项目: mybays/lm3s
int main(void)
{
	//系统时钟设置.
	//对于LM3S8962来说,外部晶体只能在1-8MHZ之间.但是ADC需要14-18Mhz才能正常工作,所以必须使用PLL
	//PLL频率400MHZ,预先被2分频输出,所以SYSDIV_4之后得到50MHZ.
	//该函数配置系统使用8M晶体,使能PLL,系统时钟50M.ADC的时钟直接由PLL/25(400/25=18Mhz)获得
	SysCtlClockSet(SYSCTL_SYSDIV_4|SYSCTL_USE_PLL|SYSCTL_OSC_MAIN|SYSCTL_XTAL_8MHZ);
	//SysCtlClockSet(SYSCTL_SYSDIV_1|SYSCTL_USE_OSC|SYSCTL_OSC_MAIN|SYSCTL_XTAL_8MHZ);

	Init_OLED();
	Init_ADC0();
	Init_Timer_A();

	while(1)
	{
	};

	return 0;
}
/*******************************************************************************
**函    数: KeyInit
**功    能: 初始化
**参    数: unitID      --单元号
**返    回: void
*******************************************************************************/
void KeyInit(u8 unitID)
{
    u8 i;
	Battery_Init();
    Init_OLED();
    _74HC595_Init();
    ShowLED_OpenAll();
    
    if(1 == Battery_GetPercent(&gPowerPercent))
    {
        if(gPowerPercent <= 8)   //电量小于8%时自动提示用户充电,3s以后休眠
        {
            OLED_ShowPicAt(36,2,56,32,PicPower);
            Thread_Login(ONCEDELAY, 0,3000,&Standby_Mode);
            for(;;);       
        }
    }
    
    EEPROM_Read(ADDR_PASSWORD, 4, &gPassword[0]);
    if((gPassword[0]>6)||(gPassword[1]>6)||(gPassword[2]>6)||(gPassword[3]>6))
    {
        gPassword[0] = 0;
        gPassword[1] = 0;
        gPassword[2] = 0;
        gPassword[3] = 0;
    }
    if((gPassword[0]==0)||(gPassword[1]==0)||(gPassword[2]==0)||(gPassword[3]==0))
    {
        gPswFlag = 0;       //无密码
    }
    else gPswFlag = 1;      //有密码
        
    Thread_Login(FOREVER, 0, 5 , &Key_Handle);           //5ms 按键
    Thread_Login(FOREVER, 0, 100, &LowPower_CheckTime);   //100ms*100 = 10s  睡眠 
    Thread_Login(FOREVER, 0, 200 ,&Battery_Show);    
    
    Get_CurrentKeyState(&gKeyPrevState);
    if((gKeyPrevState.KeyValue > MAX_TOUCH_KEY)||(!gKeyPrevState.KeyValue))
    {
        gKeyPrevState.KeyValue = first_key;
    }
	if((gKeyPrevState.KeyType > KEY_LONG)||(KEY_NONE == gKeyPrevState.KeyType))
	{
		gKeyPrevState.KeyType = KEY_SHORT;
	}
	gKeyCh[gKeyPrevState.KeyValue].Status = gKeyPrevState.KeyType;
	for(i = 1;i < MAX_TOUCH_KEY;i++)
	{
		if(gKeyPrevState.KeyStatusVal[i] > 1)
		{
			gKeyPrevState.KeyStatusVal[i] = SW_OFF;
		}
		gKeyStatus[i].Status = gKeyPrevState.KeyStatusVal[i];
	}
	switch(gKeyPrevState.KeyType)
	{
		case KEY_SHORT:
		{
			if(SW_ON == gKeyStatus[gKeyPrevState.KeyValue].Status)
			{
				OLED_ShowHalfPicAt(4,PicTab[gKeyPrevState.KeyValue]);
			}
			else
			{
				OLED_ShowHalfPicAt(4,PicTab[gKeyPrevState.KeyValue + 32]);
			}
		}break;
		case KEY_LONG:
		{
			OLED_ShowHalfPicAt(4,PicTab[gKeyPrevState.KeyValue + 16]);
		}break;
		default:break;
	}
    Battery_Show_State();
    
    Upload(1);
}