【发布时间】:2012-12-06 00:59:37
【问题描述】:
所以我目前正在尝试读取和写入 RTC 的时间,而这些方法将不起作用。
这就是我所拥有的: 所以它发送地址字节以确定它想从哪里读取,然后将引脚翻转到输入并读取每个位,直到字节完成。
char ReadByte(char ByteToRead)
{
RB0 = 0; // ensure CLK low
RB5 = 1;
char received = 0;
int i;
for(i =0;i < 8 ;i++)
{
RB4 = ByteToRead & 1;
RB0 = 0;
ByteToRead >>= 1;
RB0 = 1;
}
TRISB4 = 1;//B4 = input port
for(i =0;i < 8 ;i++)
{
received |= RB4;
RB0 = 1;
received <<= 1;
RB0 = 0;
}
RB5=0;
TRISB4 = 0;
return DecimalToBCD(received);
}
第二个例子是我的写法:
void WriteByte(char ClockReg ,char data)
{
RB0 = 0; // ensure CLK low
RB5 = 1; // raises RST bit
int i;
for(i =0;i < 8 ;i++)
{
RB4 = ClockReg & 1;
RB0 = 0;
ClockReg >>= 1;
RB0 = 1;
}
for(i =0;i < 8 ;i++)
{
RB4 = data & 1;
RB0 = 0;
data >>= 1;
RB0 = 1;
}
RB5 = 0;
__delay_us(1);
RB5 = 1;
}
这对第一位确定寄存器写入你给它的值做同样的事情。
我能在网上找到的唯一帮助是指向一个 2 年前的页面的链接,该页面没有代码或帮助只是要求被 PMed 的人。所以如果你能帮忙,请帮忙
提前致谢
【问题讨论】:
-
那么,问题是什么?什么不正确?您遇到了哪些问题?
-
好吧,我无法确定读取或写入方法是否有效,因为我需要读取来完成写入并确定读取是否有效,我需要写入。
-
这是一个使用基于 USB 的逻辑探头可以节省大量时间的实例。您可以监控实际的输出线路以了解正在发生的情况,并且许多线路可以为您解码 SPI 和 I2C 信号。
-
我同意它会很有用,但我有少量时间来做这件事,而且手头没有,但我可能会考虑继续进行未来的项目。有什么建议吗?
标签: c pic real-time-clock