Skocz do zawartości

sharp, funkcja dla pomiaru odległości, za dużo zajmuje


szyss

Pomocna odpowiedź

Witam, znalazłem w necie funkcje podającą pomiar z sharpa 20-150cm w mm

Funkcja działa dobrze jednak zajmuje około 20% pamięci atmegi8

nt sharp_scan(void)
{
#define p1 -11.395
#define p2 105.11
#define p3 -385.15
#define p4 710.25
#define p5 -690.56
#define p6 333.08
double pomiar;
double wynik;

pomiar=dana[1]*0.01953;
wynik=10.0*(p1*pow(pomiar,5)+p2*pow(pomiar,4)+p3*pow(pomiar,3)+p4*pow(pomiar,2)+p5*pomiar+p6);
return (unsigned int)(wynik);

}

jeśli do zmiennej pomiar wpiszemy bezpośrednio napięcie np: 1.7V to prawie nie widać różnicy w zajmowanej pamięci, ale zdaje mi się tak tylko iż kompilator to wylicza, ale jak jest na prawdę to nie wiem

Jeśli ktoś ma mniej pamięciochłonna funkcję lub jakąś drobną poradę to byłbym wdzięczny;-)

Pozdrawiam i dziękuję

Link do komentarza
Share on other sites

Prawdopodobnie najwięcej zajmuje biblioteka liczb zmiennopozycyjnych.

Lepszym rozwiązaniem jest stablicowanie wyników, a następnie interpolowanie. Dokładność jest oczywiście mniejsza, ale powinna wystarczyć.

Najprościej jest zrobić tak:

1) wybierasz liczbę punktów (czyli dokładność), np. 32

2) dzielisz przedział wyników na 32 równe (tak jest najłatwiej) części

3) w excelu wyliczasz ile wynosi wynik dla każdego przedziału

4) wyniki wstawiasz do programu jako tablicę liczb unsigned int

Następnie odczytujesz dane z czujnika (dana[1]) i na jej podstawie wybierasz gotowy wynik z tablicy.

Lepszą dokładność uzyskasz dodając interpolację wyników.

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

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • 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.