• 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
Sterowanie urządzeniem, zmiana kilku zmiennych pod danym warunkiem
#6
Ostatecznie ta część dalej może być:

Kod:
if ( freq  > 1000 && freq < 1100) {
zestawAktualny= zestaw1;
}
if ( freq  > 1100 && freq < 1200) {
zestawAktualny= zestaw2;
} ................. i tak np 70 razy.


Choć też jest konstrukcja if  else, else if i wtedy wystarczy:

Kod:
if ( freq  < 1100) {
zestawAktualny= zestaw1;
}
else if ( freq  < 1200) {
zestawAktualny= zestaw2;
} ................. i tak np 70 razy. - wykona się tylko pierwsza pasująca, to co wcześniej nie spełnia, to co później jest wycięte else.

I pewnie coś tu można jeszcze inne użyć z C, wystarczy poczytać, może case? Na pewno wtedy jeśli powyżej ustalisz tylko numer zestawu do wczytania, czyli przypiszesz wartość porządkową "i" i potem wybierzesz i-ty element z tablicy flesz o numerze zmienna.

Kod:
if ( freq  < 1100) {
i=0;
}
else if ( freq  < 1200) {
i=1;
} ................. i tak np 70 razy.

Jeśli częstotliwości są rozmieszczone równomiernie wystarczy int i=freq/100 i będziesz dostawał 11,12,13 itd., można też odjąć 11 od każdego i mieć 0,1,2,3... to już łatwo powiązać z indeksem tablicy.
W strukturze dobrze jest też umieszczać dane bajtami, a konkretnie parami. Niektóre kompilatory zajmują pamięć słowami, czyli tymi parami bajtów. Ta sama struktura może zajmować inny rozmiar dla UNO, a inny dla ESP. Dodatkowo int w ESP to 32bity, a w UNO 16bitów. Jak chcesz mieć to samo w obu to możesz użyć int16_t w obu i w obu będzie to liczba 16bitowa ze znakiem.
No i oczywiście struktury można zagnieżdżać. Pierwszy raz jak zobaczyłem strukturę to była użyta do pol bitowych - wartości bool. Taką strukturę można wrzucić w inną strukturę. Ale po użyciu PROGMEM raczej bym się w to nie bawił, nawet po użyciu 1000 zestawów i tak w pamięci RAM zajmie to 1x10xbajt (tylko aktualny zestaw  wczytany do RAM) a nie 1001x10xbajt.
Im więcej zostaje w głowie po przeczytaniu książek, napisaniu setek prostych programów samodzielnie tym potem łatwiej.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
  


Wiadomości w tym wątku
RE: Sterowanie urządzeniem, zmiana kilku zmiennych pod danym warunkiem - przez kaczakat - 14-08-2019, 17:01

Skocz do:


Przeglądający: 1 gości