永发信息网

这一段C程序时什么意思?

答案:1  悬赏:10  手机版
解决时间 2021-05-05 09:05

void BrushOut(uchar nDots,uchar Rdt, uchar Gdt, uchar Bdt) //nDots为灯个数,Rdt为红;Gdt为绿;Bdt兰.
{
uchar i,j,mask;
SCLK = 0;
SDO = 0;
for(i=0;i<32;i++)
{
SCLK=1;_nop_();
SCLK=0;
} //送起始32bits 0起始帧

for(i=0;i<nDots;i++) //输出1个 1起始位
{
SDO=1;
SCLK=1;_nop_();
SCLK=0;_nop_(); //送起始位'1'
mask = 0x10; //输出5位红色
for(j=0;j<5;j++)
{
if((mask&Rdt)!=0) SDO = 1;
else SDO = 0;
SCLK=1;_nop_();
SCLK=0;_nop_();
mask>>=1;
}
mask = 0x10; //输出5位绿色
for(j=0;j<5;j++)
{
if((mask&Gdt)!=0) SDO = 1;
else SDO = 0;
SCLK=1;_nop_();
SCLK=0;_nop_();
mask>>=1;
}
mask = 0x10; //输出5位蓝色
for(j=0;j<5;j++)
{
if((mask&Bdt)!=0) SDO = 1;
else SDO = 0;
SCLK=1;_nop_();
SCLK=0;_nop_();
mask>>=1;
}
}

请问在这段程序里 if((mask&Bdt)!=0) SDO = 1;
else SDO = 0;

SCLK=1;_nop_();
SCLK=0;_nop_();
mask>>=1;

这段语句是什么意思??比如我给Bdt赋得值是31 那么00010000与00011111的结果

是00010000 (16)不等于0,那么SDO = 1;
如果等于零SCLK=1;_nop_();
SCLK=0;_nop_();
mask>>=1; 右移一位是什么意思?????

这一段话的意思是什么?


最佳答案

首先SDO和SCLK应该一组串行接口,这个程序的意思是将Rdt,Gdt,Bdt通过这个串行数据接口发送出去。if((mask&Bdt)!=0)是判断Bdt的相就把一位是0还是1,如果是1,那么将串行接口的数据线SDO设为1,反之设为0,后面SCLK=1;_nop_(); SCLK=0;_nop_();是产生一个下降延的时钟信号,以将数据送出。


mask>>1是为了对Bdt的下一位进行判断,是0还是1。

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
QQ炫舞1.5.3迅雷下载地址
有没有详细介绍汉代或者魏晋南北朝的野史的书
宏基AS4820TG怎么换XP系统
佛 儒 道 共同的地方是什么
昆山哪里有发辫卖
如何面对工作,对方展更好?
神起和sj中,你会选谁做你的哥哥和男朋友?
为什么我的电脑在网页看视频总是一卡一卡的
西双版纳奢侈品便宜吗
米兰国际美发沙龙怎么去啊,有知道地址的么
怎样才可以健康减肥?
勇士OL狂战士技能加点(不是DNF),
现在怎么用手机处理不了问问的问题啊?我想采
街头篮球关闭重新启动问题!
上网通宵后头疼怎么办,通宵了一晚上头疼怎么
推荐资讯
急需excel的文件 什么题目都行!这是考试用的
我的笔记本电脑看视频很卡???
dnf福建2区游戏币交易信誉好的玩家是谁?q谈
QQ的密保忘记了!想修改密码,怎么办啊
我想为我儿子取一名字,姓〔和〕而且想为他取
哪个牌子卫衣质量好,这件卫衣是什么牌子?
重庆线路板
隐形眼镜怎么区分正反面?
湖北经济学院职业技术学院的招生办电话是多少
为什么我的电脑在下载东西在手机上时刚要完事
一个是喜欢,一个是在乎,我怎么办?
我认为lily昨天肯定生病了.用英文翻译
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?