C语言中怎样读取一个8位字节某一位的简单
我在做单片机编程,需要读某个寄存器中的某一位。假设读寄存器ADCSRA中的第4位,我的方法是这样的:读bit(ADCSRA&(1<<4))的值,但是这样就经过了3步的操作...
我在做单片机编程,需要读某个寄存器中的某一位。
假设读寄存器ADCSRA中的第4位,我的方法是这样的:
读bit(ADCSRA & (1<<4))的值,但是这样就经过了3步的操作,好像很傻很累赘。有没有更加直接的语句能够读取某一位? 展开
假设读寄存器ADCSRA中的第4位,我的方法是这样的:
读bit(ADCSRA & (1<<4))的值,但是这样就经过了3步的操作,好像很傻很累赘。有没有更加直接的语句能够读取某一位? 展开
5个回答
展开全部
bit a;
a=(ADCPSRA)&(0x08);
比如ADCPSRA=11011000,和
00001000位与一下,就可以把该位取出来,结果是1,如果ADCPSRA=11010000,位与一下就是0,我说的对吗
a=(ADCPSRA)&(0x08);
比如ADCPSRA=11011000,和
00001000位与一下,就可以把该位取出来,结果是1,如果ADCPSRA=11010000,位与一下就是0,我说的对吗
参考资料: 如果您的回答是从其他地方引用,请表明出处
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个我对单片机的编程不算很了解,不过这条语句的执行时间已经很少很少了,似乎没有必要改进了,这只是我的看法
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
优化一下
if((ADCSRA>>4) & 1)
4是位置,可修改
if((ADCSRA>>4) & 1)
4是位置,可修改
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
哈哈!
还没有这种函数的
还没有这种函数的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询