Trzeba klawiszem zerować zmienną odpowiedzialna za wypełnienie (ustawiać wypełnienie 0 - zatrzymanie silnika), a przedtem zapisać jej wartość w zmiennej pomocniczej. Kolejne naciśnięcie klawisza powinno przepisywać zapamiętaną wartość do zmiennej określającej wypełnienie. Czyli klawiszem zmieniałbym zmienną jednobitową (0 lub 1), a w instrukcji warunkowej...
Witam Tak Panowie ja się z Wami zgadzam (z racji tego iż w programowaniu jestem jak but) chociaż z tymi diodami i analogowym wskaźnikiem zupelnie nie. Jeżeli chodzi o program to od początku miałem takie wrażenie, że cos jest nie tak. Uważałem, że trzeba to napisać co najmniej w C, ale najlepiej w asemblerze - niestety programista mi nie powiedział w...
Musiałbyś to zrobić na przerwaniach aby podczas działania PR1 lub PR2 wyłapać wciśnięcie S1. Wg mnie to najbardziej optymalne rozwiązanie. W tym wypadku nie ma konieczności stosowania przerwania. Wystarczy posłużyc się dodatową flagą lub pomocniczą zmienną i odpowiednio icrementowac jej wartośc w zależności od potrzeb - w analogiczny sposób jak przy...
Witam, Chciałbym zrealizować proste menu w Bascomie, które wybiera podprogramy za pomocą switcha dołączonego do portu. Każdy podprogram musi być zapętlony, ale po ponownym naciśnięciu przycisku wyboru musi z niego wyjść i przejść do kolejnego podprogramu. Wymyśliłem, że to mogło by być tak jak poniżej, ale coś mi się wydaje że można to zrobić lepiej...
Do if Pin = 0 then incr Zmienna_Pomocnicza if Zmienna_Pomocnicza > 2 then Zmienna_Pomocnicza = 0 if Zmienna_Pomocnicza = 0 then Wyslij kod 13 if Zmienna_Pomocnicza = 1 then Wyslij kod 14 if Zmienna_Pomocnicza = 2 then Wyslij kod 15 Bitwait Pin, set end if Loop To taki prosty programik na kolanie napisany. W miejsce Pin wstawic nazwe pinu do ktorego...
Witam. Mam taki problem z językiem bascom basic, że chciałbym wykorzystać jeden przycisk do kilku czynności. Np: 1 przyciśnięcie -dioda świeci 2-dioda mruga itd. Przykład: dim przycisk as (chyba) byte przycisk = przycisk + 1 if przycisk = (przykładowo) 5 then przycisk = 0 if przycisk = 1 then gosub jeden if przycisk = 2 then gosub dwa...
Witam Jak napisać program w bascomie, który by zmieniał zapamiętane parametry. Chciałbym to zrealizować przy pomocy trzech przycisków. np.: - gdy przycisk nr 1 jest nacisniety to wywołuje menu (kolejne naciskanie, powodowałoby przysuwanie tego menu) - gdy wcisniety drugi to zwieksza on parametr - gdy czwarty to zapamiętuje ten parametr trzeci to zmniejsza...
Witam, mam mały problem z napisaniem kodu tak by wykorzystując cztery przyciski poruszać się po menu jak również ustawiać parametry i je zapisywać do eepromu . Menu wygląda tak 1.MENU 1.1 MENU 1.2 MENU 2.MENU 2.1 MENU 2.2 MENU itd . Proste Menu powiedzmy jednopoziomowe napisałem z instrukcją Case ale nie wiem jak wykorzystać te same przyciski , jeden...
Witam chciałbym aby w bascomie zaprogramować przycisk że po wciśnięciu i przytrzymaniu określoną liczbę sekund np 20 włączy program
Może pilot ma takie zabezpieczenie, że podczas dłuższego niż sekunda wciśnięcia przycisku ponawia i przerywa sygnał. Program będzie to wykrywał jako kolejne naciśnięcia.
Gdy przycisnąłeś przycisk ale trzymałeś go mniej niż 70 okresów to zmienna Opoznienie_odczytu dochodziła do powiedzmy 65. Ale po puszczeniu przycisku nie resetowałeś zmiennej. Czyli miała ona dalej 65. I kolejne przyciśnięcie było obsługiwane za 5 cykli, a nie za 70 cykli tak jak chciałeś. Bo zmienna musiała doliczyć do 70 a już miała 65 czyli brakowało...
No właśnie podejrzewałem , to że użyjesz Wait, który tak jakby "zawiesza" procesor na 25 sekund. Najlepiej by było użycie timera do ustalania czasu, ale wiem, że dla początkującego to za trudne. Podpowiem więc inne rozwiązanie: Daj w pętli głównej wait1. Następnie zwiększaj zmienną i napisz warunek kiedy osiągnie ona 25 (if then endif) oraz kolejny...
Brakuje oczekiwania na puszczenie przycisku wyzwalania. W takim przypadku będziesz musiał uważać aby przycisk trzymać krócej niż 300ms, inaczej wygeneruje są kolejny impuls
Nie wiem czy wyjdzie to jako kolejny post lub dodany po czasie :D ..., ale po pierwsze chciałbym byś nie myślał że moje uwagi są złośliwe. Po prostu zapytań o różne aspekty programowania w Bascom jest tak wiele że lepiej jest odpowiedzieć na ogólnodostępnym forum niż musieć sie powtarzać. Jest szansa że jeszcze ktoś to przeczyta :D Zamiast za każdym...
Zaproponowane zmiany nic nie zmieniły. Jak była obsługa 12bitów to procesor i tak rozpoznawał jaka to ramka za pomocą długości bitu startowego i dalej już "nie obsługiwał" części odpowiedzialnej za tą ramkę 12bit. Sprawdziłem i odbiera normalnie zawsze pierwszą ramkę, załączam ekrany oscyloskopu, drugi kanał jest wyzwalany flagą po odebranej ramce...
Witam. Program według mnie jest przejrzysty. Po wejściu do podprogramu pierwsze If... sprawdzi jeszcze raz czy jest wciśnięty przycisk K1 wygeneruje impuls i wejdzie w pętlę Do... Loop o ile w dalszym ciągu jest wciśnięty przycisk. Jeżeli nie to wygeneruje jescze raz impuls jeszcze raz i wyjdzie z podprogramu. Ja również tego nie sprawdzałem, ale powinno...
Sprawdziłem ten kod przed chwilą i jeśli na PD6 jest przycisk.. to jego kolejne naciskanie włącza lub wyłacza naprzemiennie diode LED na pinie PORTD.7 100% tested [syntax=vbnet]$regfile = "m644pdef.dat" $crystal = 8000000 $hwstack = 40 $swstack = 16 $framesize = 32 Pcmsk3 = &B01000000 Enable Pcint3 : On Pcint3 Pcint3_isr Config Portd.6 = Input : Set...
Lub zamiast tak: if pind.0=0 then call inny podprogram end if możesz tak: if pind.0=0 then exit sub i wtedy automatycznie procedura zostanie zakończona, program powróci do pętli głównej gdzie masz detekcję klawiszy i na podstawie tego który będzie naciśnięty klawisz wykona się wywołanie kolejnej procedury.
Wielkie dzięki e marcus, naprawdę mi pomogłeś. Mój program jest już niemalże na ukończeniu jednakże mam jeszcze jeden kłopot... Trudno tu "zgadnąc" przyczynę nie widząc całego programu. Wielokrotne zaliczenie akcji przycisku może byc w pierwszym rzędzie spowodowane fenomenem "Switch bounce". Zapobieganie temu zjawisku zwane jest 'DEBOUNCE'. Patrz odpowiednia...
Banalne zadanie. A więc włączasz licznik(lepiej TIMER1-większa pojemność), tak, aby odliczał ci te 10sekund. Dajesz zmienną którą zwiększasz np co 1sekunde (zmienna o nazwie sekundy). W czasie odliczania do 10s w pętli głównej zliczasz impulsy przycisku i zwiększasz je w innej zmiennej (np. impulsy). Po 10 sekundach w zmiennej sekundy będzie10s a w...
Wycięte z większego programu ale widać cała pętle i ideę menu, obsługi ekranu głównego i nawet kolejnych poziomów (podmenu). Skok do odczytu klawiszy jest raz na pętle niezależnie w której części menu znajdujemy się. Zmienna Marker jest znacznikiem określający położenie aktualnie wyświetlanej zawartości ekranu. Menu to zamienna odpowiadająca ilości...
elektryk: chyba nie masz "dejavu", no chyba ze ja tez mam :) polecam uzywac przycisku "szukaj"
Tego typu pytania - niezbyt odpowiadają gustom forumowiczów :-) Ale możesz zwiększyć swoją szansę na otrzymanie wskazówek, dokładniej precyzując problem. Kilka rzeczy, które należałoby jeszcze podać: - jaki to konkretnie procesor / jaka płyta uruchomieniowa - jak podłączony jest do tego wyświetlacz, ile pozycji ma wyświetlacz (ile cyfr mieści) - zdefiniować...
1.STFW.... 2.RTFM [kolejny bascomowiec] 3.Naprawde, bascom nie zastępuje programisty do tego stopnia, zeby miał zaimplementowaną obsługe CZTEROCYFROWEGO WYSWIETLACZA LED!... Wniosek: Uzyj multipleksowania, a jesli nie wiesz co to jest, zastosuj sie do punktu pierwszego. 4.Jak wyeliminować to ze "tak jakbys nacisnął dwa razy": to sie nazywa drganie styków....
LED5W - ciekawe podejście do kwestii menu. Ja zwykle CASEm robiłem płaskie, przechodzenie jednym przyciskiem a wartości (zwiększ, zmniejsz) ustalałem kolejnymi dwoma. Może pokusić się o napisanie uniwersalnego menu dwu lub trzy przyciskowego?
Trochę niejasno piszesz. Po wciśnięciu przycisku ma się wykonać te trzy linie i co dalej?? Czy póki trzymasz cały czas ma bć jeszcze PWM1a=500 aż do momentu puszczenia przycisku ? Jeśli tak to wystarczy na końcu tego co podałeś badać puszczenie guzika i po jego puszczeniu kolejna linia to wyzerowanie PWM.
Znajomy kod :) Ad.1 Zrób po prostu podprogram, do którego się wskoczy po wciśnięciu przycisku gdzie wszystkie porty ustawiane są przez SET a gaszone przez RESET. To czy ma zgasić czy zapalić ustal w dodatkowej zmiennej bitowej "togglowanej" wspomnianym przyciskiem. Ad.2 Oczywiście - timer programowy... Ad.3 A czy przypadkiem w oryginalnym programie...
Bo musisz jeszcze zrobić blokadę żeby reagowało dopiero na kolejne wciśnięcie. Czyli inaczej na zbocze a nie na stan.
Ten przykład działa, ale tylko dla jednego "przełącznika" ale gdy robie np dwa kolejne to już coś jest źle. Buduje urządzonko, które będzie załączać 3 przekaźniki: - 3 przyciski (portd.4, portd.5, portd.6) - 3 przekaźniki (portd.1, portd.2, portd.3) Jak to można zrobić w BASCOMie?? Kod dla w/w konfiguracji: Config Debounce = 30 Config Portd = Output...
tylko trzeba znać choć odrobinę podstaw programowania w C Są też inne możliwości jak asembler czy bascom. Taką funkcjonalność pociągnąłby nawet 10F200 z 256B pamięci programu i 16B ramu.
Pytana do układu: 1. P1 i P2 podciągnięte do plusa za pomocą rezystorów? Bo w programie nie masz "włączonego" wewnętrznego podciągnięcia? Jeden z twoich problemów to: Po naciśnięciu guzika zmniejszającego wartość spada ale dzieje się to bardzo powoli tak jak by układ się przycinał na czas odczytu temp. nie dziw się ponieważ w funkcji Odczyt_t podczas...
Kol. Saabotaz Twój program zaskoczył od razu co mnie bardzo ucieszyło. Bascom 1.11.9.5 kompiluje go i zajmuje 7% w pamięci przy 3 przyciskach, ale stany na wyjściach zmieniane są dopiero po puszczeniu przycisku :( Kol. SylwekK Juz kiedyś wykorzystałem Twój kod i nie miałem z nim problemu aż do momentu kiedy przyszło mi obsługiwać więcej przycisków i...
Znowu wielkie dzięki przy okazji rozwiązałeś mój kolejny problem z powrotem zawsze do tego samego wejścia po wyłączeniu i ponownym włączeniu.
No po przecinku... E0 to kod oznaczający grupę przycisków lub jakąś funkcję (w tej chwili nie mam czasu sprawdzić), czyli Ciebie interesuje kolejna wartość po przecinku.
flaga to zmienna bitowa. pseudokod: przerwanie co 50ms: if P1 =1 if flaga_P1 =1 start silnik zacznij odliczanie 20sek else flaga_P1=1 else flaga_P1 = 0 kolejny sygnal...........
Rozumiem że reszta programu jest według mojego toku myślenia. Druga pętla jest częścią podprogramu Obs_s1 - czy tak? Czy takich podprogramów z pętlami można pisać większą ilość? Tzn. Czy można napisać podobny podprogram dla drugiego guzika s2 i sterować kolejnymi dwoma diodami?
hmm. No właśnie tego rozwiązania chciałem uniknąć, też na to wpadłem ale sieć chciał bym by miała potencjał do przyjęcia choć 20 slave-ów na przyszłość a to już 5 pinów i grubszy kabel. Możesz użyć multipleksowania, lub rejestru równoległo-szeregowego - np. na I2C - masz 8 wejść, a tylko dwoma pinami łączysz z MCU. Można też kodować analogowo - np....
Jeżeli ktoś ma programik czy sampla w Bascom , lub pomysł , na programik sumujący czas kolejnych naciśnięć przycisku. Po osiągnięciu 3 minut łącznego czasu przyciśnięć włączenie sygnału dźwiękowego i jednocześnie zliczanie od zera czasu następnych przyciśnięć. Długo szukam ale czegoś podobnego nie mogę znalęźć , a moja znajomść Bascomu, nie pozwala...
No właśnie nie widzę w helpie , trzeba podawać te adresy czy można zostawić bez i wtedy załaduje kolejne wolne ? Coś z tym Tiny 13 było inaczej .
Diody migają po dwa razy, kolejne dwa razy zawsze po naciśnięciu przycisku, tak w kółko. Jak nie naciskam to nic się nie dzieje.
dobre ;) tylko ja to zrobie tak że wciśnięty przycisk to 1. I właśnie w tym miejscu mam kolejne pytanie. Jaka jest różnica między przyciskami "podającymi" stan wysoki i niski? Widze że większość "podłącza" pin pod masę aby wysterować uC, dlaczego?
Deklarujesz zmienną do liczenia czasu po wciśnięciu przycisku. Gdy puścisz przycisk, określona wartość wykonuje GOSUB do wykonania zadania(LCD czy sterowanie portami) i zeruje zmienną. Kolejne naciśnięcie przycisku zaczyna liczenie od początku i czeka na puszczenie przycisku. Możesz też wykorzystać TIMER do liczenia czasu.
Obawiam sie ze dioda może niezaświecić na tym schemaciku albo bedzie świecic bardzo słabo - trzeba dolozyc tam rezystoro okolo 300ohm a nie jeden kilo. co do aplikacji przycisku to bym jednak proponowal instukcje DEBOUNCE Px.y , state , label [ , SUB] gdzie kolejno wskazujemy obslugiwany port czy ma reagowac na 1,0 i procedurke do wykonania
Ja bym tu dał Debounce , bo tak to nie wiadomo czy to drgają naduszane styki, czy to już kolejne naduszenie. I dalej, niech się zmienna powiększa za każdym naduszeniem. Poco przerwania?
Potrzebuje pomocy! Wszystko działa jak nalezy w bascomie z wyjatkiem funkcji getrc5.Kupowalem juz kilka nowych ukladow (sfh506) i wciaz to samo!Uzywajac tylko jednego przycisku pilota(onkyo) mam za kazdym kolejnym nacisnieciem inna komende i inny adres.Z gory dzieki!/smalski
Jest to przełącznik pierścieniowy, jest jeden przycisk (portb.3) i zwierając go pojawiają się stany wysokie kolejno na wyjściach, po włączeniu zasilania pojawia się stan wysoki na portb.0, po wciśnięciu przycisku, stan wysoki na portb.1 po kolejnym wciśnięciu, stan wysoki na portb.2 i tak w kółko
' Trzy przyciski kolejno .... (TSA ;) ' wersja bez przerwań i Timera czas_a as integer ' zmienna czasowa A czas_b as integer czas_c as integer we_a alias pinx.1 ' wejście A we_b alias pinx.2 we_c alias pinx.3 wy_a alias Py.1 ' wyjście A wy_b alias Py.2 wy_c alias Py.3 stan_a as bit ' stan układu monostabilnego A: 0 - czeka, 1- liczy stan_b...
Przecież tyle na elektrodzie jest przykładów jak to zgrabnie robić w Bascomie. Ale przynajmniej kolega widać że się męczy sam a nie na gotowca poluje. Więc ok, ja to robię np tak: Inicjalizacja obsługi RC5 Config Rc5 = Pind.3 Dim Address As Byte , Command As Byte Dim Ir_flag As Byte Ir_flag = 0 On Int1 Int1_rc5 Config Int1 = Low Level Enable Int1 Obsługa...
Witam! Po pierwsze to z reguły przyciski powinny zwierać piny wejściowe do masy a nie do zasilania. Wynika to z faktu posiadania przez procesory AVR wewnętrznych rezystorów pull-up podciągających wejścia do +vcc, czyli panuje na nich stale stan wysoki (oczywiście gdy zostaną uaktywnione). Po drugie to akurat sygnał CLK ma się zmieniać, podczas narastającego...
U mnie działa na 100%. Czy sprawdzasz na oryginalnym pilocie z kodem RC-5 ?. Pytam dlatego, ponieważ pisałeś o wykonaniu własnego pilota. Rozumiem, iż w odbiorniku masz zewnętrzny kwarc 8MHz. Waitms ustawiłem na 200ms po to aby można było dokładniej odczytać kod. Przed naciśnięciem kolejnego przycisku musisz odczekać aż pojawi się napis "Oczekiwanie...
Dane do migania powinny być zapisane w DATA. W pętli głównej robisz tylko RESTORE do właściwego efektu w liniach DATA i potem komendą READ czytasz kolejne bajty efektu. Używasz timera to wyznaczenia przerw oczekiwania do wyświetlenia kolejnego bajtu efektu. W tym czasie pętla główna DO-LOOP wykonuje się z pełną szybkością i nasłuchuje przycisków. Program...
Szybko zajrzałem do noty PCF8583 i tam jest napisane, ze kiedy nie używasz funkcji alarmu to stan na pinie INT zmienia się na przeciwny co 500ms. Tak wiec impuls jest na tyle długi ze spokojnie można go traktować jak zwykły przycisk naciskany co sekundę. [syntax=vbnet]$regfile = "m32def.dat" $Crystal=8000000 $hwstack = 64 $swstack=32 $framesize = 128...
To nie jest jeszcze to co oczekuje, mianowicie: Są 3 tryby pracy: -Wyświetlanie temperatury (główny) - Po jednym naciśnięciu przycisku przechodzi do wyświetlania temp max i min i czeka na kolejne instrukcje - a jeżeli ten sam przycisk jest naciśnięty dłużej (np. 3sekundy) to przechodzi do resetowania wartości max i min i wraca do wyświetlania temperatury.
Witam!! Można prosić o sprawdzenie poprawności kodu. Czy jest dobrze ( logicznie napisany). If Pina.6 = 0 Then ' Wyłączenie/włączenie wyświetlacza lcd Waitms 100 Toggle Portd.4 End If If Portd.4 = 0 Then Pwm1b = 0 Else Pwm1b = Zmienna(33) End If Założenie jest takie że po naciśnięciu przycisku pwm ma wartość 0 a po kolejnym odczytuje wartość...
bascom jednym przyciskiem sterowanie jednym przyciskiem bascom włącz wyłącz jednym przyciskiem bascom
zmywarka mrugać dioda renault megane wchodzić obrót astra kostka stacyjki
sterownik webasto zwijacz zelmer
Alstom RTX 133 – wartość rezystora R1 w przekaźniku czasowym, warianty napięciowe RTX-133 230V Schneider – wartość rezystora R1, typ, zamienniki, objawy uszkodzenia