cmos.c

00001 /***************************************************************************
00002                           cmos.c  -  description
00003                              -------------------
00004     begin                : Mon Mar 14 2004
00005     copyright            : (C) 2004 by Dynacube Team
00006     email                :
00007  ***************************************************************************/
00008 
00009 /***************************************************************************
00010  *                                                                         *
00011  *   This program is free software; you can redistribute it and/or modify  *
00012  *   it under the terms of the GNU General Public License as published by  *
00013  *   the Free Software Foundation; either version 2 of the License, or     *
00014  *   (at your option) any later version.                                   *
00015  *                                                                         *
00016  ***************************************************************************/
00017 
00018  #include "dev/core/cmos.h"
00019 
00020 void gettime(TIME *t)
00021 {
00022         t->sec = CMOS_READ(SECOND_ADDR);
00023         t->min = CMOS_READ(MINUTE_ADDR);
00024         t->hour = CMOS_READ(HOUR_ADDR);
00025         
00026         t->sec = BCD2BIN(t->sec);
00027         t->min = BCD2BIN(t->min);
00028         t->hour = BCD2BIN(t->hour);
00029 }
00030 
00031 void settime(TIME *t)
00032 {
00033         CMOS_WRITE(SECOND_ADDR,BIN2BCD(t->sec));
00034         CMOS_WRITE(MINUTE_ADDR,BIN2BCD(t->min));
00035         CMOS_WRITE(HOUR_ADDR,BIN2BCD(t->hour));
00036 }
00037 
00038 void getdate(DATE *d)
00039 {
00040         d->dd = CMOS_READ(DATE_ADDR);
00041         d->mm = CMOS_READ(MONTH_ADDR);
00042         d->yy = CMOS_READ(YEAR_ADDR);
00043         
00044         d->dd = BCD2BIN(d->dd);
00045         d->mm = BCD2BIN(d->mm);
00046         d->yy = BCD2BIN(d->yy);
00047 }
00048 
00049 void setdate(DATE *d)
00050 {
00051         CMOS_WRITE(DATE_ADDR,BIN2BCD(d->dd));
00052         CMOS_WRITE(MONTH_ADDR,BIN2BCD(d->mm));
00053         CMOS_WRITE(YEAR_ADDR,BIN2BCD(d->yy));
00054 }

Generated on Thu Jul 27 23:52:25 2006 for Dynacube by  doxygen 1.4.7