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...
Nie rozumiem po co dioda LED ukazująca stan nawiewu jest podłączona do osobnego pinu. Nie ma takiej potrzeby, a nawet jest to nie wskazane. Stan wejściowy pinu portu D, nawet kiedy w DDRD jest on ustawiony jako wyjście, można odczytać z rejestru PIND, natomiast wyjściowy z PORTD - tak, ten rejestr można również odczytywać. Nie programuję w Bascom, ale...
Przyciski powinny zwierać do masy i mieć ustawione wewnętrzne pull-upy lub w aktualnym układzie (czego się nigdy nie robi) mieć zewnętrzne rezystory pull-down.
Witam, tu w Zegarek docelowo będzie używany przez dziewczynę, więc musi być przejrzysty. - to już szowinizm...
instrukcja Pinx.y służy do odczytu stanu portu natomiast Portx.y do ustawienia stanu na porcie
Ten drugi pomysł jest moim zdaniem lepszy. Do tego możesz użyć końcówki przerwania INT - ma konfigurację zbocza, którym jest wyzwalane przerwanie.
Wiec zrobiłem to tak: [syntax=vbnet] Dim Piloty As Byte Dim Old_piloty As Byte Dim Klawisze As Byte Dim Old_klawisze As Byte Dim Licznik_kasuj As Byte Dim Flaga_kasuj As Bit Zeruj_klawisze Alias 250 Zeruj_piloty Alias 0 Klawisze_1 Alias Klawisze.0 Klawisze_2 Alias Klawisze.1 Klawisze_3 Alias Klawisze.2 Klawisze_4 Alias Klawisze.3 Klawisze_5 Alias Klawisze.4...
A czytasz co napisałem wyżej ? Problem polega zapewne na tym, że przyciski nie są podciągnięte ani fizycznie ani programowo do + , czyż nie o to chodzi kolego piotrva? PS. Napisałem 'podciągnie' -literówka
W C to bym ci nawet pokazał jak to zrobić, o BASCOMie nie mam pojęcia i nie chcę mieć :) Swoją drogą lepiej porzuć tą ciemną stronę mocy i przejdź na stronę światła :)
odczytujemy stan przycisku np : instrukcją IF pinc.4 = 0 then ( tu wstawiamy co ma program zrobić ) najlepiej wstawić jakiś podprogram który zadziała jako stoper zadeklaruj sobie podprogram np: stoper po naciśnięciu przycisku wywołasz podprogram stoper w podprogramie stoper umieścisz jak ma działać stoper declare sub stoper do IF pinc.4 = 0 then call...
Tak na szybko: Nie: If Portd.2 = 0 Then Liczba = Liczba + 1 Tylko: If Pind.2 = 0 Then Liczba = Liczba + 1 Zamiast tej plątaniny: If Liczba = 0 Then Reset Portb.0 Set Portb.1 Reset Portb.2 Reset Portb.3 Reset Portb.4 Reset Portb.5 Reset Portd.0 Elseif Liczba = 1 Then Reset Portb.0 Set Portb.1 Reset Portb.2 Set Portb.3 Reset Portb.4 Reset Portb.5 Reset...
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...
Robisz sobie dwie zmienne: blokada i aktywność. Blokada jako prosta wartość 0 lub 1: jeśli blokada jest założona i wykryjesz, że oba przyciski są naciśnięte, to ustawiasz blokadę na 0 (i aktywność na 0, dodatkowo można dać opóźnienie, aby nie uwzględniać naciśniętych przycisków dalej). Jeśli blokada jest zdjęta, to robisz wszystkie testy, dodatkowo...
Nastepnym razem napisz jaki masz blad, na moje to zapis powinien byc i=i+1 oraz i=i-1
Proponuję przy aliasach przycisków wpisać nie port a pin, bo to są wejścia. No i faktycznie aby stany na wejściach nie szalały podciągnąć wejścia do plusa. Moze być np. tak: regfile = "m8def.dat" $crystal = 1000000 Config Portd = Output Portd = &B00000000 Config Pinb.0 = Input Config Pinb.1 = Input Led1 Alias Portd.1 Led2 Alias Portd.2 S1...
Jeżeli przycisk miałby podciąganie to zawsze byłby w trybie gaszenia a po wciśnięciu i zwarciu do masy 0 czyli tryb rozjaśniania tu mi już coś nie pasuje! Dodano po 20 [syntax=basic4gl]$regfile = "m8def.dat" $crystal = 16000000 Config Pinb.1 = Output Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Disconnect , Prescale =...
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...
Witam ! do dioda1 = 1 If przycisk1 = 1 and prycisk4 = 0 then dioda1 = 1 waitms 2 dioda1 = 0 waitms 20 end if loop itp. to początek resztę spróbuj sam Powodzenia życzę Stefan . GG6293398
Kod jest już poprawiony. Ten działa w 100% Na pewno nie będzie działał brak zakończenia dwóch warunków w pętli Do -Loop oraz coś bardzo ciekawego : [syntax=basic4gl]Config Rc5 = Pind.2 If Command = 16 Then Portd.2 = 1 [/syntax] Najpierw deklarujesz jako RC5 a potem zmieniasz na nim stan ? . Coś mi się wydaje że za bardzo nie wiesz jak się do tego zabrać...
Miałem kiedyś jakąś potrzebę na taki 8-o przyciskowy program dla attiny2313. Zamieszczam go w całości z komentarzami, może Ci się przyda: [syntax=basic4gl]$regfile "attiny2313.dat" $crystal = 1000000 '-- Config Portb = Input Portb = &B11111111 Config Portd = Output Portd = &B00000000 Config Porta.0 = Output Porta.0 = 0 Dim Nr As Byte 'licznik...
U mnie twój program działa bez problemu :D . Może to wina zakłóceń.
Cóż, nie jest to znana mi metoda obsługi enkodera, ale chyba ciekawsza... Natomiast nie widzę tu operacji na przerwaniach.... To prawdopodobnie powoduje błędy, chyba, że się mylę. Ale enkodery to zawsze zagadka dla mnie były więc wiele nie pomogę.. Pozdrawiam.
Wejście (pin procka PORTB.0) programujesz jako wejście . Ustawiasz wysoki poziom tego wejścia , tak aby naciśnięcie przycisku (zwarcie do masy) wymusiło niski poziom na tym wejściu , wykrywany przez program jako If PINB.0 = 0 Then ' coś do wykonania (naciśnięty przycisk)
Witam. Jak zrealizować w Bascomie inteligentny przycisk tzn. Nacisnę go raz to wyświetla mi np. temperaturę max i min, i tak za każdym razem, a gdy przytrzymam go dłużej to resetuje mi tą wartość. Opcja taka jest często spotykana np. w samochodach. W moim Punto jest tak że jak raz naciskam przycisk na desce rozdzielczej to zmieniam opcję wyświetlania...
Witam. Mam urządzenie zbudowane na Attiny2313 które jest sterowane za pomocą przycisków, poniżej zdjęcie : http://img389.imageshack.us/img389/8693/... Chciałbym zamiast tych switch'y użyć Atmegi8 do sterowania urządzeniem, lecz nie wiem za bardzo jak podłączyć i skonfigurować porty. Punkt A (patrz zdjęcie) podłączyłem do PD.1 Atmegi. Jak widać,...
.... 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...
Ojojoj, dawno nie widziałem takiego kodu. Bez urazy, ale ten Twój - mimo, że poprawny - nie jest zbyt rozsądny. Podprogramy tworzy się tylko, gdy jakaś procedura się powtarza - tu nie ma takiej potrzeby. Przykład z SUB znajdzie w help-ie. Od siebie daję przykład obsługi menu przez klawiaturę. Tutaj tylko 2 przyciski (PD0, PD1). Reakcja = Pind Shift...
Witam,zaprogramowałem atmeg8 takim programem $regfile = "m8def.dat" $crystal = 1000000 Config Portb = Output Portb = &B0000000 Config Portc = Output Portc = &B0000000 Config Portd = Input Set Portd.7 Do If Pind.7 = 1 Then 'jeżeli przycisk 1 wciśnięty Waitms 50 'czekaj sekundy Portc.5 = 1 'zaświeć diodę Waitms 100 'czekaj dwie sekundy Portc.4...
jestem bardzo początkujący więc pewnie pytanie będzie banalne :-) szukałem na różnych forach, próbowałem i nie wiem gdzie wrzucić w kodzie 2 przycisk... idea programu ma być taka: po włączeniu zasilania pojawia się na wyświetlaczu "witaj" i po naciśnięciu przycisku 1 mierzy napięcie (kolejne naciśnięcie=kolejny pomiar). I do tego miejsca wszystko działa....
Po pierwsze pozbądź się waitów, po drugie przerwania. Podam hasła do opracowania: Timery - odmierzanie czasu, przerwania, timing zdarzeń Przyciski - podciąganie, odczyt z rejestru PINn
Program wykona się tylko raz. Jeżeli naciśniesz odpowiedni przycisk i przytrzymasz go do momentu az uruchomisz uc to odpowiedni warunek zostanie sprawdzony i wykona się odpowiednia akcja
i odrazu po wait'cie daj ponowne sprawdzanie przycisku czy jest wcisniety
Nie ma opcji byś utrafił obydwa przyciski na raz. A nawet jeśli jakimś cudem utrafisz to wykona się ten, który akurat będzie nadchodził w pętli głównej. Możesz także wszystko co masz w podprogramie wpisać w instrukcję IF..END IF sprawdzając czy przypadkiem drugi pin nie ma stanu wciśniętego przycisku.
Wiem. Poprawię go
Witam! Ja zwykle robię od razu tak: [syntax=basic4gl]Config portd = &b00001111 Portd = &b11110000[/syntax] W ten sposób łączę konfig i ustawienie pullup . W języku BASIC nie zaleca się oddzielania instrukcji dwukropkiem, zamiast: [syntax=basic4gl]If Pg = 0 Then Kier = 0 : Gosub Ruch_key End If[/syntax] Lepiej zapisać tak: [syntax=basic4gl]If Pg = 0...
Zobacz, że program w pętli nieskończonej będzie trafiał na wait 60 i tam się zatrzymywał, co uniemożliwi odczytanie stanów przycisków.
F4, wybrać typ procesora tak jak pisali koledzy wyżej i kliknąć to: http://obrazki.elektroda.net/9_125426753... A potem kliknąć „Write Buffer to flash ROM" (jest 2 przyciski w prawo).
Możesz to zrobić na funkcji Wait ale musisz inkrementować jakąś zmienną a w między czasie sprawdzać przyciski .
Ale nie blokuje przerwań. Przycisk przenieś na PD2 lob PD3, ustaw zezwolenie obsługi przerwań i przerwania zewnętrznego, ustaw obsługę tego przerwania np. on INT0 ustaw_flage ustaw_flage: flaga=1 return i wpisz zamiast: "If Pinb.0 = 0 Then" "If Pinb.0 = 0 or flaga=1 Then" P.S. Ale obsługi Timerów powinieneś się tez nauczyć.
Chodzi Ci o zapalanie diody stanem niskim? Musisz ustawić kierunek pinu na wyjście i wpisać do niego 0. Tylko tyle:) P.S. Sprecyzuj, czy chodzi Ci o zapalanie diody, czy obsługę jakiegoś przycisku, po naciśnięciu którego dioda ma się zapalić.
To może inaczej, czy podłączysz łaskawie tego switcha między masę a portb.1 ?
przenies trzy linijki: Cls Lcd "PROGRAM GLOWNY" Do o 3 linijki w góre albo dodaj jakies opóźnienie po set enter ogółem rzecz biorąc to takie coś (detekcja przycisku zaraz po resecie) też nie chciała mi działać (AT89C4051) zawsze trzeba było dawać opóźnienie lub zapętlić
Użyj przerwania timera do migania diodą, a najlepiej do wszystkiego (czyli również do sprawdzania stanu przycisków).
Hej! Nic nie zapomniałem :) , tylko poprostu zawsze korzystając z przycisków podciągam wejscie pod plus 5V (Rezystor 10k). Z praktyki przekonałem się że jest to o wiele pewniejsze rozwiązanie niż ustawianie programowo stanu wysokiego. Pozdrawiam
Dziękuję bardzo za pomoc :) jeśli nie na błędach to na czymś się trzeba uczyć a czy jest coś lepszego niż dobry przykład? Wszystko działa świetnie. Dziękuję jeszcze raz i Pozdrawiam!
Drgania styków i ich eliminacja - poszukaj, poczytaj. Domniemam że impulsy nie pochodzą z innego układu cyfrowego ale z przycisku;-)
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...
Witam zaczynam programować i mam problem.Potrzebuje zaprogramować atmege8. Założenia po załączeniu przycisku ma dać stan niski i po jakimś czasie ma ponownie dać stan wysoki 2 razy. $regfile = "m8def.dat" $crystal = 8000000 Config Portd = Output Config Pinb.0 = Input Przycisk Alias Pinb.0 Do Portd = &B11111111 Przycisk = 0 Waitms 30 Portd = &B00000000...
Witam, Próbuję moich sił w programowaniu w bascom'ie. Chciałbym zaprogramować atmega8 tak aby podczas przyciskania przycisku zapaliła się dioda i na wyświetlaczu pojawił się napis. Jeżeli przycisk nie będzie naciskany to dioda się nie powinna świecić a napis powinien się zmienić. Co jest nie tak w moim programie? Proszę o zapoznanie się, z TYM tematem....
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...
Wielkie dzięki za chęci ale jestem jak osesek jeżeli chodzi o programowanie i Bascom jest dla mnie najłatwiejszy nie korzystam z PonyProg-a. Pozdrawiam Bogdan
Biblioteka jest płatna, ale jak dobrze poszukać. (Użyj przycisku szukaj.)
Ach, no tak. Język to bascom a procek np. atmega8
To prędzej mnie zaćmiło. Dzięki.
Do obsługi przycisków w Bascomie służy "DEBOUNCE"
Jesteś jak Picasso w Bascomie. Działa tak jak powinno. pytania: co to Boolean oraz dlaczego lepiej zczytywać stan przycisku zwierając do masy ?
Jakoś nie widzę żebyś tu korzystał z przerwania od Timera... Bo nie musisz ;p mogłbyś pokazać jakiś przykład obsługi przycisku w przerwaniu timera ? Nawet jakiś URL do innego projektu. Więc chyba oczywistym jest że ten fragment kodu należy umieścić w przerwaniu od Timera.
Witam, mam taki problem. program wg mnie powinien po przekroczeniu ustalonej temperatury wyswietlac na LCD napis, wlaczac Buzzer oraz zapalic diode. A po nacisnieciu przycisku wyłaczyc to wszystko. I problem jest taki ze wylacza wszystko oprocz diody. Tzn po wlaczeniu sie alarmu dioda wogole juz nie gasnie ani po obnizeniu temperatury ani po nacisnieciu...
Zastanów się, ile czasu zajmie użytkownikowi zadanie urządzeniu stu tysięcy zmian stanu wyjść. Pomyśl też nad żywotnością przycisków pilota.
Będę Ci niezmiernie wdzięczny. Nie było tam tez np źródeł w Bascom do tego?
To sobie zmień const Rc_id = 5 na const Rc_id = 0. Ta stała to takie zabezpieczenie aby układ nie reagował na inne piloty.Powinno zadziałać. Program narazie tylko odbiera dane, ale ich nie interpretuje. jak wszystko zadziała to daj znać. Powinno w dolnej lini wyświetlacza wyświetlać numery odebranych przycisków, adres będzie stały. Czasu też narazie...
Dzięki ;) Faktycznie, kasowanie flagi przerwań pomogło. Jedna linijka załatwiła problem. Co z tym przyciskiem zerującym ? Jakaś podpowiedź ?
Zapomniałem napisać mikrokontroler Atmega8
Odpuść sobie BASCOM, jak już coś robiłeś w Bascomie to czas na przesiadkę na C. A jak nie to tym lepiej, nie będziesz miał złych nawyków. A tak poważnie, jak zaczynasz przygodę z mikrokontrolerami, obojętnie w Bascomie czy w C czy ASM, zacznij od najprostszych rzeczy, jak np sterowanie diodą LED, stanu przycisku. Inaczej zajedziesz się od razu i stracisz...
A może by tak: Config Portc = Input
Disable INT0 w przerwaniu nic złego nie zrobi. Należy tylko pamiętać aby we właściwym miejscu je włączyć, tutaj ja polecam na końcu przerwania, a nie w głównej pętli programu. Bo nigdy nie wiadomo w którym momencie pętli głównej wejdzie się do przerwania (a może wejść np po komendzie enable int0, potem wychodzi z przerwania z wyłączonym int0 i jest...
Fnkcja LOAD robi przeliczenia za ciebie. Jeżeli użyjesz Timerx = y to będziesz musiał sam poodejmować. Najlepiej przenieś zmianę stanu portu do przerwania, a w pętli głównej daj tylko wyświetlanie i obsługę przycisków.
Witam. 1./ Jeżeli definiujemy piny jako wejście najlepiej używać instrukcji config pinb.0=input ' przycisk pierwszy config pinb.1=input ' przycisk drugi config portd.0=input ' pin sterujący diodą LED 2./ Podłączenie przycisków do plusa zasilanie tak jak w tym kursie jest złe. przyciski powinny być podłączone do masy. Po prostu przycisk po wcisnięciu...
Być może bascom'owe instrukcje obsługi lcd nie patrzą na kierunek w jakim działa port, tzn. w w funkcja "Config Lcdpin" ustawia wybrane porty jako wyjścia a pozostałe instrukcje obsługi lcd nie sprawdzają czy to się nie zmieniło. Spróbuj przed instrukcjami od lcd czyli przed obydwoma "cls" ręcznie przestawić wyprowadzenia uC jako wyjścia. Druga sprawa...
Jeśli masz dostępny jakiś wyświetlacz to zbuduj układ i zaprogramuj go kodem z helpa bascomu (zamiast Print Address ; " " ; Command wpisz LCD Address;" "; Command , oczywiście najpierw skonfiguruj wyświetlacz). To pozwoli Ci poznać adresy przycisków...
Przede wszystkim musisz zacząć kolego od poznania timerów. Do odmierzenia czasu używamy timerów ponieważ zlicza nam czas w tle działania procesora. Używając polecenia wait zatrzymujesz kompletnie uC na ten czas. Konfiguracja dla AtMega8 8Mhz u mnie wygląda tak: Config Timer1 = Timer , Prescale = 256 ''''konfiguracja timera On Timer1 1s ''''przy przerwaniu...
[syntax=vbnet]Automatycznie2: Locate 1 , 1 Lcd " Tryb Automat. " Locate 2 , 1 Lcd "Aktualnie: PR:2" Prog1 = 0 Prog2 = 1 Prog3 = 0 Prog4 = 0 Prog5 = 0 If Cofn = 0 Then Goto Wybor Else Dim Odlicz As Byte Odlicz = 120 Do Wait 1 Decr Odlicz If Cofn = 0 Then Goto Wybor Loop Until Odlicz = 0 Goto Automatycznie3 End If[/syntax] Możesz nawet zwiększyć czułość...
Hello to all programmers, Can anybody hint me with a routine for Bascom AVR ? Here is the idea: LCD 16x2 is connected and must display the choice Menu for selecting a constant (i.e variable constant) by UP/DOWN buttons - from 1 to 150 , and then store it with third button.Constant is displayed as number, which is increased or decreased by the buttons....
To piszczenie ma być tylko wtedy gdy czujnik temperatury nie będzie odpowiadał tzn gdy np zostanie uszkodzony lub odłączony od magistrali 1-wire. To miało być jako taka informacja że coś się dzieje z czujnikiem. To w takim razie jak to zadeklarować jako podprogram lub tą funkcję do obsługi przycisków??
Wracajac do tematu czy moglbym prosic przynajmniej o pseudo kod obslugi przykladowo drgania w przyciskach , wysterowania przekaznika np przez 2s oraz komunikacji 1wire jednym timerem (atmega8 ma az 2 timery wiec pewnie szybko skoncza sie jego mozliwosci chcac napisac kod bez zatrzymywania) Cały dowcip polega na tym że z tego 8 bitowego timera możesz...
Jeżeli fusy przełączono na 1111 to trzeba sprawdzić sprawność i podłączenie kwarcu (i zbadać najlepiej oscyloskopem lub sondą w. cz. przebieg na XTAL2). Nie należy zapominać o kondensatorach przy kwarcu (ok. 33pF) zgodnie z notą katalogową. Jeżeli dalej będzie nie tak należy do XTAL1 podłączyć dowolny generator zewnętrzny o częstotliwości kilku MHz...
Fajny projekt, może komuś się przyda bądź zainspiruje do stworzenia własnego sterowania. Sam ostatnio potrzebowałem takiego sprzętu do emulacji klawiatury PC, ale u mnie zamiast przycisków jest pilot podczerwieni w standardzie NEC. Można skonfigurować różne przyciski, wgrać program i testować. Potrzebowałem takiego rozwiązania do sterowania systemu...
Dokładnie o to mi chodziło, tylko dlaczego nie mam przycisku "pomógł"
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.
Poza tym jest to funkcja jeśli a nie gdy
Witam Chcialem wykorzystac pin 1, port Pc.6 (reset) do wykrywania nacisniecia przycisku. Jak w Bascom powinien wygladac przykladowy program ?
To się nie robi jak myślisz. Najprościej jest zrobić to na "przepełnieni" licznika czyli jak doliczy do zera. Na początku ustawiasz mu np. 64287 i podział przez 256. Po dokładnie 0,01s nastąpi przepełnienie i włączenie przerwania. W przerwaniu pierwszą rzeczą jaką musisz zrobić jest ponowne ustawienie licznika na 64287. Jak chcesz jednocześnie sprawdzać...
A jak podłączyłeś przycisk TOW do portu ? Standardowo ustawiamy port jako wejściowy i podciągamy go do plusa przez rezystor wewnętrzny a przyciskiem zwieramy do masy. Dodano po 4 Wystarczy wtedy uznajemy TOW jako aktywny z poziomem logicznym zero. Czyli zmienić tam gdzie TOW=1 na TOW=0 Jak przycisk jest wciśnięty to mamy zero jak wolny to jeden
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....
Jeżeli skaczesz do podprogramu Dalej to mozę potem z niego powróć a nie skacz z niego ponownie do Klaw z którego to Dalej został wyzwolony. Dodatkowo możesz zwiększyć stos bo często przez niego program sypie się na podprogramach. Sugeruję również w danej chwili ustawienie tylko jednej nóżki jako wyjście gdyż jak u ciebie gdy 3 są wyjściami i na nich...
Zacznij (jak w 99% projektów) od przerwania timera. W nim sprawdzaj stan przycisków i wykonuj prawie wszystkie pozostałe czynności.
Do atmegi8mki Ci może nie wejść obsługa FATu. Poszukaj na elektrodzie FAT SD Atmega i coś znajdziesz gotowego. - Napewno nie Bascom :D Potem jakieś przerwanie i mierzyć czas i robić systematyczne opróżnianie buffora na drabinke R2R albo DAC.
...Dałem polecenie debounce i powinno zwiększyć zmienną o 1 i poczekać do puszczenia przycisku, ale nawet szybkie naciśnięcie zwiększa zmienną o kilkadziesiąt jednostek. Może chodzi o przerwania? Może to być "sprawka" przerywań, proponuję na początek: [syntax=basic4gl]Klik: Disable interrupts Incr Bsend If Bsend = 100 Then Bsend = 0 Enable Interrupts...
Dzień dobry. Kompilator przecież pisze o co chodzi :D Zamiast "jeśli przycisk = 0" napisałeś "jeśli przycisk = Duża litera O" Brakuje też przecinka przed Right. http://obrazki.elektroda.pl/7581088600_1... Poniżej film z uruchomionej symulacji :D https://filmy.elektroda.pl/100_144731640... Miłego dnia. P.S. Do Gunslinger - Myślę że...
Masz LCD? to wpisz Config portx.x = Output ' dla Przycisków Do Cls Lcd"" ;Pinx.x Waitms 100 'bez tego Lcd nie nadąża z wyświetlaniem Tak sprawdzisz czy uP reaguje na Przyciski ,też miałem podobny Problem.
W pierwszym kodzie - niby nadajnika - masz konfigurację dla przycisku na PORTB.1 W zależności od stanu na PINB.1 ma nadawać jedynkę lub zero. W konfiguracji przycisku jednak ktoś wyłączył podciąganie przycisku do plusa przez co, jeśli w układzie nie masz zewnętrznego rezystora podciągającego ten pin do plusa, stan jest nieustalony, losowy bądź zależny...
Nie przeglądałem kodu ale czy przypadkiem nie wystarczy Ci aby przed sprawdzaniem przycisku kontrolowany był jakiś znacznik, że coś się akurat wykonuje i przycisk powinien być nieaktywny ?
Z tego co zauważyłem w symulatorze to czasami wypada 7 czyli 0. Wtedy po naciśnięciu przycisku nie wyświetla się nic. If X = 7 Then X = 0 End If Jeżeli zmienię 7 na 6 to nigdy nie wyskoczy 6-stka ... A co do bałaganu to już pisałem "zaczynam" przygodę z programowaniem :) Pozdrawiam i dziękuję za uwagi... Witam ! Napisz tak: If X >6 Then X = 1 End If
Instrukcja Pinx.y służy do odczytu stanu portu natomiast Portx.y do ustawienia stanu na porcie. Jeśli sprawdzasz, czy został naciśnięty przycisk to za pomocą instrukcji Pinx.y (wcześniej musisz ustawić Config Pinx.y=Input). Poza tym jeśli chcesz włączać/wyłączać podświetlenie LCD to lepiej zrób to przez jakiś tranzystor, a nie bezpośrednio z portu Atmegi,...
Szukam kogoś kto pomoże napisać program na procesor Atmega8 przy wykorzystaniu pakietu Bascom. Chodzi mi procedury do wyłącznika czasowego z ustawianym czasem przerwy i czasem pracy wykorzystującym do ustawienia 3 przyciski (góra,dół,ok),prezentacja na wyświetlaczu 2x16 znaków....Deklaracje portów,wyświetlacza,przycisków dam radę napisać sam.
To,że np programu napisanego w BASCOM-ie nie wgram poprzez ten programator
Jeżeli atmega idzie na 4MHz to naturalnie że soft trzeba o tym powiadomić $crystal = 4000000 A postoje nie mają wpływu na miganie gdyż LCD w tym czasie powinien wyświetlać to co przed pętlą do chwili ponownego zapisu.. ustaw najpierw odpowiednie taktowanie, potem ew Home zamiadt cls i będzie ok A jeżeli chodzi o te + 5 to możesz dodać tę część programu...
Witam i jak zwykle proszę o pomoc. Otóż piszę program do sterownika wytrawiarki, zrobiłem Menu (hehe, 50% flasha), i potrzebuję zrobić termostat z czujnikiem temperatury, a wybrałem sobie DS1820, bo łatwodostępny i pospolity. Problem mam taki, że w programie głównym wyświetlam tą temperaturę, (przechodzę do podprogramu), a czas odczytu wynosi 750ms,...
Nie znam się na tym języku i mam podejrzenia graniczące z pewnością, że ty Konradzie też nie. Ale zerknąłem sobie do pliku pomocy i tam stoi jak wół, że instrukcja LCD obsługuje wyświetlacze zgodne ze standardem Hitachi HD44780. A jak napisał excray Wyświetlacz jest zgodny z HD44780. Wciśnij mu więc przycisk pomógł i spuść trochę z tonu, bo to powyżej...
To powiedz mi jeszcze, czy dałoby się zrobić taki podprogramik do ustawiania histerezy: naciśniesz 2 klawisze naraz wchodzisz i siedzisz tam, zmieniasz +/-, jak powtórnie zewrzesz 2 przyciski to wyłazisz stamtąd???
atmega8 bascom przycisk atmega8 przycisk przycisk bascom
wyłącznik podwójny jedna żarówka alkoholem izopropylowym cewka czarny kabel
Optymalna temperatura pieca gazowego dla ogrzewania podłogowego Lutowanie kabli w słuchawkach Gamezone Hydra Pro RGB