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
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...
"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:...
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.
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...
Tzn, że przycisk mam dać pod mase?? bo mam pod vcc
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...
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...
Ma czym wyświetlasz dane? Pokaż program obsługi wyświetlania.
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
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
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 ?!
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...
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.
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...
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 =...
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...
Do obsługi przycisków w Bascomie służy "DEBOUNCE"
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, 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"...
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.
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...
Na początku programu ustawiłeś port jako wejście ? Jak przyciski masz podciągnięte pod (+) to powinno być IF SWITCH = 0 THEN
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.
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.
Tak. Tak. Tak. Tak.
Kolego do przycisku użyj funkcji debounce i nie będziesz miał problemu z drganiem styków przycisku. Może napisz jak ma działać to urządzenie bo według mnie masz dziwny ten kod
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
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...
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...
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??
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.
Rozwiązaniem jest obsługa przycisku na przerwaniu bądź to INT bądź PCINT
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...
Albo poczytaj o obsłudze przerwań
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...
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ł"
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.
Zapoznaj sie z poleceniem case, Select Case
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...
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...
Hehe, przecież tam miałeś praktycznie gotowe rozwiązanie tylko obsługę przycisków dorobić i można było szaleć do woli :-)
Ach, no tak. Język to bascom a procek np. atmega8
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.
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ć...
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ę.
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
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...
Pewnie nie. Poczytaj o obsłudze przycisków. A co zrobisz w programie po wykryciu naciśnięcia to już zależy od Ciebie.
Zacznij od przerwania timera - w nim sprawdzaj stan przycisku, odliczaj czas, włączaj i wyłączaj odbiornik.
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...
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...
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"...
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ś...
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...
Nie obsługę przycisków zrób w głównej pętli
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.
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?...
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....
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ń"
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 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,...
To,że np programu napisanego w BASCOM-ie nie wgram poprzez ten programator
' 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...
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.
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...
Poczytaj sobie w helpie Bascoma o poleceniu Debounce do obsługi klawiszy - tak na początek tej drogi ;)
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ć.
[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...
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, 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...
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...
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...
To, że tak jest to ja wiem z BASCOM-a. A mi chodzi o to czy dobrze zrozumiałem ten warunek.
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...
Witam Wyświetlacz musisz zrobić w przerwaniu. Częstotliwość odświeżania każdego powinna wynosić minimum 50Hz. Lepiej unikać dokładnej częstotliwości 50Hz. Może to być np. 53.5Hz. Jeśli ma np. 4 takie kostki to częstotliwość powinna wynieść 4 * 53.5Hz czyli 214Hz lub jak kto woli przerwanie powinno być wywoływane co 4,67 milisekundy. Od tego bym zaczął....
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......
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
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...
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...
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....
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...
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...
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...
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
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ć...
Witam, w związku z tym, że nie udaje mi się pogodzić zewnętrznych przerwań z obsługą 1-wire (zatrzymywanie przerwań na czas obsługi 1-wire co zakłóca mi odczyt z zewnętrznych przerwań) mam pytanie do bardziej doświadczonych: Czy możliwym jest wgranie "dwóch" programów do jednego uC, żeby działało to mniej więcej tak: 1-szy program tylko z obsługą 1-wire...
Witam, kończę prace nad wzmacniaczem i chciałem zrobić, sterowanie głośnością pokrętłem przy wzmaku i z pilota, ale nic konkretnego nie znalazłem. Dokładnie chodzi mi oto, żeby ktoś z Was jeśli to możliwe napisał mi w Bascomie jak wygląda obsługa impulsatora obrotowego oczywiście link do strony gdzie to będzie pokazane i opisane w naszym języku ojczystym...
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...
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.
Napisz pętlę, która wykona się tyle razy, żeby odliczyć te 5 sekund (np 5000 razy z waitms 1 w środku). Jeśli jakikolwiek przycisk zostanie wciśnięty, to idziesz do ich obsługi, jeśli nie, to pętla się zakończy i program wróci do głównej pętli.
bascom obsługa przycisku bascom przycisku przerwanie bascom przycisku
ruchoma głowa soczewki deklaracja zgodności instalacji honda civic wymienić filtr paliwa
tylko cytaty ciepły transformator
Mackie Fussion 3000 i 1800S/SA - Specyfikacje i Zastosowanie Renault Thalia: który pin w złączce to światło stopu?