• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Problem z prostym programem
#1
int number;

void setup() {
Serial.begin(9600);
}

void loop() {
number = 0;
Serial.flush();

while(Serial.available() == 0){

}
while(Serial.available() > 0){
  number = Serial.read() - '0';     //odczytuje liczbę z bufora portu szeregowego
                                    //usuwa przesunięcie ASCII dla zera: '0'
}

Serial.print("Wpisana liczba: ");
Serial.println(number);
Serial.print(number);
Serial.print(" pomnożone przez dwa równa się ");
number = number * 2;
Serial.println(number);

delay(1000);
}


To wyświetla mi się po uruchomieniu programu i wpisaniu liczby 3.
Skąd bierze się to -38? Wyczytałem, że rejestrowane jest też wciśnięcie przycisku ENTER, ale jakim prawem odczytuje liczbę dwa razy?
Jak to naprawić?


Wpisana liczba: 3

3 pomnożone przez dwa równa się 6

Wpisana liczba: -38

-38 pomnożone przez dwa równa się -76
 
Odpowiedź
  


Wiadomości w tym wątku
Problem z prostym programem - przez PATRO0902 - 11-11-2025, 21:43
RE: Problem z prostym programem - przez oscarX - 13-11-2025, 07:51
RE: Problem z prostym programem - przez PATRO0902 - 13-11-2025, 20:58
RE: Problem z prostym programem - przez kaczakat - 13-11-2025, 23:16

Skocz do:


Przeglądający: 1 gości