Wszystko zależy jak rozwiązano w danym przypadku sposób liczenia interwałów taktowania zegara, ale typowo w elektronicznych układach odmierzających czas są montowane te typowe kwarce 32768 kHz w cylindrycznej oprawce. Owe kwarce znajdziesz w zegarkach czy to wskazówkowych kwarcowych z budzikiem czy też w płytach głównych PC :) Jeżeli przycisk masz na...
No lepiej, ale jasno to do końca nie jest. Teraz myślę, czy chodzi Ci o coś takiego: [syntax=c]#define DEBOUNCE DEB #define NO_DEBOUNCE NOTHING #define NOTHING(name) #define DEB(name) DEB_##name, #define LIST_IO PIN(A1, DEBOUNCE) \ PIN(B3, NO_DEBOUNCE) \ PIN(C2, DEBOUNCE) \ PIN(D1, NO_DEBOUNCE) uint8_t x = [ #define PIN(name, deb) deb(name) LIST_IO...
Zastąpić można np. If sw=0 then waitms 10 if sw=0 then Coś tam wyelimnuje to tzw. drgania styków, czyli zastąpienie DEBOUNCE
Sensowną implementacją przycisku włączającego migający LED w Arduino może być poniższy kod: [syntax=c]const byte LED_PIN = 6; // PD6 const byte BTN_PIN = 0; // PD0 const uint16_t BLINK_TIME_PERIOD = 200; // [ms] const unsigned long DEBOUNCE_TIME = 50; // [ms] bool prevButtonState = false; bool debouncedButtonState = false; unsigned long lastButtonPressTime...
Debounce nie ma znaczenia, to zwykła czasówka żeby mi przekaźniki nie klepotały za szybko w razie co. Ma znaczenie jeśli jest błędnie użyte i psuje działanie programu. Jeśli debounce działa tak jak się domyślam to uniemożliwi stałe załączenie przekaźnika, ale w tym fachu nie powinno się domyślać. Napisz jak działa debounce.available() i debounce.start(75);,...
dzięki, a używając "debounce" DEBOUNCE S1 AND S2....................?
Możesz spróbować takiej protezy: [syntax=basic4gl]If Przycisk1 = aktywny AND Przycisk2 = aktywny Then Else Debounce ... Debounce ... End If[/syntax] Przed wejściem do Debounce sprawdzi przyciski i jeśli będą oba wciśnięte pominie Debounce.
Krancowka1 Alias Portb.0 Krancowka2 Alias Portd.7 Radio Alias Portd.6 powinno być raczej ..... ALIAS PINB. .... Debounce Radio , 0 , Ruch1 Debounce Radio , 0 , Ruch2 to już w ogóle nie ma sensu
If Pinb.2 = 0 Then Waitms 25 If Pinb.2 = 0 Then ... Zapoznaj się z Debounce !!! Do .... Debounce Pinb.0 , 0 , Dodaj , Sub Debounce Pinb.1 , 0 , Odejmij , Sub Loop Dodaj: Incr Zmienna 'lub zmienna = zmienna + {jakaś wartość} If Zmienna > {wartość końcowa} then Zmienna = {wartość początkowa albo wartość końcowa} Lcd...
Jak napisać menu (np. 4 poziomy x 4 funkcje) Np: możesz zrobić tak że 4x4 to jest 16 stanów (lub w zależności jak to prezentujesz więcej). Więc piszesz funkcje która jest wywoływana gdy wciśnie się to MENU, a w funkcji pętle gdzie masz 16 warunków oraz jedna zmienna która wskazuje który stan jest obsługiwany. Zamiast warunków można użyć switch ale...
Napisałem program z instrukcją debounce : Debounce Pinb.0 , 0 , Pr , Sub If A = 0 Then warunek 1 Else warunek 2 End If Pr: Toggle A Return Dzięki
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...
Witam. Wypróbuj to: [syntax=basic4gl]Ddrb = &B11111111 : Portb = &B00000000 Ddrd = &B1100000 : Portd = &B0011000 Dim Pomoc As Byte 'zmienna zliczająca wciśnięcia przycisku Do Debounce Pind.4 , 0 , Wlacz , Sub Debounce Pind.3 , 0 , Wylacz , Sub If Pomoc = 1 Then Portb.0 = 1 'w zależności od stanu zmiennej pomoc If Pomoc = 2 Then Portb.1...
do if flaga=1 then rotate left ......................... if flaga=0 then rotate right ........................ debounce debounce loop prog1 flaga=0 return prog2 flaga=1 return
' start |Oragnizacja przyciskow do obrazka przed linia ' klima on | 3 pcfy 1 sterownie przekaznimi dwa do sterosnia lampakmi wyswietlacza 'oplaczae on | ' nawieww on | 'stop | ' klima off | 'opalecze off | 'nawiew off | ' rezerwa | ' vol up | ' vol down | 'chan up | 'chan down | Dim Pcf1 As Byte ' ustawinie zmiennych pcf1 sterujacy przekaznikami Dim...
Do obsługi przycisków w Bascom-ie istnieje funkcja "Debounce". Config Debounce = 45 ... Debounce Pind.1 , 0 , Ustawienia , Sub ... Ustawienia: Debounce Pind.1 , 0 , Ustawienia2 , Sub ... Return Ustawienia2: ... Return Tak "brzmi" lepiej :wink: Pozdrawiam Piotrek Sz.
Myślałem o czymś takim :) Dim Ax(7) As Byte , X As Byte , Pozycja As Byte Dim Suma As Long Config Debounce = 100 ' lub ... jak kto woli ;) Poz Alias P3.7 Zmien Alias P3.5 Star Alias P3.1 Pozycja = 1 Cls Do Locate 1 , 1 Lcd "wprowadz liczbe" ; Pozycja Locate 2 , 1 For X = 1 To 7 Lcd Ax(x); Next X Debounce Poz , 0 , Incrpozycja...
nie mam problemu ze sprzetem... a z programem jest to klawiatora 4x4 matrycowa nie jest itsonte jak sa poukladane tak wyglda mniejwiecej kod: Sub Getkbd 'skanowanie matrycy Set P3.4 : Set P3.5 : Set P3.6 : Set P3.7 Reset P3.4 Waitms 20 Debounce P3.0 , 0 , Kew1 '1 Debounce P3.1 , 0 , Kew2 '4 Debounce P3.2 , 0 , Kew3 '7 Debounce P3.3 , 0 ,...
Niestety, to nie pomogło, usunąłem wszystkie wait'y które tam były i dalej jest to samo. Może macie jakieś inne pomysły? Wszystkich nie usnąłeś - zostało 25ms z debounce. Poza tym konfiguracja przerwania jako Low level powoduje, że jest ono generowane raz za razem dopóki jest stan niski na pinie. Przerwanie nie zdąży się obsłużyć, bo debounce potrzebuje...
Spróbuj tak: [syntax=basic4gl]Play: Printbin $55 Printbin $aa Printbin $00 Printbin $03 Printbin $01 Printbin $f7 Return [/syntax] Nie ma sensu stosować funkcji tam gdzie wystarczy podprogram. Nie działa bo jest - Debounce Portb.0 , 0 , Play , Sub - LITOŚCI!!! Debounce Pinb.0 , 0 , Play , Sub - MA BYĆ!
ok juz cosik wiem... przedstawie to co wiem prosze o sprostowanie jesli cos bedzie zle. przyciski podciagam rezystorkami pod +zasilania oraz pod wejscie procka a z drugiej strony do GND programowo stosuje sobie funkcje debounce DEBOUNCE PortA.0 , 0, 'jakas etykieta z funkcja' mam pytanko czy wystarczy jesli wstawie to na poczatku programu, czy musze...
Witam Polecenie debounce np. może wyglądać tak: debounce pinb.2, 1, wlacz, sub (debounce port, stan na jaki ma reagować, etykieta, sub) normalny czas opóźnienia debounce to 25ms ale można go zmienić : config debounce=tu wpisujemy liczbę opóźnienia w milisekundach. :D
OK rozumiem, więc że w kodzie programu muszę dać stan spoczynkowy wyjść na 0. Napisałem zgodnie z sugestiami kolegów kod w Bascomie. Nie wiem czy to normalne czy mój bascom jakoś dziwnie się zachowuje (wersja 2.0.7.5) bo jeśli chcę skonfigurować np. port B1 i wpisuje w okienku bascoma portb.1 nie "koloruje" mi składni. jeśli wpisze PORTB1 składnia jest...
właśnie jeszcze nie mam , zmienna jest liczbą nie tekstem ...[syntax=basic4gl] Debounce Pind.3 , 0 , Key_0 , Sub Debounce Pind.4 , 0 , Key_1 , Sub Debounce Pind.5 , 0 , Key_2 , Sub Debounce Pind.6 , 0 , Key_3 , Sub Debounce Pind.7 , 0 , Key_4 , Sub Debounce Pind.2 , 0 , Key_5 , Sub Debounce Pind.0 , 0 , Key_6 , Sub Debounce Pind.1 , 0 , Key_7 , Sub...
[syntax=basic4gl]$regfile = "m8def.dat" $crystal = 8000000 Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.2 , Rs = Portd.3 Config Lcd = 16 * 2 Config Debounce = 10ms 'konfiguracja magistrali I2C Config Scl = Portd.0 Config Sda = Portd.1 'przypisanie nazw przyciskom P_1 Alias Portb.0 Ok Alias Portb.1 Esc...
Mój przebiegły umysł wypłodził coś takiego, napisałem to na luźno jako koncepcję, bez sprawdzanie tego w praktyce :P [syntax=c]/* * main.c * * Created on: May 19, 2012 * Author: tymon_x */ #include "stdint.h" #include "stdio.h" // BUTTONS ////////////////////////////////////////... typedef enum E_BUTTON_ACTION { Button_Down, Button_Release,...
Nie prościej zastosować DEBOUNCE? [syntax=basic4gl] Config Debounce = 0 dim a as bit Do Debounce Pinc.0 , 0 , licz , Sub loop licz: incr a return [/syntax]
Proszę, gotowy przyklad rozwiązania. Napisałem przy kawie i potestowałem w symulatorku czy się nie pomyliłem gdzieś ;) [syntax=basic4gl]$regfile = "m8def.dat" '$sim 'dla symulatora Config Portd.5 = Input : Set Portd.5 : Czuj_1 Alias Pind.5 Config Portd.6 = Input : Set Portd.6 : Czuj_2 Alias Pind.6 Config Portd.7 = Input : Set Portd.7 : Czuj_3 Alias...
Faktycznie, nie doczytałem... Już poprawiam, dzięki. Dodano po 12 Co sądzicie teraz, o tym menu? Jest dobrze? $regfile = "m8def.dat" $crystal = 8000000 Config Portb = Output Config Pind.5 = Input Config Pind.6 = Input Config Pind.7 = Input Portb = &B0000000 Portd = &B0000000 Dim Tempzadana As Long Declare Sub Menu Declare Sub Normal Declare...
Moim zdaniem transoptor nie jest niezbędny, ale jak już masz, to nie przeszkadza. Użyj biblioteki [url=https://www.arduinolibraries.info/l... do filtrowania wejść, to jest naprawdę proste, a robi robotę pewniej, niż filtry sprzętowe. Co nie znaczy, że zewnętrzne rezystory można pominąć. Poza tym, używaj symbolicznych stałych zamiast...
Przede wszystkim błąd jest tutaj: S1 Alias Porta.3 (O ile s1 to button)
Witam Mam kłopot nie wiem czego tu brakuje aby program wysyłał znaki "ASCI" tak jak jest wysyła je w "DEC-u" Proszę o podpowiedz Config Debounce = 40 $crystal = 11059000 $baud = 9600 ''''''''''''''''''''''''''''''''''''''''... Dim Keyread As Byte ''''''''''''''''''''''''''''''''''''''''...
Akurat w przypadku tego kodu przycisk wyjątkowo zwierał do plusa. Jeśli zwiera do masy, to powinno się porównywać z wartością 0b11111110. Na ogół nie ma sensu rejestrować aż 8 stanów - wystarczy wymaskować zmienną keystate maską złożoną z 2..3 jedynek i porównywać z odpowiednią maską, np. 0b110. keystate jest typu uint8_t. Wyglądałoby to np. tak: if...
Uuups! Chyba się pospieszyłem z tym kodem ze strony skoro nie rozumiesz nawet swojego :D Ekonomiczniej jest, i tak się najczęściej robi, że mikrokontroler wykrywa zwarcie przyciskiem linii do masy. Wtedy na wejściu pojawia się Zero a nie Jedynka. W kodzie poniżej jedynki na pinach przycisków są cały czas a kiedy zewrzesz linie przyciskiem do masy to...
napisz config pind.1 = input config pind.0 = input do debounce pind.0,0,klawisz1,sub debounce pind.1,0,klawisz2,sub loop klawisz1: jakas akcja1 /np set pin.c=1/ return klawisz2: jakas akcja2 /np set pin.c=0/ return A zasilanie i mase musisz podpiąć też do tych 2 pinów co pisałeś. Tylko podłącz tak jak jest w programia albo zmień porty Aha mogą...
Do autora - przyjrzyj się [syntax=vbnet]Config Portd.5 = Output : Dc_wlacz Alias Portd.5 Config Portd.1 = Input : S12_wolniej Alias Portd.1 Config Portd.2 = Input : S11_szybc Alias Portd.2 Config Pina.0 = Output : Kier_lewo Alias Pina.0 Config Pina.1 = Output : Kier_prawo Alias Pina.1 Config Pina.4 = Input : S10_start Alias Pina.4 Config Pina.5 = Input...
Czysta ciekawość a podciąganie masz na tym pinie? (Zewnętrzne oczywiście, bo wewnętrzne masz wyłączone) Ł.
Mozesz sprawdzic X Mouse Button Control i zmiane podanej opcji De-Bounce na 1ms -> https://www.howisolve.com/how-to-fix-a-d...
Witam! Mam problem: klawiatura matrycowa 6x3 (3 kolumny i 6 wierszy) i Bascom AVR. uP to AtMega16. Porty klawiatury to: kolumny(licząc od lewej): C0, C1, C2 wiersze(licząc od dołu): C4, C5, C6, C7, B6, C3 Nie bardzo wiem jak to obsłuzyć. Chodzi mi o procedure, która będzie zwracać umowny numer naciśniętego klawisza. Przyjąłem umowną numerację: (brak...
Witam, mam mały problem mam ograniczoną możliwość dodania przycisków więc pomyślałem ,że np. naciskając dwa jednocześnie uzyskał bym trzeci ale nie wiem jak mam napisać tych parę linijek kodu do obecnych używam instrukcji Debounce
Witam, Mam pewien problem: Napisałem pewien program, który ma kilka opcji --> ustawień , Pomiędzy ustawieniami przemieszczam się za pomocą polecenia Debounce. Gdy przechodzę do któregoś z ustawień za x tym razem program się zawiesza i resetuje. Co może być powodem?? To pewnie zapomniałeś dodać opcji "Sub" w Debounce , a procedurę wywołaną przez Debounce...
I = 100 Servo(1) = I Do Debounce S1 , 0 , Prawo , Sub Debounce S2 , 0 , Lewo , Sub Loop End niemozliwe ze to dzialalo. przeciez w petli wogole nie modyfikujesz polecania servo. wg mnie powinno byc tak I = 100 do Servo(1) = I Debounce S1 , 0 , Prawo , Sub Debounce S2 , 0 , Lewo , Sub Loop End a tak na marginesie to bawilem sie serwami i uwazam ze polecenie...
Prosze o sprawdzenie tego podprogramu. czy wogule w bascomie są funkcje?? Ja chcę tu zrobić coś takiego prze przy wywolywaniu tej funkcji w zmiennej przycisk bede miał jaki klawisz jest naciśniety, Czy moze da się to przerobic na podprogram a nie nafunkcje?? Declare Function Klawiatura(byval Klawisz As Byte ) As Byte Dim Guzik As Byte Dim przycisk...
Masz racje DEBOUNCE will not wait for the input value to met the specified condition. You need to use BITWAIT if you want to wait until a bit will have a certain value. So DEBOUNCE will not halt your program while a BITWAIT can halt your program if the bit will never have the specified value. You can combine BITWAIT and DEBOUNCE statements by preceding...
To co mi udało się zbudować to zlicza 3 impulsy na 4 wraca do zera ale trzymając przycisk program zapętla i cały czas zał. wył. Wraca do zera, bo po trzecim zerujesz licznik i program nie ma szans osiągnąc stan licznika 4. Ten delay przed zerowaniem licznika tylko zatrzymuje program na ten czas, a ty oczekujesz że 'przeskoczy ' zerowanie. Poza tym...
Jak nie wierzysz to wrzuć w symulator i zobacz. Po za tym ja dałem ci przykład a nie gotowiec :!: $sim Dim X As Byte Config Pind.7 = Input Set Portd.7 Config Pind.6 = Input Set Portd.6 Dim Flaga As Bit Flaga = 0 X = 0 Do Debounce Pind.7 , 0 , Up , Sub Debounce Pind.6 , 0 , Dw , Sub Locate 1 , 1 Lcd X Loop Up: If Flaga = 0 Then 'to znaczy że x=0...
Wydaje mi sie że powinieneś napisać zamiast Debounce Portd.4 napisać Debounce Pind.4 I zobacz czy wtedy zadziała.
wywolanie funckji Przycisk = Klawiatura(guzik) <- tu pokazuje bład illegal type Declare Function Klawiatura(byval Klawisz As Byte ) As Byte Dim Guzik As Byte Dim przycisk As Byte Dim G As Bit Przycisk = Klawiatura(guzik) <- tu pokazuje bład illegal type Function Klawiatura(byval Klawisz As Byte ) As Byte Do $asm mov R5,#2...
Może coś w tym guście: uint8_t keys; static uint8_t old_keys = 0xff; // valid keys from previous keypress static uint8_t scan_keys = 0xff; // last keyboard scan state static uint8_t debounce_cnt = 0; /*...*/ //read keys keys = KBD_INP_PORT & KBD_INP_MASK; if (keys ^ scan_keys) { // key state change from previous scan // start debounce delay...
Zrobiłem sterownik na 8535 i teraz chcę w bascomie napisać program do jego obsługi :) opis działania : po nacisnieciu przycisku S1,S2,,,S16 ma sie załaczyć się przekaźnik PK1,PK2,,,PK16 na 15 min , po tym czasie wyłaczyć i znów po 15 min załaczyć . i tak co 15 min. po 4 godzinach ma się wyłaczyć . oczywiście przekazniki maja przełaczać sie nieżależnie...
Druga możliwość, to wykorzystanie przerwania od timera. Ustawiasz sobie przerwanie co np. 10ms i w przerwaniu badasz stan klawiatury i zapamiętujesz. Jeżeli ten nowy stan jest inny, niż zapamiętany poprzednio, to np. wpisujesz sobie wartość opóźnienia (do eliminacji drgań styków) do zmiennej. Jeżeli stan się nie zmienił, to zmniejszasz zmienną i jeżeli...
Mam podobne zadanie i zrobiłam tak: [syntax=vbnet] Do Incr Czas1 If Czas1 >= 2000 Then : Czas1 = 2000 : Led = 0 : End If Incr Czas2 If Czas2 >= 2000 Then : Czas2 = 2000 : Led = 0 : End If Debounce K1 , 0 , Guzik1 , Sub Debounce K2 , 0 , Guzik2 , Sub Waitms 1 Loop Guzik1: Czas1 = 0 If Czas2 < 200 Then Led = 1 Return Guzik2: Czas2 = 0 If Czas1...
Nie chce mi się zagłębiać dalej w pisanie. Tych trybów możesz sobie dopisać ile chcesz. I jak Przewijajac menu naciśniesz Set to zmień tryb na, na przykład, "Ustawiam_temp" i w tym trybie znów przyciski Plus i Minus bedą działać dla zmiennej ustawianej. Potem naciskasz ESC i wracasz do trybu jakiego chcesz.. to proste i pewne. [syntax=basic4gl]$regfile...
Moze dokładniej napisze o co chodzi. Skan_klawiatury: Nr_przycisku = 0 Debounce Pinc.0 , 0 , _dol , Sub 'góra Debounce Pinc.1 , 0 , _gora , Sub 'dół Debounce Pinc.2 , 0 , _lewo , Sub 'lewo Debounce Pinc.3 , 0 , _prawo , Sub 'prawo Debounce Pind.7 , 0 , _switch , Sub 'switch Return _gora: Nr_przycisku = 1 Return _dol: Nr_przycisku = 2 Return...
może spróbuj inną metodą, może coś z tego rozbudujesz: Dim Mem_wiert As Byte Dim Powtorzenie As Integer Declare Sub Obrot1 Declare Sub Obrot2 Mem_wiert = 1 'wstepna wartosc numeru cewki '---------------------------------------... Do Debounce Pind.0 , 0 , Obrot1 , Sub Debounce Pind.1 , 0 , Obrot2 , Sub Loop End '---------------------------------------...
Można też przenieść obsługę klawiszy do pętli głównej, i wywalić debounce. Po co stosować debounce i potem zapętlać jeszcze raz program? Dodano po 3 A poza tym każde DEBOUNCE w standardzie wprowadza 25ms opóźnienia. Chyba że zmienimy to poleceniem Config.
Nie rozumiem co ma wspólnego wywołanie podprogramu z "Debounce". [syntax=basic4gl]Debounce K3 , 0 , Ustaw , Sub [/syntax] A teraz :?: Rozumiesz :?:
Witam, wykonałem zapalanie led na schodach na dwóch przełącznikach monostabilnych. Drgania styków ogarnąłem programowo i działa poprawnie, ale schody potrafią zapalić się same w losowych momentach. Do każdego przełącznika jest około 5m skrętki i obstawiam, że zbierane są jakieś zakłócenia. https://obrazki.elektroda.pl/1976401600_...
Dim Generator As Byte , Czujnik As Byte , Wynik As Byte , Gen As Byte , dim A as byte declare sub czekaj Czas As Byte Portd = 3 Cls Do Debounce Pind.0 , 0 , Gen , Sub Debounce Pind.1 , 0 , Czu , Sub If Generator = 10 Then Wynik = Generator - Czujnik Generator = 0 Czujnik = 0 Lcd "WYNICZEK= " Lcd Wynik End If Waitms 1 ' odczekaj 1 ms incr...
Witam. Ten kod powinien działać tak jak chcesz. Myślę, że komentarze wyjaśniają jego działanie. [syntax=basic4gl]Dim Flaga As Bit , Flaga_temp As Bit Do Debounce S1 , 0 , Zwieksz , Sub Debounce S2 , 0 , Zmniejsz , Sub If Temp >= 40 Then 'jeśli temperatura wieksza lub równa 40 If Flaga = 1 Then 'jeśli flaga ustawiona Flaga = 0 'wyzeruj flagę aby ustawienie...
a to program Dodano po 11 Mam problem z załącznikiem może teraz.:) Dodano po 6 plik się nie dodaje ?? wyślę tak : $regfile = "m8def.dat" $crystal = 11059200 '$baud = 9600 '$baud = 19200 $baud = 38400 Echo On '******** KONFIGURACJA WYŚWIETLACZA LCD ****************************************... Config Lcd = 20 * 4 ' Deklaracja...
D3 zbędna I teraz żeby przerobić na japońca to na PC817 na 4 nóżkę dajemy GND a na 3 OUT_L i Out_R Odwrotnie, emiter do masy, kolektor na sygnał, najlepiej jeszcze podciągnąć do plusa rezystorkiem. wywalamy te 2 zenerki (D1 i D2) - Spalisz procek. jeszcze w C bym sobie poradził, ale BASCOMA ni w ząb. Zmieniasz [syntax=basic4gl]Debounce Inlewy , 1 ,...
Niestety kodu poprzedniego programu juz nie mam poniewaz udalo mi sie rozwiazac ten problem... z tego co pamietam bylo to cos takiego (fragment) ....... sw1 Alias p3.0 sw2 Alias p3.1 Dim pos As byte Config Debounce = 40 pos=1 poczatek: do 'glowna petla Debounce sw1,0, lewo,sub Debounce sw2,0,prawo,sub loop wyswietl: cls locate 1,pos lcd "*"...
Noga od kontrastu jest połączona z zasilaniem przez 10k, tu jest na pewno dobrze. Inny wyświetlacz, innej firmy miał to samo. To może pokaże kawałek swojego kodu który najbardziej mruga: Sub Menu1 Do Cls Cursor Off Noblink Lcd "Ust Zegara" Lowerline Locate 2 , 8 Lcd Chr(1) 'znak strzałki w dół Debounce P2 , 0 , Menu2 Debounce Menu...
Wiesław19 Wszystko jest opisane w programie :) LCD 40x2: Config Lcd = 40 * 2 Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.2 , Rs = Portb.0 Czujnik temperatury: Config 1wire = Portd.0 Przyciski: Debounce Pina.0 , 0 , Lewy , Sub Debounce Pina.2 , 0 , Prawy , Sub Debounce Pina.1 , 0 , Gora , Sub Debounce...
Witam napisałem takie cos jest to pilot obsługujący 12 przycisków działający w rc5 . Czy poprawnie go napisałem nie mam jak sprawdzić bo nie mam jeszcze atmega czekam na nia z chin jedyne źródło atmelka w UK :) $regfile = "m8def.dat" $crystal = 8000000 Config Portb.1 = Input : Set Portb.1 Config Portb.2 = Input : Set Portb.2 Config...
Witam, proszę o pomoc: buduje sterownik na zasadzie włącz/wyłącz, to akurat nie jest w tym momencie ważne :), ale przejdźmy do szczegółów - ma pobierać dane z 4 czujników DS18B20, sam odczyt działa poprawnie, problem zaczyna się w menu, do kroku "2.2" czasem "2.3" wszystko działa poprawnie, lecz z "2.2" i naciśnięciu 'dalej' (lub "2.3") przeskakuje...
Po co jest "Readeeprom Nr_menu , 1" po "Debounce S1 , 0 , Zmiana , Sub"? To raczej nic nie wnosi do działania programu, ponieważ po "Debounce..." w zmiennej nr_menu już masz aktualny numer menu. "Readeeprom Nr_menu , 1" powinno być przed "Do". Wtedy aktualną pozycję menu odczytujesz tylko raz przy włączeniu zasilania i na ekranie wyświetlasz menu które...
[url=http://www.arduino.cc/en/Tutorial/D... masz gotowy przykład wykorzystania funkcji Debounce.[/code]
Niedziala bo nic nie kazesz wyswietlic sprobuj tego. cls Do If Pind.0 = 0 Then Cls Lcd "Pierwszy napis" Waitms 300 End If If Pind.0 = 1 Then Cls Lcd "Drugi napis" Waitms 300 End If Loop End mozna to bardziej zgrabnie napisac przy pomocy if else, druga sprawa ze napisany przez ciebie kod nie eliminuje drgan stykow. Uzyj lepiej wbudowanej funkcji Debounce.
If...Then to nie pętla... tylko warunek. Jeśli chodzi o przyciski to proponuje debounce który na pewno wyeliminuje drgania styków. Poczytaj tabelkę i zrób sobie podprogramy w których będziesz zwiększał głośność itd. Przykład: Debounce PINB.0 , 0, VOLUP, SUB .... .... .... VOLUP: I2CSEND ..... 'jakieś tam bity Return Dodano po 8 ... Powtórzone usunąłem....
Chciałem stworzyć swój własny pilot RC5 do zdalnego sterowania. Problem w tym, że pilot nie nadaje. Zamieszczam schemat i program jaki napisałem. http://obrazki.elektroda.pl/4658202900_1... [syntax=basic4gl]$regfile = "attiny2313.dat" $crystal = 8000000 '''''''''Konfiguracja''''''''''''''''' Config Pinb.7 = Input Config Pinb.6 = Input...
A oto i moj pierwszy programik napisany w BASCOMIE a wszystko dzieki Wam, Waszej pomocy. Prosze napiszcie czy sa szanse ze ten programik ruszy w procesorze AT90S2313. Config Portb = Output Config Portd = Input Portb = 0 Portd = 255 Set Portb.0 Wait 1 Set Portb.2 Wait 1 Set Portb.3 Wait 1 Set Portb.4 Wait 1 Set Portb.5 Wait 1 Set Portb.6 Portb = 0 Wait...
Witam, wydawało mi się że idea jest prosta widocznie źle ją przekazałem i źle została zinterpretowana-co zauważyłem w kodzie. Dopisałem coś do powyższego programu-mam nadzieje że kolega się nie obrazi :P Może to ułatwi zrozumienie tego na przykładzie znanym autorowi tematu. [syntax=basic4gl] $regfile = "m8def.dat" $crystal = 8000000 Config Lcd = 16...
Witam Na wiele sposobów. Możesz w procedurze odczytu klawisza dać opóźnienie np 20ms i po tym czasie sprawdzić czy to samo, a można w przerwaniach sprawdzić. Wszystko sprowadza się do zwłoki czasowej po której powinien być taki sam stan. W prostym rozwiązaniu po zadziałaniu klawisza daj opóźnienie 20ms i nie sprawdzaj go wcale ewentualnie czekaj na...
Wkładam drut w +5v i obserwuje, teoretycznie powino nastapić dokładnie to co następuje bezpośrednio z przerwania a tu proszę za każdym razem problem. Tu debounce jest nie potrzebne, jedynie wprowadzi opóźnienie. Przecież debounce to nie jest nic innego jak zautomatyzowany wait
Miałem problem ze schematem, bo jest na nim wielki błąd. Tranzystory są źle podłączone trzeba zamienić miejscami dren ze źródłem tzn.: S (źródło) dać na mase a D (dren) wyjście ja użyłem innych tranzystorów IRF640 bo akurat takie miałem, rezystory w bramkach zostają, na schemacie jest 7 przycisków ale w programie tylko cztery są użyte są to : Debounce...
Jak widzisz sam się uczyłem i nie do końca dobrze nie mam też zawsze czasu ale jak powiedziałem to przemyślę i przebuduję sobie programik. Jeżeli chodzi o silnik to startuje na 1 a zatrzymuje się na 0 i niema z tym problemu tylko te fałszywe dane w czasie jego pracy nie wiem skąd się biorom bo podłączeniu przekaźnika jest ok. I tego nie kapuję za program...
A dlaczego po: Locate 4 , 2 If Pind.2 = 0 Then Lcd Chr(1) Else Lcd " " End If nie ma następnego LOCATE?? A do czego to LOCATE ma być potrzebne skoro piszesz na LCD znak za znakiem? Wyświetlacz pamięta ostatnią pozycję kursora :) Mam jeszcze jedno pytanie. Czy jak w pętli jest 3x DEBOUNCE to przed pętlą trzeba wpisać : 3x Config Debounce...
stan kursorem na debounce, nacisnij F1 i zobaczysz gdzie masz blad.
Witam, Rozpocząłem pracę nad programem obsługującym sampler kruszyw i już przy obsłudze menu natknąłem się na problem. $regfile = "m16def.dat" $crystal = 8000000 Config Lcd = 16 * 2 Ddra.2 = 0 Ddra.3 = 0 Ddra.4 = 0 Porta.2 = 1 Porta.3 = 1 Porta.4 = 1 Declare Sub Inicjacja_menu Declare Sub Menu_czas_cyklu Declare Sub Mccp2 Declare Sub Czas_cyklu_up...
Ok, poradziłem sobie. Rozwiązanie poniżej. :D :D No tak, przerywania koniecznie należy wyłączyć przed Debounce, a nie dopiero w podprogramie obsługującym Debounce Człowiek uczy się całe życie :) Pozdrawiam.
Brawo Ja :) Dodano po 8 Tylko w Domoticzu jakaś dziwna ta lista urządzeń. O ile switche bym zrozumiał to ROLETA o nazwie UNKNOWN nie mam pojęcia skąd się wzięła. Jakieś pomysły ? Zaciąga to ze sketchu czy samo generuje ? https://obrazki.elektroda.pl/6301399600_...
Ok po kolei, wywalam wszystko z programu, zostawiam tylko...... zmienna impulsy jest zwiększana o kilkanaście a nie tylko o jeden ............ Licz: If Scisk = 1 And Ok = 1 Then Incr Impulsy Elseif Scisk = 0 And Ok = 1 Then Decr Impulsy End If Return Kontaktron (Reed switch) generalnie jest stosowany jako proxy switch, czyli w ukladach statycznych....
czy klawisze moga sie powtarzac po sobie? Tzn czy np naciskasz jeden klawisz - program czeka i naciskasz drugi klawisz(czy moze byc ten sam co pierwszy?) i potem jeszcze trzeci? Jezeli mozesz to uzyj funkcji debounce i jakiejs krotkiej przerwy miedzy kolejnymi petlami: do -debounce pind.x,0,klawisz_jeden,sub loop waitms 100 do -debounce pind.y,0,klawisz_dwa,sub...
Najprościej będzie zmodyfikować program tak: [syntax=vbnet] Rez = Getadc(5) 'przechwycenie wartości napięć na wejściach ADC Pot_max = Getadc(4) If Rez >= Pot_max Then Wait 1 'wykrywanie przeciążenia Rez = Getadc(5) 'przechwycenie wartości napięć na wejściach ADC Pot_max = Getadc(4) If Rez >= Pot_max Then Reset Portd.0 'wyłączenie silnika Reset Portd.1...
Witam mam taki problem napisalem program w którym 5 klawiszy bylo przewidziany prosto do procesora podlaczyc. Ale teraz chce zmienic i klawisze przenies na PCF8574 niewiem jak to najlepiej zrobic zeby nie zabardzo kopac w podprogramach bo juz sa gotowe i dzialaja. Tak mam zdeklarowane klawisze: Not_aus Alias Pind.0 F1 Alias Pind.1 F2 Alias Pind.2 F3...
Program działa. Myślę że teraz jest dobrze. [syntax=c]#include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x3F,16,2); #include <Bounce2.h> #define BUTTON1_PIN 2 #define BUTTON2_PIN 3 Bounce debouncer = Bounce(); byte digitBuffer[4]; int x = 0; void setup() { pinMode(BUTTON1_PIN, INPUT_PULLUP); pinMode(BUTTON2_PIN,...
Byłby ktoś w stanie mi z tym pomóc? Miałoby to wyglądać tak: * sterowanie wentylatorami czasowo * sterowanie poprzez odczyt temeratury 2 osobne funkcje (działa albo jedno albo drugie). Do tego co mam dołożenie wł/wył czasowego (w zupełności wystarczy najprostsze z możliwych) OK, Popatrz na swój program; sterujesz ustawienia trzema przyciskami, z których...
Nic z tego nie rozumiem więc powiem, że Debounce Pind.0 , 0 , procedura1 , Sub uaktywni się gdy przycisk przełączy końcówkę ze stanu wysokiego w niski i pozostanie w stanie niskim odpowiedni czas. Debounce Pind.0 , 1 , procedura1 , Sub odwrotnie Teraz zastosuj to do swoich przycisków. Jeśli po nacisnięciu przycisku wystąpi 0 zastosuj pierwszą Debounce,...
Sprawdź to: $regfile = "attiny2313.dat" $crystal = 8000000 Ddrb = &B11111111 Portb = &B11111111 Ddrd = &B11111110 Portd = &B11111111 Sw Alias Pind.0 Dim Indeks As Byte Config Debounce = 30 Do Debounce Sw , 0 , Zwieksz , S_u_b Loop End Zwieksz: Incr Indeks Indeks = Indeks Mod 10 Portb = Lookup(indeks , Tabela) Return Tabela:...
Poczytaj sobie w helpie o "debounce".
1) masz polecenie Debounce z opcją Sub która załatwia wiele problemów, na początku programu możesz dodać Config Debounce 2) jeśli nie chcesz Debounce to ify powinny wyglądać tak: [syntax=basic4gl] if klawisz=1 then if godziny <23 then incr godziny else godziny=0 end if klawisz=0 end if if klawisz=3 then if godziny > 0 then decr godziny else godziny=23...
Znaczy się chciałem dać Load Timer1 = 58594, wtedy chyba działałoby to przepełnienie o którym mówię? Do przycisków daje Debounce, więc myślę, że starczy Może wkleję tu resztę $regfile = "m8def.dat" $crystal = 1000000 Config Pinb.1 = Input Config Pinb.2 = Input Config Pinb.3 = Input Config Pinb.4 = Input Config Pinc.0 = Output Config Pinc.1...
https://hackaday.com/2015/12/09/embed-wi...
$regfile = "m8def.dat" $crystal = 8000000 $baud = 9600 '-- Wejscia przycisków Config Portd.2 = Input Config Portd.3 = Input ' -- podciągnięcie Set Portd.2 Set Portd.3 ' -- porty sterowania segmentami LED Config Portd = Output Config Portc.5 = Output Config Portc.4 = Output Config Portc.3 = Output Config Portc.2 = Output ' -- tranzystory Config...
Nie sprawdzałem twojego kodu ale robiłem taki pilot na mega8: $regfile = "m8def.dat" $crystal = 8000000 Config Pinb.1 = Output Config Pind.3 = Input Config Pind.4 = Input Config Pind.2 = Input Config Pind.1 = Input Config Pind.0 = Input Config Pinc.1 = Input Set Portd.3 Set Portd.4 Set Portd.2 Set Portd.1 Set Portd.0 Set Portc.1 S1 Alias Pind.3...
Schemat jest 8 postów wyżej a co do programu, to jaki by nie był, przez pół godziny działał:D ale zamieszczam: $regfile = "m8def.dat" $crystal = 8000000 Config Portb = Input Portb = &B00000000 Config Portd = Output Portd = &B00000000 Config Portc = Input Portc = &B00000000 Set Portb.0 Reset Portd.7 Reset Portd.6 Set Portd.5 Set Portb.7 Set...
Spróbuj ten kod /* Ver. 1.02 - 2020-03-29 Kod emulujący kierownicę Thrustmaster TMX Pro, umożliwiający podłączenie Arduino do bazy TMX Pro i emulację naciśnięć przycisków. */ #include <Arduino.h> byte wheelState[8]; // Stan przycisków volatile byte next_byte; volatile byte next_byte_idx; // Zmienne do debouncingu byte lastState[2] = {0xFF, 0xFF};...
Dać kondensatory do masy od mikros.... rezystory podciągające lub w programie dać coś takiego jak DEBOUNCE w BASCOM jeśli w nim piszesz.
przerwania debounce debounce przerwa przerwanie debounce
zabezpieczenie mikrokontrolera iveco zacisk wymiennik ciepła oleju
Onkyo A-35 vs UNITRA PW3015: Moc basu i brzmienie Migająca zielona lampka w zmywarce Ignis po podłączeniu napędu