Z tego co wyczaiłem to mega popędzana jest kwarcem 14,7456 MHz (kwarc do USART)... Timery ustawione są tak, że przerwanie wywoływane jest co 0,05s stąd podstawowa zmienna zliczająca do sekundy zwiększana jest co drugie wywołanie przerwania (odpowiadają za to variable i variable1)... Spróbuj przeanalizować ten kod i skonfrontować go z dokumentacją do...
Wewnętrzny oscylator RC jest mocno niedokładny. Z pewnościa musisz kupić zewnętrzny kwarc, ale na ATmedze8 32mhz raczej nie pociągniesz :P Bardziej zalecane jest jednak kupienie kwarcu zegarkowego 32.768 kHz i podłączenie pod piny TOSC1 i TOSC2 które wykorzystuje specjalnie dostosowany pod to Timer2 w trybie asynchronicznym. Wtedy uC można taktować...
Dzisij podalem schemat timera na innej stronie .Moze nie zaspokaja wszystkich twoich potrzeb ale moze sie przyda
Opierałem się o ten artykul http://mikrokontrolery.blogspot.com/2011... poprawilem schemat
Witam Proszę o pomoc. Potrzebuję wykonać okład mierzący bardzo krótkie odcinki czasu. START podanie impulsu na któryś pin, STOP podanie drugiego impulsu na kolejną nóżkę. Procesor Atmega32 język Bascom. Jaki najmniejszy odcinek czasu mogę zmierzyć ? Jak wygląda procedura pomiaru czasu miedzy Start a Stop? Bardzo proszę o podanie fragmentu kodu. A czy...
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....
Nie znam Bascom więc nie analizuję programu, ale: - zrób odpowiednią korektę w programie, - lub wykorzystaj kwarc będący potęgą liczby 2 czyli np. 14745600Hz. Wtedy nie musisz kombinować z różnymi przeliczeniami, bo wystarczy preskaler (który jest potęgą liczby 2) i przerwanie. Istotne może być także włączenie wzmocnienia sygnału zegarowego poprzez...
W kodzie jest sporo błędów. Nie do końca jestem pewien, czy rozumiem, o co chodzi, ale jeśli przerwanie INT0 jest od przycisku, to nie ma prawa działać poprawnie, a przyczyna efektu, który obserwujesz, leży w operacjach na zmiennej b. Takie przerwanie po wystąpieniu musiałoby być blokowane przy pomocy timera na jakieś 30 ms, co jest znacznie bardziej...
Proszę. Przerobiłem to przy kubku kawy dosłownie w 15 minut tak tylko dla zabawy. Najdłużej robiłem te ikonki czasów T1,T2,T3 i T4 :D Wszystkie cztery czasy są liczone od momentu startu bo nie napisałeś czy ma mierzyć międzyczasy ;) Może taki prosty kodzik kogoś ucieszy :D https://filmy.elektroda.pl/3_1453327306.... [syntax=vbnet]'STOPER '--------definicja...
... to wewnętrzny oscylator może być zbyt mało dokładny, bo błąd częstotliwości może wynosić nawet 10%. Coś Ty się tak uparł z tymi 10%. Pisałeś już dzisiaj o tym tutaj: http://www.elektroda.pl/rtvforum/viewtop... Więc ponownie zdementuję tę wartość: Atmel podaje w notach, że po kalibracji można spokojnie uzyskać 1%: http://mikrokontrolery.blogspot.com/2011...
W oparciu o wasze sugestie (http://mirley.firlej.org/timer_serwisow... narysowałem nowy schemat połączeń. Jest OK. Jeśli dobrze zrozumiałem to chyba mogę katody wyświetlaczy połączyć do portów uC? Nie możesz. A może zamienić te tranzystory na MOS? Nie ma takiej potrzeby. Skoro zamierzasz realizować projekt od nowa, to może warto porzucić starożytną...
Odświerzę trochę temat. Ja konkretnie muszę w miarę precyzyjnie zmierzyć prędkość obrotową w możliwie krótkim czasie. prędkość w zakresie 750-6500 obr/min. Dysponuje tarczą 25 nacięć na obrót i fotokomórką szczelinową która daje ttl na wyjściu. Puki co ttl generuje z generatora ne555 by uniknąć błędów pomiarów związanych ze stroną mechaniczną systemu....
Wielkie dzięki ;) Rezystor całkowicie rozwiązał problem. Moze i rozwiazal jeden z problemow i to nie calkowicie. Popatrz na swoj kod: Licz: Incr Przerw0 If Przerw0 = 3125 Then Incr Setne Czy na pewno beda to setne sekundy? Druga sprawa to jest bledem umieszczenie startu STOPERA w "Do ... loop, uzaleznione od stanu pinu. Od momentu nacisniecia przycisku...
Timer będzie odliczał np. sekundy tak jak Waitms 1000, tylko dokładniej. Dobra rada: Odinstaluj BASCOM i zacznij się uczyć C dlatego: http://mikrokontrolery.blogspot.com/2011... Kurs C: http://mikrokontrolery.blogspot.com/2011... Kurs AVR w C: http://mikrokontrolery.blogspot.com/2011...
No nie mam w tej chwili przy sobie atmegi zeby sprawdzic jak mam ustawione. ustawione mam ptak rocek chodzi na wewnętrznym a stoper itp na zegarkowym 32768 zewnetrzmym Config Timer2 = Timer , Prescale = 256 , Async = On zmieniłem $regfile = "m8def.dat" na $regfile = "m168def.dat" cos jeszcze powinienem?
Prosiłbym o linka jeśli ktoś widział gdzieś Tu widziałem - [url=http://helion.pl/ksiazki/jezyk-c-dl... C dla mikrokontrolerów AVR. Od podstaw do zaawansowanych aplikacji :] Przykładowe projekty znajdziesz bez problemu przez google... poszukaj haseł w stylu "stoper...
Nie ma sprawy :) Dobrym sposobem na sprawdzenie, czy działa Ci co sekundę jest odpalenie na przykład stopera w telefonie :)
Stan portu się zmienia, ale nie co 2 sekundy tylko 8 (nie wiem czy równe 8 bo mierzyłem stoperem).
Możesz połączyć te dwa tematy i osiągniesz cel (przyzwoitą dokładność i mały pobór prądu) bez zegara RTC: http://mikrokontrolery.blogspot.com/2011... http://mikrokontrolery.blogspot.com/2011... jak napisał dondu. Że hm? Także nie zaskoczyłem :)
Nie chodzi mi o dokładnosc oby jakoś działał Więc weź timer bez setnych sekund i dodaj licznik pokazujący na setnych cyferki od 99 do 0. Efekt osiągniesz, dwie cyfry losowe. Tak jak w stoperze liczącym setne sekundy uruchamianym i zatrzymywanym ręcznie. Czas reakcji człowieka to ok 100ms. Co wiec pokaże ostatnia cyferka (setne sekundy)?
Na kwarcu 8Mhz zawsze będziesz miał nie dokładny zegar. Jak się bawiłem zegarem to na 40min koło 1s już przekłamywało. Byś musiał zainteresować się "REZONATOR KWARCOWY 32.768kHz ZEGARKOWY". Kwarc wewnętrzny jest strasznie niestabilny, daj sobie z nim spokój. Wpisz sobie w google: Bascom real time clock atmega Gdzieś na elektrodzie krąży taki kod, zacznij...
$regfile = "m16def.dat" $crystal = 8000000 Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 , E = Portc.1 , Rs = Portc.0 Config Lcd = 20 * 4 Set Tccr0.wgm01 Set Tccr0.com01 Config Timer0 = Timer , Prescale = 64 , Clear Timer = 1 Ocr0 = 125 '****Zmienne**** Dim W_bcd As Byte Dim Zezw_wys As Bit Dim Odsw_wys...
Fusy mam na 8Mhz, czas odmierza dobrze, czestotliwosc takze. Sprawdzalem miernikiem oraz na 40min testow spieszy sie o jakies 2-3s ( -+ czas reakcji na stoperze).
Fakt. Było kilka błędów. W chwili obecnej kod wygląda następująco: [syntax=c] //Porgram mierzy prędkość "przejazdu" między 2 fotokomórkami #define F_CPU 16000000uL #include <AVR/io.h> //biblioteka we/wy #include <AVR/interrupt.h> //obsluga przerwan #include <util/delay.h> //obsluga opoznien #include <LCD/lcd.h> #include "HD44780.h"...
z gory zaznaczam ze to moj pierwszy program! mam atmege 128 i wysw. 7segm. i za zadanie mam jakikolwiek prosty zegarek/stoper napisac cos tam napisalam ale niestety zle mi wyswietla tzn wgl nie realizuje kodu teoretycznie algorytm jest dobrze napisany, ale jak zmieniam liczby tutaj : [syntax=c]TCCR0 |= (1<<WGM01); //tryb CTC OCR0 = 39; //ustawienie...
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
Teraz spróbowałem połączyć nasz program do odtwarzania z programem sterownika domowego i pojawił się problem.Panel i czas liczony w timer2 działa ok, ale piosenki są odtwarzane w spowolnionym tempie.Zauważyłem że jeśli w konfiguracji timer2 wpiszę "prescale=1024" to piosenki odtwarzają się prawidłowo, panel działa ok, ale czas liczy źle (był obliczony...
Witam ponownie, Poszedłem za radą większości z was i postanowiłem napisać program od nowa. W załączniku zamieszczam kod. Teraz nie mam już problemu z przejściem ADC z np.: 29 na 30 i też nie ma problemu z jego wyświetlaniem ale mam inny problem. Właściwie dwa. 1. Wyświetlenie ADC pomimo uśredniania jest niestabilne - ciężko jest ustawić stabilną wartość...
Według LED przy 50 sekundach (stoper), LED ma już 51 mignięć. Możliwe że się tak faktycznie rozbiega, no cóż... Więcej na temat dokładności tutaj
Witam. Robię układ do pomiaru czasu. Potrzebuję dokładność do 1ms. Napisałem taki kod: Według zmiennej K - czas w sekundach | Według zmiennej VAL - czas w ms 1|1 2|2 3|4 4|6 5|8 6|10 7|12 8|14 9|16 10|18 11|20 12|22 13|24 14|26 15|28 Gdzie jest jakiś błąd? Bo nie mam pojęcia dlaczego to nie działa.
Kwarc 20MHz miał być zewnętrznym oscylatorem dla atmegi, tak żeby mogła chodzić na 20MHz ale jak rozumiem podłączyłem go pod złe piny. Kwarc należy podłączyć pod piny XTAL1 i XTAL2 szczegóły (max częstotliwość, wartość kondensatorów, ustawienie fusebits) znajdziesz w [url=http://www.atmel.com/devices/atmega... rozdział System...
Kolego piotrva , dokładność będę mógł oszacować po miesiącu pracy, na razie to urządzenie oficjalnie pracuje od wczoraj :-) To w trakcie testów możesz łyknąć nieco wiedzy w tej sprawie: http://mikrokontrolery.blogspot.com/2011...
Co dokładności, o której pisze piotrva zobacz jak duże są to problemy przy odmierzaniu czasu: http://mikrokontrolery.blogspot.com/2011...
niestety zegar mi się delikatnie "rozjeżdża". Co masz na myśli pisząc "delikatnie"? Brałeś pod uwagę dokładność zastosowanego kwarcu?: http://mikrokontrolery.blogspot.com/2011...
Wiem że układy czasowe w uC są nie dokładne ale mi nie potrzebna dokładoność co do 1 sek :). Jeżeli zamiast 10 min będzie 9 albo 11 to się nic nie stanie. Są ale nie aż tak :) : http://mikrokontrolery.blogspot.com/2011...
Tak, to jest kod dla Atmega8535. Wrzuc wyraźne fotki z obu stron płytki, aby można było przeanalizować, czy piny procesora są podłączone tak, jak tego wymaga program. Dołącz jeszcze wartości fusebitów odczytane z mikrokontrolera. Ułatwi to analizę.
Skoro masz aktualny czas to pewnie jest w układzie jakiś zegar czasu rzeczywistego... Urządzenie wystawia po uruchomieniu stan wysoki który ty odbierasz na uC i odczytujesz aktualny czas i zapisujesz go sobie do jakiejś zmiennej... Kiedy urządzenie się wyłącza znika stan wysoki a ty odczytujesz znowu aktualny czas... Wyliczasz jak długo urządzenie pracowało......
O ile schemat jest prawie doskonały, o tyle PCB jest zaprojektowane źle. Pewne elementy muszą być blisko siebie: - kondensatory filtrujące zasilanie regulatora napięcia należą do niego, - kondensatory filtrujące zasilanie mikrokontrolera, należą do jego pinów. - kondensatory przy kwarcu także do kwarcu należą, nie można więc umieszczać tych elementów...
Szukałem, ale nigdzie nie ma takiego krok po kroku, z tym że opisane jest wszystko dokładnie co robić. Nie musi to być zegar, ale np stoper który liczy czas. Można prosić o jakieś linki?
Witam, zbudowałem jakiś czas temu zegar LED-owy, z wykorzystaniem taśmy LED i atmegi16. Napisałem do niego program w Bascomie i wszystko niby działa poza jedną rzeczą. Mianowicie nie działają przyciski mające ustawiać czas na zegarze. Czy ktoś byłby tak miły żeby wskazać mi błąd ? :) Program: [syntax=vbnet]$regfile = "m16adef.dat" $crystal = 8000000...
Zastanawia mnie co dokładnie znaczy ta linijka - while (ASSR & (1 << OCR2UB)); Oczekiwanie na zgaszenie flagi OCR2UB. A do czego służy - szukaj w datasheet, jest opisane. Wczoraj były wykonywane pomiary i jednak troszkę różnicy w stosunku do standardowego zegarka jest. Różnice zawsze będą. Kalibracja jest niezbędna: http://mikrokontrolery.blogspot.com/2011...
Przepraszam za jakosc ale robilem w starym diptrace bez bibliotek czy program zaczerpniety z innego tematu by dzialal ? $regfile = "m8def.dat" $crystal = 4000000 Dim Setsek As Byte , Dziesek As Byte , Sekjed As Byte , Sekdzies As Byte , Minjed As Byte , Mindzies As Byte Dim 100ms As Byte , Ktorywysw As Byte , Licz As Bit , Pomoc As Bit , Flaga...
... w tym przypadku spokojnie ponad 60 lat. Czy wiesz co to jest upływność lub samorozładowanie baterii ? Czy sprawdziłeś jaka jest wartość tego parametru i jak to wpłynie na 60 lat, które przytoczyłeś? http://mikrokontrolery.blogspot.com/2011... Pomijam już fakt, że gdyby Twój projekt mógł cudownym zrządzeniem...
A mogłes tak pomysleć bo nie dodałem że mruganie na timer robie a nie na delay ok. http://obrazki.elektroda.pl/4555804300_1... DDRB|=(1<<PORTB1); TCCR1A|=(1<<COM1A1)|(1<<COM1... // TCCR1B|=(1<<WGM13)|(1<<WGM12... //PRESCALER=1024 MODE 14(FAST PWM); ICR1=975;...
mam świadomość, że zegar na PCF8563 może spóźniać/przyśpieszać, ustawiłem go dokładnie według zegara w komputerze i porównując go przez godzinę, nic się zmieniło. No i skąd mogą być te 3 sekundy ? Z dokładności elementów generujących sygnał taktujący, zarówno mikrokontroler, jak i komputer, który zastosowałeś jako wzorzec czasu: http://mikrokontrolery.blogspot.com/2011...
Witam jestem początkujący w programowaniu i mam taki problem, że po załadowaniu pliku na przykład prosty stoper: [syntax=basic4gl][/syntax ... Bardzo prosty zegar bez możliwości ustawiania Dim Sekjed As Byte , Sekdzies As Byte , Minjed As Byte , Mindzies As Byte Dim , Godzjed As Byte , Godzdzies As Byte , Mux As Byte , Migaj As Bit...
Okej racja,w zasadzie to nie ma znaczenia gdzie są przyciski podpięte, działanie zależy od stanu początkowego w programie. Układ już gotowy, teraz męczę się z tymi timerami: [syntax=cpp] #define F_CPU 16000000uL #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #include <stdlib.h> #include "HD44780.h" //Wyświetlacz:...
Witam Na zajęcia mam zrobić taki projekt : "11. Program – stoper, z komunikacją z PC: obsługa klawiszy klawiatury matrycowej: 1 – start; 2 – stop; 3 – wznów; 4 – kasuj; 5-wyślij do PC;" Posiłkuje się tą stroną : http://extremeelectronics.co.in/avr-proj... #include <avr/io.h>...
Jak już koledzy wspomnieli nie ma RTC (czytaj datasheet-y), ale można zrobić własny. Istotnym parametrem będzie jednak dokładność jaką chcesz osiągnąć: http://mikrokontrolery.blogspot.com/2011...
Wszystko zależy od tego jaką dokładność pomiaru potrzebujesz. Jeśli plus minus sekunda, to stoper i ręka wystarczy. Szukasz gotowego urządzenia, czy jesteś wstanie sobie sam zrobić i zaprogramować proste funkcje Timera popularnego mikrokontrolera np. Atmega8, a wynik wyrzucać na LCD albo poprzez UART do terminala komputera?
timer stoper stoper timer stoper atmega
kolor temperatury pomiary okresowe instalacji elektryczne zabezpieczenie cyrkularki
przekaznik bezpieczenstwa zegar nixie
Jak podłączyć telewizor Samsung DV3 HD SRS z magnetowidem Panasonic NV-HD635? NE555 Pinout Diagram, 8-Pin Timer IC Pin Names and Functions