亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ds3231.c

?? U-boot源碼 ARM7啟動代碼
?? C
字號:
/* * (C) Copyright 2006 * Markus Klotzbuecher, mk@denx.de * * See file CREDITS for list of people who contributed to this * project. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation; either version 2 of * the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, * MA 02111-1307 USA *//* * Date & Time support (no alarms) for Dallas Semiconductor (now Maxim) * Extremly Accurate DS3231 Real Time Clock (RTC). * * copied from ds1337.c */#include <common.h>#include <command.h>#include <rtc.h>#include <i2c.h>#if defined(CONFIG_RTC_DS3231) && defined(CONFIG_CMD_DATE)/*---------------------------------------------------------------------*/#undef DEBUG_RTC#ifdef DEBUG_RTC#define DEBUGR(fmt,args...) printf(fmt ,##args)#else#define DEBUGR(fmt,args...)#endif/*---------------------------------------------------------------------*//* * RTC register addresses */#define RTC_SEC_REG_ADDR	0x0#define RTC_MIN_REG_ADDR	0x1#define RTC_HR_REG_ADDR		0x2#define RTC_DAY_REG_ADDR	0x3#define RTC_DATE_REG_ADDR	0x4#define RTC_MON_REG_ADDR	0x5#define RTC_YR_REG_ADDR		0x6#define RTC_CTL_REG_ADDR	0x0e#define RTC_STAT_REG_ADDR	0x0f/* * RTC control register bits */#define RTC_CTL_BIT_A1IE	0x1	/* Alarm 1 interrupt enable     */#define RTC_CTL_BIT_A2IE	0x2	/* Alarm 2 interrupt enable     */#define RTC_CTL_BIT_INTCN	0x4	/* Interrupt control            */#define RTC_CTL_BIT_RS1		0x8	/* Rate select 1                */#define RTC_CTL_BIT_RS2		0x10	/* Rate select 2                */#define RTC_CTL_BIT_DOSC	0x80	/* Disable Oscillator           *//* * RTC status register bits */#define RTC_STAT_BIT_A1F	0x1	/* Alarm 1 flag                 */#define RTC_STAT_BIT_A2F	0x2	/* Alarm 2 flag                 */#define RTC_STAT_BIT_OSF	0x80	/* Oscillator stop flag         */static uchar rtc_read (uchar reg);static void rtc_write (uchar reg, uchar val);static uchar bin2bcd (unsigned int n);static unsigned bcd2bin (uchar c);/* * Get the current time from the RTC */void rtc_get (struct rtc_time *tmp){	uchar sec, min, hour, mday, wday, mon_cent, year, control, status;	control = rtc_read (RTC_CTL_REG_ADDR);	status = rtc_read (RTC_STAT_REG_ADDR);	sec = rtc_read (RTC_SEC_REG_ADDR);	min = rtc_read (RTC_MIN_REG_ADDR);	hour = rtc_read (RTC_HR_REG_ADDR);	wday = rtc_read (RTC_DAY_REG_ADDR);	mday = rtc_read (RTC_DATE_REG_ADDR);	mon_cent = rtc_read (RTC_MON_REG_ADDR);	year = rtc_read (RTC_YR_REG_ADDR);	DEBUGR ("Get RTC year: %02x mon/cent: %02x mday: %02x wday: %02x "		"hr: %02x min: %02x sec: %02x control: %02x status: %02x\n",		year, mon_cent, mday, wday, hour, min, sec, control, status);	if (status & RTC_STAT_BIT_OSF) {		printf ("### Warning: RTC oscillator has stopped\n");		/* clear the OSF flag */		rtc_write (RTC_STAT_REG_ADDR,			   rtc_read (RTC_STAT_REG_ADDR) & ~RTC_STAT_BIT_OSF);	}	tmp->tm_sec  = bcd2bin (sec & 0x7F);	tmp->tm_min  = bcd2bin (min & 0x7F);	tmp->tm_hour = bcd2bin (hour & 0x3F);	tmp->tm_mday = bcd2bin (mday & 0x3F);	tmp->tm_mon  = bcd2bin (mon_cent & 0x1F);	tmp->tm_year = bcd2bin (year) + ((mon_cent & 0x80) ? 2000 : 1900);	tmp->tm_wday = bcd2bin ((wday - 1) & 0x07);	tmp->tm_yday = 0;	tmp->tm_isdst= 0;	DEBUGR ("Get DATE: %4d-%02d-%02d (wday=%d)  TIME: %2d:%02d:%02d\n",		tmp->tm_year, tmp->tm_mon, tmp->tm_mday, tmp->tm_wday,		tmp->tm_hour, tmp->tm_min, tmp->tm_sec);}/* * Set the RTC */void rtc_set (struct rtc_time *tmp){	uchar century;	DEBUGR ("Set DATE: %4d-%02d-%02d (wday=%d)  TIME: %2d:%02d:%02d\n",		tmp->tm_year, tmp->tm_mon, tmp->tm_mday, tmp->tm_wday,		tmp->tm_hour, tmp->tm_min, tmp->tm_sec);	rtc_write (RTC_YR_REG_ADDR, bin2bcd (tmp->tm_year % 100));	century = (tmp->tm_year >= 2000) ? 0x80 : 0;	rtc_write (RTC_MON_REG_ADDR, bin2bcd (tmp->tm_mon) | century);	rtc_write (RTC_DAY_REG_ADDR, bin2bcd (tmp->tm_wday + 1));	rtc_write (RTC_DATE_REG_ADDR, bin2bcd (tmp->tm_mday));	rtc_write (RTC_HR_REG_ADDR, bin2bcd (tmp->tm_hour));	rtc_write (RTC_MIN_REG_ADDR, bin2bcd (tmp->tm_min));	rtc_write (RTC_SEC_REG_ADDR, bin2bcd (tmp->tm_sec));}/* * Reset the RTC.  We also enable the oscillator output on the * SQW/INTB* pin and program it for 32,768 Hz output. Note that * according to the datasheet, turning on the square wave output * increases the current drain on the backup battery from about * 600 nA to 2uA. */void rtc_reset (void){	rtc_write (RTC_CTL_REG_ADDR, RTC_CTL_BIT_RS1 | RTC_CTL_BIT_RS2);}/* * Helper functions */staticuchar rtc_read (uchar reg){	return (i2c_reg_read (CFG_I2C_RTC_ADDR, reg));}static void rtc_write (uchar reg, uchar val){	i2c_reg_write (CFG_I2C_RTC_ADDR, reg, val);}static unsigned bcd2bin (uchar n){	return ((((n >> 4) & 0x0F) * 10) + (n & 0x0F));}static unsigned char bin2bcd (unsigned int n){	return (((n / 10) << 4) | (n % 10));}#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
五月激情综合婷婷| 亚洲精品乱码久久久久久| 欧美日韩精品一区二区三区| 成人永久aaa| 国产综合色视频| 国产成a人亚洲精品| 99久久久无码国产精品| 色中色一区二区| 色播五月激情综合网| 日本国产一区二区| 欧美丝袜自拍制服另类| 在线电影国产精品| 日韩精品专区在线影院重磅| 欧美精品一区二区高清在线观看| 日韩免费一区二区三区在线播放| 亚洲精品一区二区三区四区高清 | 久久国产麻豆精品| 国产一区视频在线看| 大桥未久av一区二区三区中文| jiyouzz国产精品久久| 日本韩国一区二区三区| 欧美高清视频www夜色资源网| 欧美一卡2卡三卡4卡5免费| 精品国产一区二区三区不卡| 欧美国产精品一区二区三区| 尤物在线观看一区| 美日韩一区二区| 国产成人在线视频网址| 色噜噜久久综合| 欧美大片在线观看| 亚洲人午夜精品天堂一二香蕉| 亚洲午夜三级在线| 激情久久久久久久久久久久久久久久| 成人国产亚洲欧美成人综合网 | 色中色一区二区| 日韩一区二区三区av| 国产欧美一区二区精品秋霞影院| 亚洲婷婷综合色高清在线| 免费成人美女在线观看.| 韩国av一区二区三区四区| 日本高清不卡一区| 国产午夜精品久久久久久免费视 | 国产亚洲精品7777| 天天综合天天做天天综合| 国产精品99久久久久久宅男| 欧洲一区在线观看| 国产欧美一区二区精品忘忧草| 亚洲aⅴ怡春院| 91丨porny丨中文| 久久久亚洲精品一区二区三区| 一区二区三区免费看视频| 久久不见久久见中文字幕免费| 色天天综合久久久久综合片| 久久精品亚洲麻豆av一区二区| 亚欧色一区w666天堂| 99久久婷婷国产| 久久青草欧美一区二区三区| 日本亚洲欧美天堂免费| 欧美优质美女网站| 中文字幕一区二区在线播放| 国内偷窥港台综合视频在线播放| 欧美精品在线观看一区二区| 亚洲免费av在线| a级高清视频欧美日韩| 国产午夜精品一区二区三区嫩草| 蜜桃av一区二区在线观看| 欧美精品丝袜久久久中文字幕| 一区二区三区四区蜜桃| 一本大道av伊人久久综合| 国产精品国产馆在线真实露脸| 国产成人免费9x9x人网站视频| 日韩免费观看高清完整版| 亚洲777理论| 欧美日韩一区二区在线观看视频| 一区二区久久久久| 97精品视频在线观看自产线路二| 色综合久久久久综合99| 亚洲免费在线观看| 久久久午夜精品理论片中文字幕| 91久久一区二区| 国产精品亚洲一区二区三区妖精| 一区二区三区中文字幕在线观看| 久久免费的精品国产v∧| 欧美亚洲一区二区三区四区| 国产成人精品综合在线观看| 一本在线高清不卡dvd| 亚洲素人一区二区| 在线精品视频一区二区| 午夜精品一区在线观看| 在线不卡一区二区| 精品综合久久久久久8888| 久久毛片高清国产| 99v久久综合狠狠综合久久| 亚洲免费大片在线观看| 在线播放国产精品二区一二区四区 | 久久99国内精品| 久久众筹精品私拍模特| 国产成人综合在线播放| 亚洲嫩草精品久久| 麻豆91免费观看| 亚洲激情在线播放| 亚洲欧美日韩国产成人精品影院| 亚洲午夜视频在线观看| 精品一区二区三区在线观看国产| 精品福利av导航| 99re热这里只有精品免费视频| 五月婷婷另类国产| 国产免费久久精品| 欧美伦理影视网| 国产 日韩 欧美大片| 亚洲sss视频在线视频| 久久久久久久久久久电影| 色狠狠综合天天综合综合| 伦理电影国产精品| 亚洲美女少妇撒尿| 日韩美女视频在线| 在线一区二区三区| 国产91在线看| 麻豆免费看一区二区三区| 亚洲精品五月天| 久久久久久97三级| 欧美一区二区黄| 99热精品一区二区| 国产伦精品一区二区三区视频青涩| 亚洲乱码国产乱码精品精可以看| 日韩精品一区二区三区在线观看 | 精品三级在线看| 色哟哟一区二区| 国产成人免费9x9x人网站视频| 日韩国产一二三区| 亚洲激情图片小说视频| 国产欧美精品区一区二区三区 | 亚洲精品国产视频| 久久久国产午夜精品| 制服丝袜激情欧洲亚洲| 91麻豆视频网站| 成人国产精品免费网站| 久久99久久99| 免费成人美女在线观看.| 亚洲图片有声小说| 亚洲国产综合视频在线观看| 国产精品久久久久久久久图文区 | 欧美mv和日韩mv的网站| 色噜噜狠狠成人中文综合| 国产成人免费高清| 国产精品1024| 国产精品99久久久久久有的能看| 久久精品国产亚洲a| 蜜臀91精品一区二区三区| 图片区日韩欧美亚洲| 亚洲综合激情另类小说区| 亚洲免费在线视频一区 二区| 国产精品久久久久毛片软件| 日本一区二区免费在线观看视频 | 国产片一区二区三区| 精品国产区一区| 欧美成人精品1314www| 欧美岛国在线观看| 国产午夜亚洲精品午夜鲁丝片| 精品成人一区二区| 国产色综合一区| 国产精品美女久久久久aⅴ| 欧美激情一区在线观看| 1024成人网色www| 一区二区久久久久久| 亚洲.国产.中文慕字在线| 日产欧产美韩系列久久99| 美日韩一区二区| 国产成人在线视频网站| 99精品视频一区二区| 一本大道久久精品懂色aⅴ| 色94色欧美sute亚洲线路二| 欧美日韩久久久一区| 日韩欧美电影在线| 国产午夜精品理论片a级大结局 | 色综合天天综合色综合av| 欧美主播一区二区三区| 日韩午夜在线观看视频| wwwwxxxxx欧美| 亚洲人成伊人成综合网小说| 亚洲成人动漫在线免费观看| 久久国产日韩欧美精品| av电影在线不卡| 在线播放/欧美激情| 国产日韩在线不卡| 亚洲最色的网站| 国产精品自拍在线| 色88888久久久久久影院野外| 欧美日韩高清一区二区不卡| 精品久久久久久久久久久院品网| 国产精品久线在线观看| 日韩精品欧美精品| 成人精品免费视频| 91精品国产色综合久久ai换脸| 久久久综合九色合综国产精品| 亚洲最新视频在线播放| 国产高清精品久久久久| 678五月天丁香亚洲综合网| 国产欧美日韩在线观看| 日韩精品一区第一页|