这取自:https://exploreembedded.com/wiki/AVR_C_Library DS1307_GetTime()方法,即时尝试了解此功能的工作原理。所以我在下面做了一个简化的例子。
你能解释GetTime()函数中发生了什么,以及我应该传递给它的有价值的孩子吗?
我的目标是在 int main()函数中获取b值。
到目前为止,我的理解是:
指针* a = I2C_Read(); 指向unsigned char,但指针不能指向某个值,为什么它不会出错?
who=(`who am i`)
user=${who[0]}
答案 0 :(得分:1)
您正在将指针a
设置为0
- 而不是有效值
您需要阅读指针 - 但同时将代码更改为
unsigned char a = 0;
GetTime(&a);
printf("Value of b is: %d\n" , a);
答案 1 :(得分:0)
将主要功能更改为:
int main()
{
unsigned char a = 0; //
GetTime(&a); // call by reference concept
printf("Value of b is: %d\n" , a);
}
这将导致b = 255,如果你想打印字符然后替换%d - > %C 。 也许它会帮助你。
答案 2 :(得分:0)
我现在明白了,谢谢你
1) GetTime(&a); // pass in address of a.
2) GetTime(unsigned char *a) // takes in contents of a, at the moment = 0
3) *a = read(); // set contents of a to unsigned char 0b11111111
4) printf("Value of b: %d\n" , a); // call this from main func results in returned value b = 255