|
本帖最后由 airwolf09921 于 2014-5-27 02:18 编辑
最近stm8调试pcf8563,设置和读取时间都是对的,但是设置闹钟中断始终没有输出。我在论坛里搜了很多,大部分没有闹铃程序,即使有的,安装步骤改了还是不行,请各位大神指教!
unsigned char P8563_Set_Alarm()
{
unsigned char ent = 0x0A;
unsigned char temp[4];
unsigned char i;
if(alarm_time.Day)
{
alarm_time.Day&=0x7F;
}
else
alarm_time.Day = 0x80;
if(alarm_time.Hour)
{
alarm_time.Hour&=0x7F;
}
else
alarm_time.Hour = 0x80;
if(alarm_time.Minuts)
{
alarm_time.Minuts&=0x7F;
}
else
alarm_time.Minuts = 0x80;
if(alarm_time.Week)
{
alarm_time.Week &=0x7F;
}
else
alarm_time.Week = 0x80;
for(i=0; i<4; i++)
{
temp=Val2BCD(((unsigned char *)(&alarm_time)));//将time中的时间数据转换为BCD格式,并写入到temp数组中
}
PCF8563_Write_Bytes(0x09,4,temp);
PCF8563_Write_Bytes(0x01,1,&ent);
}
问题找出来了
就在
temp=Val2BCD(((unsigned char *)(&alarm_time)));//将time中的时间数据转换为BCD格式,并写入到temp数组中
这句
直接将闹铃时间写入相应寄存器就没有问题,在类型转换上还是有问题的! |
阿莫论坛20周年了!感谢大家的支持与爱护!!
一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。
|