14-08-2019, 17:01
Ostatecznie ta część dalej może być:
Choć też jest konstrukcja if else, else if i wtedy wystarczy:
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.
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.
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