https://obrazki.elektroda.pl/5472165000_... Tester LED i podświetlenia ledowego. Zainspirowany tym tematem na forum rosyjskich kolegów: http://monitor.net.ru/forum/topic544255-... postanowiłem zbudować podobne urządzenie. Temat interesujący przez całe 6 stron, chociaż opisuje cały czas jedno rozwiązanie w różnych wariantach wykonawczych....
Dodatkowy wpływ na błąd ma niedokładność częstotliwości generatora kwarcowego. Błąd w sekundach na dobę, wyraża się wzorem: \Delta=86400*(1-\frac{fwzr}{f}) \Delta - błąd w sekundach na dobę (wartość ujemna oznacza spóźnianie się) fwzr - częstotliwość wzorcowa (czyli to co ma być np. 4000000 Hz) f - częstotliwość rzeczywista kwarcu lub generatora kwarcowego...
A czemu nie na temat, częstotliwość rzecz ważna. W końcu to zegar ;) Nadal nie rozumiesz. Nie możesz odmierzyć 60 sekund, jeżeli masz odczyt powyżej jednej sekundy to wynika z podstaw matematyki. Jeżeli sprawdzasz co 1,1 sekundy to po 54 odczytach nic się nie zmieni bo 54x1,1=59,4 więc zmiana nastąpi po 55 odczycie czyli po upływie 60,5sekundy. Więc...
Cześć. Zrobiłem prosty zegarek na LCD i atmega8 , kwarc wewnętrzny 8Mhz No i problem ,kod jest dość prymitywny : Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.3 , Db6 = Portb.4 , Db7 = Portb.5 , E = Portb.1 , Rs = Portb.0 Config Lcd = 16 * 2 Dim Sekunda As Byte Dim Minuta As Byte Dim Godzina As Byte Do Waitms 1000 Incr Sekunda If Sekunda = 59 Then...
Witam serdecznie. Ostatni kod przepisałem żywcem z książki "Programowanie mikrokontrolerów w języku BASCOM" autorstwa Marcina Wiązania. Dioda miga ciut za wolno. Tu mi ręce opadają, dlatego zwracam się do Was o pomoc. Kod: Nie wierzę w to co napisałeś!!! Autor ksiązki nie zrobiłby takiego błędu... Podajesz błędne instrukcje, i oczekujesz poprawnej...
dawid512 - Dlatego kazałem mu sprawdzic specyfikacje, cóż nigdy nie używałem tego uC. Pytanie, czemu sam nie zauwazyłem błedu w dzieleniu ;] Jak widac i od temperatury i od napięcia zasilania. http://obrazki.elektroda.net/57_12329121...
No to obydwa kontaktrony podepnij do pinów INTx, a później rób takie coś: 1)wyzeruj zmienną x i y odpowiedzialną za aktualny stan zliczonych impulsów z wejśc INT0 i INT1 (obydwa kontaktrony), wyzeruj timer0 2)załącz timer 0 aby odmierzał czas 10 sekund 3)poczekaj aż timer odmierzy czas, w międzyczasie są zliczane impulsy z wejść INTx 4)po odmierzeniu...
I tak jest w rzeczywistości. Automat służył jedynie do odtworzenia zapowiedzi i odmierzenia 30 s trwania nagrania wiadomości. Wiadomości nagrywane były na dodatkowy magnetofon ( w tym przypadku właśnie Kapral".)
To proste: Aby odczekać sekundę to przy zegarze 1Mhz musisz odczekać 1 000 000 cykli. Możesz użyć do tego preskalera (1,8,64,256,1024). Jesli chcesz odmierzyć sekundę to musisz użyć preskalera 64 (256 i 1024 nie wchodzi w gre ponieważ jeśli podzielimy 1 000 000 przez te liczby to nie wychodzi liczba całkowita). I tak przy preskalerze 64 timer musi zliczyć...
albo wziąść kwarc 1 Hz :D ale nie wiem z kad :D
Load Timer 250 pojawił się 2 razy bo pierwszy jest wykonyawny przed wejściem do pętli a następny w pętli. W tym programie jest dodatkowa zmienna Licz_8ms bo Timer0 nie może odmierzyć całej sekundy w jednym przebiegu. Przy użyciu Timer1 i odpowiedniego kwarcu można osiągnąć przerwania co 1 s. Jest to korzystne bo odmierzanie czasu jest nieco dokładniejsze....
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...
Dydaktyczne usypianie i wybudzanie procka: [syntax=c]//----------------------------... void sleep() { sei(); EIMSK |= (1<<INT0); // Zezwolenie na irq od wejścia INT wdt_disable(); // Wyłącz WDG set_sleep_mode( SLEEP_MODE_STANDBY /*SLEEP_MODE_PWR_DOWN*/ ); sleep_mode();// Uśpij procka } //--------------------------------------...
Niestety nie. Żaden prosty układ czasowy nie odmierzy ci 8 640 000 sekund Musisz zastosować układy licznikowe np. CMOS 4040 lub 4020 zliczające impulsy np. 1 sekundowe. Dla podanego zakresu wystarczy licznik 24 bitowy (zakres maksymalny z rozdzielczością sekundową - 16 777 216 sekund (≈194 dni) złożony z 2 liczników 12 bitowych.
Witam. Borykam się z pewnym problemem. Otóż nie mój procek nie odmierza dokładnie czasu. Częstotliwość jest ustawiona na 8 MHz i w trakcie wykonywaniu programu, gdy avr napotka się na _delay_ms(1000); zamiast odmierzyć sekundy odmierzy ok. 5 sekund. Dodam, że na ATmedze8 wszystko działa poprawnie, lecz jestem zmuszony korzystać z 328P ponieważ ma więcej...
Jeśli masz problem z odmierzeniem sekundy to zaglądnij tu :arrow: http://www.elportal.pl/pdf/k10/56_06.pdf Pozdrawiam :D
W sumie do zegarka nie potrzebna jest cała data (wystarczy właśnie dobrze odmierzona sekunda :)), a powstaje tylko problem z baterią, komunikacją itp :P Niemniej z drugiej strony można by się pokusić o zrobienie od razu czegoś bardziej rozbudowanego z RTC... :)
witam. potrzebuję odmierzyć równo 1 sekundę, przykład wziąłem z kodu : http://obrazki.elektroda.pl/8005169500_1...
a możesz jakiś najprostszy przykład podać odmierzenia za pomocą timera np. 1 sekundy, próbuje odmierzyć 1 sekundę ale nie bardzo umiem posłużyć się timerem ustawiłem timer0 tak: Config Timer0 = Timer , Prescale = 256 ale dalej nic nie wymyśliłem
Wartość początkową ustalam odejmując 256 i 125, stąd TCNT0 = 131. Dlaczego tak to liczysz? Używasz trybu normalnego Timera0. Timer 0 w trybie normalnym liczy od 0 lub wartości początkowej ustawionej w rejestrze TCNT0 do wartości 0xFF. Przy 8 MHz i podziale przez 256 obliczenia wyglądają następująco: 8Mhz/256 = 31 250 31 250/256 (od 0 do 0xFF) = 122...
Z tym adc to ciekawy pomysł,można go wykorzystać w innych projektach.Ale płytki już wykonane. Przecież timer zawsze startuje od zera ,potem ma dobić do 255 przerwać program. Potem co przerwanie incrementuje zmienna sekundę 30 razy by ta sekundę odmierzyć. Zmienna sekunda deklaruje na początku programu-normalnie.
A może wyłumaczyć mi ktoś tak jaśniej niż whelpie bascoma ;) co to jest ten prescaler i co on dzieli. Może tak po kolei jak twój program widnieje: 1. Jeżeli PORTB jest przeznaczony do obsługi LCD to nie konfiguruj go w ogóle w stylu jaki podałeś w pierwszym poście. Config Portb = &B11111111 : Portb = &B11111111 ===> źle!!! Może to powodowac zakłócenia...
Niezły jest ten bot... Opracował podobne podejście, jedynie nie zauważył, że 4 cykle na sekundę są takie same i można uprościć do cyklu 1X32Hz + 14x64Hz No chyba nie można tak uprościć bo przecież łącznie musisz mieć te 60 impulsów w ciągu sekundy, które ostatecznie musi zliczyć układ TMS żeby odmierzyć czas jednej sekundy. Skoro tak dobrze idzie Tobie...
Dokladnie, podpowiem jeszcze tyle ze uzywajac wewnetrznego rezonatora RC 1MHz, korzystajac z 16 bitowego timerka mozesz odmierzyc 67 sekund wiec spokojnie dasz rade ;]
Jesli masz sztywny transformator (niska rezystancja) i duże pojemności, to przy podłaczeniu do sieci płynie początkowo b-duży prąd (magnesowanie rdzenia, ładowanie dużych kondensatorów). W takim wypadku po stroniepierwotnej trafa daje się szeregowo rezystor (kilka-kilkanascie ohm) , który po odmierzeniu kilku sekund, lub po naładowaniu C do odpowiedniego...
...Bo robiąc przecież jakiś zegar na kwarcu 8MHz i wbudowanym timerze nie da sie uzyskać równej sekundy... A kto Ci naopowiadał takich głupot :?: Timer1 w trybie CTC,OCR1A=31250,preskaler=256 i masz zegarek , o niebo dokładniejszy od pętli delay , jednak nie super dokładny , bo zakładając idealny kwarc , to taki zegarek opóźni się o 1 s po odmierzeniu...
Całkiem fajny ten układ scalony cd4541 tylko że ja jestem całkowicie zielony i nie będę wiedział co przylutowac do której nóżki :-D poratowałby ktoś prostym schematem co z czym połączyć i jakie wartości tych opornikow. Jeśli dobrze rozumiem działanie tego to po podaniu napięcia 12v na ten układ on się uruchomi, odmierzy sekundę i poda napięcie +12 na...
W przypadku gdyby wymagana pojemność kondensator była za duża (koszt kondensatorów) Orientacyjnie, potrzebny byłby 47 000 µF / 16V. Jeśli opóźnienie ma być elektronicznie, to są np. CD4528, CD4538, CD4047, CD4541 (ten ostatni może używać tysiące razy mniejszej pojemności kondensatora, pozostałe potrzebują kilkudziesięciu µF do odmierzenia 5 sekund)...
Teoretycznie: układ RC do odmierzenia 3, 4 sek. + jakiś MOSFET do rozłączenia zasilania.
Faktycznie . Czyli moje rozwiązanie to użycie Timera2 jako PWM do serw a Timera 0 do zliczania impulsów ? Chyba że mogę się przesiąść na jakąś inną atmege która takie wyjście wyciągnięte ma ? Szczerze mówiąc to pierwszy raz bawię się z Timerami . Wystosuje więc pytanie odrazu . Jak skonfigurować Timer 2 do odliczania czasu ? Ponieważ on jest 8 bitowy...
(at)drobok Tutaj dochodzimy do sedna problemu:) Autor użył złego timera do tego zadania bo, aby odmierzyć jedną sekundę musi wykonać się 15625 przerwań. No ale to oczywiście nie jest problemem. Problemem jest właściwa inkrementacja i funkcja do konwersji wywoływana raz na sekundę.
Juz lepiej z przejrzystością kodu , sam chyba przyznasz ze łatwiej ogarnąć program , tylko te Wait'y . Miałeś je usunąć z programu . Stosujesz dokładne odmierzanie 1 sekundy i minuty a zatrzymujesz program Wait'em 10 na około 10 sekund . Napisałem jak wykorzystać odmierzanie 1 sekundy do odmierzenia 10 sekund dla buzzera Dopisz w tej linijce kodu Wart_nap...
1. W jakim języku piszesz? 2. Kalkuluje się to tak: Masz kwarc 16 000 000 Hz (16 MHz) i dajesz sobie jeden z dopuszczonych prescalerów, np. 64 i wtedy timer zlicza Ci impulsy z częstotliwością 16 000 000 / 64 = 250 000 Hz, czyli jeden impuls timera to 4*10^-6 s lub inaczej aby odmierzyć 1s musisz zliczyć 250 000 impulsów, Jako, że Timer0 jest 8 bitowy...
Problem rozwiązałem przy pomocy czasówki programowalnej MTR-17TPA. Zasilanie wpięte na stałe, sterowanie ze styku fotokomórki. Program działa tak: Po podaniu zasilania czasówka czeka na S=1 z fotokomórki czyli pojawienie się obiektu w bramie. Gdy sygnał się pojawi, czeka kolejne 2s na S=0, czyli krótki impuls od przejścia człowieka. Jeśli tak się stanie,...
Potrzebuje odmierzyć dokładnie 1 sekundę mam to zrobione na _delay_ms(1000); czy ktoś może podać jakiś przykład na timerze. Z góry dziękuje za pomoc
Pytania uszczegóławiające: - czym jest wyzwalane odmierzanie tych 2 godzin - włączeniem zasilania, przyciskiem ? Czy ten czas ma być stały czy regulowany w jakimś zakresie ? - w jakim zakresie ma byc regulowany czas impulsu wyjściowego ? - czy po impulsie wyjściowym układ ma się zatrzymać czy znów odmierzyć 2h i "impulsnąć" wyjściowo ? - jaki ma być...
Ojojoj. Gotowego programu nikt Ci nie napisze. Pomyśl trochę... Na pewno trzeba odmierzyć np. sekundę i w ciągu tej sekundy zliczyć impulsy z czujnika obrotów.
Po pierwsze, timer liczy od 0 do 255, ale to oznacza 256 impulsów pomiędzy przepełnieniami, czyli powinno być 256, a nie 255 * 128us. Po drugie zaokrągliłeś wynik z 32.64 do 32 przed dzieleniem, co w efekcie dało niedokładny wynik ilości przepełnień. W rzeczywistości częstotliwość przerwań można obliczyć dużo prościej: ( 8000000 / 1024 ) / 256 = ok. 30,5176.....
AVE... Jakiego PICa konkretnie chcesz użyć? Zasada pomiaru jest dość prosta: najpierw ustawia się któryś z timerów, by odmierzał 40 sekund i po odmierzeniu wywołał przerwanie. Potem tworzy się pętlę, która w nieskończoność sprawdza stan wybranego przez Ciebie pinu. Gdy jest tam logiczna jedynka, to dodajesz 1 do zmiennej. Gdy timer skończy zliczać czas,...
Witam. Mam pytanie. Jak odmierzyć 1 sekundę przez Timer0 dla określonego kwarcu (np. 18,432 MHz)? Znalazłem pewien temat na elektrodzie ale tam jest opisane odmierzanie 1 sekundy dla Timera1 a o Timer0 jest tylko wspomniane i nic z tego nie rozumiem. Oto ten temat: http://www.elektroda.pl/rtvforum/topic14... Byłbym wdzięczny za pomoc jak to się...
Możesz to zrobić na dwa sposoby. 1. W przerwaniu zmienisz stan tego portu. 2. Przerwanie ustawia ci pewną flagę że nastąpiło odmierzenie 1 sekundy a w pętli głównej programu testujesz tą flagę i jak wystąpi to zmienisz ten port a flagę kasujesz I cała filozofia. Czy to jest jasne ?
Albo zastosowac preskaler 8 i zliczac do 40960 - wtedy przerwanie bedzie co 10 sekund (oszczednosc baterii). Trzeba bedzie tylko wyliczyc sobie dokladnie ile cykli zajmie reinicjalizacja timera po tych 10 sekundach aby uzyskac dokladne 10 sekund. Zadne problemy sie nie pojawia z timerem, jezeli go wczesniej wylaczymy. A dokladnie tez wiemy ile cykli...
hmm no dobra, czyli po prostu mogę w tym samym przerwaniu dać inkrementację zmiennej? A jeśli mam licznik ustawiony w tryb CTC, pracujący z częstotliwością 1kHz i faktycznie przerwanie od przepełnienia, to ta zmienna będzie się inkrementowała z taką właśnie częstotliwością tak? czyli 1kHz=0,001s, więc jeśli chcę odmierzyć 1 sekundę to w programie głównym...
Zrób wyłącznik działający tak: - krótkie naciśnięcie zapala światło - długie, np. ponad 1 sekundę je gasi. Czyli masz przerzutnik do dodania, przycisk podaje sygnał na wejście CLK, na wejście D jest podana stała jedynka, przycisk wyzwala jednocześnie układ monostabilny, który po odmierzeniu czasu, jeżeli przycisk jest jeszcze wciśnięty, gasi światło.
czyli 256ms = 1s? Bo gdy brałem czas ok 200ms to była jakby 1s. Robiąc wait() albo coś podobnego w programie /C,Bascom/ nigdy nie odmierzysz idealnie sekundy, szczególnie jak coś w pętli jeszcze dodajesz. Rozwiązaniem jest zewn. kwarc zegarkowy 32.768Hz. Czy to jest czas idealnej sekundy? Zależy co uważasz za idealną sekundę /z jaką dokładnością/.
Jeśli chcesz odmierzyć dwa czasy, to można użyć dwóch NE555, po jednym do każdego czasu, a można np. drugi czas (włączenia przekaźnika) odmierzyć używając tranzystora - tak, że zmiana stanu NE555 włącza tranzystor, a on sam po sekundzie się wyłącza - w tym celu trzeba użyć tranzystora PNP, jego emiter połączyć z +zasilania, kolektor przez cewkę przekaźnika...
sylwek2293 - jak masz to zrobić odpisał ci już inny sylwek :-) Najprostsza opcja to użycie timera w wersji 8 bit lub 16 bit. Gdy timer się przepełni to wygeneruje ci przerwanie, w tym przerwaniu odblokujesz pin który zbiera informacje. Aby w miare odmierzyć 2 sekundy to po każdym przerwaniu powinienes ręcznie załadowac timer jakąś wartością aby przepełnienie...
A można prosić jakiś pomocny fragmencik kodu? Bo chyba, o ile się nie mylę, timerem 'za jednym razem' nie odmierzę np. 30 sekund. z góry dzięki pozdrawiam herszt
Dlaczego piszesz że timer odpada :?: Chyba bardziej prewencyjnie niż na timerze się nie da tego zrobić. Piszesz że 26 przerwań na 3 sekundy to daje (3*60)/26. Ustaw aby timer zliczał w górę, odmierz 6 sekund i 923 milisekndy i po problemie. Czas pomiędzy przerwaniami to kawał czasu, mikroprocesor w tym czasie będzie się nudził więc można go przestawić...
A nie prościej byłoby ustawić timer, żeby odmierzał 15 sekund, a impulsy zliczać przy pomocy przerwania. Każdy impuls zwiększałby licznik impulsów (w przerwaniu). Po odmierzeniu 15 sekund miałbyś przerwanie od timera, w którym odczytywałbyś licznik impulsów i odpowiednio reagował. Po odczytaniu zerowałbyś licznik impulsów. Cały cykl powtarzałby się...
dokładnie odmierzyć znikać sekunda sekunda wyłancza
zaślepka pompy telewizor zatrzymuje ciągło świecić
pralka amica pct5570 bateria parkside styki
Trwa cofanie zmian wprowadzonych na twoim komputerze - co oznacza? Ford 1.6 TDCi 2006 Turbo/EGR PID List, No Boost PID, Garrett GT1544V Faults