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ż...
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)...
Witam! Usypiam procesor Atmega8 poleceniem POWERDOWN w BascomAVR. Jak go obudzić przerwaniem zew. INT0 lub INT1? Nie wychodzi mi to. Pozdrawiam.
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...
Może lepszym rozwiązaniem byłoby normalne zasilenie układu i usypianie go za pomocą timera. INT0 podciągnięte rezystorem do VCC a wybudzanie zboczem opadającym branym przez diody z przycisków. Czyli np. komenda Powerdown i wybudzenie sygnałem na wejściu INT0 ?
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?
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...
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...
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.
Witam po chwilowej przerwie. Korzystam z usypiania, bo przy wylaczonej stacyjce tez sie cos dzieje :) Mam jeszcze pytanie do Dr_DEAD.... Czy jezeli wykorzystuje intX do wybudzania procka, to czy moge uzywac tego wejscia normalnie w kodzie? Bo chcialbym jeszcze w kodzie sprawdzac czy stacyjkla jest wlaczona, i jezeli jest to ma cos robic, a jezeli to...
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ą?
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...
Witaj. Pytanie: Co wybudza mikrokontroler ze snu? Odpowiedź: Przerwanie. Jeżeli uśpienie mikrokontrolera realizujesz w funkcji przerwania przy wyłączonych globalnych przerwaniach (po wejściu w funkcję przerwania są automatycznie wyłączane), to mikrokontroler się nie zbudzi, bo ma zablokowane przerwania. Musiałbyś w takim przypadku przed uśpieniem włączyć...
Ale WD nie służy do usypiania i wybudzania procesora! To, że w nowszych AVR dodano mu różne dziwne funkcjonalności to nie znaczy, że inaczej się nie da. Wybudzić procesor może np. przerwanie timera po dowolnym czasie - warunek, że timer w danym trybie uśpienia ciągle działa. Więc i na M8 da się to zrobić. Natomiast pisząc o M8, że to prehistoria nie...
Jeżeli oszczędzanie baterii tak niewielkiej jak CR2032 i około 300 obrotów/min, to upierać się będę, że najlepszym rozwiązaniem jest kontaktron na wejściu procesora zwierający do masy. Oczywiście Ty decydujesz. Co do schematu, który przedstawiłeś nie wypowiadam się bo moim skromnym zdaniem jest zbędny. Jeśli chodzi o hallotrony to gdzieś kiedyś widziałem...
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...
Witam, Zbudowałem taki układ: http://obrazki.elektroda.pl/9541154400_1... Czy zasilanie mikrokontrolera jest prawidłowe oraz czy nie za mało dałem kondensatorów ceramicznych bo mam pewne problemy z uC. Program się co prawda wgrywa ale moim zdaniem nie funkcjonuje poprawnie. Np. ustawiam wszystkie porty C na wyjścia oraz w stan wysoki...
Witam. Problem pewnie jest banalny ale nie mogę znaleźć nigdzie rozwiązania. W ramach ćwiczeń buduję na ATmedze8 zegar. Mam problem z wybudzeniem mikrokontrolera ze stanu uśpienia SLEEP_MODE_PWR_SAVE przerwaniem. Chcę aby po uśpieniu wykonujące się co ok. 250ms przerwanie obudziło mikrokontroler i zmieniło zmienną. Wtedy chciałbym aby wykonała się główna...
Witam Postawiłem sobie za cel możliwość zapisania wartości pwm w zewnętrznej pamięci eeprom, w tym przypadku AT24C02 Procesor to Atmega 8, wewnętrzne taktowanie zegara 1MHz W załączeniu wkleiłem uproszczony program zapisu i odczytu wartości pwm. Za pomocą pwm steruję jasnością podświetlenia wyświetlacza LCD. Wiem, że można zapisywać te ustawienia w...
Wgrywam na atmegę, programator wyświetla, że ok(wcześniej rozpoznaje atmege), podłączam do baterii 4,5v(teraz około 4 pod obciążeniem) i nic nie działa wszystkie wyjścia dają około 0v ?! Co do słabej baterii, zgoda, ale atmega ze starym programem, działa stabilnie, a dwie świeżo zaprogramowane, nie reagują?! Program jest trywialny, bo kompletnie nie...
Witam, Posiadam płytkę testową EVB 4.3. Za pomocą programatora na płytce chce zaprogramować ATmege8. Wszystkie połączenia wg tej [url=http://and-tech.pl/wp-content/downl... Wszystko przebiega tak jak autor miał na myśli, niestety po wgraniu mojego krókiego kodu: [syntax=c]#include<avr/io.h>...
witam zaznaczę, że zaczynam z uC na co dzień bawię się PLC zmontowałem sobie układ na płytce stykowej wgrałem prosty program z kursu który znalazłem w necie /* przykład 2.1 "leds.c" */ /* 8 diod LED przłączonych do portu D */ /* ATmega 1MHz */ #define F_CPU 1000000L #include <avr/io.h> #include <util/delay.h> int main(void) { /* Wszystkie...
Witam kolegów nigdy nie miałem większych problemów żeby zaprogramowac jakiś procek ale tym razem jest masakra ale do rzeczy: Program do wgrania to http://mariuszelektro.elektroda.eu/anali... analizator widma akustycznego który był omawiany już na forum Problemem jest to że trzeba zmienić taktowanie procesora z wew na zew niby proste a...
Witam, domyśliłem się, że gotowców nie robicie (w sumie to i dobrze:) ), tak więc zabrałem się sam za programowanie. Chcę napisać prosty program zapalający diodę, podłączoną do bitu 0 portu B, po przyciśnięciu przycisku podłączonego do bitu 0 portu D. Teoretycznie napisałem, ale nie chce to działać. Znalazłem link na forum gdzie problem był opisany,...
Bry, to mój pierwszy temat, więc proszę o wyrozumiałość - problem przedstawia się następująco. Otóż zacząłem bawić się w programowanie uC(to już pierwszy z problemów) Mam gotowy programator USBasp(kupiony), adapter jakoś tam parszywie przylutowany do płytki uniwersalnej, no i uC - ATmega 8. Środowisko programistyczne to WIN AVR, AVRdude z Burn-O-Matem,...
Chciałbym zbudować regulator obrotów dwukierunkowy który byłby sterowany szerokością impulsu z odbiornika RC ale nie wiem jak zacząć bo mam już zrobioną płytkę pod atmega8. W Arduino deklaracje pinów są dla mnie niejasne.
Witam, Bawię się w programowanie uC i wszystko szło dobrze póki nie wpadłem by przetestować jak działa procesor z innymi ustawieniami zegara. Mowa konkretnie o ATMega 8, fabrycznie taktowana wewnętrznym 1MHz. Chciałem zmienić na dalej wewnętrzny tylko 8 MHz (podobno jest niezbyt dokładny, ale nie potrzeba mi dokładności do testów). Otworzyłem więc datasheet'a...
Witam, Jako, że nie bawiłem się tematem j.w. chciałem zapytać czy są jakieś elementy procesu, które szczególnie należy wziąć pod uwagę. Zamierzam przyciskiem microswitch podłączonym do INT0 (wyzwalane poziomem) wprowadzać ATmegę w stan uśpienia (Standby) i tym samym przyciskiem wybudzać. robiw
Witam serdecznie. Zbudowałem układ, który ma za zadanie dokonywać pomiaru prądu, napięcia, temperatury oraz liczby obrotów. Poniżej zamieszczam schemat: http://obrazki.elektroda.net/52_12834085... opis wej/wyj : PC6 - reset PD0 - przekaźnik1 PD1 - czujnik cyfrowy temperatury PD2 - przekaźnik2 PD3 - D7 (LCD) PD4 - przekaźnik3 Vcc Gnd PB6 - kwarc...
Uczę się programować mikrokontrolery z książki Pawła Borkowskiego: "AVR&ARM7. Programowanie mikrokontrolerów dla każdego" . Ćwiczenie, które mam do wykonania, wygląda tak: To ćwiczenie należy do trudnych, gdyż wiedzę konieczną do jego wykonania należy zdobyć samodzielnie. Na rysunku 7.9 widać schemat z podłączoną tylko jedną diodą. Należy układ obsłużyć...
Witam, zaczynam zabawę z elektroniką i próbuje poskładać wg schematu swój pierwszy projekt (miganie LED-ami) z mikrokontrolerem atmega8. Proszę o sprawdzenie, czy wszystko jest dobrze połączone. Zamieszczam zdjęcie schematu, oraz zdjęcie płytki.
Przeczytałem kilka postów na temat uśpienia, przejrzałem datasheet'a od mojej ATmegi8 ale mam kilka pytań. Wiem, że funkcją set_sleep_mode wybieram tryb oszczędzania, a funkcją sleep_mode() po prostu go włączam. 1. czy jest funkcja powracająca procka do normalnej pracy, 2. czy dobrze rozumiem tabele na str. 35, że przycisk włączający może być tylko...
Witam. Mam zaprogramowana atmega8 poprawnym programem. Podczas jego testowania kilkakrotnie wlaczalem i wylaczalem zasilanie az w koncu za ktoryms razem atmega nie wlaczyla sie ( mialo krecic serwem tam i z powrotem). Pierwsze podejrzenie to brak zasilania, ale wszystko jest poprawnie, ze 3 razy sprawdzalem wszystkie luty, jest OK. probujac potem jeszcze...
Witam! Niedawno rozpocząłem swoja przygodę z mikrokontrolerami. Zacząłem od ATmegi8 ponieważ dosyć często słyszałem tę nazwę. Zakupiłem sobie na początek dwie kostki takie kostki zbudowałem programator i... i na początek ustawiając fuse bit'y zawiesiłem obydwa no ale przejrzałem forum i znalazłem odpowiedzi. Udało sie procesor znów żyje. Pierwszy program...
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...
Pozmieniałem i już działa, moje niedopatrzenie. Po co ten komentarz na końcu? Edit: zumek Nie chodzi o to że nie znam sie na żartach, przestałem w pewnym momencie korzystać z elektrody ponieważ zaczeły się robić takie akcje, że jak ktoś miał mniejszą wiedze z tematu to tylko po nim jechali i być może dlatego taka moja reakcja ;) Program działa tak jak...
Witam serdecznie, Doczytałem ostatnio to czego nie doczytałem wcześniej, temat mi się znacznie bardziej rozjaśnił. Potrzebuję aby ktoś lepszy potwierdził co ustaliłem: Do budowy zegara użyję: Timer2 AtMega8 taktowany asynchronicznie z oscylatora wewnętrznego (low freq. osc.) stabilizowanego zewnętrznym kwarcem 32,768kHz podłączanym pod piny TOSC1 i...
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....
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 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...
A co do usypiania - to stosuj jak najczęściej, nawet pracując na zasilaniu innym niż bateryjne - to dobry nawyk który ułatwi Ci pisanie kodu, gdy oszczędzanie będzie niezbędne. Generalnie - wykonaj, co masz i idź spać :) W Twoim przypadku zakłócenia elektryczne z licznika mogą przenosić się na procesor - tutaj możesz szukać przyczyny wieszania się...
Jeśli procesor obsługuje multipleksowanie wyświetlania i inne bzdety to nie nie ma czegoś takiego jak "szybciej wykona program" bo i tak musi pozostać w stanie działającym. Gdzie mierzysz te 1,4mA? Już za stabilizatorem czy przed? Daj jakiś schemat bo wróżka Jadwiga bez tego nic więcej nie powie. Zaraz się okaże że włożyłeś gdzieś dzielnik R do pomiaru...
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...
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...
Uczę się programowania ATMegi8 z książki Pawła Borkowskiego: "AVR8 i ARM7. Programowanie mikrokontrolerów dla każdego." . Moje ćwiczenie wygląda następująco: W celu maksymalnego oszczędzania energii w telefonach komórkowych po kilkunastu sekundach bezczynności następuje automatyczne przejście w tryb zmniejszonego poboru energii. Ten fakt zaobserwowaliśmy...
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...
Może tak. Funkcja usypiająca: [syntax=c]void usypianie() { EICRA |= (0 << ISC00) | (0 << ISC01); //Przestawienie przerwania Int0 na aktywację stanem niskim (żeby móc wybudzić) sei(); power_all_disable(); //wyłącza zasilanie TWI, Timer0-2, SPI, USART0, ADC cbi(PORTB,2); set_sleep_mode(SLEEP_MODE_PWR_DOWN); sleep_mode(); }[/syntax] Mam nadzieję,...
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.
Nie musze czytać tego dokumentu bo u mnie chodzi o usypianie power save a jezeli w artykule jest opis UARTA to juz mnie nie interesuje w tej sprawie gdyz procesor sa sie wybudzic za pomoca UARTA jedynie przy uspieniu do IDLE .I może to jest kość niezgody? Ja nie podważam dokumentu ATMELA tylko go czytam ze zrozumieniem, i to co wywnioskowałem nie jest...
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...
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...
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...
atom1477 no bardzo prawdopodobne bo podłączyłem inną atmege zasilając tylko VCC i na AVCC było właśnie około 4,4V. W układzie z rolet, przy takim samym zasilaniu na AVCC jest 0V. Tylko w jaki sposób to się uszkodziło? Kupiłem nową atmege ze sklepu, wszystko ostrożnie podłączałem. A może dlatego że lutowałem atmege bez podstawki... chociaż wątpię. A...
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 ......
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...
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...
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)...
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...
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ą...
atmega8 wybudzanie usypianie atmega8 atmega8 powerdown wybudzanie
generator minuta czujnik pralka system kontroli spalin
Kod błędu ID814 w falownikach Sofar Solar - przyczyny i diagnostyka Błąd AL 02 na wyświetlaczu lodówki Whirlpool - brak możliwości ustawienia temperatury