搜索
bottom↓
回复: 3

请问PCF8563时钟芯片的官方驱动例程在哪里下载啊?

[复制链接]

出0入0汤圆

发表于 2015-10-9 10:20:06 | 显示全部楼层 |阅读模式
项目平台AVR(AT32UC3B512+PCF8563)
需要用到时钟芯片,想请问一下时钟芯片的官方例子在哪里可以下载?论坛里的太多,都没测试过

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2015-10-9 14:34:34 | 显示全部楼层
就是一个IIC,官网能给什么例子,参考一个自己写行了

出0入0汤圆

发表于 2015-10-9 15:02:17 | 显示全部楼层
#include"main.h"

#define pcf_read_add         0xa3
#define pcf_write_add        0xa2
#define changeHexToInt(hex)                ( ( ((hex)>>4) *10 ) + ((hex)%16) )
#define changeIntToHex(dec)                ( ( ((dec)/10) <<4 ) + ((dec)%10) )
//时间结构体
struct pcf_MDY{
           unsigned char second;
           unsigned char muite;
           unsigned char hour;
           unsigned char day;
           unsigned char weelk;
           unsigned char month;
           unsigned char year;
};


unsigned char now_time[7]={0,0,0,21,22,17,0};
void set_real_time(void)//出口
{
unsigned char i;
for(i=0;i<6;i++)
{
  now_time[i]=changeIntToHex(now_time[i]);
}
pcf_write_time();
}

void read_real_time(void)//出口
{
unsigned char i;
TWSR=0x00;
TWBR=0x72;
TWAR=0x00;
pcf_read_time();
for(i=0;i<6;i++)
{
  now_time[i]=changeHexToInt(now_time[i]);
}
}

void pcf_start(void)
{
TWCR=(1<<TWINT)|(1<<TWSTA)|(1<<TWEN);
while(!(TWCR&(1<<TWINT)));
}

void pcf_stop(void)
{
TWCR=(1<<TWINT)|(1<<TWEN)|(1<<TWSTO);
}

unsigned char  pcf_read(unsigned char f)
{
unsigned char vibale;
if(f)
TWCR=(1<<TWINT)|(1<<TWEA)|(1<<TWEN);
else
TWCR=(1<<TWINT)|(1<<TWEN);

while(!(TWCR&(1<<TWINT)));
vibale=TWDR;
return vibale;
}
void pcf_write(unsigned char write)
{
TWDR=write;
TWCR=(1<<TWINT)|(1<<TWEN);
while(!(TWCR&(1<<TWINT)));
}

void pcf_read_time(void)
{
pcf_start();
pcf_write(pcf_write_add);
pcf_write(0X02); //写字节地址,秒地址
pcf_start();
pcf_write(pcf_read_add);
now_time[5]=pcf_read(1)&0x7f;//秒
now_time[4]=pcf_read(1)&0x7f;//分
now_time[3]=pcf_read(1)&0x3f;//时
now_time[2]=pcf_read(1)&0x3f;//天
now_time[6]=pcf_read(1)&0x07;//周
now_time[1]=pcf_read(1)&0x1f;//月
now_time[0]=pcf_read(0);//年
pcf_stop();
}
void pcf_write_time(void)
{
pcf_start();
pcf_write(pcf_write_add);
pcf_write(0x02);
pcf_write(now_time[5]);//秒
pcf_write(now_time[4]);//分
pcf_write(now_time[3]);//时
pcf_write(now_time[2]);//天
pcf_write(now_time[6]);//周
pcf_write(now_time[1]);//月
pcf_write(now_time[0]);//年
pcf_stop();
}
void pcf_run(void)   
{
pcf_start();
pcf_write(pcf_write_add);
pcf_write(0x00);
pcf_write(0x00);
pcf_write(0x00);
pcf_stop();
}
void pcf_disbale(void)
{
pcf_start();
pcf_write(pcf_write_add);
pcf_write(0x00);
pcf_write(0x20);
pcf_stop();
}

void pcf_init(void)
{
TWSR=0x00;
TWBR=0x72;
TWAR=0x00;
delay_ms(10);
pcf_run();
delay_ms(10);
}

void SET_TIME_HANDDLE(void)
{
HOUR=22;
MIN=18;
SEC=0;
set_real_time();
}


MEGA48上跑过的,8M时钟,绝对能用。

出0入0汤圆

发表于 2015-10-9 16:11:51 | 显示全部楼层
要是Linux的话内核里面多的是都不用自己写
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-26 02:15

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表