Zainteresuj się funkcją Input Capture Unit - opis oraz przykład dla C: http://mikrokontrolery.blogspot.com/2011...
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...
Witam. Zapis (składnia) Load Timer1 jest zły. Sprawdź w pomocy Bascoma.
Może to pomoże: http://www.elektroda.pl/rtvforum/downloa...
Zastosować timer do odliczania czasu.
Buforuj otrzymane znaki i przetwarzaj w procedurze pętli głównej programu. Oczywiście wiąże się to z wywaleniem wszelkiej maści form kodu blokującego procesor i oparciem odliczania czasu o Timer.
Witam jestem początkujący w temacie bascom potrzebuję rozwiązać problem związany z błędnym odliczaniem zaprogramowanego czasu. Program przerobiony z działającego zegara ( samo odliczanie działa dobrze), tylko chcę żeby w 20 -stej sekundzie wyjście PIND.2 zostało załączone i w 45-tej sekundzie wyłączone. Teraz działa przypadkowo w 20 sekundzie zostaje...
Witam Mam taki kawałek kodu w bascomie Ppp: Portc.0 = 0 For A = 1 To D Wait 1 Next Portc.0 = 1 For A = 1 To E Wait 1 Next Potrzebuję wyświetlić odliczanie czasu od A do D i A do E w odstępach co 1s np od 1-10 1,2,3,4...lub 10,9,8... Niewiem jak się za to zabrać .Jakiej funkcji uzyć aby Bascom pokazał mi upływające sekundy. Dziękuje za pomoc
No na modyfikację nie mam czasu. Zwłaszcza, że już dawno nic nie pisałem. W dodatku ja nie używam wait (i Tobie też odradzam) co wymaga trochę innego podejścia do pisania programu. Mogę jedynie podpowiedzieć, że najlepiej było by skorzystać z przerwań INT0 i INT1 podłączonych pod przyciski. Wtedy przerwanie aktualnego zadania było by możliwe natychmiast....
Chciałem aby po odliczeniu od 0 do 10 licznik zatrzymał się na 10 i cały czas wyświetlał 10 aż do resetu procesora. I prawdopodobnie tak właśnie ten kod działa. Odlicza, resetuje, odlicza, resetuje itd. Swoją drogą kod fatalny - strach pomyśleć, ile linii miałby tak napisany kod, który miałby odliczać do tysiąca...
Już działa!!! ;) ,a przynajmniej osiągnąłem zamierzony efekt. [syntax=basic4gl]$regfile = "attiny2313.dat" 'wybór procesora attiny2313 $crystal = 8000000 Config Pinb.1 = Output 'buzzer mający piknąć 3 razy po odmierzeniu czasu nop Buzzer Alias Pinb.1 Dim Sekundy As Byte Dim Minuty As Byte Sekundy = 0 Minuty = 0 Buzzer = 1 Config Timer1 = Timer , Prescale...
Banalne zadanie. A więc włączasz licznik(lepiej TIMER1-większa pojemność), tak, aby odliczał ci te 10sekund. Dajesz zmienną którą zwiększasz np co 1sekunde (zmienna o nazwie sekundy). W czasie odliczania do 10s w pętli głównej zliczasz impulsy przycisku i zwiększasz je w innej zmiennej (np. impulsy). Po 10 sekundach w zmiennej sekundy będzie10s a w...
Szukaj raczej błedu w połączeniu, bo sam program jest OK - przed chwilą wgrałem na Atmega8 (jedynie zmieniałem deklaracje '$regfile' ) w zestawie uruchomieniowym EVBavr04 (Propox) i działa normalnie - czas jest odliczany.. Może gniazdo do obsadzenia kwarcu Ci coś nie łączy, bo jeśli uC nie ma połączenia z kwarcem zew. (zegarkowym) to właśnie "zamraża"...
Jeśli chcesz to zrobić, tak jak mówisz, to musisz czas odliczać za pomocą Timera, ponieważ "Wait" blokuje Ci procesor.
Przyciski - DEBOUNCE Odliczanie - CONFIG TIMER i przerwania.
Więc tak. Odcinek 1 sekundy ma być bardzo dokładny, czy nie musi? Jeżeli procek będzie pędzony z wewnętrznego oscylatora, to czas 1 sekunda nie będzie bardzo dokładny. Musisz zmienić fusebity, aby procek był taktowany z 4MHz, bo teraz jak sam widzisz pracuje na 1MHz.
mam pewien problem pewnie wyda sie komus bardzo prosty do rozwiazania... ja sobie z nim poradzic nie moge mam generator 1 hz i chce nim odliczac czas w dol a jak dojde do zera to chce wystawic 1 na np p1.1 <bascom8051> impulsy chce podawac na p3.3 czy ktos moze mi pomoc ? czas odlczany chce zczytywac z portu p2 dim czas as integer dim start as...
Tu nie chodzi o aż taka dokładność 20 min na 10h to w tym przypadku nic strasznego tylko o nie ruszanie programu:). na ustawieniach 2 liczy czas 2 min jako 1:38 min pierwsze ustawienia działają tylko na jednym z 5 procesorów jakie mam i jest w miarę dokładnie:) na pozostałych program nie startuje:) Wszytkie są nowe :)
Operuj cały czas na zliczonych taktach, nie przeliczaj ich na ms. Licz takty i odliczaj takty.
Nie wiem czy wyjdzie to jako kolejny post lub dodany po czasie :D ..., ale po pierwsze chciałbym byś nie myślał że moje uwagi są złośliwe. Po prostu zapytań o różne aspekty programowania w Bascom jest tak wiele że lepiej jest odpowiedzieć na ogólnodostępnym forum niż musieć sie powtarzać. Jest szansa że jeszcze ktoś to przeczyta :D Zamiast za każdym...
Zacznij od przerwania timera - w nim sprawdzaj stan przycisku, odliczaj czas, włączaj i wyłączaj odbiornik.
Witajcie. jestem nowy i nie bardzo wiem jak to zrobic, na wejsciu PINC.0 pojawia sie stan HI wysoki zaczyna sie odliczanie czasu ktore jest ustawiane za pomaca ADC na ktorym jest potenciometr 10 Kohm miedzy Vcc a masa. po uplywie ustawionego czasu na wyjsciu PORT D.6 pojawia sie stan wysoki oto moje wypoziny ktore i tak nie dzialaja. $regfile "m8def.dat"...
Witam. Mam na stole procesor jak w temacie. Problem z jakim się spotkałem obecnie to odliczanie czasu przy pomocy komendy: waitms i waitus . Oto przykład. $crystal = 8000000 $regfile = "m8def.dat" Do Toggle Portb.4 Waitms 1 Toggle Portb.4 Waitms 1 Toggle Portb.1 Waitms 1 Toggle Portb.1 Waitms 1 Toggle Portb.2 Waitms 1 Toggle Portb.2 Waitms...
A zastanowiłeś się choć przez 1 us :-P ile czasu potrzebuje uC, na wykonanie procedury przerwania :?: [syntax=basic4gl]Tim2_int: Counter2 = Counter2 + 248 'co 1us Incr L2 If L2 = 1000 Then '0,001s Incr L1 L2 = 0 End If If L1 = 1000 Then '1s Toggle Portd.1 L1 = 0 End If Return [/syntax]
Chyba prościej się nie da: Do If Pinb.0 = 0 And Pind.2 = 1 Then Incr Tim Else Tim = 0 End If If Tim = 1001 Then Tim = 0 If Pind.2 = 1 And Tim = 1000 Then Goto Alarm End If If Pind.2 = 0 Then Goto Sys_off End If Loop End Tylko musisz dopasować Tim=? żebyś miał odpowiedni czas. Ustawienie $crystal wpływa na odliczanie Tim.
Prosty program nawet w BASCOMie. Podajemy impuls z PLC na pin startujemy timer i liczymy czas. Jest impuls reset timera nie ma impulsu - reset PLC Start odliczania 60 sekund. I tak w koło. Dziesięć linijek kodu.
Ta procedura wykonuje się gdy czas dobiegnie końca, powoduje ona wyświetlenie na wyświetlaczach czasu 00:00 oraz odpowiedniego kodu, aby program nie powrócił do wykonywanie pętli głównej wstawiłem tam pętle nieskończoną.
kolega juz napisał ze stosował klika kwarców po za tym do doliczania czasu w bascom słuzy clock a nie odlicza sie czas za pomocą timerów (duzo bardziej niedokładny pomiar)
Dzięki kolego Procesor32 mój problem z odliczaniem czasu został rozwiązany po małej modyfikacji kodu źródłowego, który otrzymałem od Ciebie.
Brakuje tam deklaracji częstotliwości zegara np. "$crystal=8000000", program trochę dziwny, ale możesz dopisać jeszcze jakiś licznik wejść w procedurę "zwieksz" żeby wchodził tam np. co 100 taktów. Przy czym to będą BARDZO niedokładnie odliczane sekundy...
z tego co wiem to delay to komenda to odliczania czasu w mikrosekundach, a do dokładnego odliczania czasu należy używać funkcji Timer.
Zastawia mnie po co ciągle robisz warunek w warunku jak np. tu If Pinb.4 = 0 Then Waitms 1 Incr Setki If Setki = 10 Then Setki = 0 Incr Tys If Tys = 7 Then Tys = 0 End If End If End If Jak już mówiłem wcześniej, jeżeli zaprzęgnąłeś timer to wykorzystaj go do odliczania sekundy wtedy pętla główna zostaje do twojej dyspozycji i bez problemu tam umieścisz...
da można w pętli albo tak jak napisałem. Jeśli chcesz coś innego robić jeszcze z tym zrobić. Tworzysz flagi odpowiadające sygnałom sterującym. Przerwanie np co 50ms. Jeśli jest sygnał sterujący ustaw flagę, w kolejnym kroku jeśli flaga i odpowiedni sygnał sterujący wykonaj akcje włącz wyłącz silnik. . Inni licznik będzie odliczał czas włączenia silnika,
Witam. Mam do zrobienia projekt sterowania sygnalizacją świetlną na skrzyżowaniu z użyciem kontrolera 8051 w programie BASCOM. I mam problem ze zrobieniem odliczania czasu. Licznik odlicza ale jego odliczanie ma mało wspólnego z sekundami. Proszę o jakaś wskazówkę. Poprawiłem tytuł - Regulamin.
Instrukcja Wait nie stopuje procesora. Procesor odlicza czas poprzez zmianę wartości rejestrów a więc działa. A skoro działa to powinien także odczytać informację, że nastąpiła sygnalizacja od przepełnienia Timera. Spróbuj zastosować tą instrukcję. Tylko nie wywołuj jej w obsłudze przerwania a w pętli głównej. Bo gdybyś wywołał jej obsługę w przerwaniu...
Dr_DEAD masz może jakiś przykład, bo tak średnio wiem jak to zrobić. Trochę lewy jestem w programowaniu, jadę na przykładach:) Dodano po 1 aha, no i timer 1 będzie wykorzystywany do zliczania czasu otwarcia wtryskiwacza, więc on jest zarezerwowany do odliczania stałej jednostki czasu
Witam, tworzę sobie mały licznik w Bascomie, wszystko ładnie mi już odlicza, proszę tylko o małą poradę - w jaki sposób za pomocą dwóch przycisków (+ i -) regulować szybkością odliczania liczby? Teraz posługiwałem się Do For Licznik = 0 To 9 Print Licznik Waitms 500 Next Loop teraz jak wykonać regulowanie czasu przerwy - czyli prędkości odliczania?...
Odlicza czas, po wciśnięciu przycisku na pilocie A:255 C:127.
89C2051 nie ma wewnętrznego oscylatora, więc bez kwarcu lub generatora nie ruszy. Reset - wystarczy sam kondensator. Rzecz jest na tyle mała i prosta, że warto to napisać w asemblerze. Z drugiej strony, jeśli jesteś nowicjuszem, to masz sporo do nauczenia się - potrzebny Ci będzie timer do odliczania czasu, więc musisz się z nim zaprzyjaźnić. Bascom...
Witam. Najpierw wysyłasz rozkaz pomiaru temperatury, później z pomocą timera lub nawet zmiennej zwiększanej w pętli odliczasz czas pomiaru lub większy (mikroprocesor w międzyczasie normalnie wykonuje program). Po tym odczytujesz wynik pomiaru z DS1820, co nie trwa zbyt długo. Pozdrawiam. EDIT: Uzupełniłem posta
W helpie BASCOMA jest wyraźnie napisane, że funkcja GETRC5 korzysta z TIMERA 0, wiec odliczanie czasu zrealizuj na innym timerze, tak najprościej i najszybciej.
O co ci chodzi z tym konwertowaniem na milisekundy czy chcesz wynik wyswietlac jako milisekundy czym moze ma byc odliczany jakis czas zalezny od zmierzonego napięcia? Napisz dokładnie co chcesz zrobić.
chlop[ie napisałes to tak że jak sie to czyta to nie wiadomo o co ci chodzi a jak czyta i nie wiadomo o co chodzi to kompilator napewno niezrozumie tego bełkotu 1. porty działaja na napięcie a własciwie na stan logiczny 1 lub 0 , po drugie na końcówce mmoze byc 1 lub 0 a jak ma byc 2 ??? proponuje zobacz na przyklady potem sam cos pisz bo takim bełkotem...
Witam, poszukuję łatwego algorytmu do zaaplikowania w Bascom AVR do odliczania ilości lat, miesięcy, dni, godzin, minut i sekund od zadanej daty, do chwili obecnej. Powiedzmy, ze datą startową jest 1 stycznia 2000r godzina 00:00:00. Jak obliczyć ile czasu minęło od tamtej chwili z uwzględnieniem lat przystępnych? Z góry dziękuje za pomoc. P.S. przejrzałem...
http://obrazki.elektroda.net/3_122786033... Jest to prosty zegarek zbudowany na ATmega8 i wyświetlaczu VFD , program napisałem w Bascomie , odliczaniem czasu zajmuje się PCF8583 , po zaniku zasilania pcf jest podtrzymywany z kondensatora 0.22F ( czas pracy na kondensatorku około 3 dni) . Czas ustawiam za pomocą pilota RC5 . . . . . . . . ....
Dokładnie nie wiem jak w tym swoim Bascom-e masz zrealizowaną procedurę obsługi pilota ale powiązane to ściśle z prędkością zegara bo program w ściśle określonych przedziałach czasowy sprawdza stan wyjścia odbiornika RC5. Więc zmiana częstotliwości taktowania bez zmiany tych zależności czasowych spowoduję błędy odczytu. Musisz sobie zmienić wartości...
Ten i 90% innych prostych projektów, w których występuje reakcja na guziki, wyświetlanie lub świecenie LED lub odliczanie czasu, robi się tak samo - przerwanie timera używanego jednocześnie do sterowanie LED przez PWM i wszytsko w tym przerwaniu - badanie zdarzeń, zmiany współczynnika wypełnienia itd.
nie wiem jak wygląda reszta programu , ale o ile to mozna czy nie lepiej wykorzystać T0, T1 i w przerwaniu odliczać czas lub incr zmienną wewn
tego nie wiem, ale tak długich opóźnień tą instrukcją nie stosuje się ponieważ procesor zajmuje się tylko tym. poza tym jak wspomniałem nie masz możliwości zmiany czasu. musiałbyś dokładnie trafić na zakończenie odliczania. Mówiąc krotko zła koncepcja programu.
Może: Licz: If Co_robic = 0 Then 'Odliczanie przerwy Incr Licz_przerwe If Licz_przerwe > 1000 then Licz_przerwe = 0 Co_robic = 1 End If Else Incr Licz_impulsy If Licz_impulsy > 4 Then 'Odliczanie okresu przebiegu (4 - okres = czas 4 przerwań Timera) Toggle PortD.4 Incr Licz_przerwe 'Odliczanie ilości impulsów (10/2 = 5 impuslów)...
Witam Użycie funkcji "waitms" zawsze spowoduje, że program zostaje zatrzymany na ten czas i nic innego nie realizuje - tak działa ta funkcja. Należy unikać tej funkcji i jej podobnych (wait; waitus). Zamiast tej funkcji należy użyć odliczania czasu przez "Timer".
Ok, no powiedzmy, że dociera. Jedno pytanie jeszcze: Masz użyte zmienne Wlacz_zima i Wylacz zima, które trzeba zadeklarować osobno, a czy nie lepiej zadeklarować je w podprogramie, bo zdaje się, że nie są potrzebne poza tym podprogramem? A "zwracana-odliczana" jest wartość zmiennej Zima_lato na podstawie której dodajemy lub odejmujemy godziny np z GPS...
spowalnianie impulsów niestety nic nie dało, ale po paru przemyśleniach doszedłem do wniosku, że za bardzo zagmatwałem sprawę odliczania czasu, okazało się, że zrobienie tego na waitus rozwiązało sprawę konwerter śmiga aż miło pozdrawiam
No rozpisałeś się bardzo konkretnie. Uzylem m162 bo moja 128 gdzieś zaginęła na poczcie. Mam nadzieję ją dziś odzyskać. Docelowo będzie to oczywiście m128. Czyli bez kwarcu zewnetrznego nie ma co liczyć na działanie procedury clock. Szkoda że nie do czytałem tego bo bym już go sobie zamówił. Zastanawiam się jeszcze ale to merytoryczne pytanie czy do...
Pewnie ze ktoś to testował i nawet działa :) a dokładnie to odliczasz sobie czas na timer_ku i jak sie odliczy to odczytujesz dane z ds-a
proponuję dołożyć gdzieś w obsłudze timera dodatkową zmienną która będzie odliczać do zera jeśli nie zero. W podprogramie obsługi naciśnięcia(pewnie debounce?) wystarczy ustawić w zmienną timera(tą do odliczania) i sprawdzać czy już osiągneła zero: przycisk: przycisk_dlugo=255(czas trzymania) do if przycisk_dlugo=0 then cos tam if p3.7=1 then exit do'...
Po pierwsze to nie napisałeś jaki to procesor, a po drugie nie podałeś czestottliwości zegra, a po trzecie to raczej będzie ciężko robić rzerwanie co godzine... Przerwanie można robić częściej, a czas odliczać w zmiennej i oba te odciki czasu da się załatwić jednym tajmerem. Do czego Ci to w ogóle potrzebne?
Witam. Mam taki oto problem.. piszę w bascomie program, którym potrzebuję dosc precyzyjnie odmierzac czas za pomoca timera, ale jak patrze na efekty to czas odliczany nijak się ma do tego co mi pokazuje zegarek.. zakladam ze moj zegarek chodzi dobrze :) (bo chodzi dobrze).. wiec raczej problem jest z mikrokontrolerem i moim pisaniem.... Podaje kod ów...
To może tak jak ja zaczniesz od tej książki: http://obrazki.elektroda.net/39_12370566... jesli chodzi o język, myśle że bascom jest łatwy dla początkującego, a książka jest własnie oparta o tą atmege
Witam! Płytki i schematu nie trzeba już sprawdzać - wykonane, połączone i działa. Kwestia nierozwiązana to program w Bascomie. Poprzedni kod trochę zmodyfikowałem, ale nic to nie dało. Sama obsługa przerwania Timera0 jest zła, bo wywalając całą resztę i zostawiając: [syntax=basic4gl]$regfile = "m8adef.dat" $crystal = 8000000 Config Pinb.1 = Output Config...
Waitms + przerwania = pewne kłopoty. Zamień Waity jakimiś pustymi pętlami, albo jeśli chcesz zrobić to w bardziej elegancki sposób to dodaj zmienną zwiększającą się w przerwaniu i na podstawie zliczania tej zmiennej masz dokładne odliczanie zwłoki.
witam wszystkich mam problem z niedziałającymi przerwaniami napisałem program który dobrze funkcjonował pod wersją bascoma 1.11.7.1 . ściągnołem najnowszą 1.11.8.3 bo w tej poprzedniej nie mogłem wysterować LCD w trybie 8 bitów . okazało się że programy wykorzystujące timery nie działają . co się zmieniło w obsłudze timerów ? może podeśle ktoś działający...
Zmieniłem na timer1, teraz mam krzaki na lcd :D I na nic nie reaguje. Dodano po 4 krzaków już nie ma(nie zmieniłem timera w jednym miejscu), ale dalej nie odlicza
Przeczytaj te artykuły: http://mikrokontrolery.blogspot.com/2011... http://mikrokontrolery.blogspot.com/2011... Timer2 jest 8 bitowy więc zlicza 256 stanów. Ustawiając preskaler timer2 na maksymalną wartość 1024 z poniższych obliczeń otrzymasz: ilość sekund = 1/(32768 /1024 /256)...
Jak już pisałem wcześniej wykorzystaj przerwanie. Użyj wejścia INT0 lub INT1. Ustaw je sobie na narastające zbocze i napisz procedurę obsługi przerwania odliczającą zadany czas. W pętli możesz sobie czytać ADC, a jak przyjdzie przerwanie to program automatycznie skoczy do obsługi przerwania. Daje to mniejsze opóźnienie pomiędzy wykryciem zmiany a zaczęciem...
Jest to timer mojego projektu na procesorze AT90S2313. Służy do odliczania po 1 sekundzie od ustawionego czasu do zera. Po skończeniu odliczania włącza się przekaźnik. Wyjęcie zwory nad przyciskiem startu powoduje że nie można zatrzymać odliczania. Projekt wykonany w Eagle. Źródło programu w Bascomie
Jeśli piszesz w Bascom, to podstawowa obsługa RC5 już tam jest, poczytaj Helpa ...
Mega! Dzięki! Wstępnie miałem plan użyć przycisku do wyłączenia alarmu, zatrzymania i wznowienia odliczania, a obroty prawo, lewo jako ustawianie całego czasu w górę i w dół, ale wyjdzie w trakcie użytkowania jak będzie wygodniej :)
Kolego e marcus , w maszynie drukarskiej lepszym rozwiązaniem jest zliczanie impulsów w zadanym przedziale czasu, tak jak pisałem, kłopoty sprawia raczej wolny przebieg maszyny i jej zatrzymania, co powodowałoby odliczanie czasu do nieskończoności. Pomysl z czujnikiem Halla jest dobry, wystarczy na obwodzie cylindra nakleić odpowiednią ilość magnesów....
Wydaje mi się, że najpierw powinno być „uruchomione” odliczanie tych 0,1 sek, wyzwalane pierwszym pikiem z „paczki”. Potem trzeba odczekać te 0,1 sekundy na zanik „szumów” i zacząć zliczanie w czasie 0,9 sek. Ilość zliczonych pików podzielona przez czas da mi częstotliwość. Wynik ma się utrzymywać na wyświetlaczu...
Dzięki "emarcus" działa wyśmienicie :) teraz muszę to połączyć z moim programem JESZCZE RAZ DZIĘKI! POZDR! Dodano po 4 No i kolejna przeszkoda.... Chcę ten programik dodać do mojego głównego programu i chcę żeby dzałał on w pętli tylko wtedy gdy powiedzmy pind.0=0 niestety nie udaje mi się przerobić go tak aby odliczał czas i pokazał komunikat nie raz,...
Zrobilem jakis czas temu zegar na 89C2051 z kwarcem 12Mhz.....w Bascomie (!!!!) i walil sie tylko ok 0,5 sek na dobe! Program byl bardzo prosty i wykorzystywal do odliczania czasu timer 16-bitowy. Wada: koniecznosc ustawiania czasu po oodlaczeniu zasilania i rzeczywiscie lepiej w tym przypadku zastosowac RTC. Ale wykorzystujac korekcje czasu, jak ktos...
Przede wszystkim nie wiecz czy wykrywasz początek bitu startu, jego środek, czy może prawie koniec. Gdybyć wykrywł zbocze z wykorzystaniem przerwania, to dopiero wtedy mozna mówić o synchronizacji. Poza tym odliczanie czasu poprzed delay nie jest zbyt dokładne. Najlepiej wykorzystać do tego timer, czyli zrobić programowy UART, o którym pisałem w moim...
Witam. Napisałem program do migania diodami i mam trzy pytania: 1.Czy da się ustawić cały port w stan spoczynku (coś w stylu PORTD = 0)? 2.Czy po każdej komendzie IF trzeba pisać END IF, czy da się to jakoś ominąć? 3.Czy poniższy kod jest poprawny, czy będzie działał? 1. Tak, możesz tak pozostawic. Bascom akceptuje kilka form ustawienia poziomu pinów...
Bardzo dziękuje, działa jak trzeba. Teraz rozumiem, że logiczna kolejność jest najważniejsza - warunek zwiększania Menu_ustaw był nie taki jak trzeba i źle umieszczony. Na razie wyjście z programu zrobiłem na trzecim przycisku, ale trochę szkoda go marnować do tego, można na nim zrobić obsługę czegoś innego - w przypadku, gdy program nie jest trybie...
Znaczy się chciałem dać Load Timer1 = 58594, wtedy chyba działałoby to przepełnienie o którym mówię? Działałoby, gdybyś zastosował właściwą składnię, tzn. "LoadTimer , 58594" Do przycisków daje Debounce, więc myślę, że starczy Jak najbardziej wystarczy. Ciągłe sprawdzanie w przerwaniu jest po to aby mikrokontroler "miał czas" aby sprawdzić inne rzeczy...
Podaje program z komentarzem. ............ Ps. Nie ładowałem do licznika wartości bo potrzebuje dwóch pełnych przeładowań. W programie jest zupenie nie ważne ile tych przepełnień wystpuje; istotne aby rachunek odmierzanych odcinków czasu był zgodny z zamierzonym. Skoro jesteś zmuszony zliczać przepełnienia (co jest rzeczą absolutnie normalną), więc...
Spróbuj zrobić tak Co4ms: 'procedura obsługi przerwania od Timera T/C0 wykonywana co 4ms Timer0 = 6 'załaduj do Timera0, żeby zliczył 250 (=256-6) impulsów Incr Licznik If Licznik = 6 Then 'zmienna Licznik liczy do 6 aby Licznik = 0 'sprawdzanie stanu przycisku następowało If Pind.0 = 0 Then 'co ok.24ms If Pomoc = 1 Then 'jeśli zmienna Pomoc...
Dzięki xury za linka z tematem. Bardzo mi pomógł, odliczam czas jak chciałem, co prawda pojawia się malutki błąd czasu wynikający z tego ze nie ma pełnych 31 impulsów tylko 31,25 ale na tak mała niedokładność mogę sobie pozwolić
Witam. Potrzebuję pomocy w napisaniu pewnego programu, dokładnie stopera, do części setnych sekundy. nie wiem jak ustawić Timer1 by odliczał mi co 1ms.
Witam, Miałem podobny problem gdy pisałem zegarek w C. Poniformuj kompilator aby nie optymalizował zmiennych których używasz przy odliczaniu czasu. problem jest wynikiem zbyt rzadkiego odświeżania danych pomiedzy rejestrami i pamięcią RAM. Nie wiem czy taka opcja jest w BASCOMie, poszukaj w helpie. pozdr
Na pinie 3 mam dokładnie 3,28 (bateryjka pastylka CR2032). Obyło się bez kondensatorka. I się okazało ,że zamiast na linię sda dać opornik to ten opornik dałem na linię sqw . Teraz już śliczne odlicza czas. Dzięki za pomoc. Tematu jeszcze nie zamykam , bo niewątpliwie będę miał jeszcze jakieś pytania odnośnie ds'a lub czegoś innego .:)
Witam. Jestem początkującym jeśli chodzi o programowanie w BASCOMie i mam następujący problem: Chcę wykonać do mojego urządzenia prosty licznik czasu, tzn. stanem początkowym jest cyfra 5 i oznacza ona czas pozostały do końca pracy w minutach. W zasadzie cały program działa w porządku, timer odlicza od 5 dół, ale chciałbym dodać jedną rzecz. Korzystam...
Zacznij od tego aby na przerwaniach od timera, np 1ms liczyć czas przez jaki przycisk jest naciśnięty, niech będzie to zmienna "czasGora". Jeśli zwolniony zerujesz czas. Gdy jest naciśnięty przez 2000ms, ustawiasz flagę "rozjasnianie". W przerwaniu gdy flaga ta jest ustawiona zwiększasz wypełnienie PWM do MAX. Pierwsza część zadania zrealizowana. Następnie...
Jacur: wg mnie to ciekawe rozwiazanie z ta petla. Omija odliczanie czasu konwersji. Zreszta ty czas konwersji dales ok 2s to o wiele za duzo wg mnie. Inna sprawa z ta petla ze nie wiem jak szybko DS po komendzie konwersji zmienia stan lini na niski :/ W reszcie kodu tez nie wiedze nic podejrzanego, chociarz przyznaje sie ze dla mnie bascom to dziwny...
[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...
Nie mam ustawiony wewnętrzny 8MHz ale docelowe w projekcie chcę użyć zewnętrznego 11.058MHz. Myślałem że instruknja: CONFIG Clock = Soft, Gosub = Sectic powoduje że obojętnie co jest ustawione to Bascom automatycznie odlicza 1s i po niej skacze do instrukcji Sectic. Dokładnie chodzi mi o przerwanie które będzie wykonane po upływie 1s. Chcę przez to...
"Impulsy są z czujnika z zewnątrz - powiedzmy klawisza który podaje 5v czy tam mase." No to trochę wyjaśnia. Jak nie daje drgań to tak. Ale Timer1= counter zlicza impulsy z zewnątrz. No a powinno być tak: Coś przychodzi na dowolną końcówkę ustawioną jako wejście. Odliczamy czas. Zmieniamy stam wyjść. Najbardziej prymitywny program: If pin.x=0 then wait1...
http://obrazki.elektroda.pl/3368298900_1... Rejestrator temperatury. Zbudowany dość dawno temu (nie pamiętam dokładnie kiedy). Zrobiłem go bo zawsze chciałem mieć coś takiego. Każdego dnia tworzony jest nowy plik w którym zapisywane są temperatury z czujnika. Aby nie bawić się w przyciski (chciałem wszystko zmieścić pod wyświetlaczem)...
Najpierw zamień godziny na minuty potem dodaj do tego minuty. Następnie trzeba sprawdzić czy minutyFull nie są przypadkiem mniejsze od minuty Start ( przypadek 23:00 -> 1:00 ). Wtedy przedział czasowy należy policzyć jako czas do północy + czas po północy. Podzielić uzyskany przedział czasowy na liczbę stopni sterowania PWM. Odliczanie czasu do Full...
Witam .Chodzi mi po głowie taki oto automat dla zapominalskich ( oparty na tanim mikroprocesorze np.attiny2313 ) jedno krótkie kliknięcie przyciskiem zapala się światło na np.5 min. lub dłuższe przytrzymanie przycisku zapala światło np.na 1h i zawsze drugie kliknięcie przerywa odliczanie czasu i wyłącza światło.Przy tym dłuższym świeceniu zapalałby...
Ustawiasz CTC na bardzo szybki, czas pomiędzy przerwaniami to będzie rozdzielczość regulacji. Reszta to wartości w pamięci(zmienne) odliczające programową syntezę częstotliwości.
Ja niestety nie zabrałem sie do złożenia układu(mam jedynie gotowe schematy).Jestem na etapie poznawania AVR-ów. Ale moze takie zachowanie ma zwiazek z tym co napisał GrzesGrz71 :http://www.elektroda.pl/rtvforum/viewto... Mógłby ktoś potwierdzić lub rozwiać wątpliwości. PS Mania23:Ładujesz timer i odliczasz czas za pomocą prascalera;...
https://obrazki.elektroda.pl/5128171500_... https://obrazki.elektroda.pl/1498445100_... https://obrazki.elektroda.pl/5424905700_... Witam. Przed rozpoczęciem opisywania mojej konstrukcji chciałbym ostrzec: OZON W ZBYT DUŻYM STĘŻENIU JEST SZKODLIWY DLA ZDROWIA I MOŻE ZAGRAŻAĆ ŻYCIU ! Wszelkie próby...
(...) timer1 wykorzystałem do multipleksowania wyświetlaczy, timer2 odpowiedzialny jest za odliczanie czasu asynchronicznie a timer0 służy do odbioru komend w RC5. Gdyby użyć jakiś zewnętrzny zegar RTC to by zwolnił ci sie jeden timer2. Zaś jako czujnik oświetlenia można by było użyć którejś z diod LED, wykorzystująć ją jako FOTODIODĘ. Pozdrawiam
Dałeś radę - prawie dobrze i nawet powinien działać... chociaż nie do końca jak byśmy tego chcieli ;) Parę moich poprawek: $crystal = 1000000 Config Pind.0 = Input Config Pinb.1 = Output Config Pinb.2 = Output Portd.0 = 1 Portb.1 = 0 Portb.2 = 0 Dim Dioda As Byte Dim Licznik1 As Byte Licznik1=0 Dioda = 0 '------------ Do Waitms 10 If Dioda > 0 Then...
Mam problem jestem początkujący napisałem program który ma za zadanie regulować włączanie wiatraka i czas z jakim ma dmuchać , jednocześnie mierzy temperaturę i nie działa tak jak powinno : Temperatura pokazuję co jakiś czas błędny pomiar np 124 , 32 , 98 procek się resetuje chińskie znaki raz na jakiś czas w programie można było ręcznie zmieniać czas...
Heh, no już się powtarzam... :) W głównej pętli programu jest instrukcja ; Input Rs_data Czyli, że nic mi nie pomoże żadne odliczanie czasu, bo przez 99% czasu program nic nie robi stojąc na instrukcji input, i czekając na dane z rs232. I właśnie dlatego wymyśliłem to przerwanie, żeby - kiedy przyjdzie zapytanie o temperaturę, były te dane już gotowe....
Witam potrzebne jest mi urządzonko zrobione na AVR np 2313. Urządzonko to ma mieć układ czasowy odmierzający czas do 4 min po którym na jednym z portów ma sie pokazać stan wysoki. Odmierzanie czasu ma być zainicjowane stanem niskim na innym porcie . Cykl ten ma sie powtórzyć 3 razy. Jeżeli na porcie inicjującym odliczanie po 3 krotnym pokazaniu sie...
Wykonałem prosty "odmierzacz" 2 minut do opiekacza kanapek w obudowie minutnika mechanicznego ( 8 zł z hakiem ). Układ włączany jest przyciskiem chwilowym. Fakt odliczania czasu sygnalizuje pulsująca dioda LED. Po 2 minutach następuje wyłączenie przekaźnika i włączenie buzerka na 5s, a urządzenie przechodzi w stan czuwania. Łatwo dostosować go do Twoich...
bascom odliczanie czasu bascom odliczanie czasu timer arduino odliczanie czasu
usterka funai microsd 128gb gaśnie palnik gazowy
superkondensator radio zarobki elektryka
Centra akustyczne i przesunięcia fazowe w głośnikach basowych i driverach Centra akustyczne głośników - lokalizacja i znaczenie