Skocz do zawartości

Problem z obliczeniami na zmiennych


pietrasek

Pomocna odpowiedź

int srv0min = 100;
int srv0max = 150;
int SERVOMAX = 500;
int SERVOMIN = 180;
float c ;
float d ;
int a1;
int b1;

void setup() {

Serial.begin(9600);
}

void loop() {
 
int c = ( srv0min / 180 ) * ( SERVOMAX - SERVOMIN ) + SERVOMIN ; // 0,55 * 320 + 180 = 356 
int d = ( srv0max / 180 ) * ( SERVOMAX - SERVOMIN ) + SERVOMAX ;



Serial.println(c);
Serial.println(d);
delay(10000);
}

witam chciałem zapytać i prosić o pomoc w związku z obliczeniami na zmiennych. wiem że to głupie pytanie ale dlaczego w zmiennych c i d zapisuje się wartość 180 zamiast 356 w c i zamiast 448 w d

prawdopodobnie zrobiłem gdzieś głupi błąd którego nie jestem w stanie znaleźć.

z góry dziękuję za pomoc.

Link do komentarza
Share on other sites

Hm... spróbujmy.

  • srv0min jest typu int i jest równe 100.
  • srv0min / 180 raczej nie będzie równe 0.55 (bo int się na floata magicznie nie zamieni) tylko 0
  • 0 * (SERVOMAX - SERVOMIN) - wychodzi zero
  • 0 + SERVOMIN (jeśli SERVOMIN jest równe 180) wychodzi równo 180.
4 minuty temu, pietrasek napisał:

prawdopodobnie zrobiłem gdzieś głupi błąd którego nie jestem w stanie znaleźć.

Zapomniałeś, że dzielenie dwóch intów daje w wyniku int.

 

  • Pomogłeś! 1
Link do komentarza
Share on other sites

Zaraz - przecież c i d są typu int, i raczej floatami się same nie staną - konwersja będzie automatyczna.

Poza tym w programie masz globalne c i d jako float, lokalne c i d jako int... zdecyduj się.

 

  • Pomogłeś! 1
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.