Co znaczy "precyzyjne odmierzanie"? Jak precyzyjne?
Każdy zapis ma wymagany czas. Chyba że urzywasz trybu stronicowego to tylko raz odmierzasz ten czas na stronę.
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.
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.
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...
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.
Która atmega? W atmega8 możesz użyć: Timer0 - odmierzanie czasu Timer1 - zliczanie impulsów Timer2 - PWM
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.
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...
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...
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.
Jeśli by to nie przeszkadzało to możesz podpiąć kwarc zegarkowy, wtedy na 8 bitowych licznikach na pewno zliczysz sekundę:)
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...
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...
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.
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 ...
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...
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...
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
...Co bym nie robił... wynik zawsze jest ten sam... Nic dziwnego, bo Bascom ignoruje polecenie Load Timer2 = 178 Zmień na Load Timer2 , 178 'lub Timer2= 256 - 178 i sprawdź :-P
Na nie możesz policzyć? Chyba że nie wiesz jak :D Masz 8MHz. A przerwanie przychodzi z częstotliwością 125Hz (dlatego trzeba 125 razy odliczyć aby wyszła 1 sekunda). Preskaler Timera 256. 8000000/256/125 = 250. I dlatego jest Load Timer0 = 250 Teraz chcesz kwarca 7372800. Więc musisz tak kombinować aby uzyskać jakąś sensowną liczbę przerwań i sensowny...
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! 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...
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...
Zobacz sbie mój temat. Tam zrobiłem odmierzanie na timerku działa bardzo fajnie tyle że dla 8 mhz. Pomnozysz sobie razy 2 te czasy i elegancko bedzie... Funkcja dl. i pamietaj iż mozesz zadeklarować wartości mieszczące się w char. [url=http://www.elektroda.pl/rtvforum/vi... MÓJ POST O DS Pozdrawiam domel.fm
Ale skąd mam wiedzieć że licznik dobrze zlicza tzn co 1 mikrosekundę? Skąd mam wiedzieć że udało mi się na podstawie taktowania procesora wyliczyć dokładnie jedną mikrosekundę? Zaletą mikrokontrolerów jest to, że wystarczy być pewnym ustawień rejestrów i zegara, i musi odliczać prawidłowo. Pokaż program. Oczywiście kontrola jest wskazana :)
To jest przyklad tego jak mozna obsluzyc DS1820 przez mega 8 ale jest tam tez obsluga wyswietlacza w C.Moze sie pryda.Sam to dostalem od jednego kolegi z forum:-) wiec mam nadzieje ze sie nie obrazi...mnie interesowal DS. Pozdrawiam Maciek! #include <avr/io.h> #include <avr/pgmspace.h> #include <stdlib.h> #include <ctype.h> #include...
Sam widzisz, że musisz odmierzać czas. Każdy projekt z mikrokontrolerem zaczyna się od przerwania timera. Bez tego nie da się zrobić prawie nic.
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...
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?...
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%.
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...
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...
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...
Hehe, tekstu przesuwać nie próbowałem, bo nie takie jest przeznaczenie tego wyświetlacza (zresztą widać po jego kształtach :P ), jest to prezent dla dziewczyny (dlatego nawet matryca była ręcznie robiona ;) ). Ale to niebyłby problem, wystarczy zaprzęgnąć do pracy timer'a, właśnie nad tym pracuje :P ATMege8 można by dać, ale trzeba by modyfikować schemat,...
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,...
Witam. Przygotowałam taki schemat sterowania diodą RGB i zastanawiam się czy ma szansę zadziałać. Urządzenie zasilanie bateryjnie (lipoly 3.7V) Mikrokontroler: ATmega168PA zasilany 1.8V dioda LED RGB (sztuk: 1). Driver LED: najbardziej to bym chciała TCA6507 (również zasilany z 1.8V), ale nie widze go w żadnym polskim sklepie. N-MOSFET: irll024n (próg...
Akurat tutaj nie masz racji, bo tak się to robi. Problem z zezwoleniem na przerwania w ISR jest taki, że to samo przerwanie może zostać zgłoszone jeszcze raz, a tego byś nie chciał. Najprościej w SIG_INTERRUPT1 wyłączyć zezwolenie na INT1 i włączyć przerwania. Przed końcem ISR robisz na odwrót - cli() i ustawiasz flagę od INT1. Wchodzisz na grząski...
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, 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...
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...
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...
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...
(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...
ok, więc może być na konkretnym przykładzie: Mam płytkę AND-TECH.PL EvB 4.3 (mikroprocesor to: ATMEGA 32, 16 PU). Więc jak mogę sobie skonfigurować Timer1 i Timer0 na tym mikroprocesorze przy rezonatorze 16Mh by odmierzał mi czas (zegarek godziny:minuty:sekundy). Jak mogę dobrać preskaler i jak wygląda tok obliczeń. Informacje te są mi potrzebne na...
Witam, 1) Do projektu potrzebuję 2 liczników - jeden do odmierzania czasu, drugi do sterowania wyświetlaczami. Czy to dobra koncepcja?? Odmierzanie czasu - jasna sprawa. Wyświetlacze - po co co Ci licznik do sterowania wyświetlaczami (jakimi, siedmio-segmentowymi?). Nie wiem zresztą jak ocenić Twoją koncepcję gdyż jej praktycznie (szczegółowo) nie przedstawiłeś....
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...
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...
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?
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,...
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...
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....
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...
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...
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, 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ż...
Witam. Mam taki problem, gdyż chciałbym ogarnąć komunikację poprzez UART między dwoma mikro. Mam dwa uC: Atmegę 16, która działa jako master oraz Atmegę 88 jako Slave (na której będzie termometr, z którego będę odczytywał dane). Programy, definicje wyglądają następująco: plik RS485.h #indef RS_INT_H #define RS_INT_H //rozmiar buforów nadawania i odbierania...
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ę...
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.
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ć...
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...
Witam, mam problem z uruchomieniem programu do zliczania impulsów na T1 przez 1 sekundę. Wyświetla mi ciągle zero. Co źle ustawiłem z Timerami ?? Atmega 32 [syntax=c] #define F_CPU 1000000UL #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #include <hd44780.h> volatile unsigned char licznik = 0; //liczba...
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...
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ć...
Witam! ATmega32 16MHz jako slave odbiera dwa bajty po SPI 1MHz ( 15cm taśmy 10 żyłowej )od mastera LPC2148 . Jeżeli jest włączone tylko SPI, a inne przerwania są wyłączone jest wszystko dobrze. Jeżeli włączę przerwanie od timera2 generowane co 100us to zdarza się że atmega gubi jeden bajt i krzaczy się cała transmisja, ale po jakimś czasie jak zgubi...
I tu mam pytanie: jak to jest mozliwe, zeby Timer w mikrokontrolerze byl tak niedokladny? Przeciez to jest bezsens, jego zadaniem jest PRECYZYJNE odmierzanie czasu, czy to do zliczania czegos z zewnatrz, czy to do generacji np. przebiegu prostokatnego, czy to do ODMIARZANIA czasu. Przeciez przydatnosc takiego Timera jest zerowa (dokladnie jak jego...
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...
Teraz spróbuję ustawić RTC na zewnętrznym kwarcu. Zanim zamknę temat może ktoś zechciałby podpowiedzieć na co tutaj zwrócić uwagę? (Myślę że to nie odbiega od tytułu tematu) A konkretnie - jaki kwarc? przy okazji jeszcze ten link: Czas - odmierzanie
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.
Procek pracuje na wewnętrznym oscylatorze, ale odmierzanie czasu poleceniami wait i waitms szło mu całkiem przyzwoicie, więc raczej 8MHz jest. ...czy aby ATMega8 nie ma domyślnie ustawionego1MHz??? Nie wiem gdzie jest zadeklarowana, używam BascomAVR. Tu: http://obrazki.elektroda.pl/8600321800_1... ...i tu: http://obrazki.elektroda.pl/9274839800_1...
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....
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...
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,...
witam! Musze dosc precyzyjnie odmierzac czas (1ms) dysponuje ATmega 32 z zewnetrznym kwarcem 8Mhz... ustawilem sobie preskaler timmera na 8 ( czyli stuka sobie z f= 1Mhz) teoretycznie powinno byc dobrze... ale w praktyce pomiar spoznia mi sie o 3sec. na minute ( ???!!!) juz nie wiem co robie nie tak... jesli ktos moze spojrzec bylbym wdzieczny... #include...
Faktycznie powinno być na odwrót. Tak to jest, gdy się pisze coś na szybko:) czy u ciebie nie będzie problemu jeśli ta pierwsza funkcja1(); ustawi sobie Timer1ms - to druga funkcja może to zmienić przecież za pomocą SetDelay1ms. Więc troszkę się kołomyja zrobi chyba? Problem oczywiście będzie. Dlatego każda funkcja (funkcja1(); funkcjia2()) powinna...
Witam serdecznie potrzebuję zrobić odmierzanie czasu 1250us i drugie zależne od zmiennej. Chodzi mi o to, że w moim programie odwoływał bym się do przerwania które odmierzało by 1250us i po tym czasie nastąpił by powrót i wykonanie dalszych instrukcji, w drugim odwoływał bym się z parametrem ile ms ma zostać zliczone i też nastąpił by powrót po tym...
Dzięki, W tej chwili po dostosowaniu kodu wywala kilka błędów: http://obrazki.elektroda.net/15_12708019... Poniżej zamieszczam kod żeby łatwiej było zrozumieć jak to jest zrobione: $regfile = "m16def.dat" $crystal = 8000000 'konfiguracja portów Config Porta = Output Config Portb = Input Config Portc = Input Config Portd = Input Set Porta.3...
Czyli chodzi o odmierzanie długich czasów (rzędu 1 min) przy taktowaniu 4MHz?
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...
Próbuję zrozumieć zasadę działania timera0 w normalnym trybie pracy, ale niestety mój kod i sposób rozumowania najprawdopodobniej jest zły, ponieważ dioda nie miga. W związku z tym chciałbym poprosić kogoś o weryfikację kodu oraz mojego rozumowania, bo może coś robię źle. W kodzie zamieściłem stosowne komentarze więc nie będę ich dublował. Częstotliwość...
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ć...
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...
Witam Chodzi o to, że jest ATMEGA z wbudowanym zegarem RTC. Po odpowiednej konfiguracji i uruchomie wszystko jest OK, zegar pracuje. Jednak zegar ten ma być wykorzystywany do pomiaru krótkich odcinków czasu. Czyli odmierza ustawiony czas i jest blokowany poprzez STOP TIMER2 (w Bascomie). Po naciśnięciu klawisza start układ wg założeń powinien uruchomić...
Witam Napisalem prosty programik do sterowania jednym serwem lecz serwo przesuwa sie powolutku w jedna strone tylko. Serwo to mini serwo z Conrada ES-05 .include "m16def.inc" .org 0x00 rjmp reset .org OC2addr rjmp KrotkiCykl .org OC1Aaddr rjmp DlugiCykl DlugiCykl: ldi r16,0xFF out PORTA,r16 ldi r16,0x00 out TCNT2,r16 in r16,TCCR2 sbr r16,7...
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.
(...)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...
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...
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...
Pozwolę sobie jeszcze raz nadużyć Waszej uprzejmości i znowu zwracam się z prośbą o pomoc Sprawa dotyczy sterownika do serwonapędu (na razie jednego, później rozbuduje do 8). Taktowanie 8MHz. Oto kod programu: [syntax=c]#include<avr/io.h> #include<avr/interrupt.h> #include<HD44780.c> #include<util/delay.h> #include<stdlib.h>...
Licznik zaczyna od wartości 0 nie odmierza jej ... nie ma żadnego wpisu w wartości licznika więc jest on wypełniony zerami po pierwszym zdarzeniu odlicza dopiero więc tak jest własnie 2^16 -1 czyli 65535. Nie zrozumcie mnie źle, rozumiem że po 65535 nastąpi jego powrót do zera i to potraktowałbym jako kolejny takt czyli brakującą wartość 1 ale nie zmienia...
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ć...
Mam problem z TIMER2 - odmierzanie czasu , najlepiej 1s. Wartość b będzie zmieniała się - tylko co jaki odstep czasu. Może ktoś poratować? Albo ma może jakiś swój przykładowy programik na Timer2 z wywoływanym przerwaniem? Radzio // Testowanie timera 2 #define F_CPU 8000000UL #include <avr/io.h> // dostęp do rejestrów #include <avr/interrupt.h>...
Mam problem z uzyskaniem oczekiwanego działania przerwań INT0 i INT1. Procesor to ATMEGA 16 z zewnętrznym taktowaniem 16MHz. PD2, PD3 są skonfigurowane jako wejścia z podciągnięciem do 1. W obu przerwaniach jedyną czynnością jest inkrementowanie zmiennych zdefiniowanych jako volatile uint32_t. ISR(INT0_vect) { N_T++; } ISR(INT1_vect) { N_F++; } Przerwania...
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..
dobrze Ci się zdaje .. Problemem jest czas !!! Einstein zaduzo kombinował i nam zakrzywił czasoprzestrzen to wszystko jego wina.... :) A tak naprawde to bede wdzięczny za dobre procedurki do i-wire oraz i2c wraz z dobrym odmierzaniem czasu... Co do i2c to najlepiej z wykrywaniem błędów magistrali. Niestety niemog obie poadzić pomimo iz znam mniejwiecej...
ok, poprawiłem i dioda się zapala, ale timer tutaj jest prymitywnie badziewny. Lepiej byłoby to zrobić tak, że dioda zapala się po kilku sekundach. Tylko wtedy trzeba zrobić odmierzanie czasu na timerze...Teoretycznie czytałem o tym i wiem jak to zrobić, preskaler na pewno na 1024, kwarc mam 16MHz, więc dzieląc częstotliwość przez preskaler otrzymam...
Witam. Próbuje uruchomić program testowy, który polega na tym, że po wysłaniu na RS-a liczby 2 dioda zapala się na okres 1 sekundy i na ten sam czas również gaśnie przez okres 30 s. Wysyłanie na port szeregowy wykonuje za pomocą przerwania z USART. Odmierzanie sekund z przerwania Timera w trybie asynchronicznym(RTC). Program nie działa, bo mam problem...
atmega odmierzanie odmierzanie czasu atmega atmega odmierzanie czasu
rozrusznik sterowanie laptop gasnie chwili fotowoltaika stara instalacja
sterownik pieca sprzedam sterownik pieca sprzedam
Cichy dźwięk w Philips 47PFL3607 przy maksymalnej głośności Zacięty obiektyw aparatu: szary ekran i dziwne dźwięki