搜索
bottom↓
回复: 4

求助:PCF8563无中断输出

[复制链接]

出0入0汤圆

发表于 2012-9-17 17:37:54 | 显示全部楼层 |阅读模式
硬件是LM3S6911+PCF8563T,INT脚上拉一个10K的电阻;
现在PCF8563时钟读写都没有问题了,现在需要做一个功能:每小时中断一次,做了以下的尝试:
1.    现在把PCF8563T的分钟报警寄存器设成0x00,把控制/状态寄存器2设成0x02(AIE=1),没有中断输出;
2.   又尝试把控制/状态寄存器2设成0x12(TI/TP=1,AIE=1),还是没有中断输出;
3.   又尝试把控制/状态寄存器2设成0x13(TI/TP=1,AIE=1,TIE=1),倒计时控制寄存器设成0x81,倒计时计数器设成60,还是没有中断输出。
现在实在是无辄了,只好求助大家。

出0入22汤圆

发表于 2012-9-17 18:10:31 | 显示全部楼层
  1. /********************************************************************
  2. 设置闹钟,                                                (TIMER被关)
  3. 输入:Time结构体
  4.                   contol         =0为全开闹钟,
  5.                 contol         bit0=1        :关分闹钟
  6.                                 bit1=1        :关时闹钟
  7.                                 bit2=1        :关日闹钟
  8.                                 bit3=1        :关星期闹钟
  9. 时间到INT引脚(PB8)有一个低电平               
  10. ***********************************************************************/
  11. bool STE_Alarm (struct TIME *tm,u8 Contol)        //设置闹钟:  min.hh.day.wday  
  12. {                                                                                    //Contol bit:  0   1  2   3            
  13.         if(tm->tm_min>59)  return FALSE;
  14.         if(tm->tm_hour>24) return FALSE;
  15.         if(tm->tm_mday>31) return FALSE;
  16.         if(tm->tm_wday>6)  return FALSE;

  17.         if(Contol&0x01)
  18.                 tm->tm_min  |=0x80;                        //关分闹钟
  19.         if(Contol&0x02)
  20.                 tm->tm_hour |=0x80;                        //关时闹钟
  21.         if(Contol&0x04)
  22.                 tm->tm_mday |=0x80;                        //关日闹钟
  23.         if(Contol&0x08)
  24.                 tm->tm_wday |=0x80;                        //关星期闹钟       

  25.     if(!I2C_Start())return FALSE;
  26.     I2C_SendByte(0xa2);                  
  27.     if(!I2C_WaitAck()){I2C_Stop(); return FALSE;}
  28.     I2C_SendByte(0x09);                                                //star addr   
  29.     I2C_WaitAck();               
  30.     I2C_SendByte(shi_to_bcd(tm->tm_min));        //min      
  31.     I2C_WaitAck();       
  32.     I2C_SendByte(shi_to_bcd(tm->tm_hour));        //hh
  33.     I2C_WaitAck();
  34.     I2C_SendByte(shi_to_bcd(tm->tm_mday));        //dd      
  35.     I2C_WaitAck();       
  36.     I2C_SendByte(tm->tm_wday);                                //wdd
  37.     I2C_WaitAck();   
  38.     I2C_Stop();

  39.         if(!I2C_Start())return FALSE;       
  40.     I2C_SendByte(0xa2);        //写器件地址
  41.     if(!I2C_WaitAck()){I2C_Stop(); return FALSE;}
  42.     I2C_SendByte(0x01);        //写起始地址   
  43.     I2C_WaitAck();         
  44.     I2C_SendByte(0x02);        //01H,控制/状态寄存器2  开闹钟中断输出   
  45.     I2C_WaitAck();
  46.         I2C_Stop();

  47.     return TRUE;
  48. }
复制代码

出0入0汤圆

 楼主| 发表于 2012-9-18 10:37:27 | 显示全部楼层
jiaowoxiaolu 发表于 2012-9-17 18:10

看了你的代码,跟我的代码比较,我认为我的也没有问题啊,我也是把控制/状态寄存器2设成0x02(AIE=1),分钟报警AE设成0。但是为什么就没有输出呢?

出0入0汤圆

发表于 2014-5-27 01:08:11 | 显示全部楼层
楼主问题解决了吗?我也遇见了同样的问题,求帮助!

出0入0汤圆

发表于 2017-4-26 17:52:50 | 显示全部楼层
feifan00 发表于 2012-9-18 10:37
看了你的代码,跟我的代码比较,我认为我的也没有问题啊,我也是把控制/状态寄存器2设成0x02(AIE=1),分 ...

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

本版积分规则

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

GMT+8, 2024-4-19 12:24

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

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