【发布时间】:2015-05-24 04:27:32
【问题描述】:
我正在使用端口操作制作一个带有 8 个 LED 的 16 位十进制到二进制转换器。用户输入十进制,然后程序将其转换为二进制,然后写入 LED。但是我对端口操作有疑问。我将二进制数保留为字符串类型,因此我无法将数字写入引脚。我的代码是;
void setup() {
DDRC = B11111111;
Serial.begin(9600);
}
void loop() {
if(Serial.available()>0){
long input = Serial.parseInt();
if (input>=2){
y = input/2;
while (y>0){
r = input % 2;
out = String(r) + out;
y = input/2;
input = y ;
}}
else
out = String(input);
int digits = out.length();
for(int i=0; i<(16-digits); i++){
out = "0" + out;
}
String firstEight = "B" + out.substring(0,8);
String lastEight = "B" + out.substring(8,16);
然后我在代码末尾添加这一行
PORTC = firstEight;
我收到此错误消息:在赋值中无法将 'String' 转换为 'volatile uint8_t {aka volatile unsigned char}' 对不起,如果这实际上是一个常识,但我找不到它。
这是我的作业,所以我必须使用自己的代码将十进制转换为二进制。这就是我使用字符串的原因。它保留二进制位。
感谢您的帮助。
【问题讨论】: