Co masz na myśli mówiąc
GwynBleidD napisał(a):
(dlaczego używasz '0' zamiast '\0'?)
ramka z urządzenia jest nie zmienna, co do początkowych 0 i 4 to jedyne co można ustawić jako "nagłowek" rozróżniający dwie zmienne, masę i tarę innej opcji nie ma.
Co prawda kiedyś dawien, dawna, miałem podobny problem, a jak zacząłem grzebać w bibliotekach Mirka właśnie pod kątem wykrywania ilości danych dostałem tylko burę od Mirka to sobie odpuściłem grzebanie w bibliotece. No bo gdzie indziej, można by ograniczyć długość bufora, czy sprawdzać dokładnie ile przychodzi danych jak nie w samej bibliotece. Gdyż to ona rozdziela moją ramkę na dwie linijki.
U Mirka jest niby wykrywanie kolejnych linii, ale niestety to sie nie sprawdzi, jedynie co mi przychodzi na myśl to liczenie przylatujących znaków (bo zawsze jest
PS. w sumie głąb ze mnie bo wiedziałem, że wróci ten problem jak bumerang.
Tak wygląda ramka
30
30
30
31
2E
35
30
35
0D
34
30
30
30
2E
31
35
38
0D
0A
Czyli wychodzi na to, że jest zawsze 8 bajtów, nie licząc kodów rozdzielających linie.
Z tym, że interesujące jest to, że j/w już pisałem jeżeli zrobimy przekazywanie uart0 to uart1 czyli to co przylatuje na uart0 idzie na uart1, to nie ma błędów transmisji, mimo to że bufory dla uart0 i 1 są parzyste, a jak widać całkowita ilość bajtów dla uartów nie, chociaż w sumie analizując to co parsują biblioteki Mirka już na samym poziomie odbierania z bufora sprzętowego, tak naprawdę dostajemy tylko zapisywane jest tylko te 16bajtów bez kodów CR i LF
HA, rozgryzłem, to nie debouce, czy moja część softu, to LCD po i2c miesza w sofcie, po wywaleniu obsługi LCD nic się nie wykrzacza.
PS. coś się ewidentnie kaszani podczas obsługi SuperDebounce, tj. wpływa ona jakoś na błędne interpretowanie danych nadlatujących z bufora. Bo do puki nie nacisnę klawisza, dane przelatują bez zakłóceń
.