Moje pytanie brzmi czy mogę pogodzić precyzyjny odczyt z ADC (z uśpieniem) i dokładny timer czy muszę wybrać albo precyzyjne ADC i niedokładny timer albo standardowy odczyt z ADC i dokładny timer? Timer1 jest taktowany przez prescaler z CLK_I/O, a podczas 'ADC Noise Reduction' , ten zegar jest nieaktywny/ wyłączony. Patrz tabela14 w datasheet; w której...
Czy ruszałeś fusebit RSTDISBL. może wykorzystujesz PC6 (RESET) i dlatego nie możesz zaprogramować.
Witam! Usypiam procesor Atmega8 poleceniem POWERDOWN w BascomAVR. Jak go obudzić przerwaniem zew. INT0 lub INT1? Nie wychodzi mi to. Pozdrawiam.
A. No to sens jak najbardziej jest. Ale niestety w ATMega8 nie da rady. Co najwyżej to można usypiać procesor z wypełnieniem około 1/8.
Mikrokontrolery to także jak najmniejsze zużycie prądu. Gdzie tylko to możliwe należy je usypiać. W Twoim przypadku możesz wykorzystać co najwyżej uśpienie 'cpu', ponieważ potrzebujesz działających 'timer'ów( przydatna tabela znajduje się w notach przy 'Power Management and Sleep Modes', np. 'atmega8' str.33) Zalecana przez twórców 'avr-libc' sekwencja...
tmf mnie się zdaje, że autor jeszcze o czymś innym myślał :) Temat mówi o dokładności, natomiast z opisu wynika że chodzi o precyzję. A precyzję da się poprawić przez odpowiednie podłączenie, filtrowanie, usypianie uC, uśrednianie wyniku itd.
Samochód 4x4 raczej nie oszczędza zasilania. Tak że w tym wypadku usypianie/budzenie procesora to niewiele oszczędzi. A dynamika jazdy się liczy.
To rozumiem, ale pytam o operacje na przerwaniach. Usypiania i watchdog'a inaczej nie uruchomię.
Jak INTX ma cały czas stan niski to przerwanie jest cały czas wywoływane, a procesor wykonuje jedną instrukcję pentli głównej na jedną obsługę przerwania - czyli działa tylko że bardzo wolno. A rozwiązanie Twojego problemu jest proste. Gdy przyjdzie przerwanie od INTX w stanie niskim to przełączasz to budzisz procesora i przełączasz to przerwanie na...
Jeśli chcesz uzyskać stabilny pomiar napięcia to usypiaj procesor na czas pomiaru, na wejściu ADC zastosuj też filtr dolnoprzepustowy.
a ja mam inny pomysł dajesz na płytce duży kondensator podtrzymujący, za pomocom ADC badasz stan zasilana, jeśli zasilanie zaniknie to układ pracuje na kondensatorze i: 1. rozumiem, że brak prądu = brak impulsów więc 2. zapisujesz dane do eepromu 3. usypiasz układ i czekasz na powrót zasilania
Zamiast źle użytej konstrukcji switch mamy jescze gorzej użyte if. Jak już sprawdziliśmy, że licznik jest równy 1, to jeszcze na wszelki wypadek sprawdzamy, czy jest równy 2, a może jeszcze przypadkiem jest równy i 1, i 2, i 3 równocześnie. switch (if zresztą też) służy do rozejścia na różne akcje, w zależności od wartości danych. U Ciebie akcje są...
Witajcie, W oparciu o Atmegę8 zrobiłem sobie prosty sterownik. Odczytuję temp. z dwóch czujników ds18b20 i na jej podstawie steruje elektrozaworem. Chciałbym dodatkowo wprowadzić obsługę 3 przycisków. Problem w tym, że sam odczyt temp. z czujek powoduje pewne opóźnienia np. czas konwersji jest dosyć spory bo 750ms w związku z tym reakcja na przyciśnięcie...
1. ACD nie wyłącza ADC, tylko komparator, który domyślnie jest włączony. Przetwornik ADC wyłącza się bitem ADEN. 2. Zastosuj ATmega8A - bardziej oszczędna. Pytania: P1. Jaka częstotliwość zegara i (uprzedzając odpowiedź) w jakim celu tak duża? P2. Czy jesteś świadomy jaki prąd spoczynkowy ma L298? P3. Podobnie z LCD? P4. Do jakiego trybu usypiasz mikrokontroler...
Witaj. Na początek uporządkuj sprawy dot. trybu usypiania, ponieważ wykonujesz niepotrzebnie w pętli głównej część czynności w tym zakresie. Poza tym skoro już używasz nagłówka sleep.h, to używaj go w pełni, a nie osobno ustawiasz np. [syntax=c]MCUCR |=(1<<SE)|(1<<SM1);[/syntax] Zobacz przykład funkcji main tutaj: [syntax=c]int main(void)...
Gdzie jest ten tum, któremu usypia się ADC ? Też korzystam z Atmega8 ADC i nic złego się nie dzieje do zaniku zasilania. Może nie miałem problemów dlatego, że zawsze piszę w C, do tego zgodnie ze standardem MISRA. Jako, że nie jesteś od dziś na elektrodzie, to powinieneś doskonale wiedzieć, że nie można pomóc tylko tym, którzy tego nie chcą np: dając...
Witam. W układzie licznik timer2 pracuje asynchronicznie - taktowany jest z kwarca zegarkowego. W Bascomie używam instrukcji RTC programowego. Czy mogę przy używaniu RTC usypiać procesor - uruchamiać tryb Powerdown?
No i trzeba sie liczyc z tym, ze ADC ATMegi (wlasnie, jaka to jest, czy nie czasem 8?) nie jest za super i te 10 bitow to bardziej teoria. Troche moze pomoc wylaczanie czesci cyfrowej na czas przetwarzania ADC i usypianie procesora. Jak samplujesz? Nie wlaczasz/wylaczasz czasem ciagle przetwornika? Robilem na LM35 i na ATMega8 bez zadnych cudow, acz...
Zacznij od przerwania timera i wszystko rób w obsłudze tego przerwania. żadnych "delay" i żadnych czynności w pętli głównej (ma być pusta, tylko z usypianiem procesora). Na dobry początek masz coś o przyciskach: http://mikrokontrolery.blogspot.com/2011...
Także ew. przerwanie z pewnością nie wpłynie na wynik konwersji. W niekorzystnych warunkach może wpłynąć na najmłodsze bity to, że w czasie konwersji wykonywane są inne zadania. W niektórych aplikacjach wskazane jest wręcz usypianie procesora do specjalnego trybu(ACD Noise Reduction Mode).
Witaj. Porty ustawiasz jako wejścia, bez podciągania - to bardzo źle (upływność jest losowa i zależna np od zbliżanej ręki) i sprzeczne z komentarzem w kodzie :) Porównaj z moim przykładem dla ATmega8A dla zasilania 4,85V uzyskałem 0,8µA : http://mikrokontrolery.blogspot.com/2011...
Co to jest L i jakiego jest typu bo w kodzie nie jest to zdefiniowane. Na mojej skromnej stronie 100% i sprawdzony wielokrotnie kod do usypiania procesora i wybudzania jednym przyciskiem. [url=http://bart-projects.cba.pl/rozne.h...
Zamiast 8xBC548C >> ULN2804 Zamiast 8xBC558C >> UDN2981 Wyświetlanie wyniku podczas gry jest... denerwujące, więc dodaj dwa wyświetlacze siedmiosegmentowe (po dwie cyfry, 2x Anoda) po lewej i prawej stronie wyświetlacza matrycowego. Manetki powinny być typu analogowego >> potencjometry; wykorzystać przetworniki Atmegi8 Nie wiem po co są stosowane dwa...
Uzupełniając to co napisał kol. niveasoft dodam, że zastosowanie kwarcu 32,769kHz ma sens w wielu przypadkach, jednakże nie jest lekiem na całe zło :) Można bowiem do taktowania mikrokontrolera zastosować kwarce, których podstawą (jak w przypadku kwarcu 32,768kHz) jest liczba dwa np. 1,8432MHz, 3,2768MHz ... 8,192MHz, ... 16,384MHz itd. Wtedy nie ma...
Dlatego też postanowiłem usypiać scalaka kiedy tylko się da i jak najgłębiej jak w danej chwili można. Dlatego też rozwiązanie TWI na przerwaniach jest dla mnie ważniejsze niż czas jaki poświęcę na opracowanie kodu w stosunku do metody czekania w pętli na kończenie poszczególnych rozkazów TWI. Czy o to Ci chodziło? Tak o to chodziło, i tak tylko podpowiadam...
Pierwszy i bardzo poważny problem zauważyłem w funkcji TIMER1_COMPA, jest nim linijka rjmp uspij. Gdy się wykona, to przerwania pozostaną zablokowane, oraz kilka bajtów na stosie zostanie uwięzionych - głównie adres powrotu z przerwania. Można temu zaradzić poprzez wstawienie pop + pop + sei przed rjmp. Drugi problem, to karygodna pętla główna - dławienie...
Albert: dość mocno mijasz się z prawdą. Niektóre uC z rdzeniami Cortex mają sprzętowy mechanizm gwarantujący czas odpowiedzi na przerwanie, który umożliwia redukcję drżenia (jitter) przerwania o najwyższym priotrytecie do zera również wtedy, kiedy mamy w systemie inne przerwania. Jeśli użyjesz tego mechanizmu, to sam decydujesz jawnie o czasie od przerwaia...
Jak na pierwszy projekt, to bardzo ładny schemat :) 1. R19 zbędny bo wystarczy włączyć programowo rezystor pull-up. 2. Zamiast kontaktronu zastosowałbym transoptor szczelinowy lub fototranzystor i diodę LED. 3. ATmega8 - pewnie że "nadąży", to wbrew pozorom bardzo wydajny mikrokontroler do tak prostych zadań jak Twoje :) 4. C1 i C3 umieścisz jak najbliżej...
Ale Kolega lubi sobie życie komplikować... W programie głównym programujemy dowolny timer na zgłaszanie przerwań z częstotliwością coś pomiędzy 30 i 300 Hz, a następnie usypiamy procesor w pustej pętli. Definiujemy stałą określającą czas włączenia w okresach timera: [syntax=c]#define CZAS_WLACZENIA xxxxx <- wpisz liczbę okresów timera[/syntax] przerwanie...
No to ciągnąc dalej wątek zasilania bateryjnego z opcja usypiania okazuje sie zresztą wynika to jasno z wykresów ,że nie nalezy chcąc zaoszczedzic prądu stosować niskich czestotliwości taktowania a wrećz przeciwnie czy wyżej tym lepiej.
Ale po co ci ta informacja? W moim projekcie zależy mi na oszczędzaniu energii gdzie się tylko da, dlatego też piszę własną obsługę TWI (100kHz) na przerwaniach (patrz inny mój temat). W trakcie komunikacji po TWI właśnie Atmega będzie usypiana w IDLE mode ponieważ POWER DOWN lub SAVE będzie zbyt długo wstawał. To chyba dobre rozwiązanie?
Marek_Skalski To co napisałeś wydaje się sensowne, ale niestety problem występuje nadal gdy nawet wyświetlacza nie ma w obwodzie. Wlaczylem uklad bez wyświetlacza, przerwałem zasilanie, a nastepnie wpiąłem wyświetlacz I ponownie uruchomiłem układ. Wyświetlacz niestety nie pokazał znianę pamięci eeprom. Już brakuje mi pomysłów. Spróbowałem na innym...
W stanie rozwartych przycisków układ nie posiada połączenia z masą czyli prąd nie popłynie przez kontroler czyli kontroler nie działa. Przy wciśniętym przycisku diody również skutecznie zapobiegną umownemu przepływowi prądu w kierunku masy czyli kontroler również nie działa. Zaiste skąd taki pomysł, że to zadziała? Może lepszym rozwiązaniem byłoby normalne...
Przyzwoity uC w głębokim uśpieniu pobiera prąd mniejszy niż prąd samorozładowania baterii. Usypiasz uC głęboko, a przycisk podłączasz do wejścia budzenia. Można oczywiście kombinować z zewnętrznym włączaniem przez przerzutnik zrobiony z tranzystora MOS, ale po co?
Witaj. Bo musisz jeszcze wyłączyć domyślnie włączone układy. NA przykład w ATmega8 domyślnie jest włączony komparator. Wyłączyć go można w rejestrze ACSR. Dodatkowo należy pozbyć się antenek, czyli pinów bez ustalonych stanów. Przeczytaj te 2 artykuły: http://mikrokontrolery.blogspot.com/2011... Tutaj masz...
Dokładnie, 1. Śpi i czeka na INT0 2. Otwarcie drzwi wywołuje przerwanie i odpala timer 3. Dip-switchami na płytce ustawiamy czas jaki ma czekać zanim zacznie piszczec (powiedzmy 5s, 10s, 20s, 30s i 60s) w zależności od potrzeby 4. Piszy tak długo dopóki ktos nie zamknie drzwi 5. Gdy ktoś zamknie drzwi przed upływem określonego czasu to usypia i nic...
Mam projekt transmisji radiowej i jeden ze scenariuszy dotyczy wysłania bajtu informacji po czym usypia procesor i po jakimś czasie (np 1 minucie) budzi się i ponownie wysyła bajt danych. Korzystam z modułów RFM12 oraz RFM01 i RFM02. Procesor to atmega8 a fabryczny kwarc (zamontowany na płytkach) to 7,3728MHz(dla RFM12) oraz 11.0592MHz dla RFM 01 i...
Hallotron to dobra alternatywa, ale ze względu na minimalizację poboru prądu o której pisze autor sądzę, że okaże się ( choć nie sprawdzałem datasheet ) gorszym rozwiązaniem niż kontaktron wpięty bezpośrednio w port procesora. Nie wiem na jakim procesorze to robisz, ale zakładam, że jakiś AVR. Dla Ciebie specjalnie sprawdziłem ile wejście portu Atmega8...
Poradzilem sobie z tym stanem wysokim zerując TCCR1A. Zaczne od tego, że programje pilot 6 przyciskowy z usypianiem, wybudzaniem i przełączaniem miedzy podprogramami - zapalniem Led-ów. Ma 4 przyciski do wysyłania kodów i 2 do przełączania podprogramów. Do tych czterech przycisków podpięte są diody które podają też niski stan na INT0. Wyjscie OC1a podpięte...
o tym nie pomyślałem. Właśnie po to ten układ zrobiono :-) 1. na stronie 13 http://ww1.microchip.com/downloads/en/De... jest opis jakie R dobrać dla V out 5v, rozuemiem, że napięcie wyjscioew ustawia sie tylko tymi dwoma rezystorami, cewka i kondensatory zostaja bez zmian ? Tak. Kondensator odpowiada za prąd wyjściowy, co także na tej...
Weź pod uwagę, że w trakcie wchodzenia w usypianie wykonywana jest jeszcze kolejna instrukcja, w twoim przypadku cli(). Jak się domyślasz cli w połączeniu z sleep tworzy śmiertelną pułapkę z której procesor może wybudzić tylko reset. Swoją drogą, piszesz o oszczędności energii, a używasz staruszka procesora, który bierze energii kilka razy więcej niż...
Czy można by było zrobić coś takiego aby po dokonanym pomiarze procek wchodził w stan uśpienia i po 1 minucie budził sie robił pomiar i znów usypiał, potrzebuję coś małego i oszczędnego w pobór prądu ( zasilanie bateriami pastylkowymi ) Nie wiem czy pastylki dadzą radę, atmega8 pod smd jest bardzo mały, nrf905 też malutki, atmega8 pobór prądu: Power...
Czyli możesz ją zasilać z któregoś pinu wybranego portu (nie widzę abyś pisał jaka to ATmega), który ma obciążalność 40mA np ATmega8. Ściąga pobiera do RAM tekst partiami i wyłącza kartę. Przeglądanie leci z RAM. A mikrokontroler usypiasz w każdym możliwym momencie. Spróbuj to jest proste a daje ogromne możliwości miniaturyzacji i dłuższej pracy. Zobacz...
Mam w swoich kilku programach na ATmegach wprowadzone bloki zatrzymujące (przed pomiarem) i wznawiające (po pomiarze) przerwania. Przerwania to raczej nie mają wpływu na wynik pomiaru. Nie bardziej niż kod wykonywany poza przerwaniem. Więc nie wiem po co to. No chyba, że chodzi Ci o usypianie procka na czas pomiaru z wyłączeniem przerwań by zapobiec...
Dołączasz do procesra kwarc 32767 Hz do odpowiednich końcówek - TOSC1 i TOSC2. Nie są to te od taktowania procesora. W Bascomie masz gotowe polecenia, do ustawiania i odczytu czasu itd. A co będzie jak prądu braknie ? Dlatego dobrze ktoś wcześnieł radził. PCF i bateria. PL I to jest jedyny sensowny pomysł. Stabilność termiczna kwarców zegarkowych w...
Po krótce program wygląda tak. 1. Próba wykrycia DS18B20 jezeli jest to odczyt wartosci progrma znajduje sie w pętli samokalibracji, jeżeli nie ma w pętli termostatu 2. Pomiar wewnętrznnej czest. 3. Jezeli kalibarcja to zapisanie wartosci w EEPROM oscylacji w danej temperaturze 4. Wyswietlenie wartosci na diodach 5 Pomiar napiecia z potencjometru 6....
Nie tak łatwo jest przejść na ciemną stronę mocy ;) Atmeg8 jest nieśmiertelna, a w razie zasłabnięcia reset zawsze ją ożywi. Bez obaw. Co do uśpienia, to nie mam pojęcia jak to wygląda w bascom'ie (ja znam tylko asm i trochę C), ale na ogół trzeba ustawić odpowiedni bit (zezwolić na uśpienie) i wykonać instrukcję "sleep". Jeżeli wykryjesz stan wysoki...
Witam Zastanawiam się nad budową układu służącego do włączania i wyłączania "odbiornika" za pomocą pilota. Transmisja pomiędzy pilotem i sterownikiem musi być zakodowana, tak aby nikt nie skopiował kodu i nie miał dostępu do włączania i wyłączania urządzenia. Odległość transmisji może być np. do 10 metrów. Pilot jak i sterownik zasilany baterią. Wpadłem...
Jednak źle mi się wydawało. Opis znaczenia bitu ADSC jest jednoznaczny: "The first conversion afterADSC has been written after the ADC has been enabled, or if ADSC is written at the same time as the ADC is enabled, will take 25 ADC clock cycles instead of the normal 13. This first conversion performs initialization of the ADC." Czyli nie ma bata, pierwszy...
Tak byłoby najlepiej ale układ już polutowany i muszę się ograniczyc do czasowego usypiania na sztywno np. tak: czeka 10s na dane przychodzace z IR jesli nic nie ma to idzie spac na 20s i tak w kółko. Jak zrealizować takie odmierzanie czasu skoro kiedy jest w trybie power-down timery nie działają?
3 paluszki + LDO to nawet mi odpowiada. Używam atmega8A z tego co wiadomo nie należy ona do najoszczędniejszych. Będę usypiał mikro-kontroler i wybudzał przerwaniem zewnętrznym (przyciskiem) praca tego pilota to około 10 min na tydzień. tmf może poleciłbyś jakąś bardziej oszczędną atmegę ? Na razie miałem do czynienia tylko z 8A.
Zasadniczy błąd to usypianie w przerwaniu. Wyłączone są przerwania, a ty usypiasz i procesor się nie wybudzi. Ja nigdy nie usypiam w przerwaniu. Ustaw sobie pomocniczą flagę, którą w pętli głównej odczytaj i wtedy uśpij. Jak chcesz zaoszczędzić na bateriach to dołącz cli() i sei() w przerwaniu jak ty masz jest nie potrzebne, bo to jest już robione z...
Projekt jest banalny i nie ma w nim praktycznie żadnej elektroniki oprócz procka. Program ma 1 raz przelecieć pętlę loop w której sprawdzany jest stan na jednym z pinów, wzbudzić radio, przesłać info o stanie pinu, uśpić radio i przejść w stan uśpienia. Cykl ma się powtarzać co 2min. Żeby rzadziej korzystać z radia używam jeszcze dodatkowej pętli w...
Jak dla mnie to przede wszystkim zamiast deley() wykorzystać jakiś zew. zegar RTC usypiać procka i wybudzać przerwaniem z RTC Nie trzeba używać zewnętrznego RTC - wystarczy podłączyć kwarc i użyć przerwania z wewnętrznego timera. Nie wiem, jak w przypadku Arduino, ale zastosowany w nim mikrokontroler to chyba ATmega8, więc jest taka możliwość (o ile...
Witam Widzę że pisanie programu jest wyuczone z książek z przykładami. Jak chcesz aby procesor migał diodką albo wypisał coś na LCD po naciśnięciu przycisku to taki poziom pisania w asemblerze wystarczy. Do wykorzystania procesora w szerszym zakresie potrzebny jest następny krok i stworzenie własnego systemu, który będzie odpowiednio zarządzał zasobami...
timer2 jest w stanie obudzić procka ale mam wątpliwości czy może zrobić to timer1. Próbowałem i timer1 nie chce budzić. Dodano po 12 Hmm chyba najlepszym rozwiązaniem będzie tryb power-save i budzenie przez timer2. Usypianie będzie odbywać się w pętli tak aby uzyskać czas 1s. Jak znacie lepsze rozwiązanie piszcie proszę. Dzięki za pomoc. Użycie watchdoga...
Nawet prosty projekt przynosi dużo satysfakcji :) Drobna uwaga: ATmega8 wykorzystuje wewnętrzny oscylator RC pracujący na częstotliwości ok. 8 MHz. Wiadomo, że oscylator RC nie nadaje się do bycia wzorcem czasu. W projekcie wzorcem jest kwarc 32 kHz podłączony do układu RTC DS1307. Układ ten zapewnia również ciągłe odmierzanie czasu w przypadku utraty...
https://obrazki.elektroda.pl/3845985100_... https://obrazki.elektroda.pl/1095475900_... Kiedy zbliżała się tegoroczna jesień i słońce wschodziło coraz później, postanowiłem zbudować budzik świetlny - urządzenie, które o zadanej godzinie włącza stopniowo rozjaśniające się światło. Nawet, jeśli nie obudzi ono użytkownika,...
Witam, chodzi mi o to że po pobraniu każdej danej ustawiałbym sobie uC w tryb idle/sleep (nie wiem jeszcze) a gdy w pamięci będę miał już wymagane 10 danych to budziłbym sobie ponownie układzik i wysyłał wszystko - dlatego nie wiem czy SRAM jest w jakiś sposób zachowany w tych trybach. Dodatkowo chciałem się dowiedzieć czy poprawnie umieszczam te dane...
http://obrazki.elektroda.pl/7748315400_1... Witam. Przedstawiam kolejny mały projekt na Atmega8 i LCD z Nokii 3310. Tym razem jest to miernik indukcyjności. Założenia: Celem było zbudowanie projektu na zaliczenie Techniki mikroprocesorowej. Skoro miałem już zainwestować w kilka elementów, to postanowiłem zrobić coś przydatnego. No więc jest...
Szanowni Panowie! Mam prośbę, skupmy się na sednie problemu. Atmel wyraźnie wskazuje, że atmegę8 można zastąpić atmegą88. Przygotował stosowną notę, w której opisuje związane z tym problemy, link do noty został uprzejmie podany w jednym z wcześniejszych postów. Ja rozumiem, że procesory nie są idnetyczne, ale ... proszę o uwagę ... napisałem w moim...
Zmień w ogóle koncepcję na prawidłową: - połączone końcówki microswitchy nie do masy tylko do INT0, - po starcie programu porty microswitchy jako wyjścia ze stanem 0 a INT0 jako wejście podciaganiem, potem usypiamy procek i czekamy na przerwanie INT0 wyzwolone stanem niskim - LOW LEVEL, - po wejściu do przerwania port INT0 jako wyjście ze stanem 0 a...
Co do tych 16MHz i dodawania mocy obliczeniowej hahahah to tutaj wychodzi Twoja nieznajomość not aplikacyjnych. To, że Arduino śmiga na 16MHz nie znaczy, że Atmega328P nie potrafi szybciej. W nocie przeczytasz że śmiga do 24MHz. Mozesz założyć 18432000Hz albo nawet 20118400Hz. A w której to nocie pisze, że max to 24 MHz? Z tego co widzę, to max to...
Okazało się, że kabelek nie stykał. Po wymianie wszystko działa jak należy. w jaki sposób zablokować przerwanie od INT1, żeby kilka razy go nie blokować w sumie to już taki szczegół jest, ale pomyślałem, żeby zrobić to tak [syntax=c] ISR(INT0_vect) //początek funkcji obsługi przerwania INT0 { MCUCR&=~(1<<SE); a=0; } ISR(INT1_vect) //początek...
Niestety sprawa rozbija się o składnie bascom'a ale dzieki A co , w Bascomie nie można zapisać danych bezpośrednio do rejestru :?: Po konfiguracji ADC i przerwań usypiamy proca w trybie ADC Noise Reduction Mcucr = Mcucr And &H0F ' na wszelki wypadek ;) zerujemy 4 najstarsze bity Mcucr = Mcucr Or &H90 'ustawiamy bit SE i SM0 sleep 'instrukcja assemblera...
Skoro wszystko wiesz lepiej, to po co w ogóle pytałeś na forum? Prawda jest taka, że w przerwaniach nie powinno być NIC poza ustawieniem flagi (przerwania w zasadzie jedynie budzą układ), a w pętli głównej obsługa flag ustawionych w przerwaniu, a po skończonej obsłudze (jeśli zrobiono wszystko co było do zrobienia) usypiasz układ. Ale tą poradę też...
Projekty zasilane z baterii realizuje się znacząco inaczej: - trzy części: http://mikrokontrolery.blogspot.com/2011... - a tu jeszcze więcej: http://mikrokontrolery.blogspot.com/2011... Jeśli to zegarek, to należy maksymalnie spowolnić mikrokontroler i usypiać...
Inaczej projektuje się zegar dla zasilania z baterii, a zupełnie inaczej dla zasilania z zasilacza. Jeżeli mikrokontroler ma być zasilany z baterii, to projekt musi drastycznie zminimalizować zużycie energii. Aby to zrobić należy zmniejszyć radykalnie napięcie zasilania i zmniejszyć częstotliwość zegara F_CPU. Należy także usypiać mikrokontroler ......
Drogi autorze umieszczając swoją konstrukcje powinieneś się liczyć z jej opinią. Masz swoje argumenty czemu Mega8, a nie inaczej, jednakże powinieneś również posłuchać rad innych. Cena ceną, ale układ mniejszy z pewnością by bardziej cieszył. Co do samego projektu, to nie rozumiem jednej rzeczy. Układ jest załączany po stacyjce by nie rozładowywał akumulatora....
Winna byłą funkcjia zamieniająca bcd na dec. PCF rozpracowany. Lecz jest i następny problem. Kombinuję już we wszystkie strony i brakuje mi pomysłów. Próbuję wprowadzić atmegę w tryb power-down. Procek się usypia, po wybudzeniu (przerwanie stanem niskim) wykonuje raz pętlę while(1), a następnie łapie zwiechę... [syntax=c] ISR(INT1_vect){ } int main(void)...
Na szybko: Ostry23 masz u mnie flaszkę bądź wino zależy co pijasz :D ;) Zdecydowanie flaszkę. Po winie usypiam i boli mnie łeb. czy mogę podłączyć równolegle zasilanie z sieci (12V) i baterię (9V) licząc na to, że jeśli zaniknie z sieci to samo zacznie pobierać z baterii i nic się nie stanie z baterią jeśli będzie zasilanie szło z sieci? attention,pleaaase!...
Witam Już dłuższy czas męczę się z banalnym jak mi się wydawało zagadnieniem wybudzania procesora z PowerDown. Wybudzanie chciałem zrealizować na wejsciu INT0. Samo wyzwalanie przerwania działa podczas pracy, gorzej w momencie kiedy ustawię PowerDown. Przerwanie juz się nie wykonuje. Poniżej fragment kodu [syntax=basic4gl] $regfile = "m8def.dat" $crystal...
Podsumujmy: 1. Pull-up masz włączony prawidłowo, 2. Przerwania globalne oraz przerwania z INT0, także prawidłowo. 3. Proponuję, abyś zdecydował się, czy sam ustawiasz bity rejestrów odpowiedzialnych za usypianie, albo korzystał ze zdefiniowanych makr. Aktualnie w Twoim kodzie ustawiasz dwa razy flagę SE - raz samodzielnie, drugi raz w wykorzystując...
Witam! Chcę wykonać zegar na ATmega8L lub 16L (takie mam u siebie). Raczej będe wybierał ATmege16L bo ma możliwość debuggowania przez jtag (który posiadam). Do atmegi chcę podłączyć DS1337, jako RTC. Będzie miał on podłączony kwarc 32kHz. Atmega będzie prawdopodobnie działać na kwarcu wewnętrznym 1Mhz. Chyba więcej nie będzie potrzeba do transmisji...
Zobacz jak ja to zrobiłem na Mega8 http://obrazki.elektroda.pl/8838731900_1... Program jaki zastosowałem korzysta z przerwania INT0 które po naciśnięciu klawisza wyprowadza procesor ze "śpiączki" , wysyła dane na IR i usypia go ponownie.Dla mnie takie rozwiązanie jest lepsze niż chwilowe zasilanie procesora poprzez diody. Poniżej wklejam...
Atmega8 może spokojnie pracować już od 2,7V (gwarantowane przez producenta) a w praktyce nawet niżej. Do tego zamiast wyświetlacza alfanumerycznego, który jest drogi i DUŻY można użyć nieśmertelnego wyświetlacza graficznego z nokii 3310 (do kupienia już od 6 zł na znanym portalu aukcyjnym) który nie dość, że jest mały i płaski to zmieści DUŻO więcej....
http://obrazki.elektroda.pl/9531378400_1... Witam. Chciałem zaprezentować wykonany przeze mnie sterownik rolet okiennych wewnętrznych. Inspiracją do wykonania projektu było urządzenie zaprezentowane już jakiś czas temu: Założenia Głównym celem mojego projektu było automatyczne zasłonięcie okna po włączeniu światła w pomieszczeniu (po...
http://obrazki.elektroda.net/1_126476553... Witam :) Prezentowany w tym temacie projekt jest realizacją pewnej idei - elektronicznego długopisu ściągi z wbudowanym wyświetlaczem, pamięcią itp. Długopis powstawał w czasie od września do grudnia 2008. Projektu nie będę rozwijał, niedokończonego kodu nie udostępnię. Kontynuacji nie będzie, ale...
Witam. Dopiero zaczynam naukę z AVR i ogólnie z programowaniem. Korzystam z książki P. Borkowski 'AVR & ARM7 Programowanie uC dla każdego' i zatrzymała mnie pewna sprawa dotycząca uśpienia wywoływanego przyciskiem. Program wygląda mniej więcej tak: -dwie diody migają naprzemiennie -po naciśnięciu przycisku na PD0 ukłąd wchodzi w stan uśpienia -po...
Witam, dziękuje za zainteresowanie :) Hmm, to jest coraz dziwniejsza sprawa. Rozwiązanie z pkt 5 nie działa tak jak zakładamy, cały czas jest spełniony warunek z if'a. Natomiast 'procedury testowe' z punktów 7 i 8 działają tak jak zakładasz. Odnośnie pkt 6 robot działa już pod kontrolą programu w BASCOM'ie więc elektronika jest zlutowana poprawnie....
http://obrazki.elektroda.pl/9824916400_1... Witam, Korzystając z ostatnich wolnych dni przed studiami chciałbym zaprezentować moją ostatnią konstrukcję. Jest to mały przenośny barometr. Konstrukcja powstała na potrzeby osoby wrażliwej na zmiany ciśnienia oraz spełnia jej wymagania tzn. mały rozmiar( 20x40x9mm) oraz co się z tym wiąże...
Witam Mam problem z odczytem danych z 24C02. Program piszę w bascom, procesor to atmega8 taktowany wewnętrznie 1MHz. Zapisuję do eeproma zewnętrznego 3 zmienne Byte, są to liczby w zakresie 1-31; 1-12; 1-40. Wszystko ładnie się zapisuje do eeproma w menu. Po przejściu z pętli głównej do procedury nazwijmy ją "czytanie" za poierwszym razem pojawia się...
Tak jak kolega wyżej napisał. Po uśpieniu procesor już nic nie robi i nie wykonuje żadnych rozkazów. Są jednak zdarzenia opisane we wspomnianej tabelce (Table 14) które ten procesor mogą wybudzić. W Twoim przypadku po prostu nastąpiło takie zdarzenie - przerwanie od zegara T2, które nastąpiło ułamek sekundy po tym jak procesor uśpiłeś i go wybudziło...
Cześć, chciałem przeportować kod do odbioru RC5 autorstwa Dondu za ATMega8 na ATTiny13 - http://obrazki.elektroda.pl/8294459100_1... REzystory diod 470Ω, nie zmieniłem na schemacie. Pilot samoróbka, ale 100% pewniak. No więc w czym problem? Uruchomiłem przykład na ATMega8, wszystko pięknie śmiga. Program kompiluje się dla Tiny13...
mc1525tt, no load current typical 86uA. Byc może to pobór prądu bez obciązenia stabilizatora mc1525tt. Jesli atmega da sie wyjąc (na podstawce?) to mozna by wtedy sprawdzić. Dodano po 3 Chyba nie doczytałem opisu. Sorry. Dodano po 56 Ale tak czy inaczej jeśli nie mamy pomysłu to trzeba chyba odłączać po kawałku podejrzane rzeczy. Dodano po 2 Zacząłbym...
Mikrokontroler to atmega8L: http://www.atmel.com/images/doc2486.pdf str 35 informacje o sleep modes. Używam zewnętrzenego kwarcu 16Mhz. Nie używam BOD. Przycisk na INT0 nie ma debouncingu. Układ działa poprawnie bez usypiania.
Jeżeli ograniczysz prąd wejściowy (a właśnie ograniczasz go rezystorem), to spokojnie możesz podać z przodu rezystora napięcie np. 10V, o ile nie usypiasz procesora głęboko - ważne, żeby natężenie prądu zasilania było zawsze mniejsze od maksymalnego natężenia tego, co wpływa przez wejście, no i oczywiście prąd wpływający przez wejście nie może przekroczyć...
A nad modułem BLE zamiast tego HC06 kolega myślał ? Przy zasilaniu bateryjnym to kierunek w którym by trzeba iść. Dostępność gotowych modułów bezproblemowa, ceny także normalne. Taki klucz przestanie być fajny, gdy rozładuje się bateria lub trzeba ją będzie wymieniać co 2 tygodnie... Pomyśl jeszcze nad zastosowaniem czujnika wstrząsów ( dostępne choćby...
Sprawdzając stan tego pinu w przerwaniu, niestety z wykorzystaniem timera. Tylko po co skoro Pin Change jest dostępny w każdym trybie uśpienia a timer praktycznie w żadnym. :arrow: seradam, uruchamiasz przerwanie od Pin Change - poprzez wpis do PCICR =&B00000111 usypiasz układ i czekasz na zgłoszenie przerwania od PCIFR.
Z dyskusją jest tak, jak z grą na boisku. Bronisz się, gdy atakują, bronią się, gdy atakujesz. Może to być ciekawa gra, ale nie musi. Wszystko zależy od rangi i poziomu graczy. Stawiam na konkrety nie na samozachwyt. Cenne mienie odpowiednio bym zabezpieczył i na pewno nie w piwnicy. Temat zabezpieczenia mienia znam i nie będę się wymądrzał, powiem,...
Nie wiem, jaka to magia jest w podzieleniu jednej sekundy przez 1920 (czyli przez 19200 / 10, bo jeden bajt jest transmitowany w 10 "slotach" bitowych). Jeśli masz jakiś problem z wielokrotną transmisją, to winna temu jest pętla główna, która powinna być pusta (a dokładnie - powinna usypiać procesor). Wyzwalanie transmisji powinno następować w przerwaniu...
będę miał studiowania not chipów na długie wieczory :) Z eksperymentów: wpiąłem 5.1V (ładowarka USB) na wejście 7805 i atmega8a 5 voltowa działała na kwarcu 12MHz, nawet potrafiła dać jakiś prąd na nóżkach, rozebrałem a szkoda że w świąteczne wieczory nie pomierzyłem chińskim miernikiem napięć na wewnętrznym (rzekomo w tym przypadku) stabilizowanym...
Użyj jednego przerwania od timera generującego przebieg PWM dla serw. Cały kod powinien mieścić się w przerwaniu timera - w pętli głównej tylko usypiaj procesor. Jeżeli po preskalerze będziesz miał zegar timera 1 MHz, to możesz użyć wartości ADC do sterowania serwem po dodaniu do niej 500. Ustaw okres na 20000, wtedy zakres ADC 0..1023 będzie odpowiadał...
Hello! Eksperymentowałem z ATmega8L i trybem Powerdown. Niestety mam niewytłumaczalnie duży pobór prądu w tym trybie, znacznie większy niż deklaruje producent - przy zasilaniu, w moim przypadku 3V, żre ok. 15uA. W datasheecie jest wykresik, z którego wynika, że nie powinien sięgnąć nawet 0.5uA... Program zawiera zaledwie cztery linijki (taki dla testu...
keszua --> tak - dokładnie jak piszesz - ja wolę działać w tym przypadku na zewnętrznym szybkim kwarcu - tak aby prędkość SPI była większa niż 8MHz (co gwarantuje wg noty PDF ENCxxx że wszystko jeśli chodzi o transmisję będzie OK) czyli świadomie zrezygnowałem z użytkowania wyjścia CLKOUT z ENCxxxx .... a dlaczego ??? poczytaj sobie tuxgraphics i testy...
http://obrazki.elektroda.pl/7355213900_1... Witam, Przedstawiam kolejną wersję zegarka naściennego. Zegarek wyświetla czas w formacie GG.MM, oraz temperaturę w zakresie -9...99°C. Użyte zostały wyświetlacze 7-segmentowe Led o wysokości znaku 56mm. Takie dość duże żeby było z daleka widać która godzina ;) Wyświetlacze mają regulowaną...
http://obrazki.elektroda.pl/5397068700_1... Witam! W kolejnej odsłonie modułów do samochodu przedstawiam układ realizujący funkcję, tzw. Coming Home oraz Leaving Home znane przede wszystkich chyba z aut grupy VW. Funkcje te to zwyczajnie oświetlanie drogi do domu, gdy opuszczamy auto oraz z domu, gdy chcemy do niego wsiąść. Układ steruje...
http://obrazki.elektroda.pl/4865363800_1... Witam! Kolejnym projektem, który chcę przedstawić jest moduł sterujący pracą szyberdachu trójpozycyjnego wraz z funkcją domykania. W aucie, które posiadam szyberdach sterowany był jednym przełącznikiem 2-pozycyjnym. Przechylenie przełącznika w lewo powoduje uchylenie szyberdachu, w prawo jego...
Cześć! Poszukuję wsparci gdyż powstał mętlik w głowie. Mam program, który komunikuję się z modułem GSM, używa wielu globalnych tablic, funkcji operujących na strumieniach typu strcpy, str n cpy, strstr, strtok, poniżej wklejam większość deklaracji dużych zmiennych: Dodano po 1 Przeniosłem deklarację StackPoint z .int1 do .int3 i program zaczął wyświetlać...
Witam! Mam problem z komunikacją pomiędzy mikrokontrolerem Atmega8L i modułem ZigBit ATZB-24-A2. Całość działa w układzie detekcji zaniku napięcia sieciowego. Pod wpływem przerwań lub wciśnięć przycisków wysyłane są zadane komendy AT. Całość działa pod terminalem: Atmega wysyła komendy na zadane przerwania, ZigBit odpowiada na komendy wysyłane przez...
usypianie instalacji usypianie atmega usypianie dysku
nierówne obroty silnika astra amazon assistant bester regulacja prądu
uziemienie instalacji elektrycznej instalacja oświetleniowa obliczenia
Diagnostyka wiązki elektrycznej pompowtryskiwaczy w silnikach VAG Ekspres Philips LatteGo - świecą wszystkie diody, brak kawy