我正在使用控制 RTC 的 AVR-atmega 处理器。在 atmega 中,来自 RTC 的时间保存为一个结构:
typedef struct {
uint8_t year;
uint8_t month;
uint8_t hours;
uint8_t minutes;
"and so on..."
} time_t;
我在 atmega 中有一个全局变量“时间”(volatile time_t *time;)。
我编写了一个 C 程序,通过 USB 将当前时间的数组发送到 atmega,以便在 RTC 上设置正确的时间。
在atmega上的USB功能中,代码如下:
time = (void *) data;
其中 data 是我的 C 程序以当前时间发送的数组。这是正确的方法吗?我现在的问题是,当我尝试从 atmega 读取时间时,即 atmega 返回我的结构时,我不时地得到随机值,但大多数时候我得到的是实际设置的时间。
希望我解释它有点可以理解..
谢谢
// 诺克赛特