3.75*8000000(załóżmy, że tyle cykli musi minąć aby minęła sekunda) = 30 ms na sekunde * 60 = 1.800 sekundy na minute :P
Uruchomi się - tak jak pisał kol. (at)dondu na wejściu masz układy Schmitta, czyli po przekroczeniu poziomu progowego nastąpi zmiana stanu. Problem w tym, że dla różnych egzemplarzy ATMega, czy różnych warunków, ten próg będzie nieco dryfował. Więc średnio to się nadaje np. do tego, aby odmierzać czas stałej RC.
Na jakiej czestotliwosci dziala procek? 1 MHz. Dzięki. spróbuję przez CTC.
http://obrazki.elektroda.pl/7208083000_1... Witam Od dawna przymierzałem się do zbudowania zegara nixie na sześciu lampach. W internecie jest sporo takich projektów, jednak większość z nich nie odpowiadała moim założeniom. Postanowiłem więc zaprojektować i wykonać zegar od podstaw wykorzystując podzespoły, które miałem pod ręką. Założenia...
http://obrazki.elektroda.pl/1587637900_1... Witam, przedstawiam moją konstrukcję timera kuchennego. W dobie smartphonów i rożnych innych “kombajnów” potrafiących precyzyjnie odmierzać czas, pomysł czasomierza kuchennego może wydać się zbędny jednak wizja upuszczenia telefonu do garnka z zupą skutecznie zmotywowała mnie do...
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.
Zastanawiałem się też nad zegarem RTC, mam scalaka PCF8583, którego można by zatrudnić. Tylko zastanawiam się w jakim trybie musiał by on pracować ? Timer ? Alarm ? Dajmy na to wybiorę PCF'a nie wiem za bardzo jak on miałby odmierzać mi zadane godziny - musiałbym za każdym razem gdy włączam sterownik ustawiać od nowa czas i dopiero względem niego odmierzać...
Czyli w moim przypadku , raczej opcja pierwsza prawda ? Możnaby przekombinować , odmierzać 16-bitowym i wykorzystać dwa PWM'y dwóch timerów no ale ...
(...)wiele starszych zegarów w autobusach miejskich posiada synchronizację z DCF77, co można zauważyć tuż po rozruchu silnika na przystanku początkowym, zegar potrzebuje do 60 sekund by zacząć odmierzać czas). Do 60 sekund? Jeśli już to co najmniej 60 sekund w idealny warunkach (np. we Franfurcie do 120 sekund, w Polsce nawet kilka godzin. Do 60 sekund...
Sam widzisz, że musisz odmierzać czas. Każdy projekt z mikrokontrolerem zaczyna się od przerwania timera. Bez tego nie da się zrobić prawie nic.
Ale czegość tu jeszcze nie rozumiem przecież mam kwarc 8MHz i stosuje delay_us(value);a value to czas nagłówka i bitów w mikrosekunndach czy czas nie powinien się wydłużyć ośmiokrotnie?????? Zastanów się jeszcze raz nad tym co napisałeś vs nazwa funkcji: delay_ us Innymi słowy, czy ta funkcja jest funkcją liczoną w taktach mikrokontrolera, czy w mikrosekundach?...
Witam Mam dziwny problem nigdy mi się tak nie zdarzyło z poleceniem Wait/ waitms w Bascomie. Chodzi o to, że mam nowy procek Atmega 8 ustawiony fabrycznie na 1 Mhz i powinien odmierzać dokładnie 1 s na takim ustawieniu fabrycznym a ja wpisuje w programie np. waitms 100 to dioda zapala się na 5 sekund... dziwne. Próbowałem na zestawie ZL2AVR , na innej...
W takim razie jak to zrobić? W podlinkowanym przed chwilą przeczytałem że częstotliwość pracy z wewnętrznymi elementami LC jest ok 550kHz, czytałeś? będziesz aż tak zmieniał wartości elementów? W nocie katalogowej jest napisane, że typowe opóźnienie to ~15ns O jakim elemencie mówisz? chyba nie o LM311. I jak działa taki licznik wewnętrzny? Jak go obsługiwać?...
Wiatm. Posiadam ATmega8 i Wyś. LCD 16x2 (BIG). Znudziło mi się wyświetlanie tekstu bez sensu więc chciałem sobie zbudować urządzenie do zliczania sekund tylko, że nie mogę sobie poradzić z tymi przerwaniami. Więc proszę was o napisanie mi takiego programiku który by działał następująco. Podłączam zasilanie i zaczyna odmierzać czas po sekundzie i wyświetlać...
Czyli robisz praktycznie pustą płytkę, ciut głupszą od płytki serii Arduino, którą można kupić gotową za 10 zł, za to namęczysz się prowadząc przewody do drugiej płytki. Chcesz użyć PWM, co wyklucza możliwość użycia przekaźników. Chcesz mieć wiele kanałów PWM, ale wybrałeś uC, który ma tylko 3 kanały. Zacznij od założeń: opisu funkcjonalności, czujników,...
(at)dondu DS1307 przy odcięciu głównego zasilania pobiera z baterii typowo ok. 300nA, czyli jakieś 30 razy mniej niż 10uA. Zgadza się, ale Twój zegar w stanie zasilania z baterii nie przebywa prawie nigdy - zasilanie to jest tylko na wszelki wypadek : Zasilaniem zastępczym jest bateria litowa 3V. Policzmy więc ile czasu ATmega w zaproponowanym przeze...
Dzieki wilkie, dziala wszystko jak trzeba :) A wiecie moze o jakims "skrypcie" dla zegara? Albo jak sie do tego zabrac? Chcialbym wyswietlic godzine np. wiem, ze normlanie to godzine program by pobral z systemu, ale przeciez Atmega nie "wie" ktora godzina :D dlatego zastanawiam sie, jak do tego mialbym sie zabrac :) Dzieki wielkie :) Musiał byś powiedzieć...
witam Temat być może jest trochę mylący. Ale do rzeczy. Bawię się zestawem zl3avr i jestem na etapie obsługi transmisji w kodzie RC5 w asemblerze. W książce "Mikrokontrolery AVR ATmega w praktyce" podane są gotowe programy do nadawania i odbierania wiadomości w RC5. O ile procedurka nadawania nie budzi żadnych moich wątpliwości, o ile w przypadku odbierania...
Witam, dobrze że mówisz bo jeszcze płytki pod proca nie robiłem to jeszcze dorzucę układ detekcji zera pod 230V. Tak z ciekawości to używałeś tego schematu: http://www.hoelscher-hi.de/hendrik/engli... Czy innego, to bym już w pełni sprawdzony wrzucił. Co do tablicy czasów, to przecałkowałem sinusoidę tak żeby odmierzać równe odcinki...
Witam, od paru dni męczę się z ds18b20, spakowałem go na płytkę testową, wszystko podłączone dobrze, nie na pasożytniczym tylko na normalnym zasilaniu. Odpowiada na reset a później już na nic. Krótki kurs obsługi wziąłem z karty i z http://tnij.org/ds18b20 Bardzo przyjemny pdf. Program jest napisany na podstawie tego pdf. Jako, że podłączony jest tylko...
Witam Temat Ambilight był już poruszany na elektrodzie. Istnieje projekt Momolight i jest do niego trochę oprogramowanie na PC. Chciałem sobie takie cos zbudowć. Jednak nie podobały mi się tam 2 rzeczy: - RS232. Nie mam juz wolnych w PC, w lapku nie mam wcale. Kłopotliwy MAX232, dodatkowe elementy. - Procesor PIC. Siedzę w AVRach i nie mam chociażby...
Każdy zapis ma wymagany czas. Chyba że urzywasz trybu stronicowego to tylko raz odmierzasz ten czas na stronę.
Mozesz zrobić dodatkową zmienna w if-ach ustawianą na wartość w sekunach i dekrementowaną razem z x++ , gdy nie jest zerowa to włączasz diode a po dojsciu do zera dajesz opoznienie pomiedzy świeceniem po którym robisz nowy pomiar. Gdy ma być podtrzymywane to nie blokujesz pomiarów. [syntax=c] if (sekunda) { if (czas_swiecenia) { czas_swiecenia--; wlacz...
Witam dopiero zaczynam przygodę z programowaniem mikrokontrolerów i mam pytanie odnośnie odmierzania czasu na uc atmega 16. Odmierzam czas przy pomocy timera1 kwarc 16MHz. Z obliczeń wynika, że przy preskalerze 1024 muszę odliczyć 15625 impulsów więc ładuję do timera wartość 49911 i wtedy uc odmierza mi około 4 sekund zamiast 1, natomiast gdy prescaler...
Jeżeli w programie występuje konieczność odmierzania czasu ATmega musi mieć swój "zegarek" na którym będzie ten czas odmierzał. Tym zegarkiem jest Timer, natomiast funkcje typu delay() wstrzymują tylko wykonywanie programu.
Witam dopiero zaczynam przygodę z programowaniem mikrokontrolerów i mam pytanie odnośnie odmierzania czasu na uc atmega 16. Odmierzam czas przy pomocy timera1 kwarc 16MHz. Z obliczeń wynika, że przy preskalerze 1024 muszę odliczyć 15625 impulsów więc ładuję do timera wartość 49911 i wtedy uc odmierza mi około 4 sekund zamiast 1, natomiast gdy prescaler...
Która atmega? W atmega8 możesz użyć: Timer0 - odmierzanie czasu Timer1 - zliczanie impulsów Timer2 - PWM
Witam, Chciałbym dowiedzieć się jak mogę łatwo przeliczyć preskaler i czas przerwać, tak abym mógł odmierzać czas na ATMEGA_32 16Mh Timerem1 oraz Timerem0. Z góry dzięki za pomoc. ----------------------------------------... (PS. Jestem początkującym użytkownikiem tego forum mimo, że od roku czasu jestem na nim zarejestrowany....
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.
Twój problem nie wynika z priorytetu przerwań tylko braku umiejętności prawidłowego ich wykorzystania i zastosowania biblioteki która jest źle napisana . Zazwyczaj dzieje się tak gdy użytkownik w przerwaniu umieszcza całą procedurę obsługi bufora , wyświetlacza lub innych peryferii lub po prostu timer odmierza krótszy czas niż trwa obsługa przerwania...
To teraz troszkę mi namieszałeś, ATmega 16 ma ICP1 przy nóżce Timera 1, ja odmierzam impulsy 2-ch sygnałów... Co do sposobu zliczania impulsów za pomocą T0/T1 to po co używać 3 timer do odmierzania okresu czasu. Przecież okres jest odmierzany na przemian. Gdy T1 zlicza impulsy obrotomierza to T0 odlicza okres, po tym okresie T0 zaczyna zliczać impulsy...
Kolego, chyba nie chcesz powiedzieć, że czas odmierzasz przez programowe opóźnienia? To jakiś koszmar. Szczególnie w procesorze, w którym masz do tego celu dedykowane timery. Co do 1-wire - po co programowo odmierzać czas, skoro ATMega, podobnie jak każdy procesor wyposażony w UART ma semi-sprzętową obsługę 1-wire? No i przydałoby się dodać jakieś podtrzymanie...
Połykanie półokresów wprowadzi składową stałą. Trzeba sterować poprzez wycinanie okresów. Ponieważ okres przy 50 HZ to 20 milisekund trzeba liczyć okresy ( w bardziej zaawansowanych układach). Myślę, że w mniej skomplikowanych wystarczy zmieniać czas załączenia poprzez odmierzanie Timerem wielokrotności 20 milisekund.
Licznik 2 odmierza 2.5ms (czas jednego z osmiu cykli). licznik pierwszy odmierza ile ma trwac stan wysoki na linii 1-2ms w twoim przypadku
Witam, jestem początkujący, chciałem zaimplementować w swoim układzie (dodatkowo) funkcję pokazującą czas, czyli generalnie zegarek. Układ będzie oparty na procesorze ATmega*. Poczytałem trochę na forum o kwarcach i chciałem uporządkować wiadomości. Jeżeli chcę by nie było dysproporcji między aktualnym czasem a wskazaniem układu, to rozumiem, że potrzebuję...
Nie piszesz jakiego kwarcu używasz. Jak kilka MHz to możliwe że masz źle ustawione fusebity. Wtedy µC może chodzić np. na wewnętrznym generatorze 1MHz. Kwarc zewnętrzny nie działa i stąd efekty sporej różnicy w odmierzaniu czasu.
To chyba zły pomysł. Po pierwsze, taki potencjometr pracuje dla napięć 3/5 V, i nie nadaje się do pracy w układzie z U2008. Jeśli regulacja PWM nie działa jak należy, po trzeba ją po prostu poprawić i zrobić dobrze, zamiast wymyślać takie kombinacje. Jeśli żarówka sterowana PWM miga, to najprawdopodobniej jest problem albo z wykrywanie przejścia zasilania...
Wątpliwa sprawa , atmega czy inny układ nie rozwiąże problemu złej koncepcji , braku powtarzalności odmierzania o którą pewnie koledze się rozchodziło. Z drugiej strony chyba nie ładnie pisać nieprawdę: - ma kolega problem z podstawowym układem elektronicznym( nawet jego fachowym określeniem), aż tu nagle wykonał kolega sterownik na mikroprocesorze...
oraz "the frequency depends on supply voltage, temperature and batch variations" WD nie służy do precyzyjnego odmierzania czasu. Zobacz w nocie jak zależy od podanych parametrów, a okaże się, że to raczej nie ma większego znaczenia. Zewnętrzny WD często oferuje znacznie szerszy zakres wartości limitów czasu. Ma to znaczenie w szczególności w aplikacjach...
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...
Kwarc podczas programowania nie musi być podłączony o ile uC korzysta z WEWNĘTRZNEGO generatora ("fusy"dla ATMEGA 8 i podobnych = 0001 lub 0010 lub 0011 lub 0100), Jeżeli przełączono "fusy" na generator ZEWNETRZNY czyli kwarc lub generator podający z zewnątrz gotowy sygnał taktujący to podczas programowania generator/kwarc musi być podłączony. Na kwarcu...
Witam. Może ktoś napisać jak odmierzyć 12.5us? Bo potrzebuje te 12.5us do wygenerowania półokresu przebiegu 40KHz. Chciałbym zmieniać stan pinu na przecieny co 12.5us. Da się to zrobić bez przerwań? Sprzęt to ATMEGA 8 z kwarcem 8MHz, program piszę w Bascomie Będę wdzięczny za pomoc
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...
Oscylator może mieć +-3% dla 1MHz i 25stopni zgodnie z notą katalogową (ATMEGA16, str. 27), więc do dokładnego odmierzania czasu zaleca się używanie zewnętrznego kwarca. Podobno może uzyskać +-1%.
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ć...
Po pierwsze, nie wysyłaj printf skoro chcesz odmierzać dokładnie. Po drugie, jeśli chcesz sprawdzić co jest nei tak to zapamiętaj w przerwaniu wartość licznika jaka jest w momencie przerwania i ją wyślij uartem. Po trzecie, zeruj licznik w przerwaniu. Po czwarte, musisz mieć dokładny kwarc/generator. Po piąte, używaj typedef i definicji zmiennych uint8_t...
jeden kondensator mniejszy i równolegle z nim trymer a drugi pozostaje bez zmian zmiana położenia trymera spowosuje lekką zmianę częstotliwości kwarcu i taktowania procesora. licznik w procesorze będzie pobierał impulsy właśnie z oscylatora kwarcowego mówimy o atmega... a może liczniki liczyły Ci źle bo korzystasz z wewnętrznego oscylatora RC, który...
Cześć, to mój pierwszy projekt. Chcę zrobić sobie zegarek binarny na atmedze 8, oczywiście multipleksowany. Chciałbym jednak, żeby po wyłączeniu nadal odmierzał on czas, tak że po ponownym podłączeniu do zasilania ciągle byłaby aktualna godzina, jak można to zrobić? Załączam schemat.
Witam, walczę już kilka dni i mam wrażenie, że brakuje mi jednego przecinka tylko nie wiem gdzie . Może ktoś widzi ten tragiczny błąd :( [syntax=vbnet] $regfile = "m88pdef.dat" $crystal = 1000000 $hwstack = 40 $swstack = 16 $framesize = 32 Cls Cursor Off Config Portd.0 = Output Config Timer1 = Timer , Prescale = 8 , Clear Timer = 1 , Compare A = Disconnect...
Jeśli twoje urządzenie ma dekodować sygnał chrominancji TV analogowej (PAL, NTSC), to ten kwarc jest w sam raz. Do wszelkich innych celów potrzebujesz albo kwarcu "transmisyjnego" (o ile masz mieć komunikację po RS232 z jedną z typowych szybkości), abo "okrągłego" (jeżeli masz np. USB lub musisz odmierzać czas w ludzkich jednostkach). "Transmisyjne",...
...bardziej mi chodzi o sam fakt, że nawet ręcznie (programowo) można wymusić takie dziwne wartości godzin i minut a scalak dalej będzie odliczał czas ;) nie zdając sobie sprawy że godzina w nim jest np 43:77. Tak sobie czytam ten wątek i ... nie mogę wyjść ze zdumienia 8-O Dlaczego "przyczepiłeś się" do PCF-a , a nie do swojego kodu :?: Nawet gdyby...
Potrzebuję czterech PWM i dwóch wejść odmierzających długość impulsu o zakresie od 1 do 2 ms. Pytanie czy atmega 8 się wyrobi czy muszę brać 16 . I jak rozumiem z wszystkich postów muszę pwm zrobić programowo bo potrzebuję pozostałych timerów do pomiaru impulsów. I pytanie o oscylator wewnętrzny czy mogę go użyć czy lepiej kwarc bo zależy mi na wielkości...
Do odmierzania odcinków czasów wystarczy ci timer i kwarc 32kHz bo dokładność nie odgrywa tutaj dużej roli.Widziałem gdzieś w sieci podłączenie kamerki MCA-25 chyba ale jeśli jesteś początkujący odpuść sobie nie dasz rady.
Witam, co do Bascoma to ci nie pomogę znaleźć błędu bo nie piszę w tym softu ale skoro masz tak ogromny rozrzut 1min - 7min to przeanalizuj dokładnie program, gdzieś czai się wielki błąd ;) ... tylko że nie pokazałeś schemtau i nie wiem czy zrobiłeś sobie ten zegarek tylko w oparciu o Atmegę i jej (właśnie kwarc zewn czy oscylator wewnętrzny) czy też...
Mam problem. Procek atmega 32 + dolaczony zewnetrzny kwarc 16MHz (kondensatory po 22 pF). Znalazlem w necie funkcje do odmierzania dokladnego czasu (np. 1s). Plik w zalaczniku zawiera te funkcje. Jednak u mnie zarowno funkcja nop_1s() jak i czekaj() trwaja ok. 12s, a nop_100ms trwa ok. 3s. Wydaje mi sie, ze wina moze lezec po stronie programowej. W...
Nie podoba mi się twoje rozwiązanie. Ja bym to zrobił tak - timer odmierzający takty w rytm podstawowego okresu PWM (czyli przerwania np. 1kHz). Teraz zamiast tych porównań z licznikami, wrzuć wartość licznika do rejestru compare register. Dzięki temu masz przerwanie po przepełnieniu timera (nowy okres) - w tym przerwaniu inicjujesz wysyłkę danych po...
Zależy, co rozumiesz pod pojęciem "krytyczne czasowo" ;) Ale ok, dajmy spokój. A co do przykładu, imho najdokładniejsze będzie coś pomiędzy - przerwanie i licznik wystąpień plus timer odmierzający np. sekundy i ustawiający flagę zakończenia pełnej sekundy. Wtedy w pętli głównej obliczenia i zerowanie flagi pełnej sekundy (w tle cały czas impulsy się...
Jak napisze prosty program do zaświecenia kilku ledów na porcie D to działa prawidłowo ale regulacja PWM na B1 i B2 nie działa. Fuse bity mam na 8MHz ale chyba wewnętzryny bo jak zewnętrzny kwarc odepne to diody działają poprawnie (w programie do odmierzania jednej sekundy) Dodano po 19 A moze atmega jest uszkodzona?
Witam! Zrobiłem sobie taki prosty logger, który wykonuje co 10 min pomiar temperatury i zapisuje wynik na karcie SD. Na początku dokumentacji atmegi pisalo ,że 20 Mhz osiągnid się dopiero przy => 4.5 V. Zasilanie ma wyglądać tak: NiMh: 3x1.2 V = 3.6 V (na początku przy pełnym naladowaniu 3x1.35 V = 4.05 V) [/quote] lub Alkaiczne, cynkowo węglowe: 3...
Bo gdy tam jest stała, to kompilator wykonuje dużo programistycznej magii podczas optymalizacji na podstawie tej wartości oraz częstotliwości zegara tak, żeby procesor odczekał dokładnie tyle, ile trzeba. Jeśli tam jest zmienna, to wartość nie jest znana (potencjalnie może tam się znaleźć cokolwiek w czasie wykonywania programu) i wtedy kompilator nie...
Sorry, troszkę źle nazwałem temat ;). Postaram się poprawić. Wracając co tematu ;) to wyszukałem gdzieś na internecie, że tą metodą, którą chce odmierzać czas osiągnięto dość dobre rezultaty, ale gubiono 1-2 sekundy na 15h. Z tą tylko różnicą, że podłączony został zewnętrzny oscylator kwarcowy 8MHz. No zaraz zaraz. Czyli to dla Ciebie taka mała różnica,...
Oczywiście że tak! A tyle razy czytałem pdf'a.... Drugi błąd tkwi w zapisie 10sek do adresu 15. Pamiętałem wszędzie o BCD zapominając, że powinno być nie 10 a 16 (B00010000). Czyli reasumując: zapis ustawień timera adres 0 <- 4 (ustawiony bit 3 włącza timer) adres 7 <- 0 (zerowanie na wszelki wypadek licznika - tu układ zlicza sobie impulsy) adres...
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=...
Witam. Chciałem sobie zrobić prosty zegarek. Napisałem kod, podłączyłem wszystko na mojej płytce testowej i niby działa, ale ... Za szybko odmierza czas. 1 sekunda trwa tutaj dużo krócej. W ciągu 1 minuty w rzeczywistości, naliczy 170 sekund. ATmega ma ustawiony fusebit na wewnętrzny oscylator 8Mhz, do XTAL1 i XTAL2 mam podłączony kwarc zegarkowy. Kod...
Jak należy ustawić MCU Clock Frequency w eclipse jeżeli w częstotliwość jest np. 4 razy zmieniana za pomocą clock_prescale_set()? Eclipse wykorzystuje wiedzę z MCU Clock Frequency zapewne tylko do makrt lub funkcji, w których do obliczeń (na etapie przygotowania kodu programu do kompilacji) niezbędna jest znajomość F_CPU, a są nimi opóźnienia z nagłówka...
Jest możliwość zrobienia stopera/minutnika z poczwórnym wyświetlaczem 7-segmentowym używając mikrokontrolera z rodziny atmega? Wyświetlacze najlepiej multipleksować w przerwaniach timera, żeby mieć pewność, że każda cyfra będzie wyświetlana jednakową ilość czasu. Odmierzanie czasu dla stopera/minutnika oczywiście też trzeba oprzeć na przerwaniach timera....
(at)Bogus105 dlaczego piszesz o programowym pwm'iem ? nie mozesz uzyc sprzetowego ? i tak pewnie bedziesz uzywal licznikow do odmierzania czasu :| Nie wydaje mi sie ze moze wystepowac mruganie atmega(at)16MHz powinien sobie spokojnie z tym poradzic nawet jesli ja co zajmie i straci 1ms to i tak wlokno zarowki nie zdarzy zgasnac :) do tego optymalizacja...
http://obrazki.elektroda.pl/8592196000_1... Witam, Od zawsze marzył mi się zegar na lampach NIXIE. Jednak nie chciałem żywcem kopiować jakiegoś projektu, tylko samemu coś zbudować. Długo szukałem inspiracji, najbardziej martwiła mnie obudowa bo u mnie z tym zawsze najgorzej. Zainspirowała mnie obudowa zegarka od electoNIXclock więc...
Witam! Mam taki dość nietypowy problem. Kontroler ma reagować na jedno z trzech przerwań: TIMERa 0 i dwóch zewnętrznych (czujki ruchu). Te przerwania zewnętrzne zliczają liczbę reakcji czujek, natomiast TIMER 0 ma odmierzać czas i dzięki niemu co kilka sekund mają być wyświetlane statystyki. Bez TIMERa 0 wszystko działa ok, ale statystyki lecą cały...
Witam. Kolego spróbuj wykorzystać do odmierzania czasu TIMER, jeśli jest taka możliwość. Mała podpowiedz jak napisać program: W pętli głównej: - sprawdzasz czy masz zapaloną diodę jeśli tak to gasisz i zatrzymujesz licznik - sprawdzasz czy dioda jest zgaszona jeśli tak to zapalasz i startujesz licznik W przerwaniu licznika i odmierzeniu odpowiedniego...
Chodzi mi o wykrycie jakiejkolwiek awari w urządzeniu (awaria czujnika, silnika itp). Chciałbym mieć taki niezależny timer ponieważ dokładność odmierzanego czasu nie jest zbyt istotna ale za to sygnał można dać od razu na kilka mikrokontrolerów połączonych we wspólny system. To takie trochę moje własne widzimisię, ale ciekawy jestem jakby się to sprawdziło.
To zależy co robisz z tym odbiornikiem. Jak potrzebujesz dosyć precyzyjne odmierzanie czasu (generowanie sygnału 36KHz lub odbieranie jakiegoś kodu) to wewnętrzny oscylator może być zbyt mało dokładny, bo błąd częstotliwości może wynosić nawet 10%. Jak potrzebujesz tylko odebrać jakiś prosty sygnał typu "0" lub "1" to wewnętrzny oscylator w zupełności...
Dokładnie tak jak pisze Kolega emarcus. W moim przykładzie w programie operujemy na zmiennych minuty, sekundy. Ale do programowania czasu konwertujemy i tak wszystko do sekund. W ogólności można zrobić odwrotnie, tj. używać tylko zmiennej wyrażonej w sekundach i np. co sekundę konwertować tę wartość na wartość minut i sekund w celu ich wyświetlenia,...
Przytoczę tu słowa z książki Marcina Wiązania. W uC atmega8 jest możliwe taktowanie licznika timer2 w trybie asynchronicznym z zewnętrznym rezonatorem kwarcowym tylko wtedy, gdy sam mikrokontroler jest taktowany sygnałem wewnętrznym oscylatora RC. W takim przypadku precyzja odmierzania czasu przez timer2 zależy od oscylatora kwarcowego 32768 Hz, a nie...
Pomijając jak działa ten program to źle się do tego zabrałeś. Jak chcesz w sposób wiarygorny liczyć impulst >240kHz, jeśli ATMega jest taktowana np. 8MHz? To daje ci zaledwie 33 takty pomiędzy przerwaniami. Należy mierzony przebieg podać na wejście XCK timera, tak, żeby timer sprzętowo liczył impulsy, a przerwanie z drugiego timera wykorzystać do odmierzania...
wow tego nie wiedziałem... Dzięki Przetestowałem, zaczęło działać. Ale... Jeśli zrobię tak:[syntax=cpp]ISR(TIMER0_COMP_vect) { rob_cos=1; }[/syntax]a w main:[syntax=cpp]while(1){ if(rob_cos==1){ PORTD &= ~_BV(3); OCR1A=0; _delay_ms(1); PORTD |= _BV(6); OCR1B=50; _delay_ms(1); rob_cos=0; } }[/syntax]to i tak dalej się resetuje. A potrzebuję umieścić...
Wykonuje prace inżynierską "stanowisko szkoleniowe silnika krokowego", chciałbym wykonywać kilka rzeczy czasowo niezależnie bez używania delay, takich jak taktowanie częstotliwości na sterownik krokowca, odmierzanie czasu, cykliczne sprawdzanie stanów wejść. Z bibliotek znam Timer1.h jedynie. Mógłbym to zrobić w "C" chyba, bo kiedyś dużo bawiłem się...
Najwazniejsze pytanie, czy da sie to zrobic na Atmedze ? oczywiście że się da :D (zakladam ze 30sek=0.0083h ) Zalozmy ze pobieram 1A, czyli po 30s pobralem okolo 1*0,0083Ah czyli czas pozostaly do rozladowania to 60 - 1*0,0083 czyli 59.991h wynik zostaje zaokraglony i przeksztalcony na 59h 54min Nastepnie obciazenie wzrasta do 2A czyli po nast. 30s...
Jeżeli nie uda Ci się rozwiązać problemu, to proponuję mój patent. Zastosowałem poczciwy 555 w wersji CMOS, który na czuwaniu pobiera 100uA przy 5V (przy 3,6V będzie mniej). Kondensator tantalowy i odpowiednie rezystancje ustalają czas załączania układu co 20 min. Na moment włączany jest procesor, czujnik i nadajnik, aby zmierzyć temperaturę i wysłać...
Wybacz ale nie znam dokładnie twojego mikrokontrolera, ale w Atmega zdecydowanie lepiej jest ustawić taki preskaler aby czasy jak w one-wire po prostu do niego ładować i stan nóżki z termometrem zmieniać programowo w przerwaniu - w końcu po co robić programowo licznik skoro masz sprzętowy, który nie zajmuje procesora z tak błahego powodu jak inkrementacja...
Sezon ogrzewania domów tuż tuż a kotłów z podajnikiem coraz więcej wpadłem na pomysł zrobienia licznika ilości spalonych kilogramów. Jako wyświetlacz kilogramów zastosować czterosegmentowy wyświetlacz led a cały układ zrobić na atmega8. Zasada działania Podajnik ślimakowy obraca się ze stałą prędkością a więc w określonym czasie podaje tą samą ilość...
zaraz sprawdzę ale ja murze odmierzać krótkie czasy i nie wiem czy to nie będzie przeszkadzać muszę trochę policzyć. Czyli po prostu jest za mało czasu pomiędzy przerwaniami i instrukcje wewnątrz nie nadążają się wykonać tak?
Komunikacja pomiędzy rtc a atmega przebiega bez problemów poza szczególnym przypadkiem. Sprawdzając zależność częstotliwości (poprawności działania rtc) od temperatury zauważyłem że rtc niezawsze działa prawidłowo. Do rzeczy - wkładałem rtc wraz z atmega do zamrażalnika :D (tak zamrażalnika) na dobe i sprawdzałem czy wystepuje błąd pomiaru czasu - zazwyczaj...
Zamiast robić tam opóźnienie można policzyć ile taktów zajmie uartowi wysłanie ostatniej ramki i robić sobie inne potrzebne operacje ,które zajmują czas a po odpowiedniej ich liczbie zmienić stan porty i tyle . Asembler daje wiele możliwości wykorzystania czegoś co się nazywa opóźnieniem . A jak masz wolny licznik to można na nim zrealizować opóźnienie...
dobra, obiecany gotowiec i przy okazji manual pt "jak korzystać z manuala". W naszej przeglądarce wpisujemy adres www.google.pl Wpisujemy tam Atmega8, po załadowaniu się strony z rezultatami klikamy w link posiadający w tytule "datasheet" i sprawdzamy czy jest on z atmela. Po pomyślnym otwarciu się datasheetu z indeksu po lewej stronie wybieramy 16-bit...
Nie migam diodkami. Mam tutaj dość skomplikowane menu, task czytający z ADC, Task kontrolujący PWM na podstawie odczytów z ADC, task sprawdzający czy stos sie gdzies nie skonczył, task do obsługi klawiatury, task odmierzający sekundy i idle. Może cos mozna by połączyć ze sobą ale po to używam RTOS zeby to bylo rozbite na taski. Chyba znalazłem metodą...
Najprostsze do przeróbki, ale można link niżej co podałem. Taniej się nie da. 150 zł za robociznę i poprowadzenie projektu (zamówienie części, projekt schematu i PCB, przesłanie firmie projektu PCB, oprogramowanie zwykłego ATMEGA)- znikome koszty. Na częściach można nieco ugrać- najdroższy będzie i tak wyświetlacz. Na upartego można by zjechać do 400...
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...
Witam szanownych forumowiczów. Zwracam się do Was z problemem przy moim urządzeniu do mierzenia ilości gazu powstającego w procesie chemicznym. Otóż potrzebuję odmierzać stałe odcinki czasu np. jednosekundowe do określania przepływu, ale timer 16bitowy mam niestety zajęty a pozostałe 8bitowe zgłaszały by mi przerwanie zbyt często a procesor otrzymuje...
Nie do końca zrozumiale napisałeś. Odmierzanie czasu oczywiście da się zrobić w przerwaniach i jest to najczęściej stosowany sposób. Dobrze jest wywoływać przerwanie co stały okres, który będzie wspólnym dzielnikiem obydwu czasów, które chcesz odmierzać. Np. 250us. Wtedy w przerwaniu inkrementujesz jakiś rejestr i sprawdzasz czy osiągnął wartość 5....
Najdokładnie moźna oczywiście odmierzać czas na timerze... Jeżeli pisane w asm to w dokumentacji jest podane ile potrzeba cykli na daną instrukcję...
To trzeba poczytać w opisie konkretnego układu - są takie, że można podłączyć bodajże dwa piny do portu drukarki, (+ zasilanie i masę) i programować przez ten port (np. jakieś ATtiny, ATmega), i takie, że trzeba mieć programator. 6MHz zamiast 12MHz - 2 razy mniej RPM (a właściwie zapłonów / minutę), czyli pewnie to będzie 500 / 1000. Nie pamiętam, ile...
PWM potrzebuje licznika, aby odmierzać czas w którym ustawia pin w stan wysoki i niski. Używasz również timera do regularnego pomiaru czasu echa. To nie może być ten sam timer, co do odmierzania czasu w PWM. Atmega32 ma 3 timery (dwa 8-bitowe i jeden 16-bitowy). Spójrz do datasheet-u mikrokontrolera. Pamiętaj również o tym, aby wszystkie zmienne, których...
doradzilbym autorowi watku aby na razie zadowolil sie eksperymentami z Timerem1 (nawet przy taktowaniu 1 MHz) - ma on o wiele wiecej funkcji niz Timer0 lub Timer2 w innych uC. Warto poczytać o trybie CTC Timera1. Przy nominalnej f = 1MHz i preskalerze 64 wpisanie do rejestru OCR1A (lub ICR1, zależy od trybu) wartości 1e6/64 - 1 = 15624 pozwoli Ci na...
Albo jeszcze inaczej. Podpinasz wyjście z wiatraka do przerwania np. INT0 W przerwaniu zwiększasz o jeden dowolną zmienną np. obr. Dodatkowo ustawiasz Timer na odmierzanie stałych odcinków czasu np. 1s. W obsłudze przerwania odczytujesz zmienną obr. i zapisujesz ją w zmiennej obroty, nastęnie zerujesz zmienną obr. Przy okazji w tym przerwaniu wyświetlacz...
Ja mam tylko takie jedno pytanie. Wszyscy się śmieją, że kolega próbuje odmierzać sekundy NOPami. A czy któryś z was mi może pokazać, gdzie on o tym pisał? Bo z tego co ja wyczytałem z jego wypowiedzi, to chodzi mu właśnie o odmierzanie bardzo krótkich czasów. A co do pisania w C, to owszem, można, ale nie trzeba, a i wiedza z asemblera się przydaje.
2- Do czego służy w ogóle ta detekcja 0? 3-Triak po włączeniu zostaje włączany dopóki napięcie nie osiągnie 0? Spójrz na obrazek : http://static.ddmcdn.com/gif/dimmer-swit... Wykywasz 0 triak wyłączony, odmierzasz czas mniejszy od 10ms i włączasz triak. Pamiętaj tylko o tym, że ta regulacja którą teraz masz czyli 10ms z krokiem 100us nie...
Witam. Mam zestaw opisany jak w temacie. Programator STK200. Pojawił mi się problem który nawet trudno wytłumaczyć. Próbowałem juz nawet z drugim ATmegą i tak samo się dzieje. Nadmienię że do układu dołączam oscyloskop Hamega - sprawny i dokładny. Napisałem program z wykorzystaniem Timera T0 - odmierza zadany czas i zapala diodę po czym przy następnym...
Witam ponownie,z odmierzaniem 1s sobie poradziłem ale z zapisem temp.minimalnej mam problem na lcd temp.min wyswietla mi zero,chce zrobic cos takiego właczam termometr: pokazuje temp 25C i w tym momencie ma pokazac temp max 25C i tak sie dzieje i min. tez ma pokazac 25C i tu problem nie pokazuje,podgrzewam czujnik do 30C zapisuje max jako 30C a min...
Tak, słyszałem o tym. Problem w tym, że ja mam 3 takie sygnały. Skoro to silnik, to ma stałe kąty. Wystarczy więc mierzyć tylko jeden sygnał, a pozostałe kąty odmierzać timerem i przerwaniem. Tak? Czy to jakiś specyficzny przypadek? To rozwiązanie, które próbujesz zrobić jest ryzykowne. Przemyśl sprawę - a ja śmigam spać.
odmierzać atmega dokładny odmierzać odmierzać godzina
prostowanie diodach programator ciąg sterownik mikrofon novox
Przywracanie ustawień fabrycznych Brother DCP-T500W Reset licznika lampy w projektorze NEC pilotem