• 大小: 381KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-23
  • 语言: 其他
  • 标签: stm8s003  ds1307  

资源简介

stm8s003与ds1307时钟芯片程序,硬件IIC模式,连对SCL,SDA即可。

资源截图

代码片段和文件信息

//******************************************************************************
// 酿嚅忮?RTC DS1307 潆 扈牮铌铐蝠铍脲疣 STM8S003F
//
// 棱蝾? 务栾钼 理漯彘
// 泥蜞:  18 棹? 2014
// URL:   http://hamlab.net/
//******************************************************************************

#include “ds1307_drv.h“

//******************************************************************************
//襄疱忸?麒耠?桤 溴?蜩黜钽?镳邃耱噔脲龛 ?BCD-觐?
//******************************************************************************
static unsigned int ds1307_dec2bcd(unsigned int dec){

  unsigned int temp = dec result;
  
  result = (unsigned int)(temp / 1000) << 12;
  temp %= 1000;
  result |= (temp/100) << 8;
  temp %= 100;
  result |= (temp/10) << 4;
  result |= temp % 10;
  
  return result;
}

//******************************************************************************
//襄疱忸?麒耠?桤 BCD-觐溧 ?溴?蜩黜铄 镳邃耱噔脲龛?
//******************************************************************************
static unsigned int ds1307_bcd2dec(unsigned int bcd){

  unsigned int temp = bcd result;
  
  result = (temp >> 12) * 1000;
  temp &= 0x0FFF;
  result += (temp >> 8) * 100;
  temp &= 0x00FF;
  result += (temp >> 4) * 10;
  temp &= 0x000F;
  result += temp;
  
  return result;
}

//******************************************************************************
//泽黻鲨 恹溧麒 耦耱?龛 恹镱腠屙? 铒屦圉梃 ds1307 磬 铖眍忮 耦耱?龛
//恹镱腠屙? 铒屦圉梃 ?I2C
//******************************************************************************
static t_ds1307_status ds1307_i2c_error(t_i2c_status status){
    if(status != I2C_SUCCESS){
      switch(status){
        case I2C_TIMEOUT:  return DS1307_TIMEOUT; break;
        case I2C_ERROR:    return DS1307_ERROR;   break;
        default:           return DS1307_ERROR;   break;
      }
    } else {
        return DS1307_SUCCESS;
    }
}

//******************************************************************************
//橡钼屦赅 磬 磬腓麒?铠栳铌 恹镱腠屙? 铒屦圉梃 I2C
//******************************************************************************
#define ds1307_check_error(i2c_status)\
  if(i2c_status != I2C_SUCCESS)\
    return ds1307_i2c_error(i2c_status)


//******************************************************************************
//软桷栲腓玎鲨 鬣耦?DS1307
//******************************************************************************      
t_ds1307_status ds1307_init(t_ds1307_time_mode time_mode){
    
    //杨耱?龛?恹镱腠屙? 铒屦圉梃 I2C
    t_i2c_status status = I2C_SUCCESS;
    
    //襄疱戾眄? 潆 躔囗屙? 镳铟栩囗睇?溧眄
    t_ds1307_date_time data;
  
    //软桷栲腓玎鲨 RTC. 阻蜞屐 0-?疱汨耱?
    status = i2c_rd_reg(DS1307_SLAVE_ADDR DS1307_REG_SEC (char *)&data 1);
    
    //橡钼屦赅 耦耱?龛 恹镱腠屙梃 铒屦圉梃 镱 I2C
    ds1307_check_error(status);
    
    //篷腓 疣犷蜞 鬣耦?玎镳妁屙? 蝾 疣琊屮噱?襻痤耦?CH=0
    if(data.ch){
      //厌痤?溧螓 ?怵屐屙?
      return ds1307_reset(time_mode);
    }
  
    return DS1307_SUCCESS;
}

//*****************************************************************

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      70712  2014-07-18 14:15  ds1307\Debug\Exe\templproj.out

     文件     274063  2014-07-18 14:15  ds1307\Debug\Obj\ds1307.pbd

     文件     274063  2014-07-18 14:15  ds1307\Debug\Obj\ds1307.pbd.browse

     文件      18528  2014-07-18 14:15  ds1307\Debug\Obj\ds1307_drv.o

     文件     259638  2014-07-18 14:15  ds1307\Debug\Obj\ds1307_drv.pbi

     文件      10025  2014-07-18 14:15  ds1307\Debug\Obj\ds1307_drv.pbi.cout

     文件      30270  2014-07-18 14:15  ds1307\Debug\Obj\i2c_drv.o

     文件     257054  2014-07-18 14:15  ds1307\Debug\Obj\i2c_drv.pbi

     文件      10022  2014-07-18 14:15  ds1307\Debug\Obj\i2c_drv.pbi.cout

     文件      12878  2014-07-18 14:15  ds1307\Debug\Obj\main.o

     文件     258214  2014-07-18 14:15  ds1307\Debug\Obj\main.pbi

     文件      10019  2014-07-18 14:15  ds1307\Debug\Obj\main.pbi.cout

     文件      18829  2014-07-18 14:15  ds1307\Debug\Obj\uart_drv.o

     文件     251426  2014-07-18 14:15  ds1307\Debug\Obj\uart_drv.pbi

     文件      10023  2014-07-18 14:15  ds1307\Debug\Obj\uart_drv.pbi.cout

     文件       4047  2014-07-18 14:19  ds1307\ds1307.dep

     文件      12210  2014-07-18 13:10  ds1307\ds1307.ewd

     文件      43539  2014-07-18 13:09  ds1307\ds1307.ewp

     文件        160  2014-07-17 14:00  ds1307\ds1307.eww

     文件       6265  2014-07-18 14:08  ds1307\ds1307_drv.c

     文件       2683  2014-07-17 16:03  ds1307\ds1307_drv.h

     文件       8272  2014-07-18 09:47  ds1307\i2c_drv.c

     文件        948  2014-07-17 15:26  ds1307\i2c_drv.h

     文件       3027  2014-07-18 14:15  ds1307\main.c

     文件       1472  2014-07-18 13:48  ds1307\settings\ds1307.cspy.bat

     文件       7217  2014-07-18 14:19  ds1307\settings\ds1307.dbgdt

     文件       1293  2014-07-18 14:19  ds1307\settings\ds1307.dni

     文件       4928  2014-07-18 14:19  ds1307\settings\ds1307.wsdt

     文件       3444  2014-07-17 13:36  ds1307\uart_drv.c

     文件        451  2014-07-18 10:27  ds1307\uart_drv.h

............此处省略9个文件信息

评论

共有 条评论