Na naciśniecie przycisku robisz żeby jakiejś zmiennej przypisał (w momencie jego naciśnięcia) odczytaną wartość z przetwornika a później za każdym razem od aktualnego odczytu odejmujesz wartość tej zmiennej. Poza tym nie ma raczej sensu w przerwaniu od przycisku (czy w jakimkolwiek innym sposobie odczytu stanu przycisku) robić ponownego odczytu przetwornika....
Może po prostu zrobić licznik ze amienną zapisywalny w EEPROM przed główną pętlą programową zaraz po starcie. Odczyt stanu zmiennej, a nastepnie powiększenie o jeden i zapis. Jedyny mankament to jest to, że przyrost licznika będzie realizowany także podczas każdego startu mikrokontrolera.
Tak czy siak masz poważny błąd. [syntax=c]if (pinstate_II_to_P != digitalRead(II_to_P)) [/syntax] i [syntax=c]pinstate_II_to_P = digitalRead(II_to_P);[/syntax] Pamiętaj że drugi odczyt może być już zmieniony w trakcie wykonywania tego if-a. Moim zdaniem lepiej odczytywać stan do zmiennej i operować na zmiennej. Wtedy nawet możesz sie pokusić o eliminacji...
Istnieje taka możliwość. Mianowicie jakaszmienna sprawdzasz poszczególne bity w bajcie i już wiesz na którym pinie masz 1, lub 0.
Dla enkoderów ze stykami mechanicznymi, jeśli nie podłączasz go do uC za pomocą prostego filtru RC, wykorzystywanie timera czy przerwań to ślepa uliczka. Z racji, że takie enkodery nie generują impulsów o dużej częstotliwości, to najlepiej zrealizować odczyt programowo, np. cyklicznie w systicku sprawdzać czy mamy stan wysoki przez minimalny czas i...
Bo nie tak się używa przerwań zewnętrznych. Można po pojawieniu się przerwania od zbocza narastającego wystartować timer, w przerwaniu zmienić na zbocze opadające i gdy pojawi się zbocze opadające zatrzymać timer, odczytać jego stan do zmiennej volatile wykasować i ponownie ustawić na zbocze narastające. Mozna też wykorzystać oba dostępne przerwania....
Odczyt rejestru UDR powoduje utratę jego zawartości - stąd jeśli do jego poprzedniej wartości chcesz się ponownie odwołać, musisz jego stan przechowywać w jakiejś tymczasowej zmiennej.
Jak już ktoś powiedział nie należy używać "goto". Taki sposób programowania nie jest zalecany. Generalnie w takich programach rozdziela się funkcję odczytu klawiatury od funkcji będącej reakcją na stan klawiatury. Funkcja odczytu klawiatury zapisuje stan klawiszy w zmiennej (buforze). Następnie w funkcji (fragmencie programu) na podstawie tej zmiennej...
Jestem ciekawy co kolega MichGX ma na myśli pisząc o funkcji atomowej? Ja też bym wyłączył obsługę przerwań na czas ustawienia zmiennych.
Dzien dobry, zwracam się do osób mających do czynienia z oprogramowaniem SCADA Promotic. Posiadam moduł: https://www.waveshare.com/wiki/Modbus_RT... wysyłanie danych czyli sterowanie przekaznikami dziala jak nalezy. Mam problem z odczytem stanu wejść. W aplikacji stworzyłem kontrolke, która ma zmieniac kolor po odczytaniu "jedynki" w zmiennej...
Załączyłem kawałek bazy zmiennych w Excelu, gdzie zmienna StatusF jest odczytywana fizycznie z falownika i jest słowem statusu, na poszczególnych bitach zawarte są informacje o pracy urządzenia. Pozostałe zmienne są zmiennymi nieaktywnymi (nie są wliczane do limitu zmiennych) i "rozszyfrowują" znaczenie poszczególnych bitów. Te zmienne mogą być użyte...
Czy to poprawny zapis do uśredienia wyniku z 60 pomiarów kodu co wyżej podawałem (*) pytam z czystej ciekawości czy to poprawna forma To nie jest 'uśrednienie',- to jest zbyteczne rozszerzenie rachunku wydajności, które jest równoznaczne z pomiarem impulsów w czasie 60 sec. Inaczej, zamiast odczytywać zawartość Countera1 po zliczeniu 250 4-milisekundowych...
Witam Procedura gotowa, działa na przerwaniu i wyrabia się w 40 cykli zegara (około), ale nie odkładam rejestrów licznika na stos, jeżeli licznik będzie w SRAM to trzeba dodać zachowanie na stosie rejestrów Y. Na razie popatrz na asembler i napisz co z tego rozumiesz, acha, algorytm jest inny niż twój. INT0INT1: push r16 ;odłożenie rejestrów i SREG...
(at)BlueDraco To o czym piszesz odbędzie się ze szkodą dla operacji na porcie w przerwaniu. Ta z pętli głównej zostanie wykonana bez zmian. Niemniej jak najbardziej masz rację co do tego, że tak się nie powinno robić. Rozumiem, że problemem w tym przypadku jest czas - w momencie odczytu PORTB jego stan jest inny niż w momencie zapisywania? Nie do końca....
Nigdzie nie widzę definicji PINCx, a więc zakładam domyślne pochodzące z avr/io.h (iom8.h): /* PINC */ #define PINC66 #define PINC55 #define PINC44 #define PINC33 #define PINC22 #define PINC11 #define PINC00 Tak więc są to stałe zdefiniowane jeśli dany pin istnieje, zawierają numer bitu który należy sprawdzać. Nie są to marka do sprawdzania stanu pinu...
brak działania :/ ale ikonka się zmienia jak zmienie stan przekaźnika. Mam jedną sugestię czy ten kod musi być aż tak skomplikowany ?? odczyt stanu jest za pomocą zmiennej: status=$(/dodatki/powersw/power status | grep 1 | sed 's/port.1..//') plik "power" można przenieść do cgi-bin/powersw tylko nie wiem czy sed i grep działają w js czy nie można wstawić...
jeżeli ma być dokładnie tak jak w tej nocie, to możesz zrobić tak: (przykład dla 100Hz) T = 1/100Hz = 0,01s, czyli dla wypełnienia 50% przyjmujesz 0,005s. Powiedzmy, że przerwanie z timera masz co 0,001s. Sprawdzasz co ten czas stan na wejściu, czekasz, aż pojawi się 5 poprawnych odczytów i dopiero inkrementujesz/dekrementujesz stan zmiennej. Opisane...
Szukam instrukcji która obsługuje port przetwornika ADC dla ST32f10x Włącza i szczytuje stan portu do zmiennej Odczyt z pinów i zapis (zapalanie diody )już udało się zrobić jeszcze przetwornik został zbyszek
Olbrzymia większość HARDWAROWYCH pinów nie zachowuje się jak komórki w RAM, a odczyt pinów ustawionych w wyjscie może dać nieokreślone wyniki Nie mówisz co i jak, ale sądzę już u podstaw jest zła idea. Przełączanie musi umieć algorytm sam w sobie, w oparciu o zmienne, i to dopiero odnosić na porty wyjściowe
Żeby na 100% nie było różnicy między badanymi stanami pinów podczas kolejnych badań oraz zapisu do rejestru, powinieneś tylko w jednym miejscu odczytać PIND i zapisać w zmiennej. Dopiero zmienną testować i gdy trzeba zapisać do tablicy. Sprawdź (pokaż) jak wygląda zawartość pliku .lss. Może trzeba powalczyć z instrukcją asm volatile("nop"), zeby program...
Zmienną volatile można odczytywać nie przypisując jej wartości niczemu innemu. Taką zmienną moze być np. rejestr statusu jakiegoś peryferium, którego odczyt powoduje zmianę stanu tego peryferium. Wystarczy więc użycie samej zmiennej, np: [syntax=c]x1;[/syntax] i to będzie miało już jakiś skutek i kompilator nie będzie ostrzegał, że zapis nie ma żadnego...
Zrób sobie ośmiobitową zmienną globalną output_status. W niej będziesz przechowywał stan wyjść przez cały czas trwania programu. Dodatkowo utwórz sobie nową funkcję set_output, i clear_output, dla których argumentem będą liczby z zakresu 0-8, które mówią na którym wyjściu chcesz operować. W funkcjach tych ustawiasz wartość bitu z argumentu w zmiennej...
Witam! Napisałem sobie prosty program w Visual Basic'u do odczytu zmiennych po AMS. Wszystko działa pięknie. Odczytuje zmienne bool, word, byte bez problemu. Problem natomiast pojawia się przy próbie odczytu zmiennej typu real. Program w sterowniku: [syntax=vb] VAR AMSS AT %MB0 :LREAL :=10; END_VAR [/syntax] Linia kodu odpowiedzialna za odczyt zmiennej...
Witam, opiszę Wam mój problem. Próbuję odczytać atmegą 16 częstotliwości w zakresie [0-1MHz] . Pod kontroler podłączony jest wyświetlacz, który co jakiś czas ma pokazać wartość ICR1. Powoli przesiadam się na język C i jest on dużo wygodniejszy ponieważ dużo problemów można rozwiązać samemu z pomocą DataSheet-a. Tak więc z niego wyczytałem co muszę wpisać...
Ja mam to u siebie zrobione na maszynie stanów - niestety program jest napisany w ASM i a PIC'a, więc nie nadaje sie do bezpośredniego przeniesienia, ale istotny fragment mogę zamiescic: [syntax=asm] ;---------------------------------------... ; Odczyt temperatury z DS1820 - Match ROM bra uL_ResPres ; State=9 - reset/presence...
Tak myślałem, że należy cały port zapisać do jednej zmiennej, tylko nie byłem pewny czy po zapisaniu do zmiennej liczby binarnej mogę korzystać z niej jako dziesiętna. Jeszcze pytanko z tym mnożeniem, jeżeli po pomnożeniu wartość liczby się nie zmieni, to po co ją w ogóle mnożymy? :D Chyba nie do końca dokładnie przeczytałeś posty wyżej. McMonster...
Ale jak przycisk 1 jest cały czas wciśnięty to "a" nieustannie się zeruje i program nie wejdzie w warunek -if a=10 then- Mam potrzebę: Na wejście przyjdzie Hi i wyjście ma być Lo na 15s. a potem ma wstać na np. 5s. i jak jest dalej na wejściu Hi to znowu ma być Lo na 15s. To już zależy jak napiszesz procedurę obsługi przycisku. Wystarczy wprowadzić...
Ten sam kod, który zaprezentowałem w pierwszym poście , natomiast przerwanie wywołane już na nodze portb.0 i działa zmienna nie jest nadpisywana. Cała reszta kodu bez zmian poza zmianą przerwania. Przerwania skonfigurowane prawidłowo. Moze przerwania masz skonfigurowane prawidlowo... ale..... Czy mozesz wyjasnic w jakim celu, w obsludze przerwania...
ma ktos moze jakis prosty programik .. do napisania ?? zeby mniej wiecej zobaczyc dziząlanie ,,, i jak to się wogule pisze,..??? Prosty przykład w pascalu (jednak prostszym niż C) - włączenie napięcia na pin2 LPT (linia D0) Var a:byte; //jednobajtowa zmienna BEGIN a:=Port[$378]; //odczyt aktualnego stanu portu do zmiennej a a:=a or 1; //ustawienie...
Witam, buduję robota mobilnego i borykam się z problemem. A mianowicie, jak zapamiętać wartość wskazaną przez czujnik w jakiejś zmiennej? Posiadam kompas elektroniczny, który ładnie działa i podczas postoju robota chcę zapisać jego aktualną pozycję z kompasu w innej zmiennej, do której mógłbym się później odnieść. Poruszanie robota zrealizowałem na...
Nie byłem w domu od czwartku i nie miałem dostępu do neta. A jak skomunikować ze sobą kilka maszyn stanu? Zmiennymi globalnymi? Czy po prostu używać wskaźników na te same funkcje? Wiem, że to wiele zależy od konkretnego projektu, ale chciałbym zobaczyć jakieś przykładowe powiązania między np dwiema różnymi maszynami stanu. Co znaczy skomunikować maszyny...
Dostęp do wybranego bitu: nazwa_zmiennej.numer_bitu np. dim abc as byte abc.7 = 1 if abc.3 = 1 then ....
Wygląda na to, że miałem racje. Jeśli robisz coś w tym stylu portB=0b11111110; if (portb = 0b01111110) { } To przed ifem musi być nop, procesor nie zdarzy zmienić stany wyjściowego przed odczytem. to raczej tak ma wyglądać : portB=0b11111110; if (portb == 0b01111110) { } a to co piszesz o NOP to jakaś herezja bo...
Edytowałeś kod, teraz mój post wygląda dziwnie. Nie możesz odczytywać stanu przycisku podstawiając jakąś zmienną if(!digitalRead(BTN_BACK)) return BACK;, jeśli BTN_BACK jest zmienną int =0 albo int=1, to odczytujesz stan pinu 0 lub stan pinu 1 i stan tych pinów przekazujesz do menu, a że na tych pinach masz UART i różne stany przy drukowaniu, to masz...
Czołem! Jestem na ukończeniu projektu. Mam problem z zapisaniem stanów kilku zmiennych w zewnętrznym EEPROMie po TWI, a później ich odczycie. Zapisywanie wygląda tak: [syntax=c]values_buffer[0] = cnt_value1; values_buffer[1] = cnt_value2; values_buffer[2] = cnt_value3; values_buffer[3] = cnt_value4; values_buffer[4] = cnt_value5; values_buffer[5] =...
2 x 12V / 2 x masa / - 0.07V do -3.1V / 3.7V W stanie spoczynku trzeci odczyt to -0.07V a podczas pracy zmienne ( rozjaśnianie i zciemnianie ) Bezpiecznik na inwenterze cały ... chyba czas dać za wygraną i sprzedać go na części :/ ( koszt inwentera około 90 złotych )
Witam. Ja bym rozważył wszelkie magnetyczne, odrzuć optyczne, jazda po błocie i nic nie działa. Niestety, każdy czujnik będzie wymagał nieco innego odczytu, kontaktron będzie chyba najprostszy, bo włączasz go jak "przycisk" przez rezystor i kondensator w celu eliminacji drgań. Jak zastosujesz hallotron to nie obejdzie się bez dodatkowego wzm. operacyjnego...
Witam, wszystko zalezy od tego jakiej biblioteki uzywasz do odczytu nacisniecia/dotyku przycisku na ekranie, potem juz bedzie prosto, taki teoretyczny przyklad: Dodałem SYNTAX - starj się o tym pamiętać.
Może urządzenie nie nadaje w Manchester? A jeśli jednak nadaje, ustaw w programie odbiornika odpowiednią tolerancję szerokości impulsu. Urządzenia bateryjne często nadają na początku emisji szersze impulsy, później zawężone. Napisz na początek program, który odczyta preambułę. Jak będzie poprawnie działać, dopiero zajmij się odbieraniem kolejnych porcji...
Czyli - jak rozumiem - ile poleceń tyle stanów ergo tyle flag (np. zmiennych typu logicznego) w programie jakie muszę ustawić, czy tak?
Witam, Szanowni Koledzy potrzebuję pomocy od Was, chciałby na pinie Atmegi odczytywać cyklicznie jego stan ( np. co zadany czas ). Następnie zebrać te odczyty do zmiennej i wyświetlić tą zmienną na porcie RS232. Moje pytanie jak podejść do tego - czy korzystać z pinu ICP czy można wybrać dowolny pin? Jak wykonać zebranie cyklicznych odczytów do zmiennej....
Hej. Wiem że wszyscy jesteście bardzo zajęci i nie macie czasu na zajmowanie się pierdołami ale może ktoś się zlituje i pomoże dokończyć moje bazgroły i uruchomić je na ESP32 jako stronę www z możliwością odczytu i wprowadzania danych które przez I2C będą zapisywane i odczytywane ze sterownika. Tyle udało mi się nabazgrać w sprawiającym masę kłopotów...
Może przerwania wcale nie są generowane co 1s i inkrementacja zmiennej czas_przyciskania_plus odbywa się tak szybko, że szybko jest ona większa od 2? Twój warunek może być maksymalnie spełniony przez 1s w przypadku ciągłego wciśnięcia przycisku. Nie zamieściłeś całego kodu ale może zastąp warunek czas_przyciskania_plus==2 warunkiem czas_przyciskania_plus>=2....
Można tak: - ESP wysyła cyklicznie stan wejść do Raspberry , gdzie jest on zapisywany do pliku, - gdy Raspberry dostanie żądanie o stronę www wysyła ją z aktualnymi stanami wejść odczytanymi z pliku, - jeżeli Raspberry dostanie informację o zmianie stanie wyjść zapisuje tę informację do pliku, - Raspberry po otrzymaniu stanu wejść od ESP odpowiada w...
Przykładowy szkielet programu: [syntax=c]while(1) { znak = uart_receive(); // pobranie znaku z bufora odczytu UART if(znak) { }// procedura jeśli odebrano znak switch(stan_swiatla) { // automat zmiany świateł case 1: red=0; yellow=0; greek=0; if(czujnik) stan_swiatla=2; break; case 2: // zmiany świateł w kolejnych stanach } _delay_ms(200); // cykliczne...
Aktualnie jestem w pracy więc nie mam takiej możliwości chyba że napiszę go tu razem z wami. Po za tym nurtuje mnie jeszcze kilka pytań: 1. Co z rezystorami dla linii sda i scl czy są wymagane? W żadnym poradniku nic o nich nie piszą albo przynajmniej ja nie zauważyłem takowego który zawierał by na ich temat informacje ale na forum się o nich czyta...
Używanie zmiennych przy _delay_x(x) nie jest dobre tam powinny znajdować się tylko stale.Rozglądnij się za timerami i trybem CTC.
Czy jest włączony double buffering? Nie, gdyż nie ma takiej potrzeby. Każda zmiana wyświetlanej treści to działania wolnozmienne bądź statyczne, np. przesuw celownika to odczyt stanu GPIO w pętli i zależnie od ich stanu zwiększenie/zmniejszenie zmiennych współrzędnych. Jeśli poprzednie współrzędne różnią się od nowych (np. nx i ox - new i oldx) to...
wyświetla 0 jak zmieniam return np na 1 to wyświetla jeden ale nie wylicza:D jak mozesz to poczekaj bo nie znam instrukcji super(paramet) i nie wiem jak tego urzyć juz wiem o co chodzi. ale to jest takie zadanie z odgórnymi wytycznymi czyli mam zrobić klase Bramka jest klasą abstrakcyjną i zawiera elementy składowe: - pola klasy: inputs (typu całkowitego...
To ten sam rejestr, tylko przy odczycie zwraca bufor odczytu, a zapis powoduje zapisem do bufora zapisu. Zobacz rejestr stanu USART i przeczytaj jego opis, a nastanie jasność :)
Nigdy nie korzystałem i nie śledzę rozwoju AI, więc mam pytanie. Czy i ewentualnie jak dobrze, modele językowe radzą sobie z pisaniem programów w asemblerze, Zapytałem Claude o wygenerowanie szkieletu programu dla koprocesora ULP w ESP32. Nie informowałem AI, że musi być w asemblerze, ale sobie poradził całkiem dobrze: Może jednak C++ ? Niestety, Claude...
Wewnętrzny oscylator jest hiperdokładny nawiązując do zawrotnie szybkiego RC5 ;] dsPIC33FJ obłożony ciężko robotą dekoduje mi perfekcyjnie RC5, chodzac z wewnetrznego zegara... Dodatkowo, można spróbować wyjaśnić, czym jest to przestępstwo: a lot of fun . Moze warto zastosować lokalne zmienne i na nich operować w kodzie przerwania, a dopiero pod koniec,...
Przy odczycie z DR jest dokładnie ten sam problem co przy zapisie - jak chcesz 8-bitów, to musisz się odwołać przez wskaźnik 8-bitowy (identyczny jak ten powyżej do zapisu). Twoja zmienna tmp i w tym przypadku nie ma żadnego znaczenia, bo "szerokość" odczytu/zapisu jest zdeterminowana tylko i wyłącznie przez źródło odczytu lub cel zapisu, a nie rozmiar...
Dodaj sobie dodatkową zmienną do której będziesz wpisywał wartość odpowiadającą twojemu rotate. Robisz odczyt i teraz wiesz w którą stronę ma się odbywać rotacja.
Musisz dodać zmienną np. typu byte . I zmieniać jej stan przyciskiem z 0 na 1 i odwrtotnie. Dla stabilności programu polecam dodać funkcję if że wazie wartości powyżej 2 lub więcej ustawiało jej wartość na 0. Możesz także wykorzystać przerwania do odczytu klawiszy.
Pewnie Ci to niepomoże, ale ja bym próbkował cały okres kilkadziesiąt-kilkaset razy, i zapisywał do zmiennej ilość próbek podczas stanu wysokiego. A potem znając liczbe wszytkich próbek na okres i tą ze zmiennej, łatwo można obliczyc współczynnik wypełnienia - jesli o to Ci chodziło. To tylko ogólna koncepcja.
Piszę program do czujnika zliczającego stan licznika gazu i wysyłającego dane na serwer w losowych odstępach czasu. Problemem jest fragment kodu: Każda procedura wysyłająca wywoływana jest 3 razy. Za pierwszym razem przesyłane są poprawne dane, a za dwoma kolejnymi śmieci (pogrubione linijki). Transmisja na pewno jest ok, bo sumy CRC16 się zgadzają....
Dobrze zrozumialem? czyli zeby odczytac stan np 2 bitu w zmiennej to robie tak: char zmienna; bit odczytany_bit; zmienna=zmienn>>2; odczytany_bit=zmienna & 0x01
Okej, mam taki .......... Jeżeli chciałbym zamontować przycisk, mogę zrobić to pod dowolny PIN? np pod pin 6 lub 7 w arduino? I jak wtedy zaprogramować ten przycisk? Proszę o pomoc. Przycisk możesz podłączyc pod dowolnie wybrany (nie zajęty) pin, nawet pod którychś z tych oznaczony 'Analog IN' A0 do A5; lecz wtedy liczą się one jako 'DigitalPin' 14...
Jeśli chodzi o wizualizację stanu poziomu w zbiorniku, to jeżeli masz odczyt analogowy poziomu np za pomocą przetwornika ciśnienia hydrostatycznego, to wystarczy użyć bargraph z przypisaną zmienną i odpowiednio przeskalowaną. Oczywiście bar ustaw pionowo.
Raz zmienia sie kat natarcia na łopatki wirnika a dwa zmniejsza lub powiększa się szczelina między kierownicami. Jak szczelina jest mała prędkość spalin rośnie i lepiej napędza wirnik. To że max moment masz na 2500 nie jest normalne już od 1800 lub zaraz po turbobo powinno się budzić. Pierwsze pytanie o kod silnika bo niekoniecznie masz turbo ze zmienną...
Odkrywasz tu chyba koło na nowo. Diody nie są potrzebne. Klawiaturę podłączasz do jednego portu po kolei czyli tutaj 1-8 to będzie w porcie 0-7. Piny 0-3 ustawiasz jako wejścia z podciąganiem a 4-7 jako wyjścia. Bierzesz zmienną szesnastobitową i ustawiasz w niej 0. Ustawiasz masę na jednym z 4-7 a na reszcie plus i czytasz cały port z maską 0000_1111....
Według dokumentacji arduino : Rozumiem że digitalRead w przypadku gdy pin ustawiony jest jako wyjście nie ma sensu?? ale działa... i nie tutaj jest chyba problem ponieważ nawet gdy sprawdzam stan pinu za pomoca zmiennej do której wpisuje odpowiedni stan (zmienna stan) to sytuacja wygląda identycznie w przeglądarce. Pośrednio poradziłem sobie dając...
Witam ponownie Dzięki za pomoc !! Już za pierwszym razem sobie poradziłem... Chyba niebardzo sobie poradziłeś :( ... A = A And &B11000011 ... Po operacji j/w bity 2,3,4,5 w zmiennej A zostaną ustawione na "0" , a nie o to Ci przecież chodziło.Maska dla operacji AND powinna w Twoim przypadku wyglądać &B00111100 . Pozdrawiam Piotrek Sz.
damiano713 : Fakt jest taki, że flagi PSH jak i URG są w większości stosów ignorowane, jednak jeśli już PSH jest używane, to wymusza wysłanie potwierdzenia bezpośrednio do danego pakietu - implementacje TCP jakie widziałem wysyłają jednak potwierdzenie po każdych dwóch pakietach lub po pewnym krótkim czasie (zwykle 100ms, chyba że rtt jest duże) od...
bbiidduull, możesz spróbować coś takiego: zadeklaruj na początku programu jeszcze jedną zmienną 'T' Dim T As Byte a na początku swojej pętli głównej (po 'Do') wstaw w kod: [syntax=basic4gl] ' Wykrycie stabilnego stanu '1' T = 0 Do Waitms 10 ' Przerwa 10 ms pomiędzy odczytami T = T * 2 ' Przesunięcie bitów zmiennej 'T' w lewo If Pinb.1 = 1 Then ' Jeśli...
w tym te od 16-31 z możliwością wpisywania zmiennej jako wartości (ldi r16,0x12 ) Ja uhm... Bardzo zmienna... "Load Data Immediate" czyli albo natychmiastowa albo stała jak dla mnie ze zmienną to ma tyle wspólnego co... Co do portów to jest PINx jest do odczytu realnego stanu na porcie. Ja kolego proponuję ksiażkę Baranowskiego uC avr Atmega w praktyce...
Witam i proszę o pomoc. Mam problem z przyłączeniem obrotomierza w aucie które właśnie modyfikuję. Podłącznie wg instrukcji do przewodu sygnałowego cewki nie daje rezultatu, obrotomierz wskazuje 0, natomiast podłącznie pod czujnik położenia wałka lub wału daje przekłamany odczyt. Cewka i wtryski są impulsowo zasilane napięciem w instalacji ok 13V, czujniki...
Może skorzystać z innej SCADY? :) A jaką proponujesz ? Dodano po 4 Witaj - może zerknij na http://www.plc-home.pl/realizacja-system... - i pogrzeb na tamtym forum - ale nie rezygnuj z tej SCAD-y :D Ok poradziłem sobie z konfiguracją. Dzieki za linka ! Jeszcze tylko kwestia wysyłania wartości zmiennych...
Ten sposób działa :-) Będzie ‘działać’, tylko że jest wielkość generowanego kodu jest z grubsza o 50% większa niż gdybyś zastosował odczyt pojedynczych cyfr i po konversji ascii do wartości liczbowej, akumulował je do jakiejś zmiennej. Po zakończonej akumulacji wszystkich cyfr ta zmienna stanowi wysłaną liczbę. Nie tylko że kod jest większy...
Nie wiem czy wiesz co będzie wynikiem jeśli weźmiemy dwie zmienne szesnastobitowe bez znaku i odejmiemy większą od mniejszej? Wynik nadal będzie dodatni jednak pomniejszony o poprzednią wartość tej mniejszej zmiennej. Tak więc proponuję rozważyć taki temat: Timerx w momencie pierwszego odczytu w INTx ma 65530. Nie zerujemy Tmerx . Timerx w momencie...
Sądzę, że problem pojawia się gdy przerwanie zostanie wywołane w trakcie zapisu lub odczytu zmiennej z RAM Bardzo słusznie sądzisz. 1. Czy jest to normalne zachowanie, czy raczej efekt źle skonfigurowanego środowiska Arduino? Nie ma pojęcia jak się zachowuje Arduino, bo nie używam, ale podejrzewam, że podobnie jak C czyli sam musisz się przed tym zabezpieczyć....
Zaproponowana metoda dotyczy sytuacji, gdy zapisujemy informację na 1 bajcie. Gdy wymagamy 2 bajtów (np. odczyt temperatury i ogólny stan baterii) lekko ją modyfikujemy Rozumiem to. Ale co w sytuacji, kiedy mamy do zapisania FF? Taka jest wartość mojej zmiennej, i choćby się waliło i paliło muszę ją zapisać do EEPROM. Jak Twój algorytm sobie z tym...
Witam, Mam następujący problem próbuje zrobić obsługę DHT11 pod ESP8266 chce to wykorzystać w inteligentnym domu. Niestety nie chce mi to działać poprawnie. Próbowałem już trzech podejść: 1. Obsługa na podstawie kodu z http://www.bntdumas.com/2015/07/23/how-t... oraz forum esp8266.com Niestety nawet tam...
Aby uzyskać dostęp do odczytu eeprom, trzeba ustawić bit EEMEN w rejestrze WMCON. Wtedy eeprom widziany jest jako pamięć xdata (adresy 0x0000-0x07ff), i odczyt odbywa się tak, jak zmiennych z przestrzeni xdata, np: xdata char eep_var; data char x; (...) WMCON |= 0x08;//wybor pamieci EEPROM jako XDATA x = eep_var; Dodatkowo aby móc zapisać EEPROM,...
Pomyślałem o "schemacie" który działałby mniej więcej jak poniżej. Proszę o opinie czy sposób myślenia jest dobry i jeśli tak, to jak to zapisać. Definiuję sobie zmienne stanPrzycisku i PoprzedniStanPrzycisku. - W digitalRead sprawdzam czy przycisk jest wciśnięty. Jeśli jest, czyli ==LOW to -zapisuje aktualny czas z millis() jako czasWcisniecia i stanPrzycisku...
Witam staram sie zoptymalizować program w C aby jak najmniejszy był i chce przepisać stan PINU do zmiennej (w tym przypadku tablica ) wygląda to tak : if(bit_is_clear(PINB, PB0)) { in[0] = 0 ; }else{ in[0] = 1 ; } if(bit_is_clear(PINB, PB1)) { in[1] = 0 ; }else{...
Można inkrementować zmienne, ale wystarczyło by po jednej zmiennej bitowej na każdy kanał zatrzaskiwana na 2s (jeśli nie potrzebne jest zliczanie tych impulsów). Czas można odliczać np. na programowym timerze. Takie rozwiązanie byłoby estetyczniejsze i nieco szybsze - w końcu działania są na pojedynczych bitach, a nie całych bajtach. No i o wielkości...
Proszę o pomoc w skonfigurowaniu urządzenia HMISTU665 do komunikacji poprzez MODBUS RTU z kartą enkoderową ADE4-U. Jak odczytać rejestry z karty. Funkcja odczytu to 0x03 a adresy stanu poszczególnych wartości to np 0x00, 0x02 a format danych to float. Jak należy ustawić zmienne do wprowadzenia adresów w tej postaci? Po skonfigurowaniu protokołu MODBUS...
Jaki masz mikrokontroler? Podasz nam mikrokontroler to powiemy Ci czy będziesz wstanie odczytać amplitudę i wypełnienie poprzez równoległy odczyt sygnału na dwóch osobnych wejściach mikrokontrolera. Na arduino sygnałem wchodzisz na PWM, czytasz długość stanu wysoki/niski (pulseIN) oraz równolegle wartość napięciu na wejściu analogowym.
Witam! Jak dla mnie, to wcale nie jest dziwne że ten kod nie działa, nawet po zmianie adresów. unsigned char licznik[6] = {0,0,0,0,0,0}; void licznik(void) { ... } Nie możesz mieć w programie dwóch symboli (w tym wypadku tablicy oraz funkcji) o tej samej nazwie. Prawdopodobnie nie jest to jednak powodem złego działania,...
Witam Mam problem z odczytem zwyklego przycisku na tej atmedze. podlaczenie: gnd +rezys 10k+port.d=2 nastepnie podaje przyciskiem +5v na port.d2. kod: config PORTD.2= input config pinb.5=output set PORTD.2 . . Do if PIND.2=1 then waitms 30 if PIND.2=1 then Toggle pinb.5 end if end if loop Przycisk zapala diode ale jej nie gasi w/g mnie nie wraca do...
Witam, Na poniższym zdjęciu prosty przykład odczytu wartości analogowej z przeskalowaniem na żądane przez nas wartości (wykorzystane bloki Norm i Scale). Po poprawnym skonfigurowaniu płytki dodałem tagi "Wejście analogowe z termopary" (IW80) i "Wejście przeskalowane" (zmienna typu Real o adresie MD0). Dodatkowo dodałem zmienną tymczasową typu Real ("zmienna...
Tutorial do avr taki znalazłem: http://avr.elektroda.eu/?q=node/8 Jak byś czegoś w sieci szukał, to raczej unikaj tutoriala z patron.net, uczy złych nawyków i jest nieco nie na czasie. Pomiar częstotliwośći na AVR realizuje się w miarę łatwo, przy wykorzystaniu timerów, jeden timer pracuje jako licznik impulsów z zewnątrz, a drugi odmierza czas, mozna...
Teraz zrozumiałem, że jak załącze x1 to lampka Y1 sie zapali ale błyskawicznie zgasnie bo w nastepnym Networku x2 nie jest załączone . Nie programowałem nigdy fateka, ale podejrzewam, że nawet gdybyś wysterował wyjścia od wejść bezpośrednio, tj. z pominięciem zmiennych M, to i tak lampka nie błyśnie. Wynika to z cyklu pracy sterownika, który na ogół...
Dla tagw moesz deklarowa czas pomiedzy kolejnymi od Dodano po 2 Dla tagow mozesz deklarowac czas pomiedzy kolejnymi odczytami zmiennej. Zdarzenie które pojawi się i zniknie pomiędzy odczytami pozostaje niezauważone ... chyba że zastosujesz bardziej wyrafinowaną metodę jak na przykład zapamiętanie i kasowanie ( potwierdzenie ) z panela.
Cześć p.kaczmarek2! Fragment kodu, którego użyłem do zapisania zmiennej generującej, służy celom programistycznym. Użyję Twojego kodu, gdy już skończysz. Na razie po prostu upewniłem się, że użyto właściwych pozycji pamięci, więc jest on wstecznie kompatybilny z ostatecznym kodem. Mogę potrzebować pomocy w zsynchronizowaniu Twojego repozytorium z moim...
Witam. Chciałem rozgryźć wyświetlacze z HD44780. Po nieskutecznych próbach z interfejsem 4-o bitowym, wszystko skasowałem, i napisałem zupełnie od nowa, tym razem pod interfejs 8mio bitowy. OK, poczytałem datasheety, diagramy itp. Według mnie wszystko raczej się zgadza, ale wyświetlacz się nie chce zainicjalizować (a raczej dwa wyświetlacze, bo próbowałem...
ISR(TIMER0_OVF_vect ) musisz zrobic nieblokujace, albo wywalic z niej cale to wyswietlanie. Zauwaz, ze jesli czas wykonywania tej procedury jest dluzszy niz czas pomiedzy impulsami generowanymi przez wwiatrak (a jest) to gubisz przerwania. W efekcie twoje obliczanie roznicy jest bledne. Dla bezpieczenstwa flag_is_set=0; wywal i umiesc w TIMER_OVF_vect,...
Dzieki za odpowiedz ja u siebie narazie testowo openhaba wystawilem ogolnie dziala mi wszystko tylko odwracajq sie sygnaly po nacisnieciu przycisku na scianie przez co w oh muszw sawsze dwa razy przesunac suwak. Mozesz w wolnej chwili podrzucic swoj kod? Ja mam obecnie dwie zmienne modbis jedna do zapisu przez oh a druga do odczytu stanu wyjscia. Impulsy...
zmień kod // Deklaracja pinów int vibratePin = 7; // Czujnik wibracji int buzzerPin = 2; // Buzzer podłączony do pinu 2 int ledPin = 9; // Dioda LED sygnalizująca wibracje (świecąca przez 3 sekundy) int buzzerLedPin = 8; // Dioda LED świecąca razem z buzzerem int potPin = A0; // Potencjometr regulujący częstotliwość buzzera // Zmienne int value; //...
Witam ponownie z powyższymi problemami poradziłem sobie, jednak mam pewien problem z kolejnym zadaniem (pewnie banalnie prostym jednak nie wiem jak się do tego zabrać). Mam zmienną powidzmy "a" zmienna ta pobiera stan licznika energii co 30s. Chcę teraz obliczyć ile kilowatów wyciągnąłem w ostatniej godzinie. Czyli matematycznie: aktualny stan licznika...
czyli jak przykładowo dam: .... czyli flaga zmienia stan co ok. 1s,..... Z przedstawionej informacji wynika że masz w systemie tylko jeden układ DS, więc nie ma potrzeby go adresować (&H55-match ROM). wystarczy 'skip ROM'. Jeżeli flaga jest używana tylko do obsługi odczytu temperatury, to nie ma potrzeby aż tylu jej stanów (0/1/2/3; -wystarczy 0/1)....
Niestety nie znam tego stosu, więc nie mogę porównać jak tam jest to zrobione. Ja odniosłem się tylko do pytania "Czy możliwy jest u mnie dostęp do wielu plików jednocześnie" - więc u mnie nie ma póki co takiej możliwości (i na razie nie jest mi ona potrzebna). A sam dostęp do pojedynczego pliku jest - więc funkcja zapis/odczyt istnieje :-) Przy maszynach...
Z tym, że tablice musiałbym wcześniej wpisać w program, a mi chodzi o to, by "uczyć" tego robota danego zadania. Jeśli zmieniłbym odległośc punktu A od B i znowu postawił przeszkode, w którą by robot uderzył, to wtedy ponownie musiałby zapamiętać nową trase. Przy czym jeśli działałbym w obrębie pamięci RAM, kasowałbym ją po prostu resetem zasilania....
Udało się praktycznie rozwiązać problem, tzn. przetwornik jest czytany (w trybie free run uruchomilem wiec sprawdzanie stanu flagi jest niepotrzebne). Na wyświetlaczu jest wyświetlana aktualna wartość zczytana z przetwornika, natomiat chcialem się dowiedzieć jaki typ zmiennej "wynik" obsłuży mi taką operacje: wynik=(pomiar/255)*2.54; Pozdrawiam
Pytanie czy Autor postu potrzebuje dokładności 0.1s ;) Przecież można odpytywać układ zegara w nieskończonej pętli bez żadnych rygorystycznych ram czasowych, wtedy bedziemy mieli powiedzmy co 25ms (tutaj strzelam orientacujny czas potrzebny na komunikacje z układem zegara, Autor nie zaznaczył czy korzysta z przerwań czy z RTC), wtedy w badając stan...
[syntax=c]uint8_t check_BF(void) { CLR_RS; return _lcd_read_byte(); } #endif[/syntax] Tak u mnie wygląda funkcja "Sprawdzenie stanu Busy Flag (Zajętości wyświetlacza)". Mógłby ktoś przykładowo pokazać jak umieścić bity od 0 do 6 do zmiennej, aby mógł wiedzieć, gdzie jest kursor? Pozdrawiam Bartek!
Czołem, Od niedawna postanowiłem powalczyć z mikrokontrolerami. Zakupiłem płytkę do zestawu uruchomieniowego ZL2AVR, wszystko sobie zmontowałem i generalnie działa. To znaczy: działa, do momentu gdy próbuję odczytać stan któregokolwiek z wejść. Gdy tylko ustawiam wyjścia - wszystko działa ok. Napisałem sobie taki programik: ' No to tak: ' ' * Port...
jest możesz zastosować pętle for jednak ten kod jest bardziej uniwersalny, łatwe wykonanie przypisania kodów konkretnym przyciskom oraz łatwe podłączenie klawiatury każde wyprowadzenie możne wręcz znajdować się na innym pinie procesora. poza tym NOPy są istotne, gdyż za szybie odczytanie kolumn po ustawieniu wierszy powoduje zły odczyt musi minąć co...
odczyt zmiennej sprawdzanie stanu zmiennej matrix odczyt stanu
regulacja nacisku igły zapala dioda pomarańczowa sterownik stepper motor
wymiana lasera onkyo kontrola dostępu roger
Pilarka Vander VPD778 wyłącza się po puszczeniu przycisku Brak dźwięku w kolumnach Sherwood AL1110 - diagnostyka i rozwiązania