Najprościej coś takiego: 1. pętla czeka na naciśnięcie przycisku 2. zmiena stanu diody led 3. pętla czeka na puszczenie przycisku 4. idź do pkt1 PS obie pętle muszą jeszcze dodatkowo mieć wprowadzone opóźnienia w celu debouncingu przycisku.
U mnie twój program działa bez problemu :D . Może to wina zakłóceń.
...I dalej mam takie pytanie czy da się to zrobić prościej Bascom posiada funkcję skoków do podprogramu w/g indeksu. Portc.4 = 1 'podciagam port - przycisk Dim A As Byte , B As Byte Declare Sub Temp Declare Sub Temp2 Declare Sub Nap Declare Sub Przyc Const Maxa = 2 'maksymalna ilosc podprogramow A = 0 : B = 1 Cls Do 'petla glowna Debounce Pinc.4...
[syntax=basic4gl] Przycisk_on Alias Pinx.y Przycisk_off Alias Pina.b DDRx.y = 0: DDRa.b = 0 PORTx.y = 1: PORTa.b = 1 Dim Zapamietalem As Bit Do If Przycisk_on = 0 then Zapamietałem=1 If Przycisk_off = 0 then Zapamietałem=0 Loop [/syntax] Zmienna Zapamietalem pamięta który przycisk został ostatnio naciśnięty. "0" jeśli Przycisk_off; "1" jeśli Przycisk_on....
1) jeśli używasz przycisków to zawsze podłącz go tak aby przyciśnięcie zwierało nóżkę portu do masy czyli do -. To naprawdę ułatwia sprawę i zawsze działa 2) dobra praktyka - przyciski, jumpery itp podłączaj do pinu procesora przez rezystor np 180 omów. Chodzi o to że kiedyś możesz się pomylić, ustawić pin jako wyjście, dać na nim 1 czyli napięcie +...
Tak jak twój program kofiguruje, piny są w stanie wysokiej impedancji, ustawione jako wejścia (PORT.X = 0; DDR.X = 0) i losują wszystko z otoczenia, a jak włączysz podciągnięcie, to masz na PIN.X stabilny stan = 1, bo wewnętrzne rezystory (ok. 50 k) ciągną to do Vcc. Jak zewrzesz przyciskiem pin z masą, wewnętrzny rezystor nie zaprotestuje, bo płynie...
wejście jest sterowane minusem. Po napisaniu coś takiego, układ działa ale po za tym że nie czeka 1 s i nie przechodzi do Pwm1b = 100. Z pewnością przechodzi do Pwm1a = 100, (dlaczego Pwm1b ?) tylko ty mu nie dajesz szansy (czasu) abyś to mógł zobaczyć. Poza tym, nie masz kontroli nad czasem ponad 1 sec. pętla dalej jest przewijana w nieskoczoność....
w podprogramie dopisz na końcu /przed loop/ If pind1.0 = 0 then exit Do end if w drugim podobnie. W ten sposób tym samym przyciskiem wchodzisz i wychodzisz z podprogramu. Wcześniej /przed Do/ daj jakąś zwłokę bo jak nie zdążysz puścić przycisku to podprogram wykona się tylko raz
Jak podciągniesz wszystkie wejścia do '+' to masz dla nich jedynkę. Nie napisałeś żadnego warunku, co się stanie jak jest "1", więc nic się nie zmienia: If Pind.0 = 0 Then Portb.0 = 0 ;tutaj dla "zera" If Pind.1 = 0 Then Portb.0 = 1 ;tutaj tez dla "zera" Ponieważ piny są podciągnięte do "1", żaden z tych warunków się nie wykona, czyli nadal będzie "0"....
http://obrazki.elektroda.pl/4254374100_1... Witam. Od dłuższego czasu zastanawialiśmy się z kolegą mlassota nad zaprezentowaniem naszych LedCube’ów na forum, aż w końcu zdecydowaliśmy się. Niestety na forum jest niewiele takich projektów, a my chcieliśmy mieć kostkę 4x4x4, w której matryca byłaby bezpośrednio połączona z płytką...
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...
Napisz podprogramik migniecia dioda i wywołuj go po każdym warunku sprawdzającym czy jest wciśnięty przycisk.
Witam, Mam mały problem nie wiem jak poprawnie napisać kod załączania i włączania pętli for w Bascomie napisałem taki kod ale pętla wykonuje się aż skończy się warunek [syntax=basic4gl]Dim I As Byte I = 1 Dim Adres As Byte Dim A As Byte Do If Pinb.6 = 0 Then For Adres = 100 To 200 Step I Cls Lcd Adres Waitms 250 Next Adres End If Loop[/syntax][/code]
Dodajesz pamięć zdarzeń, tzn na jakimś bicie oznaczasz sobie, czy ostatnio liczyłeś w górę, jeśli tak to zmieniasz znak bajtu i liczysz w dół; jednym słowem: BANAŁ może i nie jest to trudne, ale ja dopiero raczkuje w bascomie :) można prosić o przykład Dodano po 1 odpowiedz naprowadziła mnie na pewien pomysł, ale nadal nic z tego :( Zamieszczę swoje...
Witam Chciałbym przy użyciu dwóch przycisków ( nawet jednego, bo pewnie tak się da ) zmieniać czujnik DS18B20, a właściwie wskazania które pokazuje. Mam dwa układy DS18B20 i przy założeniu ( teoretycznym ), że mam mało miejsca na wyświetlanie, więc dobrze by było mieć możliwość zmiany ( na przemian jednym przyciskiem lub dwoma - pierwszy-drugi ). Samo...
.... config pinc.1 = input set portc.1 declare sub we declare sub wy do if pinc.1 = 0 then gosub we end if loop end sub we DDRB = &B00000000 DDRC = &B00000000 DDRD = &B00000000 do if pinc.1 = 0 then gosub wy end if loop end sub sub wy DDRB = &B11111111 DDRC = &B11111101 DDRD = &B11111111 do if pinc.1 = 0 then gosub we end if loop end sub Na szybko...
https://obrazki.elektroda.pl/8025280500_... Witam! Przedstawiam wam w pełni automatyczną domową windę osobową! Jest to mój największy, najbardziej skomplikowany, i najdroższy projekt którym chwaliłem się jakiś czas temu w dziale „DiY w budowie”. (https://www.elektroda.pl/rtvforum/viewt... Na początku...
Witam, Jak napisać kod programu matrycy 4x4 tak aby 12 przycisków pracowało jako typowa klawiatura matrycowa ,a pozostałem 4 spełniały inną funkcję w programie ?
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 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, 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
Witam, na początek powiem ze jestem początkujący, więc prosze o wyrozumiałość. Problem w tym jak napisać programu który by za pomocą przycisków przesuwał tekst w prawo/lewo, lub góra/dół. Dołączam kod programu który napisałem i zdjęcie z proteusa. Z góry dzięki. http://obrazki.elektroda.pl/9491384700_1...
Witam. Jak napisać menu (np. 4 poziomy x 4 funkcje) W sieci jest kilka przykładów, ale wydają mi się strasznie skomplikowane. Do obsługi mam 5 przycisków: LEWO, PRAWO, MENU, POWRÓT i OK. Lewo i prawo to bez problemu (INCR/DECR), ale teraz chciałabym zatwierdzić konkretny wybór przyciskiem OK i przejść dalej, albo cofnąć o jeden krok przyciskiem POWRÓT....
Dokładnie tak też to robię ale silnik staje i ponownie rusza.
Witam, Podczas pisania programu menu wyskoczył mi taki mały problem , może najpierw przedstawię kod [syntax=basic4gl] Config Pind.3 = Input Set Portd.3 Memo Alias Pind.3 Config Pind.4 = Input Set Portd.4 Smulti Alias Pind.4 Dim Nr_menu As Byte , Klucz As Bit , Step_ As Byte , Vfoab As Byte Nr_menu = 0 Do Cls Lcd Lookupstr(nr_menu , D_menu) On Nr_menu...
Witam. Czy mógłby ktoś podać jakiś dobry sposób na odczyt stanu przycisków, najlepiej jakiś kawałek kodu w bascomie.
Witam wszystkich.Zacząłem naukę programowania (Bascom),więc proszę o wyrozumiałość. Napisałem taki program zegara RTC z kwarcem 32768Hz i nie wiem jak dopisać mam guziki do ustawiania budzika.Siedzę dwa dni i nic mi nie wychodzi.Polski help i książka Marcina Wiązani w tym przypadku jakoś mi nie pomaga.Oto kod źródłowy: $regfile = "m8def.dat"...
Witam, Zamierzam stworzyć menu w którym będzie można ustawiać używając 3 przycisków temperaturę. Napisałem taki kod: $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...
Witam, Mam mały problem z napisaniem kodu tak aby ten program uruchamiał się za pomocą przycisku [syntax=basic4gl]Config Pinb.1 = Output 'linia pb1 jako wyjście Config Timer0 = Timer , Prescale = 256 'deklaracja timera jako czasomierza On Timer0 Przerwanie_co_2ms 'deklaracja jaka etykieta obsługuje Led Alias Portb.1 'alias dla wyjścia b.1 Dim Licznik...
https://obrazki.elektroda.pl/5625735500_... https://obrazki.elektroda.pl/5938892800_... https://obrazki.elektroda.pl/3855285300_... Witam. Postanowiłem wykonać sterownik do ogrzewania postojowego firmy Webasto. Same sterowniki analogowe są dość drogie - to około 700 zł. Można szukać kompletnych zestawów...
Z przyciskiem żółtym nie ma problemu - jeden pin do masy, a drugi do procka i załatwione (jak przyciśnięty to zwarty do masy). A z pozostałymi robisz tak ... najpierw rysunek: http://obrazki.elektroda.net/56_12521055... Dwa piny procka podłączasz do punktów A i B - to będą "wyjścia". Dwa piny procka podłączasz do X i Y - to będą "wejścia". Krok T1:...
Nie testowałem tego dokładnie, ale nie powinno być problemu. Tam jest AT90USB162 co oznacza, że oprogramowanie można wymieniać przez USB jako DFU (programem FLIP). Oryginalne oprogramowanie które znajdziesz w Atmel Studio ma chyba tylko jeden numer seryjny i do procy z Bascom trzeba mu włączyć filtr. Potem żeby pracował z powrotem ze Studio to filtr...
http://obrazki.elektroda.pl/8305155600_1... Witam! Jest to moja pierwsza konstrukcja na forum, więc może się przedstawię. Mam na imię Sebastian, jestem uczniem 2 klasy LO w Kielcach. Projekt, który dziś prezentuję to minutnik pracujący w dwóch trybach (o tym za chwilę). Powstał z potrzeby odmierzania i sygnalizowania danego czasu na...
seja4321 Napisałem kilka linii kodu ,jest to jedno z możliwych rozwiązań twojego problemu z przyciskiem . program przetestowałem. Moja rada to testuj program na kilku kilkunastu sekundach. powodzenia. Dodano po 46 Nie rozumiem dlaczego seja4321 został skarcony przez LordBlick, przecież pisze w dziale początkujący? Co do kodu, to jest dziwny, Piszesz...
[syntax=vbnet] ...... Do Debounce S1 , 0 , Pr1 ,Sub Loop End ' koniec pętli Pr1: Waitms 100 Serwo(1) =150 Waitms 150 Serwo(2)=250 Waitms 200 Serwo(2)=50 Waitms 250 Serwo(1)=50 Wait 1 Serwo(1)=150 Waitms 100 Serwo(1)=50 Wait 1 Serwo(1)=150 Waitms 100 Serwo(1)=50 Return [/syntax] Przy takim kodzie serwa działają jak bym chciał tylko procesor wykonuje...
Witam Elektrycznie jak najbardziej poprawnie - wszystko podciągnięte. Zegar wewnętrzny 8 Mhz Zmieniłem koncepcje programu i juz nie obserwuje zjawiska. poprzednio miałem 3 instrukcje wyboru select case select case zmienna1 case 1: . end select select case zmienna2 case 1: . end select select case zmienna3 case 1: . end select W zależności...
Żeby układ sam się resetował przy włączeniu zasilania , to opornik dajesz do plusa i kondensator z pinu reset do masy.
Żeby zrobić za pomocą Timera - to nie możesz używać trybu PowerDown tylko Sleep - żeby właśnie Timery mogły działać to po pierwsze. W taki trybie jednak będziesz miał nieco większy pobór prądu niż w pełnym PowerDown. Więc wszystko zależy na ile ma wystarczać bateria o ile jest to coś zasilane z baterii. Bez PowerDown'a na pewno będzie to sporo krótszy...
Cześć. Szukam sposobu, aby za pomocą dwóch wejść - K1 i K2 podciągniętych do VCC inkrementować zmienną (kejsy 0 i 3), ale na kilka różnych sposobów tzn: Sposób 1 - Dwa osobne przyciski lub przełącznik 2 pozycyjny. Dodano po 43 Tak, to część kodu. (Odpowiedź na usunięty wpis :) ) Rozwiązanie które podałeś załatwia sprawę sterowania włącznikiem stabilnym,...
Wszystko gra tylko co zrobic żeby przyciskiem S2 odejmowac?
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...
Dzieki Chris_W ale moja wiedza nie bardzo mi pozwala na skorzystanie z Twoich rad. Szukałem w helpie o tablicach ale nie wiele się dowiedziałem. Sam wykombinowałem coś takiego jak poniżej nie wiem czy to lepiej czy gorzej ale w symulacji chodzi tylko dużo zabiera pamięci. Może zapodał byś kawałek kodu na swój sposób to bym przy okazji poćwiczył z tablicami....
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...
Witam Mam problem z odczytem zwyklego przycisku na tej atmedze. podlaczenie: gnd +rezys 10k+port.d=2 nastepnie podaje przyciskiem +5v na port.d2. kod: config PORTD.2= input config pinb.5=output set PORTD.2 . . Do if PIND.2=1 then waitms 30 if PIND.2=1 then Toggle pinb.5 end if end if loop Przycisk zapala diode ale jej nie gasi w/g mnie nie wraca do...
Fajne sposób ale wolałbym coś bez timera. Dałoby rade?? Bo timera używam do zegarka. Bo w moim programie chodzi o to by przełączać tym przyciskiem miedzy pokazywanie temperatur a zegarkiem. Jeszcze mam pytanie po wciśnięciu switcha zmienia sie stan z 1 na 0 na portd czyli i na pind.4, tak?? A czy on potem wraca do stanu 1? Sory za takie pytania ale...
2. Gdy ustawisz na pinie stan niski a następnie przyciskiem zwierasz do plusa to powstanie zwarcie. Masz takie możliwości: 1. Robisz tak jak prawie wszyscy czyli włączasz wewnętrzny rezystor pullup w atmedze i przyciskiem zwierasz do masy. 2. Dodajesz zewnętrzny rezystor pulldown (ponieważ atmegi nie maja wewnętrznego) i przyciskiem zwierasz do plusa....
Mam problem z zaprogramowaniem procesora, ściślej chodzi mi o napisanie programu pod niego w Bascomie . Jestem zielony w tym języku i proszę o podanie mi wyjaśnienia komend jakie w tym języku występują. Prydał by się kod źródłowy do jakiegoś prostego programu np. migacz led z jakimś tam przyciskiem po naciśnięciu będzie następowało najpierw miganie...
Tak naprawde to potrzebuje to przeliczyć na milisekundy od momentu zaświecenia do zatrzymania przyciskiem licznika taktów. Wynik powinienem mieć w milisekundach. W sumie zakłądam że max to będzie kilka/kilkanaście sekund. Czyli rozumiem że jak mam np kwarc 1 MHz to po sekundzie jest 1000 000 taktów zegara. Jak to przeliczyć na ms?
Nie bo gdy wchodzę do menu to przyciskam tym przyciskiem i taka sytuacja się nie dzieje.
WITAM Mam problem, nigdzie nie moge znalezc termostatu na DS1820. Temperature wlaczenia i wylaczenia powinno sie ustawiac przyciskiem GORA, DOL. Jesli ktos widzial cos podobnego to prosze o link ewentualnie jakis listing w BASCOMie. Wielkie THX
funkcje juz działają a teraz chciałbym drugim przyciskiem sterować szybkością czy można te dwie instrukcje tak połączyć ?? co proponujecie jakie rozwiązanie ?? $regfile = "attiny2313.dat" 'najpierw określamy typ proca $crystal = 1000000 'definiujemy z jakim taktowaniem będzie pracował Config Portb = Input 'port b jako wejścia Portb = &B11111111...
wader kod od ciebie nie działa , od macka działa po mojej modyfikacji działa pięknie :D (cały czas testuje i chodzi ok) Teraz chce zrobić sterować przekaźnikami czasowymi też tym samym przyciskiem jak by ktoś pomógł byłbym bardzo wdzięczny ma działać tak : -naciśnięcie przycisku chwyta 1 i 2 przekaźnik i 1 odlicza czas od 0-20 sek następnie rusza silnik...
Witam... Napisałem program w Bascom dla ATTiny13 do obsługi odbioru RC5. Mam pewien problem i nie wiem z czym jest on związany. pierwsze dwie pętle DO...LOOP zapamiętują przyciski (zmienne K1 i K2) trzecia petla DO...LOOP sprawdza czy został wciśnięty któryś z zapamiętanych przycisków na pilocie. (K1 lub K2) program działa bez zarzutu gdy się wciśnie...
Program to Bascom i po kompilacji przyciskiem F7 naciskasz Run Programmer czyli F4. Program do ściągnięcia z www.mcselec.com
proszę o pomoc jestem totalnie początkującym i robię sterownik do swiateł jestem na etapie pisania programu a dokładnie wyboru programu z menu mam coś takiego i działa ale tylko na jeden przycisk i dodaje mi wartość +1 ale chce żeby drugim przyciskiem odejmować Do If Pinb.5 = 0 Then Waitms 100 If Pinb.5 = 0 Then A = A + 1 If A > 4 Then A = 1 End...
Spróbuj zrobić tak Co4ms: 'procedura obsługi przerwania od Timera T/C0 wykonywana co 4ms Timer0 = 6 'załaduj do Timera0, żeby zliczył 250 (=256-6) impulsów Incr Licznik If Licznik = 6 Then 'zmienna Licznik liczy do 6 aby Licznik = 0 'sprawdzanie stanu przycisku następowało If Pind.0 = 0 Then 'co ok.24ms If Pomoc = 1 Then 'jeśli zmienna Pomoc...
Podłączę się trochę pod temat chodzi mi też o menu. Mianowicie robię obrotomierz z ustawianymi progami alarmów jak zrobić w menu ustawianie kiedy trzymam wciśnięty przycisk to zmieniają mi się nastawy najpierw o jeden, jak trzymam dalej przycisk to zaczynają się przestawiać o dziesięć następnie o sto. Bo klikać przyciskiem 1200 razy to raczej średnia...
Każda metoda jest dobra jeżeli prowadzi do celu tak to jest na wolnym rynku ;-).Z tym sobie poradziłem ... ale teraz pracuje nad przyciskiem CLS w kodzie , którym kiedy napisałeś :-)
Witam Chodzi o Bascom AVR, MCU-tiny13. Myślę, że schematu nie potrzeba do takiego układu. PB.0 dioda 1, PB.1 dioda 2. Program mam już do odbioru RC5, zapala i gasi diodę 1 przyciskiem. Chciałbym zrobić by tym jednym przyciskiem zapalić i gasić diodę, która by migała. A drugą diode przyciskiem 2 zapalić i gasić tak aby zapalała się i gasła powoli (łagodnie)...
Może sam spróbuj ;-) Tak w zarysie : w pętli głównej musisz dodać warunek: jeśli przycisk wciśnięty to zwiększ zmienną "czas" o 1 jeśli puszczony to zmienna "czas" =0 następnie: jeśli zmienna "czas" = 123 (dla przykładu, bo nie wiem jak szybko ta pętla przebiega) to : zmień tryb pracy (to masz strasznie napisane, więc trudno ogarnąć)...
Standardowy błąd początkującego. Nie włączone wewnętrzne podciąganie (pull-up) na wejściach na których są switche.
sterowanie przyciskiem bascom bascom jednym przyciskiem bascom sterowanie przyciskiem
wymiana grzałki czujnik pralka bluesoleil sterownik
rtvforum topic17565 amator dss101
GDH-C7222-MB Allwinner F1C200S Car Stereo Board: Firmware, Faults, and Compatible Models Lenze falownik cE5 – błąd komunikacji CAN, BUS-OFF, diagnostyka 8400, i500, ECS