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...
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...
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...
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
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...
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.
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...
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...
Witam Komunikuję się z układem PCF8574 po I2C i potrzebuję zrobić coś takiego: Piny P0, P1, P2, P3 mają być jako wejścia i po naciśnięciu przycisku mają wczytać jakąś wartość do zmiennej. Natomiast pozostałe 4 piny, czyli P4, P5, P6, P7 mają pracować jako wyjścia. Chciałbym, żeby po wpisaniu jakiejś wartości do kolejnej zmiennej, zapaliła mi się dioda...
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...
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ść...
Wcześniej wspomniałem o AT89C4051 ponieważ używam go do odczytu napięć z 28 przycisków (każdy innej wartości) i DEBOUNCE tutaj nie ma zastosowania. Wszystko byłoby super, gdyby nie było konieczności stałego odczytu pozostałych wartości przycisków, a wtym przypadku procek zostaje zajety wyłącznie sprawdzaniem stanu styku. Pokombinuje wsadzić tą procedurkę...
http://obrazki.elektroda.pl/5462459700_1... Witam Chciałbym zaprezentować mój projekt zdalnego sterowania pilotem RTV z funkcją uczenia się kodu przycisku. Układ powstał na potrzebę sterowania oświetleniem diodowym pod półką w pokoju. Układ powstał na bazie procesora ATMEGA8 taktowanego zegarem wewnętrznym 8MHz. Program napisany w BASCOM...
Witam, zlecę napisanie programu w środowisku BASCOM-AVR. Dodam iż jak można się domyślić, zastosowanie jest amatorskie (hobbystyczne). Program jest prosty na atmege 8 Program działał by tak : Włączono zasilanie , czekaj na impuls stan wysoki (przycisk) po naciśnięciu przycisku program podaje sygnał wysoki (powiedzmy na tranzystor) w określonym czasie...
Teraz z innej beczki: Jest sobie program, gdzie po każdorazowym naciśnięciu przycisku program skacze do kolejnych CASE i wszystko działa, ale... Po załączeniu zasilania nie dzieje się nic, bo program czeka na pierwsze naciśnięcie guzika, a ja potrzebuję, żeby ruszył od razu np CASE1
Napisz nam dokładnie - co ten program ma robić, bo na razie to mamy o tym mroczne pojęcie. Chcesz wprowadzać jakąś liczbę kolejno przyciskami do zmiennej ? I dodatkowo chcesz, aby się wyświetlała w kolejnych pozycjach na wyświetlaczu? Od tego są przyciski 0..9, a do czego ma służyć przycisk Gene? Jeśli tego nie wyjaśnisz - będziemy krążyć dookoła tematu...
Ok pomijając programator. Program działa prawidłowo bez instrukcji lookup. Ale składnia jest prawidłowa - wartości do przepisania też. Jeżeli istnieją wątpliwości do instrukcji 'lookup', to dla testu podmień ją kolejnymi wpisami: PORTB = 192 waitms 500 PORTB = 249 waitms 500 '......... i tak dalej '.......... PORTB = 144 ' az do wyczerpania całej tabeli...
Dobra sam jestem ciekaw czy to w ogóle ruszy?? Proszę przestrzegać zasad. http://www.elektroda.pl/rtvforum/viewtop... (joy_pl) UWAGI !!. W symulacji to trochę głupiało, ale na logikę powinno działać. najpierw trzeba sprawdzić czy dioda IR nie świeci jak nie jest naciśnięty żadny przycisk. Najlepiej komórką z aparatem fotograficznym....
http://obrazki.elektroda.pl/8074733100_1... Witam, Ostatnio wpadła mi w ręce karta VGA sterowana poprzez złącze szeregowe SPI. A a ponieważ w domu poniewiera się kilka starych monitorów VGA to postanowiłem zbudować zegar wyświetlający czas i datę na monitorze VGA (bez udziału PC) Takiego zegarka na elektrodzie chyba jeszcze nie było....
zmień sposób wykrywania stanu z wysokiego na niski , podciągając piny portu przyciski do masy .......... Config Pind.0 = Input Config Pind.1 = Input Portd = &B00000011 If Pind.0 = 0 Then Gosub Menu1 End if ...........
Witam, mam pewien problem z operacją w BASCOM'ie 8051. Od razu mówię, że przeglądałem Help, ale tam nie mogłem się za bardzo połapać. Chodzi o to, żeby prgram robił kolejno następujące rzeczy: 1. Wyświetlał napisy początkowe (ok). 2. Oczekiwał na wciśnięcie przycisku. Nie potrafie sobie poradzić z tym oczekiwaniem. Dokładnie to chodzi o to, żeby program...
Witam. Przyciski tak reagują bo stan zmiennej Pomoc zmienia się za każdym razem wywołania przerwania (co 4ms) i to nie zależnie od stanu wciśnięcia przycisku. A jej stan powinien się zmienić tylko po wciśnięciu przycisku i to jednorazowo. Dopiero puszczenie przycisku powinno pozwolić na kolejną zmianę stanu zmiennej Pomoc. Ja bym w ogóle nie dawał tej...
Witam.. Mam nastepujacy problem.... Napisalem program w BASCOM do obslugi 3 przyciskow podlaczonych do kolejno p3.0,p3.1,p3.5... przyciski obsluguje za pomoca komendy DEBOUNCE reagujacej na stan niski... Po kazdym nacisnieciu przycisku program czysci wyswietlacz LCD i ustawia zdefiniowany symbol w innym miejscu(odpowiedzio dla dwoch skrajnych przyciskow,...
Więc tak: Naciskam przycisk PIND.0 i zapalają mi się diody kolejno od 1-8 diód i kolejno gasną. Potencjometr ma być do tego że ustawiam sobie czas świecenia wszystkich dód, a momentem gaszenia. Udało mi się po części zrobić tak tyle żę potencjometr działa tylko w 50%
Witam mam problem dotyczacy napisania programu. Otóz chodzi mi o program który po nacisnieciu jednego przycisku wlacza zapalanie pokolei portow od 1.7 do 1.0 a drugi klawisz np. od 1.0 do 1.7 lub inna kombinacje Prosze o POMOC!! Z góry dzieki!! Pozdrawiam Czy nie możesz założyć sobie jednego tematu , w którym co tydzień będziesz pytać jak pisać kolejne...
Jak napisać pogram dla ATMEGA8 który po pierwszym naciśnięciu ustawiał by wszystkie porty na wejścia a po kolejnym na wyjścia? Czy może to być tak (przycisk podpięty do gnd i Port C1): $regfile "m8def.dat" $crystal = 8000000 Do If Pinc.1 = 0 Then Config Portb = &B11111111 End If If Pinc.1 = 0 Then Config Portb = &B00000000 End If Loop
http://obrazki.elektroda.pl/1481315600_1... Witam. Założenia zasilania : 1. Silniki do rolet oryginalne z własnymi wyłącznikami krańcowymi. 2. W każdym pokoju niestabilny przycisk do sterowania lokalnego + przycisk przy drzwiach wyjściowych. 3. Całość zabudowana we wnęce wykonanej w ścianie - na zewnątrz widać tylko wyświetlacz i trzy...
Do sterowania użyjmy portu B. Przycisk do zmiany efektów to pin D.2, będzie działać na przerwaniu. Potencjometr to pin C.0, przetwornik. No to prawie że gotowiec: $regfile = "m8def.dat" $crystal = 8000000 Config Portb = Output 'Wszystkie linie portu D jako wyjściowe Dim Opoznienie As Word 'opóźnienie między przełączeniami, liczba do 65535...
W jaki sposób można zmodyfikować ten projekt, by płynnie regulować prędkością obrotów silnika na 12V ? Innymi słowy po naciśnięciu przycisku w pilocie, silnik włącza się na minimalnych obrotach i pozostaje w tym stanie mimo zwolnienia przycisku w pilocie, kolejne wciśnięcie przycisku zwiększa obroty, przycisk przeciwstawny zmniejsza obroty, zmienia...
Ten if załatwia sprawę naciśnięcia dłuższego niż 3s. Oczywiście po 2,5 minuty trzymania przycisku licznik się przekręci ale to już olewam :-) Do do kolejnego wywołania INT to masz rację, ustawi się w kolejce i znów wykona. Mogę dodać czyszczenie flagi INT po bitwait. Albo tak jak teraz - olać to. Kolejne przerwanie wskoczy tylko na 100ms (1 cykl do-loop...
Witam Robie pierwsze kroki w programowaniu w języku bascom. Stanąłem przed problemem zdefiniowania w tym języku pewnych warunkowych komend dla procka atmega8. Jeśli ktoś może mnie nakierować to z góry dziękuję. O to moje problemy: 1. Konkretnie chodzi o to by układ reagował np poprzez zapalenie diody led w chwili gdy przycisk podłączony do tego układu...
Mam problem z komunikacją 89C4051 <-> RS232. Pop podłączeniu Atmelka do PC-towego RS232 i odpaleniu jakiegokolwiek emulatora terminala zamiast czytelnego tekstu pojawiają się jakieś "ciapki". Zmiana ustawień sterowania przepływem nie odnosi żadnego skutku, inwersja linii też, nie wiem co jest. Nie sprawdzałem jak się sprawa ma jeśli połącze Atmela...
Tak co jeden cykl. Prescale jest 64 wiec nie tu chyba problem. Nic sie nie dzieje na wyswietlaczu a w symulatorze tez nie pokazuje zmian zmiennych. To nie jest jeden cykl, ani też 64 jakby wynikało z podziału prescalera. Wszystko można odczytac w symulatorze, tylko musisz potrafic posługiwac się jego ustawieniami i funkcjami. Poniżej masz przykład...
witajcie mam kolejny problem musze na jutro napisac program do atmegi 8 zeby po nacisnieciu 1 przycisku zmienial sekwencję zapalania ośmiu diod led a po nacisnieciu 2 przycisku uruchamiał stroboskop na ok 5 sekund, oraz na wyswietlaczach siedmiosegmentowych wyświetlał dowolne cyfry llub numer zapalonej sekwencji sterowania diodami bardzo prosze o szybkie...
Witam ;) nie mam jeszcze programatora i procka (spodziewam sie go w tym tyg) jednak zacząłem czytać poradniki programowania w BASCOM`ie i napisałem swój pierwszy w zyciu program i chciałbym prosić o jego sprawdzenie czy to wgl ma jakiś sens xD [syntax=basic4gl] $regfile = "m8def.dat" 'typ procesora (ATmega8) $crystal = 1000000 'taktowanie procesora...
Tego się tak nie robi. Uruchom przerwanie timera. Zapisz wartości strowania portów dla kolejnych kroków w tablicy stałych. W przerwaniu timera testuj przycisk, a co pewną liczbę przerwań wyrzucaj na porty kolejną wartość z tablicy.Przy takim podejściu cały kod zmieści się w kilkunastu liniach, może dwudziestu paru, a jego długość nie będzie zależała...
Witam. Jestem poczatkujacy w zwiazku z czym prosba. Mam prosbe odnosnie napisania programu pod ATMELA np. 89C52, gdyz taki posiadam obecnie. Zalozenia: -Dwa przyciski ( S1 i S2) -12 diod -Porty dowolne -Po przycisnieciu niech nie wykonuje kolejnej czynnosci, dopiero po zwolnieniu przycisku i ponownym kliknieciu Program mialby dzialac nastepujaco: -Kazde...
Mój problem przedstawia się następująco: używam 4 przycisków, po wciśnięciu pierwszych trzech wykonuje się podprogram, natomiast po wciśnięciu czwartego przycisku wykonuje się podprogram, a po 5 min kolejny podprogram, tylko że nie wiem jak zrealizować to 5 minutowe opóźnienie. Tymczasowo dałem funkcję "wait", no ale ona blokuje mikrokontroler i w tym...
To ją usuń ;) Hahaha :D Lock blokuje zwiększanie licznika do czasu puszczenia przycisku. Pętla wykonuje się szybko i nawet jeśli sprawdzałbyś przyciski co 10ms to chwilowe naciśnięcie przycisku mogłoby załadować wartościami jednego przycisku kilka bajtów :D ..a tak, jedno naciśnięcie, jedna wartość w kolejnym bajcie. [url=http://bart-projects.cba.pl/rozne.h...
Prawie cały kod jest źle napisany. Powinieneś odczytać kod z pilota lub przycisk i wtedy skoczyć do menu. Gdy jesteś w menu program czeka na naciśnięcie kolejnego przycisku lub kodu RC5, w tym czasie licznik powinien liczyć czas w razie gdy nie nacisnął byś żadnego z przycisków, by mógł wrócić do podstawowej funkcji. Gdy wybierzesz przycisk lub kod...
Projekt był mi już wcześniej znany i kolejny raz chylę czoła przed kolegą manekinen za kolejny dopracowany i przydatny projekt. Wielki + za całokształt. Dzięki, pamiętaj że jak będziesz miał trochę wolnego to daj znać i poleci płyteczka ;) Do autora. Całość w Bascomie? Nie planujesz zapewne przesiadki na C w przyszłości? Tak, bascom. Na C nie planuje...
Witam! Czy mógłby mi ktoś opisać jak obsłużyć w BASCOMie klawiaturę podłączoną pod ADC? Dokładnie wygląda to tak, że mam w samochodzie kierownicę wielofunkcyjną z czterema przyciskami. Z klawiatury wychodzą dwa przewody na których po naciśnieciu kolejnych przycisków pojawiają się opory: 0, 80, 190, 40Ohm (okolo) Podłączyłbym tą klawiaturę do przetowrnika...
Ok rozwiązałem i waitms jako tako działa :) Czy procesor wysyłając Wpis = &B1100100111000101 wysyła go kolejno 1 , 1,0,0.. czyli od lewej do prawej czy od prawej do lewej czyli 1,0,1,0... ? Prosił bym też o sprawdzenie poprawności wysyłania wartości częstotliwości bo mi coś nie działa i nie wiem za bardzo jak to sprawdzić Program po przyciśnięciu przycisku...
To DEGBUG FILE miałem zaznaczone i to drugie także jak klikne żeby kompilowało to sie nic nie dzieje . Ten błąd wyskakuje gdy chce dokonać symulacji . W zakładce Simulator zauważyłem ze nie ma programu do symulacji a na dole jest jeszcze Parametr i tam jest półprzezroczysty napis {file}.OBJ i to chyba o to mu chodzi że nie chce symulować . Trzeba tam...
Tak nie będzie działać. Sprobuj poniższego kodu: do If Adress = 10 and Comand = 1 Then I=1' zaczynamy od 1 bajtu Do Readeeprom C , I Waitus 50 Print C incr I loop untill I=84' petla az do 84 bajtu End If If Adress = 10 and Comand = 1 Then I=85' zaczynamy od 85 bajtu Do Readeeprom C , I Waitus 50 Print C incr I loop untill I=169' petla az do 169 bajtu...
na tak nie wziolem pod uwage ze dopuki bedzie nacisniety przycisk program bedzie lecial caly czas w tej chwili widze dwa rozwiazania , dopisac kolejne polecenie while które czeka na puszczenie przycisku [syntax=basic4gl]while porta.1=1 reset portb.1 ; zgaszenie diody 1 set portb.2 ; zapalenie diody2 while porta.1=0[/syntax] itd lub zrobic to mimo wszystko...
Witam mam programik napisany w bascom ale mam mały problem mianowicie gdy wcisnę przycisk to led swieci a chodzi mi o to aby świeciła 2 sec a potem dalej szedł program bez względu czy przycisk wciśnięty czy nie, a jeżeli go puszcze i wcisne raz kolejny znowu sie zatrzyma itd... $regfile = "attiny2313.dat" $crystal = 4000000 Config Portb = Input Portb.0...
Nie będę tłumaczył linijka po linijce to bo to bez sensu. Po co miałem definiować S1 jak o Port? Jak wciśniesz Down to sprawdza czy S1 = 0. S1 będzie równe 0 gdy przycisk wcześniej nie był wciśnięty. Jak nie był wciśnięty to zaznacza że już jest wciśnięty (S1 = 1) i zwiększa zmienną X. Przy kolejnym sprawdzaniu stanu przycisku dojdzie do wniosku że...
W końcu udało mi się pojąć ten program i mniej więcej przerwania, ale nastało kolejne pytanie z mojej strony. W jaki sposób mogę obliczyć wartość timera, żeby mógł odliczyć np 0,5 sek lub 2 sek. Chodzi mi na razie o Timer0 8 bitów. W jaki sposób mogę też liczyć przepełnienia?
Mam takie pytanie do mądrzejszych od siebie, czy jest możliwe żeby wysterować tym mikrokontrolerem 5 do 6 silników prądu stałego? Oczywiście, że możesz obsłużyć 5, a nawet 6 silników. Tylko jest jeden problem. Będziesz musiał je sterować programowym PWM'em, a nie sprzętowym. Do tego celu wystarczy np. przerwanie, z któregoś licznika. Oczywiście możesz...
Tak, na schemacie przyciski są błędnie podłączenie do tego mikrokontrolera. Gdy podłączysz przyciski do GND należy dodatkowo włączyć programowo rezystory pull-up na tych pinach. Jedyne czego brakuje w schemacie to 2 rezystorów polaryzujących wyprowadzenia Pb0 i pb1 do masy wystarczy 2 rezystory 4k7 i program będzie pracował . Poza tym do programu który...
Dziękuje za program. a funkcja do przycisków nie jest aż taka trudna ;) Tylko teraz mi się coś stało i nie moge programować nie wiem czemu nic nie zmieniałem w ustawieniach itp a bascom nie rozpoznaje procka. A jak bym chciał zrobić zmiene efektu to kolejny efekt musi być w osobnej pętli ? jak zrobić do niej odnośnik?
witam chciałbym zaprogramować tak attiny 2313 ze jak sie raz nacisnę przycisk dioda np na (PORTD.0) zacznie świecić a gdy drugi raz sie go nacisnę zacznie mrugać a gdy trzeci to kolejna funkcje zacznie wykonywać czy jest to możliwe ?? Bardzo proszę o jakieś przykłady Dodano po 9 oczywiście w bascomie Przeniosłem z "Programowanie ogólne"
Są przynajmniej dwie możliwości: Jest sobie początek programu dajesz przed "Do" program=2. Jesteś w menu głównym, wciskasz jakiś klawisz program skacze pod odpowiednia etykietę (S, M, P) dokonuje filtracji na podstawie programu w jakim jest i położenia kursora i modyfikuje zmienna program na 1. W ustawieniach: 1.Gdy dojdzie do sekund kolejne wciśniecie...
Na tej stronie http://bart-projects.cba.pl/rozne.html znajdziesz ten kod ("Przyciski trochę inne"). Napisałem go jakieś dwa lata temu i może teraz napisałbym inaczej, ale tak, czy inaczej program potrafi rozróżnić długie i krótkie wciśnięcie. Przy krótkim odwraca stan podległego mu pinu, przy długim może robić coś innego (w prototypie wysyłał po RS485...
witam, mam wielką prośbę o pomoc w rozpracowaniu tego kodu. mam do szkoły zrobić reg. z regulacją PID. Mam pytanie, czy tutaj zamieszczony kod realizuje sterowanie PID?? Kolejne pytanie to opis pinów, a więc PD1 służy do obsługi czujnika 18B20,PD5-PD7 to przyciski, PC1 to RS wyświetlacza, PC0 to E wyśw, PB5 do DB4 itd, która z nóżek więc obsługuje to...
Wszytsko wrzuce w poniedziałek po południu bo nie mam dostępu teraz do niego. Ogólnie przerwanie działa ale też nie do końca, bo jak jedno się wykona i stoi na wait'cie w pętli głównej to już na kolejne, nie reaguje Obsługa przycisku w przerwaniu jest niezbyt wskazana. Owszem przycisk uruchomi przerwanie ale do tego należy również doliczyć drgania styków....
Da się to odchudzić, oczywiście To samo z większą ilością układów, albo dane można wysyłać po rs232 do pc, albo dać po 6 układach przycisk next wyswietlajjący kolejne 6 układów i tak dalej... Co do nazw to nie da się, chyba że przepiszesz setki danych z kart i obsłużysz jakoś rozpoznawanie układów o takich samych adresach, np at24cxx i pcf8583 lub 8563
Witam wszystkich na forum, jestem nowym użytkownikiem i zaczynam zabawę z mikrokontrolerami. Udało mi się już kilka razy zaprogramować prostymi programikami atmega8, jednak nie wiem dlaczego jeden z programów nie działa tak jak powinien. $regfile = "m8def.dat" $crystal = 1000000 Config Portb = &B11111111 Portb = &B11111111 Config Portd = &B1111100...
Witam. Wiem, że podobne problemy był już wałkowane milion razy lecz nie mogę sam sobie z tym poradzić. Do rzeczy: Chcę aby po przyciśnięciu przycisku dioda zapaliła się po pewnym czasie na krótką chwilę. Chcę to wykonać na przerwaniu, zależy mi na precyzyjnie odmierzonym czasie od momentu naciśnięcia przycisku do zapalenia się diody. Czas palenia się...
bascom jednym przyciskiem sterowanie jednym przyciskiem bascom włącz wyłącz jednym przyciskiem bascom
przeróbka mocowania alternatora golarka philips akumulator gotowe projekty subwoofer aktywny
Zamienniki triaka BCR10KM: BTA10-600CRG, BT139-600E i inne IT8299E120A - Kontroler Super I/O ITE Tech