Jeśli by to nie przeszkadzało to możesz podpiąć kwarc zegarkowy, wtedy na 8 bitowych licznikach na pewno zliczysz sekundę:)
Timer0 jest 8-bitowy czyli pomiesci liczbę z zakresu 0-255, Timer1 jest 16-bitowy czyli pomiesci liczbę z zakresu 0 - 65535. Zapewne autorowi chodziło o to aby zrobić to na timerze 8-bitowym, ale Twoje obliczenia tez są dobre tylko dla Licznika/Timera1
Dla kwarcu 4MHz jest to prescaler 64 i początkowa wartość licznika: 193 Dla kwarcu 8MHz prescaler to: 64 i początkowa wartość licznika: 131 To pokazuje kalkulator. Chciałoby się zakrzyknąć : a nie mówiłem :-P Aby wpisać do Timer2 początkową wartość, to używamy poleceń: TCNT2=początkowa_wartosc Timer2= początkowa_wartosc Counter2=początkowa_wartosc...
Witam, chciałbym przy użyciu Atmega8 i zewnętrznego kwarcu odmierzać i zliczać setne części sekund, sekundę mogę łatwo wyłapać z timera1 według przykładowych obliczeń 4000000MHz / 256 = 15625 65536 - 15625 = 49911 lub 8000000Mhz / 256 = 31250 65536 - 31250 = 34286 Nie mam jednak pomysłu jak....... Z góry dziękuję za pomocne wypowiedzi. Aby odmierzac...
przerwanie timera wpływa na polecenia z rodziny Wait - powodują one, w zależności od częstości wydłużenie czasu oczekiwania, dlatego trzeba w takim wypadku odmierzać czas używając timera ;-)
A kondensatory jakieś przy tym kwarcu masz?
' 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...
Dokładnie tak jak masz napisane, z tym, że konfigurujesz jeden z timerów do dliczania czasu. Przykładów w Bascomie z obsługą timera znajdziesz bez liku.
poza tym dlaczego nie używasz sprzętowych timerów jako timerów tylko do generowania przerwań? Kolego może źle mnie zrozumiałeś ale do ustawiania flagi używam Timer0 i właśnie mnie dziwi dlaczego mi się te czasy nie zgadzają Jak do wyznaczenia czasu używam tego samego timera. Tak wygląda obsługa przerwania u mnie : Timer może zliczać czas wprost i w...
Ogólnie kwarce o wysokich częstotliwościach są niezbyt dokładne - zwykle +-100ppm w dobrym układzie. Na pewno jednak kwarc jest lepszy niż wewnętrzny RC. Robiłem kiedyś testy i na kwarcu 16MHz bez kalibracji udało się osiągnąć dokładność o ile pamiętam 1-2s na godzinę. Ale jak napisał Ci (może nie do końca) przedmówca (at)Milek7: Najlepiej wtedy w przypadku...
Zacznij od tego: funkcja wait i pokrewne PRZESTAŁY ISTNIEĆ. Do opóźnień i odmierzania czasu użyj timera i ogólnie poczytaj o timerach.
Witam Dim Licznik As Byte Config Timer0 = Timer , Mode = 1 , Gate = Internal Enable Interrupts Enable Timer0 On Timer0 1ms Counter0 = 64535 Start Timer0 Do Loop 1ms: Counter0 = 64535 Start Timer0 Incr Licznik Return A wynika to z tad:czestotliwosc kwarcu (w tym przykladzie-najprosciej,moze byc inny)wstepnie dzielona jest pzez 12 (wynika to z budowy...
Kod wydaje sie ok, przy czym moje walki z odmierzaniem czasu mowia ze trzeba brac poprawke na Bascoma /i to duuuza/. Sprawdzilem pod symulatorem (Bascom) i program dziala, w realnym procku pewnie czasy sie rozjada.
Zamiast przerwania od Timera0 odmierzaj czas Timerem1.
Witam Mam oto taki problem jak ww w temacie. Napisałem program na odmierzanie czasu przerwanie co 1 sekundę i ogólnie po wgraniu programu wszystko działa czas leci i jest wszystko OK. Lecz po chwili a Nie ma potrzeby az tak komplikowac tak wyjatkowo proste zadanje jak odmierzene czasu 1 sek. Po pierwsze: system ci sie blokuje juz po kilku sekundach...
Tak, wiem, ale T0 zlicza impulsy drogi, a T1 odmierza czas :)
Witam od jakiegoś czasu próbuję w Bascom napisać zegarek (lub coś co precyzyjnie odmierza czas), ale niestety nie wychodzi mi to, mógłby mi ktoś pomoc udzielić wskazówki bo już sie powoli gubię
Po dodaniu rezystorów podciągających działa już wyświetlacz i dioda:) Jednak dalej układ nie odmierza czasu
Zegar na Timer0 ruszył, natomiast PWM jest zrobione na Timer1. Przyczyną nie działania Timer0 to procedura RC5(!!??) Teraz tylko pozostało wyregulować odmierzanie czasu..
Instrukcja WAIT Przeznaczenie: Przerywa działanie programu na określony czas. Składnia: WAIT il_sekund Opis: Instrukcja wstrzymuje działanie programu na podaną ilość sekund. Odmierzany czas jest wartością przybliżoną, więc nie należy stosować tej instrukcji do dokładnego odmierzania czasu. Używanie przerwań, może znacznie wydłużyć działanie instrukcji....
W skrócie zajrzałem do noty katalogowej i dowiedziałam się, że do MEGA 16 można podłączyć 2 kwarce. Końcówki to XTAL1 i 2 oraz TOSC1 i 2. Należy pamiętać, że z końcówek TOSC1 i 2, do których można podłączyć kwarc zegarkowy można sterować asynchroniczny timer2, który należy zatrudnić do odmierzania czasu. Do XTAL1 i 2 podłaczysz sobie kwarc o wysokiej...
Witam ja bym zmienił kwarc na 12Mhz to będzie rozdzielczość co 1us i wtedy timer ustaw na 50ms (50000) i masz równy czas . Nie wiem jak jest w bascomie ale asemblerze instrukcją ORL THL,#wartość można skorygować wartość licznika żeby odmierzał równy czas.
P.S. używam kwarcu 4MHz W takim razie na pewno sie nie uda. Chyba ze bedziesz zliacz przerwania i co ktores wykona sie porgram. Oczywiscie musisz wtedy uwzglednic czas potrzebny na obsluge przerwan i odpowienio zmodyfikowac ilosc zliczanych impulsow. Tylko nie wiem na ile mozna w bascomie liczyc na powtarzalnosc czasu wykonywania kodu.
Co rozumiesz pod pojęciem impuls, bo może to przybliżyłoby nam, co chcesz osiągnąć ? Najprawdopodobniej będziesz potrzebował obsługiwać przerwania OnCompare1A , w których raz włączysz pin, drugi raz go wyłączysz i ustawisz inne odmierzanie czasu.
. Jak w bascomie dokładnie odmierzać czas ??? - wymagana dokładność najlepiej rzędu 0.1-0.25 mikrosekundy . P.S. Stosuję zewnętrzny zegar dla mikroprocesora, dokładnie 10 MHz, a więc okres wynosi 0.1 us. Mam też inny precyzyjny rezonator o f=20MHz i wówczas okres cyklu wynosiłby T=0.05 us.
OK, ale jak w bascomie ma wygłądać przykładowy program na odliczenie czasu 100ms????????????? :?
A timerem 2 możesz odmierzać czas.
Ja tam proponuje ładowanie tajmera poprzez Tlx=coś i thx=coś gdzie x to numer tajmera(0 lub 1) w ten sposób zawsze wiemy co nam się ładuje i gdzie. W szczególności jeżeli zależy nam na szybkim przeładowaniu tajmera np jeżeli tryb 1 to zaraz na początku obsługi tajmera dajemy tlx=coś a dopiero potem thx=coś. W ten sposób ładujemy najpierw tą wartość...
A to Ci niespodzianka. Bo ja właśnie Waitus używam do precyzyjnego odmierzania czasu i to co do cyklu procesora.
Więc funkcja debounce i timera do odmierzania czasu wykorzystaj.
Próbuję uruchomić programowy zegar w Bascom na arduino Mega 2560 Kompiluje się bez problemu ale niestety nie działa. Jakiego 'działania ' się tu spodziewasz? -ma poruszac wskazówki, czy też wskazywac czas na dysplay leżącym w szufladzie? - a może przekładac kartki kalendarza? Nie bardzo będziesz mógł uruchomic 'Bascomowy- softwarowy' zegar na Arduino...
na paskach LED WS2812B oprogramowanie w Bascomie. A nie udostępniłbyś fragmentów kodu który to obsługuje? Bo o ile kojarzę, to te diody potrzebują precyzyjnego odmierzania czasu przy transmisji danych. Jakoś tak do tej pory spotykałem się z opiniami, że Bascom nie bardzo się do tego nadaje... ;-)
Nie odpisałeś mi na wszystkie pytania??? :sm9: Ja bym zajął się teraz czujnikiem temperatury, przynajmniej główny ekran nie będzie taki pusty i kijowy. Jak ustawianie godzin chodzi to z RTC damy na razie spokój? To najtrudniejszy chyba w programowaniu układ i zostawiłbym go na koniec, lub w ogóle z niego zrezygnujemy? Bo tak na prawdę nie jest on potrzebny,...
Tak,oczywiście ze zamiast waitms muszą by warunki żeby procesor mógł odmierzać czas . Natomiast zawsze nie rozumiałem sensu flag .
O układ DS3231 lekko zahaczyłem za sprawą kolegi mirrek-a. Polecał zastosowanie układu dla podobnych projektów ze względu na najlepsze parametry ze znanych układów zegarkowych. Pomyślę o proponowanym rozwiązaniu uśpienia procka. W pętli głównej procesor nie robi nic. ************************************* Do Loop End *************************************...
Jakie chcesz odmierzać odcinki tego czasu? Jeśli długie np 1h to atmega bez kwarcu będzie dość niedokładna, jeśli odcinki czasu mają być bardzo długie(12h) i ma je odmierzać bardzo dokładnie będziesz niestety musiał użyć jakiegoś RTC.
Z tego co czytałem mozna podawac czas w zakresie 0- 65536 czyli sie miescisz ale zauwazylem kiedys ze poprawnie działa z wartosciami do 255 tzn to był bascom 51 i komenda waitms, spróbuj tak: waitus 250 waitus 250 waitus 250 waitus 250 I powiedz czy teraz prawidłowo odmierza ten czas 1ms. :)
W dodatku jest jeszcze problem z odmierzaniem czasu (...) Albo czy kolega odpowiednio ustawił taktowanie procesora w bitach konfiguracyjnych...
A czy w BASCOMie komenda 'wait 1' przy dyrektywie $crystal=<fosc> nie załatwi wszystkiego ?? A jeśli chodzi o precyzyjne odmierzanie czasu to polecam asembler i obsługe timera w przerwaniu. To jest chyba najdokładniejszy sposób. Pozdrawiam.
aha to źle zrozumiałem. myślałem że jak pilot nadaje to zegar staje. no to w takim układzie podejrzewam że getrc5 używał właśnie do odbioru kodu timera0. Zmień w swoim programie odmierzanie czasu z timera 0 na timer1 i zacznie działać.
Po pierwsze pozbądź się waitów, po drugie przerwania. Podam hasła do opracowania: Timery - odmierzanie czasu, przerwania, timing zdarzeń Przyciski - podciąganie, odczyt z rejestru PINn
Program działa i nawet licznik się zatrzymuje tylko jaką mam pewność że jest to 250ms? chodzi mi o to żeby uzyskać jak największą dokładność. Dzięki za ten przykład, spróbuję... Nie wiem dokładnie , do czego Ci to potrzebne ale przykład z przerwaniem , który podałem wcześniej działa z dokładnością do ~2 cykli zegara(500)ns.Czy to niezbyt dokładnie...
Nie prościej impulsy zliczać za pomocą INTx, w czasie 1s odmierzanej Timerem ? Pomerdało mi się, że Autor chce mierzyć RPM.
już kombinowałem na kilka sposobów i niestety nie mogę sobie do końca tego wyobrazić!! A może zamieścisz w BASCOMie kawałek kodu jak byś to rozwiązał?
Pytanie czy odczyt F_CPU jest prawidłowy (z tego co pojmuję to pochodzi on z ustawień w Eclipse jako 8000000) ??? No bo może to taktowanie nie jest do końca takie jak ustawiam w MKCalculator.. Zdaje się, że poświęciłem kilka zdań w książce skąd bierze się F_CPU, a bierze się z pliku "makefile" który to z kolei jest automatycznie generowany przez ECLIPSE....
Niebardzo wiem jak mialbym to zrobic z poziomu BASCOMu! Rzeczywiscie uC sa nowiutkie dzis je pierwszy raz programowalem. Nie znam sie na tym zbyt dobrze wiec prosze powiedz dokladnie co mam ustawic i gdzie zeby czas byl odmierzany prawidlowo
po pierwsze jako $crystal podaj 16000000 (Twój kwarc to najprawdopodobniej 16 MHz) - o ile masz ustawione jako zewnętrzny kwarc we fusebitach co do dokładnego odmierzania czasu to jeśli na prawdę tego chcesz to odpuść sobie instrukcje typu wait, które nigdy nie będą dokładne. Polecam poczytać conieco o timerach, które mogą odmierzać czas dużo prościej...
Problem w tym ze za pomoca bascoma chyba nie da sie wygeneroawac czegos takiego: http://www.bigmike.it/ircontrol/images/M... (po wygeneraowaniu czekamy 62ms i znowu to samo) Napisalem kod z toggle i nic - zero reakcji ze strony aparatu. podchodząc w ten sposób to szybko okaże ci się, że pisząc ten program np w języku C - też nic nie zadziała...
A czy w programie uzywasz jakichs przerwan? np od licznikow? Naturalnym jest ze czas moze sie wtedy znacznie wydluzyc. Ta instrukcja nie sluzy do odmierzania dokladnego czasu, tylko przyblizona. (zajrzyj do pliku pomocy, jest tam to opisane)
No dobrze, ale jaka dokładność ma być. 1 minuta, 1 godzina, 1 sekunda? Jaki używasz zegar do odmierzana czasu, czy to jakiś PCF?
A może by tak zastosować pętlę Do - Loop. Obecnie program przeleci raz i nici z inkrementowania. Dodatkowo bez END pewnie pójdzie gdzieś w maliny. Jeśli podczas oczekiwania procesor nie musi nic robić polecam instrukcję Wait (i podobne) do odmierzania czasu.
Odkopię temat i coś opracuję przez weekend Z góry dziękuję i cierpliwie czekam. Aha..zapomniałbym o tej różnicy. W jednym kodzie do odmierzenia sekundy wykorzystują funkcję millis() (licza do 1000ms) a w tym Bascom`owym używają Int od RTC (co 1s). Więc te odmierzenie sekundy będzie tu miało znaczenie. U mnie czas już jest w kodzie odmierzany czy nie...
Fusy mam na 8Mhz, czas odmierza dobrze, czestotliwosc takze. Sprawdzalem miernikiem oraz na 40min testow spieszy sie o jakies 2-3s ( -+ czas reakcji na stoperze).
Timer to dobry pomysł a w ogóle juz nie wspomne o łatwosci jego obsługi w BASCOM'ie, jeśli nie robiłeś tego jeszcze to nie martw sie przyjdzie Ci to napewno bez problemu. Jeżeli chodzi o dwa kanały no to po prostu wykozystasz dwa timery. Gorzej z odmierzaniem czasu bo timery się skończyły (no chyba że 89c52), w tym przypadku bez problem można by poradzić...
W ISIS DS18B20 nie będzie działał ci szybciej niż chyba 2MHz. Jest to ograniczenie symulatora, poczytaj sobie w HELPIE ISISa. Też walczyłem z tym jakiś czas, potem się wyjaśniło. Przecież to tylko symulator, chociaż i tak chyba najlepszy. Ustaw w ISIS procek i program na 2 MHz i będzie śmigało, potem przy wgraniu do rzeczywistego Uc zwiększysz. Jeśli...
Udało mi się odpalić program z książki Pana Wiązani, ale tam timet odmierza 1s Jak to przeliczyć? Jest jakiś na to wzór? Rzeczywiście musiało się 'udac odpalić' bo ten program nie jest pozbawiony błędów (!) \ A jak zrobić żeby odmierzał np 10 sekund? Zmiana preskalera wydłużyła max do 2sekund czas. Aby timer1 odmierzył inne/dowolne interwały czasu,...
Coś tu chyba nie pasuje ;) W opisie projektu autor napisał : "Na wspólną sondę dodatnią (poziomu i suchobiegu) podawane jest napięcie raz na ok. 1s przez ok. 100ms, o prądzie rzędu kilku mA. " ...a weź podziel 8MHz przez preskaler 64 i interwał timera 500 (Load Timer 500) to wyjdzie Tobie 250Hz... Zmienna typu Word sonda_Hz kręci się w kółko i przepełnia...
Te impulsy wejściowe i wyjście ma być na tym samym pinie ? PD.0? Jeśli nie to ustawiamy przerwanie na INT0 i w obsłudze przerwania zwiększamy zmienną. Jeśli zmienna osiągnie dziesięć ustawiamy wyjscie na stan wysoki. Jednocześnie timer zlicza czas pomiędzy impulsami i jeśeli jest większy niż 60 sekund ustawia wyjście na stan niski. Podumowując: Przerwanie...
Niewiem jaki to jest uC, ale uczono mnie ze czasy odmierza sie zazwyczaj timerami.. jesli to byloby to ustrojstwo na '51 nalzezaloby przerwanie 10 ms, zrealizowac na liczniku T2, 16 bitowym w trybie przeladowania. Realizujac odmierzanie czasu na przerwaniu, zawsze masz 10ms odstepy czasu bez bez potrzeby korekcji taktow potrzebnych do kolejnego odmierzania...
Trzeba skracać czas który Timer ma odmierzać. W tym trybie zrobisz to najłatwiej w przerwaniu. Zaraz pod "Obrot:" użyj jednej z komend Load albo Timer= Po prostu teraz Timer liczy od 0 do 255. Jak coś do niego wpiszesz to będzie liczył, na przykład, od 128 do 255 czyli krócej. Dodaj sobie potencjometr do układu i będziesz mógł sterować prędkością w...
Napisz dokładnie co chcesz otrzymać? Jakie jest zadanie bo opisałeś to niejasno. Chcesz odmierzać czas 1 sekundy czy liczyć impulsy zewnętrzne? Jaki zegar dla procka? robiw
Warto wiedzieć, że jeśli pracują przerwania i użyjesz jakiegoś wait w pętli głównej to nigdy nie będzie to "wait" taki o jaki Ci chodziło... przerwania zabierają czas procesorowi i generalnie dłużej mu schodzi ze wszystkim łącznie z odmierzaniem i tak stosunkowo mało dokładnego wait.
Na upartego dało by się z wyjść 4017 dołączać różne rezystory do 555, ale odmierzanie czasów, liczonych w minutach, na obwodzie RC, to nie jest dobry pomysł. Inny pomysł to układ z wieloma wyjściami, o stałym czasie załączenia gdzie, czas świecenia LEDa ustalało by się ilością wyjść do niego podłączonych Ale to są rozwiązania "na upartego" mają wady...
Chodziło tylko o zamianę Timer1 na Timer0, ale ok mogę pokazać który nie działa... a właściwie który już działa... dobrałem wartości prescale i load całkowicie doświadczalnie... miałem nadzieje że ktoś wyjaśni co i jak z tym przy okazji ale ok... Przy taktowaniu 16 MHz; Versja 0 dla Timer1 masz zalozone: const Timer1Reload = 700 config timer1=timer,...
Na temat timerów nie powiem ci za wiele, bo się nie znam. Ja tylko odmierzam około 1sek odcinki w swoim timerze i to mi wystarcza. Nie zagłębiałem się jeszcze bo nie miałem potrzeby takiej.
Przeczytaj to: http://www.elektroda.pl/rtvforum/topic22... Powinno Ci nieco rozjaśnić sposób odmierzania czasu przy użyciu uC '51. Jedyny sensowny sposób to ten podany przezemnie wyżej.
Witam W zalaczniku fragment schematu mikroprocesorowego miernika indukcyjnosci i pojemnosci . Niestety nie znam dokladnie zasady dzialania tej czesci ukladu. Napewno na wyjsciu wzm. operacyjnego powstaje sygnal prostokatny, ktorego impulsy sa zliczane przez mikroprocesor i wyswietlane na tekstowym wyswietlaczu LCD, cos w rodzaju miernika czestotliwosci....
Niby tak jak wykasuje je całkiem to czas odmierza ale bardzo krótko daje stan wysoki na ledy i prawie ich nie widać . Chyba mój algorytm jest do bani :(.
Funkcja wait w Bascom nie jest dokładna i na dobra sprawę nie należy jej stosować do odmierznia czasu. Aby dokładnie odmierzać czs należy posłuzyć się timerami. Jakie dałeś kondensatory do kwarca?
mam taki problem a mianowicie zrobiłem taki układzik, w którym po naciśnięciu przycisku ma się załączyć przekaźnik na 30 sekund i wszystko działa ale chciałbym, żeby po ponownym naciśnięciu tego przycisku przed upływem tych 30 sekund odmierzanie czasu zaczynało się od nowa i nie wiem jak to zrobić? prosiłbym o jakieś łopatologiczne rady, gdyż jestem...
...Proszę o jakieś podpowiedzi bądź kawałek kodu co ma być dalej, żeby generować te nieszczęsne 40kHz ... To już wszystko :) Na pinie PB1 masz przecudne 40kHz , jeśli faktycznie procek jest popędzany 8MHz. W ramach testu , możesz w pętli głównej napisać: Do Set Tccr1a.com1a0 'dołącz oc1a do pinu Wait 5 'przez 5 sekund fala 40kHz Reset Tccr1a.com1a0...
Robisz prosty błąd w składni. Poczytaj w helpie o Load. Nie tak: [syntax=basic4gl]Load Timer1 = jakas_wartosc[/syntax] tylko tak: [syntax=basic4gl]Load Timer1 , jakas_wartosc[/syntax] Z tego co pamiętam można również tak. przykładowo: [syntax=basic4gl]Timer0 = 249[/syntax] co jest równoważne: [syntax=basic4gl]Load Timer0 , 6[/syntax] Ale to sobie musisz...
Sprawdź na symulatorze w którym momencie się rozjeżdżają wartości badanej zmiennej i timera1 Możliwe, że ta pętla się wykonuje więcej razy, bo warunek stopu przeskakuje. Timer jest zwiększany asynchronicznie w stosunku do programu i program może przeoczyć moment gdy Timer=konkretna wartość, bo sprawdza Timer1 w przypadkowych momentach a nie po każdej...
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...
Kawałek kodu, który powinien Ci pomóc z odmierzaniem czasu: Odmierz_1s: Load Timer1 = 12500 Incr Licz_10ms If Licz_10ms = 10 Then Licz_10ms = 0 End If Return Zlicz: Incr Czestotliwosc Return Odmierza 1s, a potem zlicza ilość przerwań na timer0. Przerób na swój kwarc.
Witam. Mam problem z przerwaniami w atmega8. Wcześniej nie potrzebowałem przerwań więc to zagadnienie mnie nie interesowało. Potrzebuję wywołać przerwanie zewnętrzne int0 które uruchomi timer1, a ten zacznie odmierzać czas. Proszę o pomoc. Pierwsza zasadnicza uwaga to nie zauważyłem w programie konfiguracji interruptu0- coś np. takiego: config INT0=...
Ta pętla nie jest konieczna. Dodałem ją żeby przyciski działały cały czas. Bo jak byś napisał Waitms 1000 to przez całe 1000ms przyciski by nie działały. A tak w pętli co raz masz sprawdzenie przycisków i odmierzanie czasu 10ms. Czyli łączenie te 1000ms i tak uzyskasz a przy okazji przyciski będą normalnie działały.
Oczywiscie pin D7 od razu po tej zmianie ustawilem na wejsciowy (Config Pind.7 = Input). Kod jest w porzadku, zegar odmierza czas prawidlowo, nie resetuje sie, nie zawiesza... Ogolnie jest ok. Dziekuje wszystkim za pomoc. Pozdrawiam
To dobrze własnie widać róznice między danymi producenta a rzeczywistością. Bez tych kondestatorów PCF8583 źle odmierzał czas a to własnie było na tych zaleceniach producenta. Wsatawiłem kondestator i problem zniknął.
tak jest w bascomie i koniec, nic na to nie poradzisz prawdopodobnie czas potrzebny na przeliczenie ile porezeba instrukcji na 1 uS jest porównywalnie duzy z czasem 1uS dlatego było by to bez sensu. jeśli chcesz zrobić programowane PWM to użyj przerwania licznika do odmierzania czasu i całłą obługe zrób w przerwaniu. ja tak czasami robie gdy potrzebuje...
Tak kwarc jest z kondensatorami 22pF. Ten egzemplarz Atmegi potraktowany Powyższymi fusebitami wylądował już w pawlaczu. Fusebity ustawione w obecnym uc to: hfuse=c9 lfuse=ff Z tak ustawionymi fuse bitami układ spieszy "tylko" 12s na godzine. Czy taka precyzja jest standardem przy odmierzaniu czasu w ten sposób, czy może da się z tym coś jeszcze zrobić?
To chyba mi nie pomoże. Jesem początkujący w bascomie 01ale z tego co wiem procesor wyjść INT ma 2 lub 3. A ja mam w planach zrobienie 4 odbiorników więc to chyba wyklucza taki sposób. Chyba że każde wyjście da się ustawić jako int? Przy jednym tylko wejściu wystarczyłoby podłączenie wejścia pod interrupt i w jego subrutynie zablokowanie tego interruptu...
U mnie wszystko dzała OK. No tylko long to 31 bitów a nie 32 (przynajmniej w basconie) ale to zmartwienie w 2077 (czy coś koło tego). Ja odmierzam czas od 01.01.2000. Pozdrawiam.
Witam. Fajny pomysł, trzymaj tak dalej! Nic tak nie daje satysfakcji konstruktorowi jak działające urządzenie będące jego własnym pomysłem. Nie wiem czy będziesz rozwijał projekt, ale pewnie tak bo "zawsze można coś poprawić i ulepszyć". Jeśli tak będzie to dobrze by było dodać na płytce złącze programatora aby programować mikrokontroler bezpośrednio...
Atmegi mają wewnętrzny układ taktujący 1MHz, do tego trzeba zmienić ustawienia programowania w stk200 (przełączyć fuse na zewnętrzny kwarc). co do zworki - jakaś bzdura, 1wire niewymaga żadnych zworek, 1-wire to kwestja programu, timer służy do odmierzania czasu i niemusi byc połączony z portem. co do i2c- niewiem...
http://obrazki.elektroda.pl/6514394200_1... Chciałem przedstawić prościutkie urządzenie, służące do ułatwienia pomiaru czasu. Na zawodach samochodowych, w których biorę również udział do pomiaru czasu wykorzystywany jest chronometr, do którego należy podłączyć fotokomórkę na linii START i drugą fotokomórkę na linii META. Jednakże nam...
witam odbiornik podczerwieni mam TSOP 1736 jezeli chodzi o progamik ktory powoduje miganie diody Led to dioda miga 30 razy na 30 sekund wiec odmierzanie czasu jest ok. rezonator mam wybrany :Crystal oscillator, fast rising power (1011), na forum wyczytalem ze tak powinienem ustawic
Zrób tak, jeżeli dwa przyciski po sobie to ta sana komenda to anulujesz ją, może to być kłopotliwe jak na prawdę będziesz chciał przycisnąć dwa razy. Dlatego najlepiej dodać jakiś timerek który odmierza czas pomiędzy dwoma tymi samymi komendami, jak czas będzie większy od np. 1s to puszczasz komendę, jak nie to odrzucasz.
Zrób tak: 1 licznik do odmierzania czasu, przerwanie co np 25ms 2 licznik do zliczania impulsów Jeżeli nastąpiło przerwanie np 25ms, to zlicz liczbę impulsów. W taki sposób masz dokładniejsze odmierzanie czasu, funkcja wait do tego się nie nadaje. Przeanalizuj sobie ten temat: http://www.elektroda.pl/rtvforum/topic16... a potem dodaj to co napisałeś...
Kolejna - konfiguracja portów odbywa się na rejestrze PORTC, a nie PINC, który jest przeznaczony do odczytu stanu pinu portu c. To nieprawda. Konfiguracja odbywa się w rejestrze DDR a nie PORT. W Bascomie pojedyńcze piny konfiguruje się właśnie Config PINX.Y = Input/Output Także użycie waitów do odmierzania czasu opuszczania rolety nie zda egzaminu....
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...
Oczywiście że można umieścić ddscore w przerwaniu. Jeśli ktoś chce obsługiwać inne rzeczy poza samą syntezą, to należy ustawić timer na przerwanie np co 50 lub 100 cykli, i pozostaje czas wolny na obsługę programu, a dds sobie żyje "swoim życiem". Potem calosc zestroilbym dodajac nopy i ewentualnie korygujac minimalnie timer Jak czas odmierza timer,...
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...
Przerwań nie moge wyłaczyć gdyż w oparciu o nie realizuje odmierzanie czasu potrzebne po to by co 0,5ms zapisać liczbę zliczonych obrotów do wewnętrznej pamięci mikrrokontolera. Rozumiem że pracując w BASCOM AVR nie ma raczej alternatywnych rozwiązań(oprócz wstawek asemblerowych), które przyśpieszyły by prace tego modułu? Przy kwarcu 8MHz cykl maszynowy...
A proszę bardzo wersję: Compiler version: 2.0.2.1 Compiler build: 2.0.2.1.0 IDE version: 2.0.2.0 Windows OS: Windows 7 Proffesional SP1 Oryginał legalny nie ma się czego wstydzić. Timera używam tylko jednego z odmierzaniem około 5 sekund. 'konfigurujemy timer wywoływany co jakiś czas (patrz procedura) Config Timer0 = Counter , Prescale = 1024...
Podepnę się pod wątek, bo temat pasuje :D atmega8 na wewnętrznym oscylatorze 8MHz i przerwanie zliczające sekundy: Config Timer0 = Timer , Prescale = 8 Load Timer0 = 100 'przerwanie co 0,1ms On Timer0 Odmierz_ms do loop end odmierz_ms: Load Timer0 = 100 Incr Licz_ms If Licz_ms = 10000 Then '10000*0,1ms=1s Licz_ms = 0 end if incr sekundy return Wszystko...
Filmik przedstawiający świecenie całej matrycy. Tylko narazie to trochę biednie wygląda, bo zauważyłem, że kilka diod nie styka, będę musiał poprawić je, no i funkcja do odmierzania czasu też jest biedna :P Mam nadzieje że jako zrobie to już na timerze to bedzie lepiej ;) Biednie wygląda, bo każda dioda jest włączona tylko przez 1/20 czasu - żeby uzyskać...
Nie bardzo mam teraz ochotę zgłębiać kod ponownie, ale pamiętam że w Twojej wersji Timer odmierzał czas 20s i kiedy nadszedł czas to w przerwaniu mierzył temperaturę Dallasem DS18B20 i w dodatku pisał od razu po wyświetlaczu :D Dlatego jedną ze zmian było to, że Timer tylko ustawia flagę by dokonać pomiaru i go wyświetlić. Tak więc dopóki nie jesteś...
Dodałbym, że Bascom odpowiedzialny jest jeszcze za koklusz i gradobicie. 1. M8 musi być ustawiony na pracę z kwarcu zegarkowego - FUSY. Powoduje to napędzanie M8 z generatora wewnętrznego RC 2. Trzeba skonfigurować Timer2, który jest zdolny do asynchronicznego taktowania z kwarcu 32768Hz - polecam helpa Config Timer2. 3. W przerwaniu od timera2 należy...
Napisałem jakiś czas temu programik obsługi serwa i działa bardzo dobrze. Do odmierzania długości stanu "H" impulsów sterujących używałem tylko 8-bitowego TIMER0, w moim zastosowaniu zamiast odmierzać odstępy 20ms zrobiłem synchronizację kolejnych impulsów do impulsów z odbiornika. Wszystko Full- BASCOM :-) działa dobrze. Przy kwarcu 8Mhz, prescale=64...
odmierzanie czasu odmierzanie czasu stm32 timer1 odmierzanie czasu
pompy scania elektryczna tylna klapa dmuchawy octavia
lodówka whirlpool pokrętło renault mascott
Kenwood KRF-V5020 vs JVC XR150: Wybór amplitunera do gramofonu z wkładką MM Sherwood AL1110: Dźwięk w słuchawkach, brak w kolumnach