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...
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...
Oczywiście po ustawieniu czasu powinieneś to usunąć by nie ustawiał go po każdym resecie Atmegi, a sam DS1307 powinien mieć baterię do podtrzymania pracy.
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.
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śli by to nie przeszkadzało to możesz podpiąć kwarc zegarkowy, wtedy na 8 bitowych licznikach na pewno zliczysz sekundę:)
Która atmega? W atmega8 możesz użyć: Timer0 - odmierzanie czasu Timer1 - zliczanie impulsów Timer2 - PWM
... ale wtedy musisz mieć pewność, że obsłużysz to przed pojawieniem się kolejnej sytuacji ustawienia flagi przerwania. Oczywiście TIFR to tylko przykład, bo flagi są także w innych rejestrach, np. TXC w UCSRA.
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.
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...
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...
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
Async=1 zmień na Async=On.
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 :)
timer2 w ciągu 10 minut późni się o jakieś 12 sekund, a timer0 zdaje się nie reagować na wartość początkową wpisaną do rejestru TCNT0 Z zegarem wewnętrznym 12/600 = 2% porównaj z DS. A timer 0 reaguje, tylko Ty nie dostrzegasz różnicy 131 cykli na 10 minut -) Tą wartość to jakby nie tylko raz trzeba było wpisać. Albert
tak jesli timer1 jest tylko do odliczania tej jednej sekundy i do niczego innego go nie potrzebujesz
Lepiej zainwestujesz swój czas przepisując program tak, żeby 90% pracy wykonywał w main, później "szedł spać", a budziły go tylko odpowiednie przerwania. W różnych ISR ustawiasz odpowiednie zmienne globalne, a w main() je odczytujesz i reagujesz odpowiednio. I nagle się okaże, że nie potrzeba zagnieżdżania przerwań, system jest prostszy i da się ładnie...
Przeczytaj sobie w datasheecie czy dzielisz zegar przez 8 czy przez 4 ;) Nie wiem co koledzy z tym fuse bitem ckdiv8, atmega8 nie ma takiego ;) Vectra96 sciagnij tez sobie program avrcalc i tam szybko bedziesz mogl wyznaczyc konfiguracje timerow :)
...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...
Pamiętaj że sama transmisja też swoje trwa :) a poza tym nie pokazałeś funkcji printf (może ona bawi się w _delay_ms() ?) Zauważ również że przerwanie występuje niezależnie od transmisji, może dochodzić do takiej sytuacji ze raz przerwanie zmienić Ci wartość zmiennej tuż przed transmisją a raz tuż po niej i to spowoduje Twoje opóźnienia. Spróbuj blokować...
Nie wiem, czy dobrze zrozumiałem, ale wydaje mi się to proste. 4000000/64=62500 62500/625=100 Chyba że atmega8 nie ma preskalera przez 64, lub musi on być ustawiony na 256.
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.
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 przesadzajmy,żeby było tam nie wiadomo jak dużo pracy. uC ATMEGA8, kwarc, przycisk, 3 wyświetlacze, jack pod zasilacz. Program do napisania z palca. Inaczej, gdyby zleceniodawca chciał powielać rozwiązanie- kod można zablokować przed kopiowaniem, a schematu nie podawać. Dodano po 2 W zasadzie 3 do 4 popołudni. 1. Narysowanie schematu i PCB dla firmy....
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.
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...
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ć...
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...
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 ...
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. 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...
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...
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ć...
Popatrz na MCP3202. To przetwornik 12-bitowy 2 kanałowy. [url=http://cubloc.com/download/etc/MCP3... Kiedyś robiłem projekt na MCP3201 (wersja jednokanałowa w/w przetwornika). Współpracowało to z ATtiny2313. Zegar był generowany "na piechotę" poprzez zmianę stanu na nodze kontrolera, odstępy czasowe odmierzane NOP'ami - i to działało bez...
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...
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%.
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...
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....
Sam widzisz, że musisz odmierzać czas. Każdy projekt z mikrokontrolerem zaczyna się od przerwania timera. Bez tego nie da się zrobić prawie nic.
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...
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, 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ż...
Wszystko zależy jak rozwiązano w danym przypadku sposób liczenia interwałów taktowania zegara, ale typowo w elektronicznych układach odmierzających czas są montowane te typowe kwarce 32768 kHz w cylindrycznej oprawce. Owe kwarce znajdziesz w zegarkach czy to wskazówkowych kwarcowych z budzikiem czy też w płytach głównych PC :) Jeżeli przycisk masz na...
Ja doskonale rozumiem, że Atmegi moga pracować na kwarcu zegarkowym, tylko chciałbym wiedzieć na jakiego rzędu dokładność mogę liczyć na zwykłym kwarcu w porównaniu do kwarcu zegarkowego. -- pozdrawiam, demeus Taka sama!.... Wszystkie resonatory kwarcowe maja dokladnosc rzedu +/- 20ppm. Rezonatory zegarkowe jest o wiele wygodniej stosowac do odmierzania...
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...
To jest po prostu stała obliczana ze wzoru OCR1A = (t*F_CPU/preskaler) gdzie: t= pi/3 = 3.(3)ms F_CPU = 14745600 stąd OCR1_DEF = 6144 a tu definicja ;) [syntax=c]#define OCR1A_DEF 6144[/syntax]
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...
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...
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...
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...
A po co włączasz przerwania skoro nie napisałeś procedur ich obsługi? I dlaczego najpierw ładujesz część młodszą do OCR a potem starszą, a nie na odwrót jak to zalecają? I dlaczego dziwisz się, że kod potem nie działa?
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...
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...
Możesz poszukać w urządzeniach które posiadają opcję zegarka. Standardowo taki kwarc jest używany właśnie z układami które odmierzają czas. Dodatkowym utrudnieniem może być to o czym mowa tutaj: https://www.elektroda.pl/rtvforum/topic8... Częstotliwosć sygnału SCK musi być co najmniej 4x mniejsza od częstotliwości pracy mikrokontrolera. Czyli...
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, 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ś....
Tak się objawiają uszkodzone czujniki. Sprawdź go jeszcze raz w bascomie. Pozatym masz jakieś dziwne te delay'e czemu używasz funkcji owire_delay przecież masz _delay_ms? Trochę wróżąc z kodu wnioskuje że funkcja delay odmierza 0,25us * przekazany argument. Piszesz w komenarzach że niby ta pętla for + funkcja poniżej jej trwa 470ms. Jak nie przestawiałeś...
Witam:) mam pytanie do forumowiczów w sprawie pomiaru częstotliwości, sprawa przedstawia się następująco: chciałbym zrealizować pomiar częstotliwości .............. wiem ze należy postąpić w poniższy sposób: 1. zatrzymanie zliczania impulsow z T0 2. zatrzymanie odmierzania czasu bramkowania T1 3. przepisanie zliczonych impulsów do rejestru głównego...
a jesli powiem ze tak tez próbowałem tylko ze odczyt z kodów z rc5 trwa z przerwą 600ms która musi byc pomiedzy odczytem a konwersją temperatury z ds1820 :( Jakoś nie widzę problemu. Przecież Int0 ma wyższy priorytet niż DS. Jerśli istnieją jakieś konflikty to należy zablokować przerwanie Int0 na czas inicjacji DS'a i odczytu temperatury. W trakcie...
A w jaki sposób ustawiłeś częstotliwość? Kto i skąd o tym wie?
To może zacznij od wyszukania analogii w swoim kodzie. Na pierwszy rzut oka ciągle powtarza się zapis/odczyt rejestru układu. Wydziel to do oddzielnej funkcji. Co chwilę odmierzasz timeout transferu TWI. To również można wydzielić do tych funkcji. Na chwilę obecną trudno zrozumieć flow Twojego programu bo co chwilę powtarza się sekwencja zapisu/odczytu...
Mirekk36 a jaką dać częstotliwość taktowania bo dla twojej funkcji mi dioda miga co około 72s Najpierw sprawdź czy jak dasz _delay_ms(1000) to czy miga ci co sekundę - jeśli nie to napisz/powiedz/sprawdź czy masz dobrze przede wszystkim Fusebity ustawione ? Na pewno sama funkcja i while nie robi takiego narzutu żeby zamiast 60s było 72s ;) - jak już...
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,...
To jest proste jak świński ogon :D ahahahaha, ale napisz kawałek kodu. Czy masz tam jakiś LCD czy nie, czy masz tam jakiś Timer ustawiony do odmierzania sekundy czy Wait`ujesz :D Czy w dokumentacji czujnika pisze, że nadaje tez na końcu niewidoczne w terminalu znaki 13 lub 10? EDIT: aaa masz tu taki prosty. Napisałem przy śniadaniu więc błąd mógł się...
Podczas odbioru danych z pinu PD2 ( funkcja zgłoszenie ) występuje błąd tylko wtedy gdy przerwanie z timera 0 jest aktywne. Gdy na czas odbioru danych zablokuję to przerwanie procesor ładnie odbiera wysyłane do niego dane. I moje pytanie brzmi: Co jest nie tak z przerwaniem? Konkretnie to, co wskazał albertb: ... jeśli masz włączone przerwanie to jego...
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...
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.
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.
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...
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...
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...
No to fakt, dlatego dopoki nie bedziemy wiedziec ile kolega kasaidolar chce odmierzyc czasu nie bedziemy w stanie mu pomoc;)
Użyj funkcji z delay.h do odmierzania czasu. Przynajmniej jedna niewiadoma zniknie. Inna sprawa, że twoje funkcje nie testują powrotu magistrali do 1 - używasz stałych opóźnień, które niekoniecznie są prawidłowe. I kolejna sprawa - zamiast czytać wtórne dokumentacje Atmela, nie lepiej zajrzeć do oryginalnych not Dallasa?
(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...
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....
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...
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ę...
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...
Określ częstotliwość tych impulsów, lub ich szerokość. Jeśli trwają milisekundy, to najlepiej wykorzystać timer w trybie przechwytywania impulsów zewnętrznych - piny ICP i rejestr ICR. Jeśli są krótkie (setki ns lub us) to lepiej tymi impulscami taktować wejście licznikowe timera, a drugi timer wykorzystać do odmierzania odcinka czasu wzorcowego. Ze...
Szanowni koledzy czy ktoś z was może mi powiedzieć jaką mogę osiągnąć precyzję przy odmierzaniu czasu przy wykorzystaniu układu ATmega16 z zewnętrznym zegarem 8.000 MHZ(rezonator kwarcowy)? Morduje to już drugi dzień i nie mogę zrobić tego w sposób precyzyjny - na każde odmierzone 10 minut atmege spieszy o ok 20s - taka zwłoka jest dla mnie niedopuszczalna...
Hej! Czy ktoś wie jak wykorzystać timer atmegi 8, który w danym momencie programu zacznie odmierzać czas powiedzmy 3minuty (bez wpływu na program główny) i po upływie tego czasu skoczy do jakiegoś podprogramu? Szukam i szukam w necie i próbuję i nic z tego. Wydaje mi się, że można wykorzystać w Bascomie polecenie ON TIMER (liczba sekund) GOSUB (procedura...
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?
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 7 układów DS18B20 i chciałem dokonywać ich odczytu w kolejności. W przerwaniu od Timer0 ustawiam co 4 sekundy flagę, która ma spowodować wywołanie programu odczytu. ................ Tylko, że wstawienie tego w Case nie ma chyba sensu, bo w momencie wyboru z Case, dane jeszcze nie są obliczone. Pierwsza uwaga to nie dajesz wymaganego czasu...
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...
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...
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.
Zadaniem programu ma być odmierzenie 1 sekundy (zmiana stanu na wy). Przerwanie od timera 2 przychodzi co 1ms. Kwarc zewnętrzny ~11MHz. Czy ktoś mógłby napisać dlaczego program nie działa? #include<avr/io.h> #include <avr/interrupt.h> int i=0; int main(void) { DDRC = 0b00001000; TCCR2=_BV(CS22); TIMSK = _BV(TOIE2);...
Ja wolę przerwania: Dim Sekunda as byte Config Timer1 = Timer , Prescale = 256 On Timer1 Odmierz_1s Enable Interrupts Enable Timer1 do loop end Odmierz_1s: Counter1 = Counter1 + 34286 Incr Sekunda Return Podałem ci "szkielet" programu do odmierzania 1 sekundy za pomocą timera1. Pamiętaj że procek musi go posiadać i musi być taktowany przez oscylator...
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...
tak inicjalizuje [syntax=c] /* C5-C4 - PCF SDA & SCL C3-C0 - LCD DATA B0-B3 - LCD I/O D0-D4 - BUTTONS D5 - LIGHT SWITCH OUTPUT D7 - STATUS DIODE */ #define F_CPU 1000000L #include <avr/io.h> #include <util/delay.h> #include "LCD.h" #include "i2c.h" #include "rtc.h" int main(void) { DDRD |= (1<<PD7);//Status DDRD &= ~(1<<PD0);//P0...
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,...
zegar odmierza odmierza przerwa bascom odmierza
opalarka grzeje impedancja falowa pianka klimatyzacja
Mercedes Sprinter 651.955 2.2 316CDI - Brak doładowania, schemat sterowania turbiną Błąd 600608 w Mercedes W212 - Napinacz Pasa