Prosze bardzo... Powodzenia... Plik sprawdzony programem Avast Anitivirus 4.6 z baza danych sprzed miesiaca...
Może to pomoże: http://www.elektroda.pl/rtvforum/downloa...
Witam wszystkich czy ktoś mógłby podpowiedzieć jak uzyskać odliczanie czasu w sek na atmedze? w programie CodevisionAVR uzyskuje taki kod w którym niby jest już jakiś wietrzny timer ustawiam go nawet na 8MHz ale nie wiem jak wyprowadzić to odliczanie sekund np na lcd wystarczy żeby ktoś podpowiedział to a dalsza cześć czyli odliczanie minut i godzin...
Nie przestawialem fusebitów bo jest on taktowany zewnetrznym kwarcem 8Mhz.. A co do tego 10^6.. hmm... zielony jestem jeszcze i tak sobie jakos wymyśliłem, że jak zrobię takie taktowanie to będę mógł sobie dobierać wyższe czestotliwosci co da mi dokładniejsze wyniki... oczywiscie mogę się mylić i dlatego szukam tutaj rozwiazania... Dodano po 58 To jest...
Atmega 328 Przerwanie 50hz do sterowania fazowego blokuje odliczanie millis(); , występują opóźnienia w całym programie. Trudno cię zrozumieć, ale sprawdzanie millis() wskazuje na to że nie używasz potencjału jaki jest w sprzęcie, powinieneś ustawić przerwanie tak aby timer wywołał je kiedy jest potrzeba zmiany stanu wyjścia, albo w ogóle bez udziału...
Najprościej to chyba tak: [syntax=c] #include <avr/io.h> #include <avr/interrupt.h> #define TIMERSTART 6 volatile uint8_t FLAGA_50 = 0; volatile uint8_t FLAGA_1000 = 0; // funkcja obslugi przerwania TIMER0_OVF 8MHz / 64 * 250 wychodzi co 2ms // dla innego taktowania nalezy ustawic inny preskaler i/lub inne liczniki stawiania flag ISR(TIMER0_OVF_vect)...
Witam, potrzebuje pomocy przy zrobieniu licznika czasu zwarcia stycznika. Stycznik miałby być wpięty równolegle do napięcia podawanego na silnik elektryczny który dozuje mieszankę paszową dla kur. Atmega odliczała by czas zwarcia stycznika. Zależy mi aby program: 1. Przeliczał czas podanej mieszanki ( czas x ilość mieszanki ) ( przypuśćmy 1 minuta pracy...
Nie wiem jakiej wersji używasz. Poniższy kompiluje się na pewno w 2075 - specjalnie sprawdziłem :D [syntax=vbnet]$regfile = "m8def.dat" $crystal = 1000000 $hwstack = 40 $swstack = 16 $framesize = 32 '********* TUTAJ SOBIE USTAW JAK CI PASUJE ********** Pin_wyjsciowy Alias Portc.5 Przycisk Alias Pind.2 : Set Portd.2 Const 1_ilosc_minut_do_odliczenia...
procesor atmega 32 całe to odliczanie czasu w sumie nie będzie widoczne w programie ale bardzo ważne więc chodzi mi bardzie o prostotę kodu Proszę poprawić swoje posty - regulamin p3.1.13 .
Może problem w funkcji opóźnienia... Nie jest to szczególnie dokłądna metoda... Wykorzystaj raczej timer do odliczania czasu...
Witam. Zapis (składnia) Load Timer1 jest zły. Sprawdź w pomocy Bascoma.
Jeśli chcesz gotowy kod to masz go w przykładach do książki do ściągnięcia za darmo z ftp helionu. Możesz sobie tam zrobić dowolną liczbę wyświetlaczy, o ile pamiętam kod jest okomentowany, więc nie powinno być problemów. W powyższym kodzie żeby zwiększyć liczbę cyfr trzeba dodać kolejne case w ISR, co jest pomysłem takim sobie. Warto też wyświetlaną...
Zainteresuj się funkcją Input Capture Unit - opis oraz przykład dla C: http://mikrokontrolery.blogspot.com/2011...
MADMAX1978 --> hehe ciekawy temat ;) dla grupy para-militarnej . No ale jeśli to tylko zabawa czy tam gra to żaden problem. Tak jak koledzy mówili możesz użyć dowolnego procka nawet ATmega8 jednak tak prostą rzecz spokojnie da się zrobić na jeszcze mniejszym procku - wystarczy np ATtiny2313 Niestety obawiam się, że sama wiedza jaki to procek - nie wystarczy...
1. W trybie CTC licznik liczy aż do osiągnięcia ustalonej wartości, następnie może (ale nie musi) generować przerwanie i zawsze jest automatycznie zerowany i liczy od nowa. 2. Tak, możesz w przerwaniu załadować TCNT dowolną wartością od której licznik będzie liczył. Tylko w przypadku rejestrów 16-bitowych pamiętaj, że koniecznie najpierw musisz załadować...
... potrzebuje tego urządzenia do atrapy bomby która będzie używana do airsoftu ... A taka może być?: [youtube]https://www.youtube.com/watch?v... Jeśli tak, to: http://mikrokontrolery.blogspot.com/2011...
Witam. Tak na szybko analizując kod: Dla Timer0 włączasz dwa przerwania od porównania: http://obrazki.elektroda.pl/6165324400_1...
Nie wiem czy wyjdzie to jako kolejny post lub dodany po czasie :D ..., ale po pierwsze chciałbym byś nie myślał że moje uwagi są złośliwe. Po prostu zapytań o różne aspekty programowania w Bascom jest tak wiele że lepiej jest odpowiedzieć na ogólnodostępnym forum niż musieć sie powtarzać. Jest szansa że jeszcze ktoś to przeczyta :D Zamiast za każdym...
Zauważyłem też, że przy zmianie warstwy każda VIA ma blisko przelotki podłączone do masy tak jak to Bogatin inni zalecają 👍 W bibliotece footprintów w dziale "Symbols" są właśnie polaryzacje gniazda BarrelJack. Gabarytowo są wielkie i można coś na szybko namalować wedle własnego uznania. Symbol jest prosty, kilka minut i gotowe. To te dwa duże na obrazku...
nie wiem w jakim celu są te 2 minusy Operator predekrementacji. Zmniejsza div_1s o jeden. jakiego typu ma być ta zmienna div_1s? volatile? Może być np. unsigned short. Lokalna statyczna w procedurze obsługi przerwania. 50Hz jest wystarczające, aby oko ludzkie, nie wyłapało zmiany. Nie jest wystarczające (no, może dla żarówek... :D ). Jak mam ją zainicjować...
Zrób to tak: [syntax=basic4gl] $regfile = "m8def.dat" $crystal = 4000000 Config Timer0 = Timer , Prescale = 256 'onfiguracja timera, przescaler 256 On Timer0 Odmierz_1s 'włączamy timer0 Dim Licz_8ms As Byte 'definiujemy zmienną pomocniczą Dim Sekundy As Byte Enable Interrupts 'włączamy zezwolenie na przerwanie Enable Timer0 Load Timer0 = 125 'ładujemy...
Timer + przerwania + funkcja obsługi przerwania ISR(), a nie sprawdzanie jego flagi. Zobacz przykład: http://mikrokontrolery.blogspot.com/2011... A ode mnie w prezencie 25pkt, bo masz zero, ale używasz języka C :)
Czy mam szanse uzyskać dokładność na poziomie 0,000 001 s? Tak masz. Od zbocza narastającego z sygnału 1 PPS z odbiornika GPS zaczynasz odliczanie. Następne zbocze powinno przyjść po 1000000 odcinków o dł. 1 us. Jeśli teraz został naciśnięty przycisk to sprawdzasz stan licznika i już wiesz kiedy był wciśnięty. Trzeba tylko dobrze napisać kod, aby równo...
Ramki oddzielone są miedzy sobą przerwą trwającą co najmniej - i tu nie pamiętam 1,5 lub 3,5 znaku. Ramki oddzielone są od siebie na przynajmniej 3,5 *czas nadania znaku i znaki w ramce na nie więcej niż 1,5 *czas nadania znaku. Właśnie nie wiem jak odbierać te ramki w tym wyznaczonym czasie, proszę o jakąś podpowiedz co do tego buforu i sposobu odliczani...
U2008 jest dobrym rozwiązaniem przy silnikach, (EDIT: ale nie transformatorach) (obciążeniach indukcyjnych), przy żarówkach, grzałkach (obc. rezystancyjnych) łatwiej się obyć bez. U2008 sterowany jest napięciem na n. 3 napięcie to można wytworzyć na dwa sposoby: Sterując transoptor sygnałem analogowym, a po stronie U2008 zrobić, zamiast potencjometru,...
A jak wygląda wyświetlacz 3-segmentowy? Nigdy jeszcze takiego nie widziałem... Program napisz od nowa - ten nie ma prawa działać. Zacznij od przerwania timera. Odliczania czasu NIE DA się zrobić bez timera.
:):) I znowu na odwrot:) Jak ustawisz TCCR1B=0xC; Czyli to o co Ci chodzi(tryb CTC) to musisz zostawic makro wywolujace przerwanie takie jakie miales:) SIGNAL(SIG_OUTPUT_COMPARE1A) ale radzilbym zmienic na taka nazwe: ISR(TIMER1_COMPA_vect)
Witaj, Jak się domyślam problem z komunikacją 1Wire. Sprawdź czy w stosunku do częstotliwości z jaką taktowany jest Twój procesor dobrze są dobrane parametry czasowe transmisji. W 1Wire jest zdefiniowanych kilka okienek czasowych - czy są dobrze odliczane? Gdy uruchamiasz transmisję wyłącz przerwania. Pzdr. asd
seja4321 Napisałem kilka linii kodu ,jest to jedno z możliwych rozwiązań twojego problemu z przyciskiem . program przetestowałem. Moja rada to testuj program na kilku kilkunastu sekundach. powodzenia. Dodano po 46 Nie rozumiem dlaczego seja4321 został skarcony przez LordBlick, przecież pisze w dziale początkujący? Co do kodu, to jest dziwny, Piszesz...
Każdy wyświetlacz ma 8 didek LED (7 segmentów i ósma kropka) połączonych anodami wszystkie razem a katody oznaczone od A do H wyprowadzone osobno. Masz np. 4 wyświetlacze (4 pojedyncze cyfry) więc łączysz ze sobą katody segmentów A wszystkich wyświetlaczy, katody segmentów B wszystkich wyświetlaczy itd. aż do G. Podłączasz zwarte segmenty kolejno do...
Piszesz, że masz doświadczenie z LCD i Atmega8. Więc mogę Ci pomóc to zrobić.
Po pierwsze, timer liczy od 0 do 255, ale to oznacza 256 impulsów pomiędzy przepełnieniami, czyli powinno być 256, a nie 255 * 128us. Po drugie zaokrągliłeś wynik z 32.64 do 32 przed dzieleniem, co w efekcie dało niedokładny wynik ilości przepełnień. W rzeczywistości częstotliwość przerwań można obliczyć dużo prościej: ( 8000000 / 1024 ) / 256 = ok. 30,5176.....
Nie za bardzo się nadaje. Musisz poszukać rezonatora kwarcowego z częstotliwością która dzieli się przez potęgę 2. Poza tym atmega ma chyba wewnętrzny oscylator ustawiany na 128kHz trochę mało ale zależy co zamierzasz robić.
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...
1. To stary wektor przerwań, a nowa funkcja ISR(). Musisz zastosować nowy wektor do tej funkcji. Znajdziesz go w tabelce szukając starego: http://www.nongnu.org/avr-libc/user-manu... 2. Drgania trwają od kilku do kilkudziesięciu milisekund. Możesz na przykład wykorzystać jakiś timer do odliczania tego czasu począwszy od pierwszego...
Myślałem o tym ale to mało elegancko (wg mnie:D). Masz kolego pomysł jak odróżniać w przerwaniu czy jest z odliczania w dół czy w górę?
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...
Przepraszam za długi czas mojej odpowiedzi. Użycie 1 timera jest oczywiście tylko propozycją, ale w mojej opinii upraszcza program. Tak chodzi o osobne zmienne które inkrementujesz (w mojej propozycji było odliczanie do 0, ale to nie zmienia istoty). Oczywiście musisz też uwzględnić czas wykonywania się procedur przerwania obu Timerów przez co faktyczny...
http://obrazki.elektroda.pl/3637756900_1... http://obrazki.elektroda.pl/6313868300_1... Zrealizowałem w tym roku swoje postanowienie jeszcze sprzed zeszłej zimy i zrobiłem sobie wreszcie własny sterownik pieca CO. Na początek pytanie "dlaczego"? Otóż oryginalny dostarczony z piecem przede wszystkim miał 6 poziomów nadmuchu...
Skróć to odliczanie w przerwaniu. i*j==800 - po co aż tyle.
ad 1:Podaj F rezonatora np. 8mhz config timer1 = timer,prescale 256 'konfiguracja timera load timer1 , 31250 'załadowanie timera 1s on timer1 odliczanie 'określenie która procedura ma byc wykonana co 1s enable interrupts 'właczenie przerwań enable timer1 'właczenie timera1 dim twoja_zmienna as long ' twoja pętla do "jakis tam twój program" loop odliczanie:...
Więc zostają 2 możliwości, albo program coś mieszał w odliczaniu czasu(może przerywałem timer0 timerem1 ale to powinno powodować opóźnienia!)albo atmega zła :P Mniejsza, teraz zrobiłem go na pcfie, wystarczy program dopieścić :P
Proponuję poczytać : http://www.atmel.com/dyn/resources/prod_... oraz http://www.atmel.com/dyn/resources/prod_... Co prawda można napisać wszystko samemu (np. żeby się czegoś nauczyć) Projekt z załączników dotyczy procesora ATMega 103, ale pewnie łatwo to zaadaptować na inne maszyny (ja robiłem trochę bardziej skomplikowaną...
Niestety ale częściej się ją wymienia. Sama jej żywotność to 6-7 lat wg. noty katalogowej. A biorąc pod uwagę zużycie energii elektrycznej to wymienia się ją między 2-gim a 5-tym rokiem użytkowania. Jeżeli dobrze ustawisz kwarc sprzętowo (trymer) lub programowo (korekta czasu co 24h) to nie będziesz musiał często zmieniać godziny ale jeżeli trafisz...
Potrzeba jeszcze potencjometr 10k do kontrastu, atmega może być 16PU jak i 8PU. A czy dobro odlicza czas to nie wiem u mnie nie ,ale to może była wina procesora narazię ten projekt poszedł w odstawkę bo robiłem stacje meteo w smd ale zawsze możesz dać ds1307 lub pcf8583 zamiast odliczania w programie
Spróbuj od-komentować tę za-komentowaną część kodu. DS jeśli nie został zainicjowany prawidłowymi danymi ustawia flagę chfl. Oznacza to, że zawartość RAM w obszarze pamięci zegara zawiera śmieci i należy ją zainicjować poprawnymi danymi. Nie pamiętam dokładnie, ale wydaje mi się, że wtedy zegar nie odlicza czasu dopóki się go nie zainicjuje. PS> Jakbyś...
Co do Twojego pierwszego problemu to prawdę mówiąc nie wiem, ale zwróć uwagę na to że po zakończeniu obsługi przerwania zawartośc R16 i R17 jest zamieniona: ... .org 0x0012 rjmp t1Ovf ... t1Ovf: push r16 push r17 in R16, PORTC ldi R17, 0b00000011 eor R16, R17 out PORTC, R16 pop r16 ; R17 pop r17 ; R16 reti ... Może to wina własnie tego. Co do Towjego...
Dziękuje, faktycznie działa. Myślałem że wartość, którą wpisuję do timera on później odlicza, a tu okazuje się, że nie. No cóż...początki. Serdecznie dziękuję.
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...
Wykorzystanie timera do odliczanie czasu impulsów. Tablica z z wszystkimi krokami silnika, zmieniany indeks tablicy po przepełnieniu licznika.
Wartość dla 1 sekundy: OCR1A=((częstotliwość procesora)/preskaler)-1 Wartość dla 4 sekund OCR1A=((częstotliwość procesora)/preskaler)-4 Jedynka w podanym przeze mnie wzorze nie oznacza 1 sekundy. Jeden trzeba odjąć z innych względów. Po prostu licznik nie zaczyna liczyć od 1 tylko od 0, więc odliczanie np. do 5 oznacza (0 1 2 3 4 5), czyli 6 impulsów....
czy ta niedokladnosc pochodzi od temperatury i wachania napiecia ? wracajac do pytania. Zanim zaczne montowac krysztaly o ktorych na dzien dzisiejszy nic nie wiem :] chcialbym lepiej poznac wewnetrzny zegar. Czy najdokladniejszym rozwiazaniem w sytuacji 1Mgz bedzie ustawienie prescalera na 1 i odliczanie miliona taktow czy jest moze wydajniejsza metoda...
Odpowiem tak: Jeśli nie możesz kupić to zrób sam. Proponuję atmega 8, wyświetlacz LED 2x16, 1 lub 2 czujniki temperatury. Mógłby wyglądać np tak: https://www.youtube.com/watch?v=v5dm9jn-... Program sterujący jest dowolny, można napisać samemu od podstaw lub zmodyfikować znalezione w sieci. Do testów można na płytce uniwersalnej zmontować lub na stykowej.
Nie chcę grać roli lokalnego guru (zwłaszcza korzystającego z cudzych stron WWW), ale widzę następujące błędy: F_CPU nie defniuje się w kodzie -> http://mikrokontrolery.blogspot.com/2011... Twoje zmienne używane w przerwaniu powinny być volatile -> http://mikrokontrolery.blogspot.com/2011... Nie...
Byłby atrakcyjny, gdyby odliczanie czasu miałoby odbywać się w tle, a procesor obsługiwałby pętle grafiki o nieznanej długości i obliczeń ruchu elementów na ekranie. Nawet odczytanie aktualnego czasu z RTC podczas startu programu, spowoduje, że zegar będzie nastawiony na dobrą wartość. RTC chyba był podłączony do Atmega, pewnie istnieje możliwość odpytania...
Dziękuję Panie Mirku za słowa otuchy, właśnie specjalnie wybrałem c dla tego ze na każdą platformę jest, na razie za mało wiem ale w przyszłości jak atmega nie będzie wystarczająca to spróbuję przesiąść się na arm. Właśnie muszę poćwiczyć sporo ale teraz po testach będzie więcej czasu więc biorę się do roboty. Teraz oparłem się na analizowaniu kodów...
To co to za proc? Z jakim zegarem? To musi działać nawet na kwarcu 1Mhz(avr) i z prędkością 57,6Kb/s. Jak coś to wrzucaj do pamięci ram mikrokontrolera bo może to transmisja po i2c zwalnia(atmega >=8?) - tylko do testów. Spróbuj jeszcze sprawdzić ten drugi sposób z odliczaniem do dwóch znaków i i przetwarzaniem na żywo(po drugim znaku)
No właśnie, tylko skąd będę wiedział, że odebrałem pełną ramkę? przerwania mi w tym nie pomogą prawda? jakieś odliczanie czasu? np odebrałem coś i czekam 10ms aż bufor się napełni i dopiero go czytam?
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...
Dzieki za pomoc. Wykonalem projekt jednak swoim sposobem tj. uzywajac czujnika pojemnosciowego, ktory jest podpiery do ne555. Czestotliowsc generowana przez ne555 jest zalezna od pojemnosci. Impulsy sa zliczane counterem w atmedze przez czas 1 sekundy ktory jest z kolei odliczany przez timer.
Witam Mam taki układ: http://obrazki.elektroda.net/51_12395609... atmega zaprogramowana tak aby po prostu na wyświetlaczu cyfry "odliczały" od 0 do 9, układ działa w porządku ale jak dotknąłem 7447 to on jest wręcz gorący, jak dłużej przytrzymam palec to zaczyna parzyć; a sam wyświetlacz też jest, można by powiedzieć, więcej niż ciepły. Czy tak ma...
Witam. Urzyłem w moim programie Timer1. I od razu wynikł tu problem. Pomimo użycia podobno dokładnego odliczania i tak sekundy są naliczane zbyt wolno (przynajmniej na wyświetlaczu). Wie ktoś z jakiego powodu? Oto istotna część programu: TCCR1B |= ((1 << CS10) | (1 << CS11)); //częstotliwość przez 64 if (TCNT1...
Eno bez jaj...wskaźniki?... Co tu jest skomplikowanego? Przecież tu wystarczy aktywować cykliczne przerwanie, którego okres zależy od częstotliwości i rozdzielczości potrzebnego PWM. Programowy PWM to raptem 2-3 linie. Do tego timer programowy do odliczania migania i to wszystko. W pętli głównej pozostaje tylko zarządzanie tym timerem i w zależności...
Podając napięcie nic się nie zmienia ;) Główny problem polega na tym że po podłączeniu takim jak opisałem wyświetlacz albo po jakiejś chwili gaśnie albo miga na przemian z cyframi na dole jak by odliczało bo udało się zauważyć 00:01 później 00:03 , 00:05 .
Nawet gdyby wcisnąć tam tą konwersję to nie w przerwaniu, ale w pętli głównej. Jednym z problemów wprowadzonych w kodzie jest korzystanie z wolnego porównania == - powinieneś użyć and Powinieneś użyć rtc - miałbyś przerwanie co sekundę i byłby spokój - nawet źle zaprojektowane pcb może ci wprowadzić więcej niż te 3% niedokładności kwarcu, dużo też zależy...
Każda częstotliwość generatora, która jest podzielna przez 12 umożliwia precyzyjne odmierzenie 1/12 sekundy - wystarczy zaprogramować timer tak, aby (wraz z preskalerem) odliczył 1/12 sekundy, np: - oscylator 12 MHz, odliczamy do 1000000 (np. preskaler 64, okres 15625) - oscylator 11059200, odliczamy do 921600 (np. preskaler 1024, okres 900) ... i pewnie...
Myślałeś w ogóle jak to zrobić bez tej pętli? Waitms to taka pętla do odliczenia. Jedyny plus jest taki, że Waitms może przerwać każde przerwanie oczywiście przedłużając wykonanie pętli odliczania, ale można to zrobić lepiej.
zdecydowałem się na zastosowanie uC aby wyeliminować efekt falowania wody (a tym samym podnoszenie i opadanie włącznika pływakowego co skutkowało kilkunastoma krótkimi włączeniami pompy przy każdym dolewaniu wody). Nie wystarczyło zastosować filtr RC? Dodaj na wszelki wypadek rezystor 10kΩ podciągający RESET do Vcc. Przy takich urządzeniach jak...
Witam Mam dziwny problem z konfiguracją timer1 w atmedze644pa w trybie CTC. Kod jest następujący: [syntax=c] #define TIMER1_OCR 10801//10799//10800 // 1 sekunda void timer_init(void) { TCCR0A=(1<<WGM01); TCCR0B=(1<<CS02)|(1<<CS00); OCR0A=TIMER0_OCR; TIMSK0=(1<<OCIE0A); TCCR1B=(1<<CS12)|(1<<CS10)|(...
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ć...
(...)Mam jednak pytanie, czy można to zrobić w jakiś inny sposób, aby zmiana tempa zależała tylko od zmiennej speed ? Ten sposób jest jak najbardziej odpowiedni. Mam tu następujące sugestie: - poprawić dokładność ustawiania tempa poprzez zwiększenie częstotliwości przerwań (ustawienie preskalera na 1), - przeliczać zadaną wartość tempa w bpm na wartość...
Witam Chcę zrobić w miarę dokładny timer na ATMega8. Ten na którym wykonuje prototypowe projekty działa ale się bardzo późni. Otóż przedstawiam problem: Wykonałem układ zapalający diodę LED przy pomocy ATMega8 ( nic więcej - taki prościutki układ). DO tego napisałem program w C o treści jak ponieżej: ****************************************...
Witam, Nie odpisałem wcześniej bo nie byłem dyspozycyjny. Mogę powtórzyc, tak jak wcześniej ze ja odblokowałem moją atmega(128L) dzięki generatorowi, który zrobiłem na atmedze16(wczesniej pisałem ze na atmie8 ale to nie ma różnicy!!!) ok.2MHz. Na atmedze16 miałem kwarc zew.12MHz. Korzystałem z funkcji OC i trybie generacji fali CTC(z zerującym zegarem),...
A moje pytanie, czy przy takim algorytmie, pomimo tego że nie wykorzystuje przerwań a na pinie mam częstotliwość którą chciałem procesor będzie miał jeszcze "czas" na po prostu realizację programu ? Czy tak skonfigurowany timer wykorzystuje procesor ? Widzę że timery to twoja słaba strona, więc napiszę ci troche ... Wszystkie timery w AVR mają możliwośc...
Witam! Otóż chcę stworzyć zegar szachowy działający na atmega z wyświetlaczem 7 segmentowym. Dla każdego zawodnika zegar będzie odliczał osobny czas, i właśnie nie wiem czy będę potrzebował jakiegoś dodatkowego zegara czy wszystko zrobić na jednym wbudowanym w atmege. I po drugie czy da radę podłączyć kamerę do atmegi? Bo w przyszłości chciałbym aby...
Zapakować czy na miejscu ? ;) A poszukać nie łaska ? ;) : http://www.elektroda.pl/rtvforum/topic19... http://www.elektroda.pl/rtvforum/topic17... Sio do czytania... ;)
Żeby to zrobić trzeba dołożyć zasilanie bateryjne i jakiś monitor zasilania żeby procek wiedział kiedy jest zasilany z sieci a kiedy z baterii. A żeby procek też nie pobierał za dużo prądu przy zasilaniu z baterii to trzeba mu zmienić kwarca z 1MHz na zegarkowy 32,768kHz (choć sam procek może być taktowany z wewnętrznego generatora RC, a ten kwarc zegarkowy...
Jaki wewnętrzny rezownator (to nie jest kwarc)? 1MHz, 2MHz, 4MHz czy 8MHz? Jeżeli masz 2, 4 lub 8 to musisz wpisać na poczatku programu bajt kalibracyjny do odpowiedniego rejestru (domyślnie wpisuje się bajt kalibracyjny dla 1MHz). O wiele dokładniejszy będzie pomiar jeżeli dasz zewnętrzny rezonator kwarcowy. Z tą liczbą 4 bajtową to przesadziłeś -...
Fakt że chyba niepotrzebnie zastanawiam się nad tym poborem prądu. Ogólnie to projektuję na zaliczenie przedmiotu traktującego o programowaniu mikrokontrolerów uniwersalny pilot zdalnego sterowania z możliwością tzw. "uczenia się". To znaczy nie będzie to taki całkiem uniwersalny pilot bo będzie obsługiwał tylko te najbardziej znane standardy no i to...
Możesz wykorzystać timer1 i trzy zmienne... sekundy, minuty, godziny... Przy częstotliwości 8MHz prescalerze 256 i warotści początkowej 34286 teoretycznie przepełenienie następuje dokładnie co sekundę...
SIGNAL(SIG_OVERFLOW0){ straznik = 0; cli(); } #1 Skoro 'straznik' przyjmuje tylko wartości 0 lub 1, to po co 16-bitowy typ 'int'. Wystarczy w zupełności 'uint8_t'. Ta sama uwaga dotyczy również zmiennych 'i' oraz 'j' w pętli 'for'. #2 Jeżeli używasz zmiennej 'straznik' zarówno wewnątrz procedury obsługi przerwania i w programie...
Witam, Poniżej zamieszczam kod - przedstawia on sterowanie multipleksowe 7-seg wyświetlaczem LED - jest to lekko przerobiony kod z popularnej i znanej każdemu książki. To nie jest tak, że to ma być stoper - po prostu chciałem fragment tego kodu wykorzystać do innych celów, ale jest pewien problem. Otóż poniższy kod sprawia, że po uruchomieniu na wyświetlaczu...
Pokaż schemat i program
Najprościej zrób to na jakimś uC np. ATmega8. Co do schematu to nie powinno być problemu na forum jest wiele schematów zegarów, które można by zastosować. Wystarczy tylko napisać odpowiedni soft :D
http://obrazki.elektroda.pl/5276496500_1... Witam wszystkich Właśnie powstał sterownik Termostat na potrzeby nadchodzącego sezonu Jesienno - zimowego Termostat. Jest to wersja 4 kanałowa na czujnikach DS18B20 Jako elementy wykonawcze to triaki BT136 które wysterują Styczniki Ać na 230V Do odliczania zegarka został zaprzęgnięty PCF w...
A change of the COM1x1:0 bits state will have effect at the first compare match after the bits are written. For non-PWM modes, the action can be forced to have immediate effect by using the FOC1x strobe bits. Być może w tym jest problem. OC1A jest prawdopodobnie inicjowane z wartością 0 do momentu wystąpienia pierwszego "compare match". W trybach "set...
Czy to w takim razie oznacza, że na samym uC nie da się faktycznie precyzyjnie odmierzać czasu, a całe te timer'y itp. to tylko taki pic na wode? 8-O Tzn. jakieś tam odstępy czasu będzie timer odliczał, ale o konkretnych wartościach można zapomnieć (+/-3% na cykl przy 15625 cyklach to faktycznie może dać taką masakrę...) ? :|
Witam szanownych elektrodowiczów. Mam mały problem z atmegą8 16PU. Mianowicie zrobiłem użądzenie do sterowania załączaniem pomp dyfuzyjnych . Urządzenie działa mniej więcej tak: 1-Ustawienie czasu załączenia się przekaźnika 2-Ustawienie czasu wyłączania się przekaźnika(przeście do głównej pętli) 3-Nieskończona Pętla -odliczenie czasu i włączenia przekaźnika...
W AVR Studio dokumentacja do Atmegi8 nie nazywa się tak jak w prxuypadki atmega128 tylko m8def.inf więc jak dołączysz ten plik to też powinno jakoś działać. Znajduje się on w tym samuym katalogu co dokumentacja do 128. Pozdrawiam. O tych plikach mówi się nie dokumentacja, tylko plik nagłówkowy i nie "m8def.inf", tylko "m8def.inc"... (Domyślnie w katalogu...
Mam pytanie, czy układ może wyświetlać więcej danych, ale otrzymywanych przez UART ? Mam drugą płytkę - mastera, która wysyła ciąg ( temperatury, wilgotność, ciśnienie, stan czujników DS ). Jeżeli chcesz wysłać więcej ramek ethernetowych wykorzystując TCP, to może być problem :). Można próbować grzebać, w tym kawałku kodu gdzie stan połączenia TCP...
dodatkowo zliczam 250 czyli 250 * 250 = 62500 poprzednio jak mialem Atmege8 i 16 MHz mialem tak Config Timer0 = Timer , Prescale = 64 On Timer0 Sekunda Sekunda: Load Timer0 = 250 Incr Jednostki_czasu If Jednostki_czasu = 1000 Then 'mam sekunde Jednostki_czasu = 0 End If i odliczało dokładnie 1 sekundę ale chyba masz racjębo układ nie działa (nie...
Mam problem z przełączaniem bitów Założenia programu są następujące Program przez określony czas ma włączyć 2 diody oznaczone Pompka1 i Pompka2 oraz wyłączyć Napowietrzacz po upływie czasu ma przełączyć tz: wyłączyć Pompka1 i Pompka2 oraz włączyć Napowietrzacz po upływie drugiego czasu znowu ma przełączyć. Niestety program nie działa dobrze Diody działają...
Dziwna sprawa. Po skompilowaniu i wgraniu powyższego programu, na 40 uruchomień całego układu, 38 razy wyświetlacz się dobrze nie zainicjował i pokazywał same krzaki, 1 raz odliczało liczby tak jak miało być, bez napisu "test", 1 raz pokazał się test a potem 0 i nie odliczało. Uszkodzony procesor? Wersja 1.11.9.8 full i demo. Na obu to samo.
procek jedzie na 1MHz wew. zegarze. Rzecz w tym, że nie jest to sobie takie równe 1MHz, tym bardziej bez kalibracji. Jak chcesz dokładniej, to użyj Timer2 w trybie asynchronicznym z dodatkowym rezonatorem kwarcowym 32768Hz. Przejrzyj noty aplikacyjne AVR134 i AVR055.
Wklej kod, który do tej pory napisałeś.
Jest Timer ktory odlicza czas do kolejnego spotkania?
"Jak ustawisz minimalną dla 2 stanów to wykresem jest linia prosta" Oczywiście, jak sama nazwa wskazuje PWM to Pulse-width modulation.(modulacja szerokości impulsu) Jeśli zasilisz układ napięciem 24V to przy wypełnieniu PWM=255 będziesz miał 24V. Jeśli ustawisz wypełnienie 50% czyli PWM= 127 to teoretycznie powinieneś otrzymać 12V. Dlatego proponowałem,...
jak włączam płytkę to kombinacje od razu się uruchamiają Na to pomoże taka zmiana: Dim Flaga As Byte Flaga=0 Do If PinA.0=0 Then Flaga=1 If PinA.1=0 Then Flaga=2 If Flaga=1 Then Gosub Sciezka If Flaga=2 Then Gosub Odliczanka Loop Próbowałem return ale to nie pomaga. Returny są konieczne, nie zauważyłem poprzednio że ich nie ma. układ nie reaguje wtedy...
Gdyby było 16MHz bez preskalera zegara, to Twój sposób obliczenia jest prawidłowy. Masz LED i stoper w komórce? Jeżeli tak to masz sprzęt którym możesz to sprawdzić. Wystarczy LED podpiąć pod jakiś wolny pin + dodatkowa pętla odliczająca przepełnienia, tak abyś mógł zmieniać jego stan znacznie rzadziej, by móc wzrokowo policzysz ilość mrugnięć ze stoperem...
Nie mam ustawiony wewnętrzny 8MHz ale docelowe w projekcie chcę użyć zewnętrznego 11.058MHz. Myślałem że instruknja: CONFIG Clock = Soft, Gosub = Sectic powoduje że obojętnie co jest ustawione to Bascom automatycznie odlicza 1s i po niej skacze do instrukcji Sectic. Dokładnie chodzi mi o przerwanie które będzie wykonane po upływie 1s. Chcę przez to...
timer odlicza timer1 odlicza zegar odlicza
schematy projektorów przygasa płomień koszt montaż domofon
traktorek silnik briggs traktorek silnik briggs
Buderus Logamax: Kod błędu 4C - Przyczyny i Rozwiązania Jak przygotować 2% roztwór nadmanganianu potasu?