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 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.
"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:...
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...
To bedzie działać zgodnie z złozeniami Oto kod: If Portb.1 = 0 Then Toggle Portb.2 każdorazowe pojawienie się 0 na portb.1 spowoduje zmianę stanu portb.2 Pozdrawiam. a to nie if PIND.0 = 0 then PORTD.1 = 1 end
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
Witam, tu w Zegarek docelowo będzie używany przez dziewczynę, więc musi być przejrzysty. - to już szowinizm...
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, 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"...
Ma czym wyświetlasz dane? Pokaż program obsługi wyświetlania.
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...
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...
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 ?!
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...
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 =...
Na początku programu ustawiłeś port jako wejście ? Jak przyciski masz podciągnięte pod (+) to powinno być IF SWITCH = 0 THEN
Witam. Jestem początkujący w programowaniu mikrokontrolerów i mam prośbę do osób z większym doświadczeniem o wyjaśnienie zasady działania poniższego kodu. ‘Program obslugi jednego przycisku S1 za pomoca instrukcji Debounce ‘Krotkie przycisniecie S1 umozliwia właczenie i wyłaczenie diody LED1 ‘natomiast przycisniecie przycisku S1 na...
Kod znajomy, prawda :) ad.1. zrobiłem bez podprogramu ale i tak nie do końca działa jak chcę. Jak zrobiłem podprogram to sypało mi się przy Do bo program wracał do jednej nadrzędnej pętli i się zapętlał. Chciałbym to zrobić jakoś poprawnie składniowo. [syntax=basic4gl] '---------------------------------------... ' 20...
Tzn, że przycisk mam dać pod mase?? bo mam pod vcc
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.
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...
Witam. Mam pewien problem. Zacząłem uczyć się Bascoma (tak, wiem, głupi wybór, ale chodziło mi o prostotę). Na razie na swoim koncie mam zegar na DS1307 i LCD 2*16, teraz coś mnie napadło na wykorzystanie timerów i kupionych kilka lat temu wyświetlaczy 7-segmentowych wspólna katoda. Na razie napisałem tyle: [syntax=basic4gl] $crystal = 12000000 Declare...
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
Do obsługi przycisków w Bascomie służy "DEBOUNCE"
Nie mogę skompilować z taką deklaracją PORTD.0=1, używam KontrollerLab pod Linux-a, i nie trawi takiej deklaracji. Chyba że to jest z BASCOM-a? Ale obsługa przycisków jest podobna, na początku podciągam je programowo do plusa, potem ustawiam jako wejścia i dopiero odczytuję.
Funkcję debounce znam, ale z timer-ami mam jeszcze problem
Zapoznaj sie z poleceniem case, Select Case
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ć.
A włączyłeś w symulatorze opcję REFRESH VARIABLES? Taki mały przycisk u góry...
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.
Skoro sam napisałeś sobie ten kod w 4 dniu ;) to już coś wiesz, ale.... Ja jak narazie próbuje łączyć kody(programy) znalezione w necie,. zamiast łączyć kody znalezione gdzieś w necie, lepiej na spokojnie naucz się po kolei programować. W Bascomie obsługa przycisków i taki PWM są banalne. Ale nikt ci gotowca nie poda bo to jest bez sensu po prostu....
Albo poczytaj o obsłudze przerwań
Czy macie jakieś sensowne i proste przykałdy użycia funkcji DEBOUNCE do obsługi pojednczego przycisku w Bascom AVR? Przykład z helpa mnie nie zadowala.
W procedurze/podprogramie obsługi przycisku wciśniętego zwiększaj zmienną o 1 a w programie głównym, czy też tam gdzie to jest potrzebne, wykonuj program w zależności od tej zmiennej, np. wykorzystując SELECT CASE.
Ach, no tak. Język to bascom a procek np. atmega8
Rozwiązaniem jest obsługa przycisku na przerwaniu bądź to INT bądź PCINT
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...
Dokładnie o to mi chodziło, tylko dlaczego nie mam przycisku "pomógł"
Witam ja zrobiłem wzmacniacz na TDA7318 i gra bardzo ładnie są w nim 3x TDA7318 w SMD lutowanie nie jest bardzo trudne ale SMD są dużo tańsze od DIP ja kupiłem po 8zł za sztukę. końcówki mocy to 5*TDA7294 bo jeden kanał idzie do suba. Dodatkowo dołożyłem do tego dekoder dolby digital z głośników do komputera wiec mam wejscie cyfrowe. A procek to napoczątku...
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.
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.
Pytana do układu: 1. P1 i P2 podciągnięte do plusa za pomocą rezystorów? Bo w programie nie masz "włączonego" wewnętrznego podciągnięcia? Jeden z twoich problemów to: Po naciśnięciu guzika zmniejszającego wartość spada ale dzieje się to bardzo powoli tak jak by układ się przycinał na czas odczytu temp. nie dziw się ponieważ w funkcji Odczyt_t podczas...
Zrób obsługę przycisków w podprogramie i do jakiejś zmiennej np przycisk przypisuj róże wartości w zależności jaki wciśnięto przycisk a w pętli głównej sprawdzaj zmienną przycisk i odpowiednio reaguj w zależności od potrzeb.
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...
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...
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??
Ok, program działa. Wczesniej mi nie działało bo zapomniałem że dla przerwań zmieniłem przycisk z PD1 na PD2(INT0). Z przerwaniami też mi działało, ale ten twój jest troche lepszy bo nie zawiesza się i troche szybcjej reaguje na wyłączenie przycisku. dzieki za pomoc
Zacznij od przerwania timera - w nim sprawdzaj stan przycisku, odliczaj czas, włączaj i wyłączaj odbiornik.
Hehe, przecież tam miałeś praktycznie gotowe rozwiązanie tylko obsługę przycisków dorobić i można było szaleć do woli :-)
Dziękuję, program źle działa, nie reaguje na SW, włącza na stałe LEDa. Przepraszam za niedogodność i dziękuję za cierpliwość. Zajmijmy się problemem i poprawmy kod, aby działał zgodnie z oczekiwaniami: LED powinien pozostać wyłączony po włączeniu zasilania, a także powinien wyłączać się na każde parzyste naciśnięcie przycisku. Najwyraźniej poprzednia...
Można spróbować z jednym timerem. Ale wtedy było by więcej zmian w programie. Dlatego, że co każde przerwanie (co 100ms) wykonywała by się obsługa przycisku a co 10 przerwań także obsługa odczytania alarmów. Czyli istniejące teraz dwa podprogramy trzeba by było połączyć w jedną obsługę przerwania od timera0 lub timera1. Jeśli zaś program ma nie korzystać...
Witam wszystkich na forum i pozdrawiam,mam do Was takie pytanie,zrobiłem sobie urzadzenie na atmega16 dosć rozbudowane,posiada do obsługi menu 4 przyciski i chce teraz dodać funkcje sound,tak aby przy kazdym nacisnieciu przycisku było słychac pip,jak to zrobić najprosciej aby to działało w programie głównym jak i w podprogramach,bo dodawac do każdego...
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...
Pewnie nie. Poczytaj o obsłudze przycisków. A co zrobisz w programie po wykryciu naciśnięcia to już zależy od Ciebie.
Witam. Przyciski tak reagują bo stan zmiennej Pomoc zmienia się za każdym razem wywołania przerwania (co 4ms) i to nie zależnie od stanu wciśnięcia przycisku. A jej stan powinien się zmienić tylko po wciśnięciu przycisku i to jednorazowo. Dopiero puszczenie przycisku powinno pozwolić na kolejną zmianę stanu zmiennej Pomoc. Ja bym w ogóle nie dawał tej...
To,że np programu napisanego w BASCOM-ie nie wgram poprzez ten programator
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.
ł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....
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ś...
dobra, dzięki wielkie wszystkim. Jak będę miał jakieś problemy to będę pisać, Jak coś osiągnę to też się podzielę : Mam jeszcze jedno pytanie -> Czy w 6-cio stykowych kartach sim do telefonów transmisja wygląda tak samo?? Jeśli tak to jak zapisywać do nich dane. Posty scaliłem - proszę używać przycisku "zmień"
Witam Napisałem program w Bascom do obsługi dwóch serwomechanizmów. Program jest prosty i po naciśnięciu przycisku załącza na pewien czas 1 serwo potem 2 następnie wraca obydwa . Odczekuje jakiś czas i ponawia cykl. Wszystko działa , ale chciałbym aby po naciśnięciu przycisku w dowolnym czasie program ruszał od początku. Próbowałem zrobić to instrukcjami...
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,...
balu o co konkretnie ci chodzi zadaj pytanie .To co jest to deklaracja portów do obsługi małej klawiatury 4 przyciski nie bardzo wiem jak ci odpowiedzieć zadaj pytanie albo przyśle ci cały plik do obsługi klawiszy.
Nie obsługę przycisków zrób w głównej pętli
Witaj, powiem tak, niewiele nauczysz się zlecając komuś pracę. Jeżeli urządzenie ma służyć do nauki to może spróbowałbyś je sam wykonać. Ja polecałbym Ci zacząć od prostych rzeczy, jak np wykonanie płytki(jakiś starter kit na avr'ce) lub coś prostszego znalezionego w sieci. Potem zacząć pisać proste programiki jak np migająca dioda, obsługa przycisku,...
A po co 8 pętli do obsługi 4 przycisków? Przerwanie nie przerywa pętli tylko wstrzymuje ją na czas wykonania programu przerwania. Wystarczy jedna pętla główna w której sprawdzasz stan całego portu do którego są podpięte przyciski, wtedy w tej samej chwili masz odczytany stan przycisków. Jak rozumiem z opisu robisz pętle do obsługi każdego przycisku?...
' 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...
To, że tak jest to ja wiem z BASCOM-a. A mi chodzi o to czy dobrze zrozumiałem ten warunek.
Poczytaj sobie w helpie Bascoma o poleceniu Debounce do obsługi klawiszy - tak na początek tej drogi ;)
[syntax=basic4gl]Config Timer0 = Timer , Prescale = 1024 Enable Timer0 : On Timer0 Przerwanie0 Dim Tmp As Word Tmp = 0 Dim Ptimer1 As Word Ptimer1 = 0 Do If Klawisz = 0 Then If Ptimer1 = 0 Then Ptimer1 = 100 End If If Ptimer1 < 95 And Klawisz = 0 Then Tmp = 1 End If End If If Tmp = 1 And Ptimer1 < 85 And Ptimer1 > 70 Then If Klawisz = 1 Then...
Witam, Jestem właścicielem płytki EvB 4.3. Może ktoś mi udostępnić przykładowe programy do tego zestawu startego? Padły mi dns-y i nie mogę się zalogować do strefy klienta, działają mi tylko niektóre strony. Pisałem już maila do serwisu z and tech-a. Zapewne odpiszą mi dopiero w poniedziałek. Jest dłuuugi weekend, chciałbym trochę pomajstrować i bardzo...
Wiec tak: W ogóle wyrzuciłbym zmienna/flagę F. Nie jest potrzebna tutaj. W programie głównym zamiast sprawdzania F, sprawdzaj A, czyli warunek IF z przerwania przenieś do programu głównego, łącznie z zerowaniem A. W przerwaniu zwiększaj tylko A. Zamiast: If F = 1 Then Cls Locate 2 , 1 Lcd "przerwanie" Wait 1 Cls F = 0 Enable Int0 End If zrobilbym...
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...
Co do wyświetlenia na lcd, to już możesz zrobić to sam. Poczytaj w helpie o instrukcji Lcd i konfiguracji obsługi wyświetlacza w bascomie. To nic trudnego, tylko trzeba chcieć.
Dzięki, oglądnąłem to. Nie do końca to o co mi chodzi, ale już jestem po wstępnym etapie prób na DRV8833 i efekt jest dość zadowalający :). Prostą obsługę dwu przycisków z dwoma wyjściami dam radę zrobić :) i nawet bez PWM chodzi.
Procesor działa sekwencyjnie więc jakieś straty być muszą. To znaczy że na obsługę przycisku i ustawienie portu stracimy jakiś czas. Ile- to zależy w jaki sposób to jest zrobione. Pytanie- jaki błąd czasowy w obsłudze głównej pętli jest dopuszczalny.
Witam, Próbuje dopisać funkcję wprowadzania daty i czasu za pomocą klawiszy w Bascomie na scalaku DS1307, problem mam taki ,że nie widzę nastaw online :-) tylko dopiero po wyjściu z menu i nie wiadomo do końca co się wpisało . Dodano po 3 zrobione może się komuś przydać , [syntax=vbnet] $regfile = "m644pdef.dat" ' specify the used micro $crystal = 16000000...
Witam, piszę program pilota do sterowania oświetleniem mojego pokoju. Zatrzymałem się nad problemem "wybudzania" procesora z trybu power-down obojętnie którym z 6przycisków które będą na pilocie... Czy ktoś mógłby podpowiedzieć jak to zrobić w bascomie? Byłbym bardzo wdzięczny... Myślę że nie ma po co wstawiać kodu który "posiadam" bo to tylko obsługa...
Do jakis kodzik Loop until przycisk.0=0 to jest niestety najgorsze z możliwych rozwiązań nawet pod Bascomem. To już prędzej poradziłbym ci skorzystanie z Bascomowej funkcji Debounce, dzięki której będziesz sobie spokojnie obsługiwał klawisze a jednocześnie pętla główna nie będzie blokowana. Pomyśl sobie w tym kodzie powyżej ten "jakiś kodzik" wykonuje...
Czyli nic nie zrozumiałeś z linkowanego programu. A szkoda... Zasada działania (podobnie jak dla wielu innych programów), to wykonywanie krytycznych sekcji w przerwaniach. Pętla główna może być zupełnie pusta. W programie głównym: 1. Zdefiniuj sobie 8 zmiennych (Parametr_x), które będą odpowiadały wartościom włączenia każdego z kanałów. Np. 100,47,198......
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ć.
Ciekawe, że wiesz, jak jest napisana moja funkcja bez pokazywania funkcji 😁. Algorytm opisałem w uproszczeniu. Ale nieważne, moim zdaniem nie da się sensownie rozwiązać problemu, żeby funkcja nie zwróciła wcześniej LONG zanim nie zwróci REPEAT, bo przecież musisz przytrzymać przycisk, żeby najpierw był LONG a ewentualnie później REPEAT. To znaczy...
Wydaje mi się że FMS jest troszkę przesterowany, przy wyłączeniu poprzez tranzystor (lub zwarcie wejścia FMS do masy) na obrazie (bez sygnału z kamery czyli czarne tło) są lekkie prześwity. Spróbuję w dzielnikach RGB zamiast 150 omów wstawić 220 i sprawdzę. Tymczasowo napisałem obsługę przycisku OSD ON/OFF, działa ale rewelacji nie ma. Mylą mnie naleciałości...
marco47 - przepraszam, nie zauważyłem. marek19951 - proste if-then nie załatwi problemu. Jeżeli masz zapał, a widzę , że masz, zacznij od procedury obsługi klawiatury , która nie powoduje opóźnień poprzez martwe pętle ( czyli m.in wait, debounce, bitwait itp). Ja to zrobiłem na przerwaniu programowym z timer1, które odliczało mi okresy 10 ms w połączeniu...
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...
Przecież tyle na elektrodzie jest przykładów jak to zgrabnie robić w Bascomie. Ale przynajmniej kolega widać że się męczy sam a nie na gotowca poluje. Więc ok, ja to robię np tak: Inicjalizacja obsługi RC5 Config Rc5 = Pind.3 Dim Address As Byte , Command As Byte Dim Ir_flag As Byte Ir_flag = 0 On Int1 Int1_rc5 Config Int1 = Low Level Enable Int1 Obsługa...
Mam mały problem - nie potrafię przenieśc kodu z bascoma do avr c (eclipse). Tzn, wiem ze nie przeniosą go 1:1 chodzi mi raczej o ogólne zasady, szkielet: chodzi o zapis do pamięci eeprom stanu licznika - licznik sie zmienia przy pomocy przycisków góra/dół - przy wyłaczeniu zasilania oczywiście jego zawartośc jest kasowana. Oczywiście zapis przy każdej...
jak jesteś świerzy w bascomie, to proponuję, żebyś zaczął od najpotrzebniejszych rzeczy i stopniowo dopiero dodawał więcej. na początek odpuść sobie zegarek i wpisz na stałe do programu jakąś temperaturę startową z możliwością zmiany ( eeprom zostaw na później). nie rób na początku menu ( ale zrób przycisk opcje),na początku łatwiej będzie ci zmienić...
zaaplikowałem twój kod ale jest 0 na wyświetlaczu piszesz że nie robiłbyś tego ne przerwaniu, proponujesz przenieść to do petli głównej, a reszte programu przerobić? bo nim jeszcze jest obsługa przycisków, RC5 etc. która własnie znajduje się w pętli głownej
Zaproponowane zmiany nic nie zmieniły. Jak była obsługa 12bitów to procesor i tak rozpoznawał jaka to ramka za pomocą długości bitu startowego i dalej już "nie obsługiwał" części odpowiedzialnej za tą ramkę 12bit. Sprawdziłem i odbiera normalnie zawsze pierwszą ramkę, załączam ekrany oscyloskopu, drugi kanał jest wyzwalany flagą po odebranej ramce...
Zrób tak: 1. Usuń to: Do Debounce S1 , 0 , Mnu , Sub Debounce S2 , 0 , Cent , Sub Loop 2. To przenieś przed główną pętle programu Cls Lcd "MaxDamage" Waitms 500 Lowerline Lcd "maxdamage17(małpa)interia.... Wait 4 For I = 1 To 20 Shiftlcd Left Waitms 500 Next I Cls Lcd "-=xxxxxxxx=-" Lowerline Lcd "xxxxxxxxxxx"...
Zastosuj procesory AVR (np. z serii Atmega, mają różne przydatne peryferia w sobie, np. przetwornik analogowo-cyfrowy, wyjście PWM itd), do programowania Bascom (wersja Basica dla AVR) jest do niego książka (kup lub poszukaj w Bibliotece) http://www.techniczna.com.pl/skroty/83-9... Masz w niej opisaną stronę sprzętową (co i jak połączyć) oraz...
Witam Do tego celu można dojść za pomocą timra i przerwań. Po prostu w momencie wciśniecia przycisku , puszczasz w ruch timer. Jeśli zliczy powiedzmy sekunde to zapala Ci jedną diode, jeśli doliczy do 5 sekund , to zapalasz inną. Oczywiście musi być to tak zrobione żeby procek nie czakał az naciśniesz przycisk. Po prostu po wykryciu zmiany przycisku...
Na talerzu podawać nie będziem, ale podpowiedzieć można. 1. Z takim podejściem zaraz podpadniesz pod p.16 regulaminu... 2. Schemat rzeczywiście jest źle narysowany (bo zapewne to właśnie o technikę głównie chodziło). Schematy w Eagle twórz tak, by w miejscu połączeń 3 przewodów pojawaiły się kropki (tak, jak wygląda to nieszczęsne połączenie AREF z...
napisałem program do obslugi klawiatury i cos mi nie chce działac nie wiem dlaczego wyglada to mniej wiecej tak: dim zmienna as byte config portd.0 = input set portd.0 'wlaczenie podciagania config timer0 = timer, prescale = 1024 on timer0 klawiatura enable interrupts enable timer0 do (program glowny) loop klawiatura: if portd.0 = 1 then incr zmienna...
Proszę o pomoc. Jak opracować obsługę przycisku bez zatrzymywania programu głównego? Chodziłoby mi o coś w rodzaju debounce w bascomie. bardzo proszę o pomoc z góry dziękuje
Masz 2 opcje albo w pętli głównej albo w obsłudze przerwania. Po za tym jeśli już korzystasz z timera to wykorzystaj go do odliczania czasu zamiast korzystać z waitms.
A ustawienie stosu to gdzie ? Kodu w obrazkach się nie wstawia, tylko w tagach code] ] Kod w ogóle to masakra, użyj preprocesora... Co to za "delaje" w przerwaniu ? Obsługa przycisków przez przerwanie to mi bascomem zalatuje...
obsługa przycisku bascom bascom przycisku przerwanie bascom przycisku
słaby odbierać stacja scenic zamek klapy kluczyk skoda
sharp 40bg3e stacja pogody termistor
Uszkodzona sekcja zasilania a uszkodzenie CPU Czarny ekran w starej Nokii - co zrobić?