wykluczyc drgania mozesz za pomoca funkcji debounce, albo tak: if s1=0 then 'przycisk jest wcisniety waitms 45 ' czekaj az mina drgania if s1=0 then ' gdy przycisk jest nadal wcisniety to zrob: end if end if Pokaz (najlepiej na schemacie) lub wyltumacz jak masz podlaczony przycisk do procesora. Poza tym wytlumacz mi, co dokladnie ma robic twoj kod...
A Twój program nie chce działać? Jaki jest problem. To co w programie masz nieprawidłowo to odczyt stanu przycisku. Procedura odczytu przycisku powinna przewidywać takie sytuacje jak drgania styków lub przypadkowe zakłócenia na linii przycisku. Jedną z możliwość odczytu przycisku jest: [syntax=basic4gl]If Wejscie = 0 Then Waitms 100 If Wejscie = 0 Then...
Odpowiedzią na twoje kłopoty jest instrukcja DEBOUNCE, gdyż: 1. Potrafi wywoływać podprogramy przy dowolnym stanie linii portu, 2. Przycisk raz naciśnięty i puszczony wywołuje podprogram tylko jednorazowo, 3. Filtruje drgania styków przycisków które potrafią narobić niełego bigosu początkującym, 4. Jest elegancka, pewna i uszyta "na miarę". PS. Atmega...
Diodę gaś tak jak ją zapalasz. [syntax=basic4gl]$regfile = "m8def.dat" $crystal = 1000000 Config Portb.0 = Input Config Portb.1 = Input Config Portd.5 = Output Przycisk1 Alias Pinb.0 Dioda Alias Portd.5 Przycisk2 Alias Pinb.1 PORTB.0 = 1' to jest podciąganie do Vdd - działaj w tym celu na rejestrze 'PORTX lub PORTX.Y PORTB.1 = 1 Reset Dioda Do If Przycisk1...
Witam. W petli glownej programu musisz sobie napiac jakas procedurke wyboru podprogramow. Np mozesz uzyc do tego 3 przyciskow - jeden do zwiekszana zmiennej np wybor , drugi do jej zmniejszania atrzeci przycisk do potwierdzenia "enter" . Nie pamietam juz dokaldnie skladni w Bascomie ale moze to byc np tak: DDRB=&b11111000 // - piny 0 1 i 2 portu...
zapytam z czystej ciekawości. Na jakim interfejsie Miałeś podłączony wyświetlacz ? EBI w trybie 3 portowym + zatrzaski dla LSB i MSB. Dzięki temu przez DMA przesyłane były słowa, które nie wymagały modyfikacji. Nie polecam. W tym przypadku założyciel posta otrzyma jedynie przesuwający się punkt, a nie pełny wykres na wyświetlaczu. Mylisz się, a Kolega...
nie wiem jak w avr ale w 8051 byla funkcja debounce ktora eliminowla problem drgania stykow.
Gdzieś na elektrodzie ktoś już podawał fajny mały i szybki programik w BASCOM do obsługi enkodera, który przede wszystkim był naprawdę odporny na drgania i błędne zliczanie - wiem, bo sam go kiedyś sprawdzałem. Działał dokładniej niż gotowa bascom'owa instrukcja. Program był na tyle prosty, że i na C bez problemu byś go przepisał.
Port a nie ma przerwań, ale jeśli to ma być obsługo przycisku można wykorzystać przerwanie timera co np 50ms. przy 2 wykryciu stanu niskiego wykonujesz odpowiednie działanie. przy 2 bo dzięki temu od razu wyeliminujesz drgania styków.
http://obrazki.elektroda.pl/6844642700_1... Witam wszystkich serdecznie :) Jakiś czas temu luba poprosiła mnie o zrobienie włącznika do światła na pilota bo nie chce jej się wstawać z łóżka by je zgasić - no cóż, pięknym kobietom się nie odmawia :D Po chwili w głowie powstał wstępny projekt i prototyp opierający się na zasilaczu beztransformatorowym...
Wiem o tym, czytałem te wszystkie wywody na temat jaki to Bascom jest plugawy , ... Zastanów się młody człowieku co czytasz i piszesz. ... stąd też przy tym głupieję ( sam fakt, że muszę w tym Bascomie operować jest dość... ). :) ... ale nie mam wyboru - z przyczyn ode mnie niezależnych muszę go jakoś okiełznać... (a przynajmniej w stopniu podstawowym)...
jeszcze raz dzięki, programik już działa - faktycznie, że przerwania bez sensu w takim przypadku - zastosowałem się głównie do rad euromatica o zamianie zmiennej typu byte i jest ok. drgania styku wogóle nie występują. Pozdrawiam Przemo
jak to sa przyciski to beda drgania warto wyelyminowac. Oczywiscie ten program musi byc w petli do loop
Drgania styków i ich eliminacja - poszukaj, poczytaj. Domniemam że impulsy nie pochodzą z innego układu cyfrowego ale z przycisku;-)
Czy na płytce są sprzętowo wyeliminowane drgania styków ? A jak obsługujesz ten enkoder ? Masz jakiś przykładowy kod ?
Ta komenda to Debounce. Eliminuje m.in. drgania styków. alien_audio Co to ma być: set pinb.4
Witam. Jeżeli konfigurujesz pin jako wejście to używaj instrukcji : Config Pinc.0 = Input zamiast : Config Portc.0 = Input Jak wykrywasz zmianę stanu przycisku i wysyłasz dane przez RS to wstaw małe opóźnienie aby uniknąc drgania styków.
no wlasnie a jaka jest komenda :o ktora rozruzni mi zmiane stanu ? .... ja nie wiem jak to zrobic Komenda to komenda, a rozwiązanie problemu to już sztuka korzystania z komend ;) Avatar - zaproponowany listing jest troszkę mało odporny na drgania styków, ale dodanie drugiego warunku sprawdzania stanu po 20ms powinno rozwiązać to niedopatrzenie Pozdrawiam
Skoro w przerwaniu to będziesz musiał zastosować dodatkowy kondensatorek żeby wyeliminować drgania styków. W przerwaniu albo robisz prosty licznik albo zaprzęgasz do tego timer.
Podczas moim przygod z bascom nie musialem dawac zadnych kondensatorow bo Debounce na drodze programowej usuwalo drgania. Teraz chce zrobic to samo. Zrobilem tak ze odczekalem 50 ms, i sprawdzilem czy przycisk jest nadal wcisniety, jednak czasem jak nacisne, przytrzymam i puszcze to dioda tez zmienia stan, mimo ze nie powinna ( przerwanie jest tylko...
jezęli chcesz sprawdzac stan przycisków to lepszym rozwiazaniem jest w bascom instrukcja DEBOUNCE eliminuje ona drgania stykow ...popatrz w Helpie natomiast zastanawiam sie dlaczego zwierasz PIL do 1 a pozostałe do 0??? poza tym na początku programu deklarujes P1=0 jezeli program przechodzi do podprogramu OTW na dole masz deklaracje If Pr = 0 And Pru...
Powoli myślę nad Atmega64 ponieważ cały czas kręcę się w okolicach 95% pamięci Flash. Czy na pewno nie ma innego sposobu? Sposób jest bardzo prosty ... zmień język na C lub assembler. W drugiej kolejności zastanów się nad zewnętrznym flashem, bo jak sądzę tę pamięć zajmują Ci próbki dźwięków, a nie program. Przerwania zarezerwowane. Timery i ADC także?...
Ja zrobiłem coś w rodzaju matrycy. np. 4 przyciski podłączone do 4 linii i przez diody do przerwania. Przerwanie wywoływane jest dowolnym przyciskiem,a w podprogramie sprawdzałem (po pewnym czsie)jaka liczba wychodzi z tych 4 bitów (przycisków). Dzięki temu mogłem zrobić kombinacje naciśnięć kilku przycisków jednocześnie. Opóźnienie odczytu liczby było...
albo rozbij oczekiwanie, wstawiając przy okazji procedurę sprawdzania klawiery, nie musisz zmieniać istniejącej płytki drukowanej (jeśli jest :) )i przy okazji pozbywasz się problemu drgania styków cum bajszpil: dim D as byte, dim U as byte D = 10 ' czekamy 200ms for U = 0 to D waitms 20 if <przycisk + wciśnięty> then incr D enidif if <przycisk...
Witam, Po długiej przerwie wracam do tematu programowania i obsługi MPU6050 Układ, który zbudowałem i zaprogramowałem przy waszej pomocy działa, mój program wyświetla wartości dla osi x i steruje silnikiem prądu stałego. Jednak pojawił się jeden problem... Jeśli trzymam MPU w ręce to wyświetlane wartości odzwierciedlają położenie, a pozostała część...
Przepraszam za głupie pytanie, ale jak ten program działa? I po co te dwa warunki? Bo rozumiem, chciałbyś wyeliminować drgania styków, masz opóźnienie 50ms, ale wtedy sprawdzasz, czy przycisk jest wciśnięty, a nie, czy puszczony... Co prawda Twój program będzie działał, ale trzymanie przycisku nie będzie powodowało zwiększania - tak miało być? Jeśli...
No bez oscyloskopu to może być trudne. Chociaż- to są małe częstotliwości. Jakiś program do karty dźwiękowej- jako oscyloskop. Nie mierzy składowej stałej- ale to w tym przypadku niepotrzebne. Gubienie impulsów może nastąpić tylko wtedy gdy ich amplituda z silnika jest zbyt mała. W impulsatorze mechanicznym mogą być drgania przycisków wewnętrznych....
aha rozumiem juz czytam o przyciskach i to waitms 45 to ma ominąć drgania styków w takim razie będe musiał czekać 9 sekund zeby sprawdziło przycisk to musze z przycisku zrezygnować bo to za długo a zrobie zeby np po przejsciu pętli for next zamigało strobem pare razy i od nowa pętle
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 zastosowanie timera w konfiguracji licznika w takim wypadku się nie sprawdzi. Naciśnięcie i puszczenie niesie za sobą efekt uboczny czyli drgania styków. Przez to twój licznik przy jednym naciśnięciu przycisku zalicza kilka impulsów. Taka konfiguracja timera jest przystosowana do stabilnych (czyt. nie drgających sygnałów) . Zamiast zaprzęgać do...
Zacznij od tego if pin.x=0 then waitms 30 call podprogram else end if Po przejściu do podprogramu też możesz dać na wstepie waitms 100 (jeśli w nim też używasz tego przycisku). Switch podciągnięty do masy? - rozwiń temat :) Kolego zabardzo, to co podpowiadasz to niestety jest niezabardzo, albo nawet gorzej :( ... spróbuj wytłumaczyć gdzie jest w tym...
Nie mogę sobie poradzić z zmiennymi pomocniczymi na porcie b .:cry: $regfile = "m16def.dat" $crystal = 8000000 Baud = 115200 Config Lcd = 16 * 2 Config Lcdpin = Pin , Rs = Porta.5 , E = Porta.7 , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 'KONFIGURACJA PORTÓW confib portb If Pinb.3 = 0 Then 'badanie stanu przycisku Incr 20zmienna_pomocnicza...
Witam. Czasami komórka pamięci o adresie 0 może zostać nadpisana przy rozbudowie programu, lepiej używaj pierwszego adresu o nr.1 do eepromu. W sprawdzaniu stanu przycisku dałeś wait2 (2s), to nie za długi czas?, standardowo aby wyeliminować drgania zestyków wystarczy czas 20-30 mS. Jeszcze jedna uwaga, pisząc bardziej rozbudowane programy unikaj polecenia...
Przepraszam, z tym pull-down źle zinterpretowałem. Jeśli chodzi o zewnętrzny filtr to chyba najłatwiej by było wziąć oscyloskop i zobaczyć ile czasu trwają drgania i na tej podstawie dobrać stałą czasową filtra. Co do programowego filtrowania to mogło by się sprawdzić podpięcie przycisku pod przerwanie zewnętrzne wyzwalane zboczem o ile się nie mylę...
Dzięki zbig_wwl. Pokombinuje z tym stosem. A co do PWM to faktycznie nie używam go bo i po co:) Pilot ma następujące zadanie: Po uruchomieniu włączone zostaje przerwanie int0. Po wciśnięciu przycisku zewnętrznego (dodane obwody eliminujące drgania styków) program wyłącza przerwanie int0, generuje zmienne na podstawie zawartości timera0. Następnie odblokowywane...
janbernat --> tak na pierwszy rzut oka to w tym rozwiązaniu do obsługi klawiatury nie ma jednak żadnego mechanizmu eliminacji drgań styków i stąd może być to wrażenie, że niepewnie się przełącza itp moim zdaniem. Zobacz, naciskamy klawisz - rozpoczynają się drgania (zawsze występują prawda?) u ciebie od razu na pierwszy sygnał drgania styku reaguje...
To banalnie proste w petli głównej sprawdzasz klawiature i wpisujesz do zmiennej po znalezieniu wcisnietego klawisza zatrymujesz skanowanie czekasz np 20 ms (tu ustalisz minimalny czas nacisniecia klawisza i pozbedziesz sie drgania stykow ) i ustawiasz jeszcze raz ten port z kturego zbierasz dane i jeszcze raz odczytujesz wartosc tego klawisza jesli...
A więc Twój projekt ma właściwie do wykonania cztery zadania: - obsługę LCD (inicjalizację i procedury wysyłania danych i rozkazów) - obsługę przycisków (detekcja zbocza opadającego, likwidacja efektu drgania styków) - obsługę liczenia czasu (odpowiednie skonfigurowanie licznika) - obsługę wyliczeń matematycznych (max. 9!=362880, a więc mówimy tu o...
Dzień dobry, Popełniłem prosty programik na ATtiny2313. Przy naciśnięciu któregoś z guzików (Pind.0 lub Pind.1), zmienia się wartość rejestru Pwm1a - porównywanie ze stanem timera1. Dzięki temu uzyskujemy efekt rampy i rosnącą częstotliwość na wyjściu. Niestety program działa o tyle dziwnie, że czasami się zacina - tzn czasami zmiana częstotliwości...
Przewglądnąłem Twój program, kompilacji spróbować nie mogę bo mam tylko Bascoma AVR i być może to jest problem. Natomiast, napisz co to ma robić i jak działać, bo z programu to do końca nie wynika. Czy Up i Down to wejścia sygnałów czy wyjścia, bo traktujesz je różnie. Do If Down = 0 And Up = 1 Then Incr A Loop Until A = 10 If Down = 0 And Up = 1 Then...
Dalej nie Stop Ac, ale chyba miałeś na myśli Config ACI = Off. Według pomocy Bascoma, to polecenie wyłącza komparator w uP. Ustawiłeś nowym procesorom BODLEVEL na 2.7V (czy jakoś tak) i BDOEN = enable? Nie. Spróbuję ustawić. Disable INT0 w przerwaniu nic złego nie zrobi. W dodatku jeszcze to Disable INT0 wewnątrz samego przerwania INT0 (w Bascomie...
Witam. Układ mierzy przyspieszenia w 3 osiach z tym że jeden czyjnik X i Y a drugi X i Z. Przeprowadzone przeze mnie próby pomiarowe na samochodzie - przy dokładnej kalibracji czujnika wykazują zadziwiająco dokładne wskazania np. na odcinku 350m. Niestety gorzej się ma sprawa przy niewielkich nieokresowych przesunięciach. Co innego gdyby czujnik miał...
Witam! Program działa poprawnie. Testowałem z 3-4 programy do obsługi tego czujnika ciśnienia. Wyniki są złe, porównaniem z innym ciśnieniomierzem zaniża o 30..40hPa. Zasilanie BMP180 3.3V, ATMEGA32, 8MHz. Czy ktoś się spotkał z takim problemem? [syntax=vbnet] '----------------------- '| Test modułu BMP085 | '----------------------- 'Uwaga: pomiar jest...
Mam taki kod do zliczania impulsów z enkodera: http://obrazki.elektroda.pl/8629655100_1...
Zalecane taktowanie do obsługi serw to 10MHz (przynajmniej dla softu w Bascom).
(at)woszu - wydaje mi sie ze powinienes to uwzglednic - bez znaczenia jest czy wtrysk zalaczany jest masa czy nie - zawsze pojawia sie drgania stykow. http://devil.siedlce.net/~luuki/?body=Te... Tu masz troche o drganiach styku.
Jaki to enkoder? Jeśli mechaniczny to rzucam hasło pt. drgania styków.
Jeśli wyeliminujesz drgania przycisku, to najprościej to zrealizować podając wyjście przycisku na wejście zegarowe jednego timera (bedzie on zliczał ilość wciśnięć), a drugi timer wykorzystać do odmierzania czasów 1s - dokładnie co 1 s należy kasować licznik pierwszego timera. Ot i wszystko.
Drgania eliminuje poprzez waitms 100 tak mi się wydaje. To kompletnie źle ci się wydaje :) Od drgań jest debounce
Kazaliście mu wyrzucić Debounce, a dla początkujących, umiejętnie użyta jest bardzo przydatna. Początkujący będzie miał problemy z własną obsługą drgania zestyków.
drgania styków bascom volvo drgania drgania wydechu
skoda fabia kontrolka drzwi pralka whirlpool kontrolka pompa wirowanie pdn885
philips gc9682 schemat kiedy świeci żarówka
Turbina w piecyku gazowym ARISTON - jak działa? Tesla LQ410 - miernik, wyświetlacz LED czy telewizor?