Arduino 示波器与逻辑分析仪及水箱深度传感器项目
1. 数字读取基础及实现
在进行数字输入读取时,我们可以通过位掩码和位右移操作来获取每个引脚的状态。通过对 PINC 和 PIND 值应用一系列位掩码,我们能够分离出每个引脚的值,并检查其是高电平还是低电平。不过,仅应用位掩码并不能满足所有需求,因为除了第一个引脚,返回的值并非简单的低电平为 0、高电平为 1。例如,读取第二个引脚时,低电平返回 0,高电平返回 2;第三个引脚返回 0 或 4,第四个引脚返回 0 或 8,依此类推。因此,在应用位掩码后,我们需要应用位右移运算符,将感兴趣的位向右移动一定的位置。以下是示例代码:
void loop() {
Serial.print( PINC & B00000001 );
Serial.print(" ");
Serial.print( (PINC & B00000010) >> 1 );
Serial.print(" ");
Serial.print( (PINC & B00000100) >> 2 );
Serial.print(" ");
Serial.print( (PINC & B00001000) >> 3 );
Serial.print(" ");
Serial.print( (PINC & B00010000) >> 4 );
Serial.print(" ");
Serial.print( (PINC & B00100000)
超级会员免费看
订阅专栏 解锁全文
689

被折叠的 条评论
为什么被折叠?



