Dzięki panowie

Rozwinę temat jeszcze o kilka drobiazgów technicznych.
Do jazdy wykorzystane są dwa silniki DC 12V z enkoderami własnej roboty, bo oryginalne nie dość, że rząd wielkości droższe to mniej impulsów dawały. Szukałem początkowo i myślałem o zaadoptowaniu tych pololu, ale są lipne i za dużo trzeba by przerabiać... W programie nie wykorzystuję do ich odczytu wejść INT, bo podają sygnał z częstotliwością max około 1,1kHz i przy tak małej wartości procesor się po prostu obija (sam program bez problemu odbierze 5kHz). Zresztą wykorzystałem oryginalną płytkę z 2011 roku, która teoretycznie nie przewidywała takich silników, a tym bardziej enkoderów - wykorzystałem zwykłe piny, które służyły początkowo jako ...czujniki krańcówek

- potrzeba matką wynalazków, a żeby jednak koniec slidera można było wyczuć (czasem się ktoś może zagapić i za daleko przejechać) to program bada w odpowiednim czasie czy śmigło się kręci i w razie czego zatrzymuje silniki z komunikatem o przeciążeniu.
Oczywiście jedną z najważniejszych rzeczy dla prawidłowego wyświetlania wszystkich parametrów w czasie rzeczywistym było użycie buforowanego LCD w trybie cyklicznym co zajmuje pętlę główną w porywach na zaledwie kilkadziesiąt mikrosekund i do pełnego odświeżenia potrzeba 18 takich cykli. Naturalna bezwładność LCD nie jest się w stanie oprzeć tej prędkości nie mówiąc już o ludzkim oku. Prawdę mówiąc to ja nie wyobrażam sobie już zwykłej obsługi LCD...TYLKO cyklicznie(!) Koniec ze spacjami kasującymi, czyszczeniem ekranu, itd. itp. Jeśli chcę, żeby coś znikło to po prostu w kolejnym obiegu tego nie wyświetlam, bo program oczywiście jest absolutnie nie blokujący - bez względu jaki jest tryb (praca/menu/badanie klawiszy) cały czas się kręci między while(1){}

Wymaga to oczywiście pewnego nawyku i uwagi podczas pisania, ale tylko na początku... do dobrego szybko się można przyzwyczaić

Wpadłem też na fajny pomysł aktywacji potencjometrów. Gdy są nieruszane to oczywiście parametry do nich nie są przypisywane (Speed/ Ramp) i nie wyświetla się na ekranie ich stan (który zresztą ma swój cyfrowo wprowadzany odpowiednik w Menu) wystarczy jednak którymś leciutko ruszyć i na 1,5s mamy podgląd z aktualizowaną wartością, która również jest przepisana do Menu. Niby proste powiecie... jaki problem odczytać, zapamiętać wartość i sprawdzić czy się zmieniła... no tak spróbujcie tak zrobić, a piwo postawię jeśli podczas dryfu ADC czy stuknięcia w potencjometr samoistnie się wartość nie przestawi

Tu nie mogło być mowy o takiej sytuacji, bo przypadkowo i w Menu by zmiany następowały. Pokombinujcie chwilę, a później wam opiszę jak z tego wybrnąłem i działa 100/100
