Czy włączyłeś podciąganie linii portów, do których są podłączone przyciski? Obsługa przycisków w programie też jest "nie tak". Naciśnięcie przycisku powoduje, że na wejściu będziesz miał 0, nie 1. To, co dalej robisz w programie, też jest średnio sensowne, ale to zauważysz dopiero wtedy, kiedy wykryjesz poprawnie naciśnięcie przycisku.
Okazuje się, że w Bascomie 8051 nie można zdefiniować własnej funkcji, ta możliwość istnieje dopiero w Bascomie AVR - ciekawostka .. http://avrhelp.mcselec.com/changes_compa... Spróbuj czegos takiego może zadziała ... Declare Sub Klawiatura Dim przycisk As Byte Dim kol1 as Byte Dim kol2 as Byte Przycisk=0 Do Call Klawiatura ' Tu...
' 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...
1) Nie potrzebujesz Integer, wystarczy ci Byte. Testin nie wykorzystujesz, wyrzuć to Dim Wa As Byte 2) Skasuj ten średnik ; i daj na 20ms Wa = 5 ; delay between steps 3) Nie wiem jak jest w AVR i czy Pind0.0 to bezpośrednie odwołanie do portu czy alias, nie wiem jaki tez wpływ ma Config na początku ale zanim odczytasz coś z portu musisz wystawić tam...
łatwiej się już chyba nie da. Sorki, ale ja bym raczej powiedział, że: "JUŻ GORZEJ SIĘ NIE DA :(" Co to za rozwiązanie gdzie w środku siedzi jeszcze obrzydliwy Wait !!! brrr ale żeby nie być gołosłownym, który tylko krytykuje.... Ok, panowie - widzę, że wasze zmagania spełzają na niczym, pokażę wam więc jak się powinno podchodzić do programowania....
"niestety w obu kodach brakuje czegoś co by dodawało cokolwiek do zmiennej A, więc nie przyjmie ona nigdy wartości 1 lub 2 skoro na początku się ją zeruje." Myślę że jesteś w błędzie. To daje A=1 Cls Lcd "krotkie" A=1 wait1 A to: Cls Lcd "dlugie" A=2 wait1 możesz jej nie kasować w ogóle i tak po skoku do MENU będzie ustalona. A to:...
Nie, wystarczyło port podciągnąć pod rezystor w mikro kontrolerze poleceniem set switch. I wszystko działa
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...
W stanie niskim na K2 i wysokim na K1 serwo jedzie do jednej pozycji ale w stanie niskim na K2 i K1 jeździ w te i z powrotem. Może inaczej. Sterujemy serwem B.2, wychylenie i prędkość regulowana B.3 i B.4 (ADC) Do sterowania mamy dostępne dwa wejścia B.1 i B.0 Obsługa opiera się na 1 - Jednym przycisku B.0 lub B.1, albo oba na raz (każde naciśnięcie...
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...
Nie będę sie rozpisywał: Dim T1 As Single , T2 As Integer ... T1 = -123.50 T2 = T1 'bez części ułamkowej T2 = Round(T1) 'zaokrągli zgodnie z prawami arytmetyki ... Pozdrawiam Piotrek
A nie lepiej zrobić tak, że uC nie jest zasilany do momentu naciśnięcia przycisku ? Rozumiem, że chodzi o oszczędność energii, więc po co w ogóle zasilać uC kiedy nie potrzebuje on pracować stale ? Zrób tak, że w momencie naciśnięcia przycisku procesor dostaje GND i równocześnie na pin od odpowiedniego kodu RC5. Po wysłaniu kodu puszczasz przycisk,...
A w tych dodatkowych skokach których nie chcesz powinny być wszystkie Case i IFy. A te wszystkie debounceusy powinny być w 1 procedurce do której skakałbyś 1 Gosubem gdybyś tylko chciał obsłużyć jakiś klawisz.
Dokładnie o to mi chodziło, tylko dlaczego nie mam przycisku "pomógł"
Problem w tym, że po wybraniu danego DS'a wskazania się zmieniają tylko w momencie zmiany stanu przycisku, co nie do końca jest celem. Prawdopodobnie w innej części programu masz cykliczne odświerzanie wpisu w display z inną treścią i nacisnięcie przycisku w "Do... Loop ", jest jakby nieformalne 'wcisnięcie się w kolejkę' z której i tak w końcu jesteś...
Witam! Temat być może poruszany nie raz jeżeli chodzi o sprawę odczytywania stanu przycisków. U mnie jednak stanowią one niejako tło. Program ma za zadanie badać prawidłowe działanie kontaktronów, które są wyzwalane poprzez magnes umieszczony na wałku silnika krokowego. W załączonym kodzie przedstawia się to w ten sposób, że po włączeniu zasilania silnik...
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...
To znów nie takie czary jak masz FT8xx W sumie FT8xx też jest wbudowany już w Bascom, ale zależy kto w jaką półkę cenową celuje. Równie dobrze można kupić dotykowe moduły Nextion. Programujesz go sobie wcześniej i on ma wbudowaną pamięć lub czyta z karty a Ty mu tylko posyłasz USART`em komendy co ma wyświetlać. Wyświetlaniem się zajmuje juz akcelerator...
http://obrazki.elektroda.net/42_11824156... Witam! Jakieś pół roku temu naczytałem się tematów o wzmacniaczach własnej konstrukcji. Projekt jest całkowicie moją konstrukcją, pomijając końcówkę mocy, do której płytkę zamówiłem z AVT (kit AVT-2180). Prace nad wzmacniaczem zacząłem od wykonania stosownej obudowy, a właściwie przerobienie obudowy od...
Niech kolega rozbierze przerywacz kierunkowskazu, poczyta notę U643B i nie myśli o NE555 do tej aplikacji skoro są układy specjalizowane. Co ciekawe produkcji Atmel , ale niech kolega zauważy: wymaga 5 elementów dyskretnych "Kup teraz na allegro.pl za 4,92 zł - U643B DIP8..." - najniższa spotkana cena (przeważnie >5zł) U643 obsługuje jedynie kierunkowskazy...
Zupełnie inaczej. Obsługa przerwania, która tylko ustawia znaczniki, zupełnie nie ma sensu. W przerwaniu timera zgłaszanym np. 50 (20..100) razy na sekundę, czy poprzednio przycisk był zwolniony, a teraz jest wciśnięty. Jeśli tak - ustaw znacznik do ew. wykorzystania w ew. pętli zdarzeń (to dość nieszczęśliwe rozwiązanie, ale w Bascom i u początkujących...
To w takim razie może uruchamiać mój pomysł przerwaniem? Wtedy te przerwania timera, co kilka ms, byłyby wykonywane tylko podczas naciśnięcia przycisku? 1. Przerwanie zewnętrzne uruchamia timera (co kilka ms), samo blokuje siebie. 2. W przerwaniu timera robimy to co wyżej, dodatkowo jeśli wykryjemy puszczenie przycisku (tylko dopiero jak już mamy stan...
Dziękuję za zainteresowanie. A więc tak znalazłem na avrhelp, że w Bascomie należy ustwaić Reference = Avcc aby korzystać w wewnętrznego napięcia odniesienia A co do wartości rezystora to tak właśnie myślałem i policzyłem sobie, że powinien mieć wartość ok 450Ohm bo wtedy po wciśnięciu przycisku o najmniejszej rezystancji 2Ohm i zasileniu dzielnika...
Naprawdę nie potrafisz [url=http://www.elektroda.pl/rtvforum/vi... przystosować do własnych potrzeb??? Zapewniam Cię, że robiłem to na 10 key i wszystko biegało aż miło...
programu nie wstawiłem bo nie wiem czy będzie potrzebny a jest strasznie pokręcony chodzi mi o samą zasadę dzialania coś porównane do czegos i nie wiem moze przypisane jakiejs innej zmiennej tu jest listing ale nie skończone obsługa ledów bo ustawienie ma byc nimi sygnalizowane $regfile = "m8def.dat" $crystal = 8000000 Config Pind.0 = Output...
1) PinB.5 poprzez rezystor 10K podłączasz do VCC. Do PinB.5 podłączasz też kondensator 100nF do GND. 2) PortB.0 INT0 podłącz przez opornik 200 omów do przycisku (druga nóżka przycisku do GND) to będzie twój przycisk do zmiany efektów 3) Pozostają ci tylko 4 wolne nóżki dla ledów. Możesz dodać ekspander I2C->8 bit PCF8574 i sterować 8 ledami lub zostawić...
Robię programik w BASCOM na Atmega48 i zabrakło mi ciut pamięci na testowe opcje, których później już nie będę potrzebował. Pomyślałem, że wstawię atmega8L (mam takich kilka, a nie mam żadnego 88), bo żadnych bezpośrednich odwołań do rejestrów nie ma w programie. W zasadzie to podstawowe funkcje tylko wykorzystuje wspólne dla obu uC... i pojawił się...
Witam. Ostatnimi czasy wymyśliłem pewien układ który ma za zadanie : - Wyprowadzenie 9 bitowej liczny na piny - Wyświetlenie tej liczby na wyświetlaczu 3cyfrowym 7segm. - Obsługa przycisków +, oraz - do zmiany tej liczby - Zapis po zmianie do pamięci eeprom, oraz odczyt z pamięci po uruchomieniu układu Jak na złość (lubię wszystko dobrze w życiu optymalizować)...
Witam Stopniowo rozbudowując o kolejne konfiguracje układ chciałbym mieć możliwość ustawiania parametrów zegara przez pilota ( w sumie to bardziej wygodne i nie zabiera wyprowadzeń uC ). Mam program z menu działającym na przyciskach, zastosowałem flagi, gdyż sprawdzanie tylu wersji warunków niepotrzebnie zagmatwałoby kod. Zostawiłem obsługę przez przyciski...
Witam Mam program budzika, który jako dodatkową atrakcję miał mieć możliwość mówienie czasu na żądanie i odtwarzanie oprócz buzzera utworu jako alarmu. Atmega steruje przez jedno SPI programowe układem MAX7219, a przez konwerter poziomów i drugie SPI programowe odtwarzaczem WTV020SD. O ile sam WVT020SD + PCF8563 ( wyjście CLK do INT1 ) działają dobrze,...
Witam Mam płytkę Loggera GPS + SD + PCF8563. Jeśli chodzi o GPS i zapis na SD wszytko jest OK. Problemem jest ( i to pierwszy raz się z czymś takim stykam ) odczyt danych z z układu PCF8563. Otóż dla pewnych wartości sekund, odczytana wartość czasu - godziny jest większa o 40 ( czterdzieści ). Czyli jeśli czas jest 22:40:02 to jest wyświetlany poprawnie,...
podziękuj redakcjii edw bo listingi są ich. zakłądam ze urzywasz bascom avr inne listingi do pobrania ze strony edw są to programy testowe do oślej łączki z kursu avr 'C018b Prosty zegar z budzikiem Dim Sekundy As Byte , Minuty As Byte , Godziny As Byte , Uniwers As Byte Dim Sekjed As Byte , Sekdzies As Byte , Minjed As Byte , Mindzies As Byte Dim Godzjed...
na wejścia podłączony jest enkoder(pierwszy zrobiłem z myszki komputerowej) w zależności na którym wejsciu pojawi się pierwszy impuls to przerwanie jest obsługiwane jako pierwsze . może cos z tego skorzystasz. obsługa przerwań jest na dole Dodawanie: i Odejmowanie:. Ale Panowie litości w krytyce to jest mój pierwszy program w Bascomie. Tak się złożyło...
Rzeczywiście zapomniałem o programie, poniżej w całości. Jest obsługa pilota z nauką, obsługa impulsatora i sterowanie przekaźnikami. Dodam że to pukanie słychać przy sterowaniu pilotem i impulsatorem. To błąd chyba jest w części dotyczącej zapisania danych do DS-a. [syntax=basic4gl]$regfile = "m8def.dat" $crystal = 4000000 $hwstack = 32 $swstack =...
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...
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...
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
Może zrób tak: If Pind.2 = 0 Then 'i jest wciśnięty przycisk PIND.2 Incr Opoznienie_odczytu 'no bo przycisk ma drgania dłużej niż 237us- niech zwiększy 'to sprawdzanie powtórne do 17ms If Opoznienie_odczytu >= 70 Then 'dajmy mu na wygaszenie drgań 17ms If Temp0 = 0 Then ' i jest zezwolenie na zmianę stanu Gosub Ustawianie Temp0 = 1 ' zablokuj zezwolenie...
Witam, tu w Zegarek docelowo będzie używany przez dziewczynę, więc musi być przejrzysty. - to już szowinizm...
Spróbuj: $regfile = "m8def.dat" $crystal = 8000000 $hwstack = 32 $swstack = 8 $framesize = 24 Config Portd = Output Config Pinb.0 = Output Config Pinb.1 = Output Config Pinb.2 = Output Config Pinb.3 = Output ' ustawiam porty do saa1057 Dat Alias Portd.3 'SPRAWDŹ CZY DOBRZE ZDEFINIOWAŁEM Ena Alias Portd.2 Clk Alias Portd.1 'przyciski Ddrc =...
Nie do końca , ja ostatnio męczyłem się bo na wolnych portach chciałem puścić i2c , niestety bascom odmówił współpracy , musiałem na tych portach zrobić przyciski . Dziwne ?!
Witam, mam program (attiny2313) do obsługi termometru DS18b20 i wyświetlacza, układ posiada 3 przyciski +/M/-. Program reaguje na zwieranie przycisków do masy, a chciałbym zrobić tak by procesor reagował na przerywanie masy. Znajdzie się ktoś kto mógłby rzucić okiem na program i podpowiedzieć co trzeba zmienić?? [syntax=vbnet] $regfile = "Attiny2313.dat"...
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...
Zrób tablice 1x4, tak abyś zapamiętał/przyporządkował że 1 komórka to alarm1_L, druga - alarm1_H itd. Masz zmienna "menu" więc niech ona pokazuje indeks w tabeli jakie jest aktualne to menu. Np. Menu=2 to wiadomo że chodzi o alarm1_H. W nastawach edytujesz tylko te komórki tablicy na które wskazuje ci "menu". Np. tablica "parametry" - a to co chcesz...
Tak. Tak. Tak. Tak.
A czy może być załączanie przez zwieranie przyciskami wejść do masy zamiast tych rezystorów i diod zenera?
Witam Najprościej będzie jeśli w podprogramie obsługi I2C zdefiniujesz je jako SCL i SDA, natomiast w podprogramie obsługi przycisków zdefiniujesz te same piny jako wejście. Chodzi o to, żeby procek za każdym razem odpowiednio ustawiał te piny. Nie ustawiaj tych pinów w pętli głównej na dwa sposoby , jako wejścia i jako piny do obsługi I2C. Pozdrawiam
Int0 ma najwyższy więc trop z priorytetem nie był dobry. Na próbę ustaw sztywno czas i wywal wszystkie wait. Może na czas oczekiwania w wait nie działają przerwania? I sprawdź czy wyzwala z przycisku.
Chcesz gotowca czy podpowiedzi? Dobra kawałek kodu wrzucę reszte sam dopisz [syntax=vbnet] Locate 1 , 1 : Lcd "Ustaw minuty" Locate 2 , 1 : Lcd Minut ; "" If Plus = 0 And Minut < 59 Then Incr Minut If Minus = 0 And Minut > 0 Then Decr Minut Waitms 200 End If _hour = Godz _min = Minut _sec = 00 If M = 6 Then Gosub Settime [/syntax] Taki mały kawałek...
Hmm... w końcu używasz WAITKEY, więc zmienna Czekanie nie ma sensu. Dodatkowo: Czekanie = Ischarwaiting() wykonujesz przed obsługą przycisku i jakąś procedurą MAIN. Teraz jeśli w trakcie obsługi przycisku i wykonywania procedury MAIN wyślesz dane to nie zostaną one zapisane w EEPROMie Ja jednak przerobiłbym program i użyłbym INKEY. Sama obsługa...
Tzn, że przycisk mam dać pod mase?? bo mam pod vcc
Pragne zrobic uklad ktory bedzie mial za zadanie dokonywanie 2 pomiariw(czestotliwosci i temperatury) oraz wyswietlanie informacji na wyswietlaczu graficznym... zrobilem juz dosc duzo bo opanowalem pewne elementy ale, mam nastepujacy problem. pragne by moj uklad dzilal nastepujaco: 1. dokonywal obydwu pomiarow jednoczesnie. 2. sterowanie jest jedno...
obsługa przycisku bascom bascom przycisku atmega obsługa przycisku
volvo silnika spawarka generator chopper prąd
philips az1834 suszarka philips tylko zimnym
Blaupunkt IR 20 - radio internetowe nie włącza się, wyświetlacz nie działa Pali bezpiecznik jednej fazy w skrzynce licznikowej