2
我正在使用端口操作對8位LED進行16位十進制轉換。用戶輸入小數,然後程序將其轉換爲二進制,然後寫入LED。但是我有一個端口操作的問題。我將二進制數字保存爲一種字符串,因此我無法將編號寫入引腳。我的代碼是;(ARDUINO)關於端口操作
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}'作業 對不起,如果這實際上是一個常識,但我找不到它。
這是我的家庭作業,所以我必須用我自己的代碼將十進制轉換爲二進制。這就是爲什麼我使用字符串。它保留二進制位。
感謝您的幫助。