Aktywne Wpisy
#polityka #sejm #wybory Mam pytanko do wyborców, którzy tak bardzo byli uśmiechnięci przy urnach w zeszłym roku, szczególnie na Jagodnie.. W związku z tym, że minęło już kilka dobrych miesięcy kadencji, a rudy [pkazał już swoje prawdziwe oblicze między innymi podwyższając VAT na żywność o 5% tworząc drożyznę w sklepach, od 1 lipca kolejna ogromna podwyżka na prąd i gaz, a eksperci już zapowiadają znaczący wzrost bezrobocia, czyli de facto powrót do
jetlag +2
Panie Bogu co ja ci zrobiłam, że mam takie bolesne okresy? Przysięgam jeszcze jeden dzień takich skurczy i sama się zabije. Nie mogę tego wytrzymać już naprawdę...
mały update i pytanie.
zabrałem się już bardziej do projektu. jesem w trakcie pisania obsługi czujników. na poczatku byłk tak że main robił wątek asynchroniczny. tam robił się trigger na czujniki, czyli wysłanie sygnału by zaczął sie pomiar. a potem kolejne wątki asynchroniczne zbierały równolegle z wszystkich czujników dane. okazało się że to za bardzo obciąża. zmieniłem na to by robiło tak by był trigger potem odpytuje jeden czujnik, trigger i kolejny. to poprawiło sytuacje. tylko trochę. bo wciąż to zżera za dużo jak na taką czynność.
problem leży w tym że w pętli odpytuje ciągle czy na danym pinie pojawił się stan wysoki. więc zasoby mocno zżera.
pytanie takie. w jaki sposób bym mógl zatrzymać proces dopóki nie będzie dany warunek spełniony np. True. while(True) odpada. widziałem też condition_variable ale pojawia się problem że też bym musiał sprawdzać stań pina w pętli by wysłać notify.
potrzebuje czegoś takiego
czekajAż(będzie tutaj True, ma sobie samo sprawdzać)
dopiero idź dalej...
#programowanie #raspberrypi #tworczoscwlasna #elektronika #robotyka
Pojęcia nie mam, co Ty kombinujesz. To nie możesz po prostu wyłączać triggera mnożąc go bitowo jakąś maską?
Przecież to jest analogowy sensor, mierzy tylko czas i zajmuje 2 cykle zegara, mniej niż jedno dzielenie, jak to za dużo zasobów?
while(digitalRead(sensorEchoPin)==LOW)
pulseStart = std::chrono::highresolutionclock::now();
while(digitalRead(sensorEchoPin)==HIGH)
pulseEnd = std::chrono::highresolutionclock::now();
if (maskabitowa&portipin==maskabitowa)
{
pulseEnd = std::chrono::highresolutionclock::now();
timeIncr = pulseEnd - pulseStart;
}
else pulseStart = std::chrono::highresolutionclock::now();
To jest oczywiście pseudokod, sprawdź jaki to port i pin i zrób odpowiednie maski dla tych czujników, całość trwa, jak już wcześniej pisałem mniej niż dzielenie