Skocz do zawartości

Zakłócenia odczytu z DS18B20


Pomocna odpowiedź

No super analiza.

Proszę się teraz pochwalić swoim kodem zajmującym 600us bo to tak na oko to 100razy dłużej niż trzeba prze niezbyt wydajnym kodzie.

Ale przecież nie napisałem, że mam taki kod 🙂 podałem 600us jako przykład, bo nadal nie rozumiem tego co napisałeś:

W RAM uC zrób kopie ekranu a w przerwaniu np co 1ms wysyłaj jeden znak. Z ten sposób, dla programu głównego, obsługa LCD bedzie zajmować kilkaset us co 1ms czyli praktycznie 0% czasu procesora.

Może jeszcze raz spróbuj napisać co konkretnie ma trwać 'kilkaset us'?

No chyba, że to po prostu pomyłka i chciałeś napisać 'kilkaset ns' i wtedy nie było pytania.

Gość es2

Faktycznie miałem na myśli kilkadziesiąt us.

Co do obsługi 1-Wire to w przypadku AVR najlepiej użyć do tego USART. Jak nie ma USART to DS2482/84 po IIC. Dzięki temu komunikacje 1-Wire można zrealizować na przerwaniach. Zasadniczo wszystkie wolne transmisje realizuje się na przerwaniach. Wtedy, nawet z AVR, można wycisnąć dużo.

Jeśli obsłuży się USART, I2C przez pooling, LCD z delay, itd to nawet ARM nie pomoże, bo procek większość czasu będzie się kręcił w pętlach.

Dobrze napisany program na AVR wykonuje pętlę główną w 1ms, jakieś bardziej skomplikowane procesy 10..30ms. Jak program wykonuje się dłużej, to jest źle napisany.

O mistrzu ES2, z nieba nam tu spadasz ze swoją wiedzą, którą dzielisz się z takimi nikczemnikami jak ja. W Arduino najczęściej korzystam z Nano, Bluepill i ESP, wrzuć linki do swoich bibliotek do obsługi typowych LCD/TFT/OLED i czujników DS. Może być na UART/I2C. Oczywiście jak nie assembler to może być kod maszynowy, każda ns ma w Arduino znaczenie, dlatego wybrali C++ obiektowy. I jak masz jakiś hub 1-wire za dyszkę to też chętnie przytulę, bo widziałem tylko takie po parę stów, a to trochę lipa bo przekraczam budżet mojego 4-kanałowego termometru o jakieś 5000%. Już lecę studiować te pullup. Czekam z wypiekami na twarzy.

Lukaszm, podłączyłeś ten led do pinu procka?

Gość es2
O mistrzu ES2, z nieba nam tu spadasz ze swoją wiedzą, którą dzielisz się z takimi nikczemnikami jak ja. W Arduino najczęściej korzystam z Nano, Bluepill i ESP, wrzuć linki do swoich bibliotek do obsługi typowych LCD/TFT/OLED i czujników DS. Może być na UART/I2C. Oczywiście jak nie assembler to może być kod maszynowy, każda ns ma w Arduino znaczenie, dlatego wybrali C++ obiektowy. I jak masz jakiś hub 1-wire za dyszkę to też chętnie przytulę, bo widziałem tylko takie po parę stów, a to trochę lipa bo przekraczam budżet mojego 4-kanałowego termometru o jakieś 5000%. Już lecę studiować te pullup. Czekam z wypiekami na twarzy.

Lukaszm, podłączyłeś ten led do pinu procka?

Proszę bardzo, biblioteki w C do

- LCD z dynamicznym przydzielaniem własnych wzorów znaków. LCD WEG010016ALPP5N00000, TFT ze sterownikiem ssd1306 (IIC).

- Onewiere dla GPIO, USART, DS2482/4 (IIC) DS2480 (UART).

- USB dla FT22x (SPI) i FT230 (IIC)

Hub 1-Wire to nie kilka stówek, tylko P82B96 za 11zł netto na dwa kanały.

rmik 20180325 162238 - LCD EG010016ALPP5N00000.zip

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...