Exemple #1
0
bool CLU57813P::init(void)
{

    lastDateTime = QDateTime::currentDateTime();
    datetime.seconds	= HEX2BCD(lastDateTime.time().second());	/* seconds BCD */
    datetime.minutes	= HEX2BCD(lastDateTime.time().minute());	/* minutes BCD */
    datetime.hours      = HEX2BCD(lastDateTime.time().hour());		/* hours   BCD */
    datetime.days		= HEX2BCD(lastDateTime.date().day());		/* days    BCD */
    datetime.weekday	= 0;										/* weekday BCD */
    datetime.month      = lastDateTime.date().month();				/* month   Hexadecimal form */

    bitno = 0;
    prev_mode = 0x10;
    tp = 0;
    TP_FREQUENCY=1;
    previous_state = 0;
    previous_state_tp = 0;
    Kon = false;
    output_pending = false;

    cmd = 0;
    irq = 0;
    irq_mask = 0;

    tpIndex64 = pPC->pTIMER->initTP(64);
    tpIndex2 = pPC->pTIMER->initTP(2);

    memset(password,0,0x10);
    sp = 0;

    return(1);
}
Exemple #2
0
void rtc_set (struct rtc_time* tm)
{
	if(tm->tm_year < 2000)
		tm->tm_year -= 1900;
	else
		tm->tm_year -= 2000;

	RTCCON |= 1;
	BCDYEAR = HEX2BCD(tm->tm_year);
	BCDMON = HEX2BCD(tm->tm_mon);
	BCDDAY = HEX2BCD(tm->tm_mday);
	BCDDATE = HEX2BCD(tm->tm_wday);
	BCDHOUR = HEX2BCD(tm->tm_hour);
	BCDMIN = HEX2BCD(tm->tm_min);
	BCDSEC = HEX2BCD(tm->tm_sec);
	RTCCON &= 1;
}
Exemple #3
0
{0x00,0x04000b01},//结算日         
};

#define KEY_SCREEN_NUM 86

#endif



#pragma pack()

#define HEX2BCD(X) ((X)/10*16 + (X)%10)
//显示相关参数
CONST INT8U Def_04000301_5[] =
{
  HEX2BCD(AUTO_SCREEN_NUM),//0x06, //自动循环显示屏数
  0x05, //每屏显示时间
  0x02, //显示电能小数位
  0x04, //显示功率小数位
  HEX2BCD(KEY_SCREEN_NUM)//0x22, //按键循环显示屏数

};

//定时冻结时间
CONST INT8U Def_Period_Freeze_Time[] =
{
  0x00, 0x00, 0x99, 0x99
};

//00秒脉冲
//01需量周期