Witam Ja testowałem taką funkcję w attiny13 (zmien sobie pin INT0)i działało OK, w twojej brakuje paru elementów: [syntax=c]void enterSleep(void) { DDRB &= ~(1 << PB1); // INT0: input... PORTB |= (1 << PB1); // ...with pullup. set_sleep_mode(SLEEP_MODE_PWR_DOWN); // EDIT: could also use SLEEP_MODE_PWR_DOWN for lowest power consumption....
Witam Już dłuższy czas męczę się z banalnym .... Powerdown nie powinien być w Interrupt service. Zwróć uwagę na bit7 (I) w SREG - jest on zerowany i twój INT0 jak i inne na ten czas są blokowane. e marcus
To sprobuj wybudzac recznie a nie za pomoaca CLK i zobaczysz czy przyczyną jest długosc sygnalu '0". Kiedys mialempodobny problem nie wnikajac w szczegóły dale diode i kondensator na wejscie INT1 i osiagnąlem 100% wybudzen oczywiscie pod warunkie ze to wejscie tylko uzywasz do wybudzen. Zwróc uwagę ze kazdy procesor startuje w okreslonym czasie po wybudzeniu...
Za dużo powerdown jest w tym kodzie zostaw tylko 1. W przerwaniach powinny być umieszczone flagi i po powrocie w pętli głównej powinno być wszystko robione, a na końcu przejście w powerdown, a nigdy w przerwaniu, przecież to zatrzymuje zegar i procesor zostaje w obsłudze przerwania. Twoja procedura Miganie nigdy się nie skończy nie wiem czy tak chciałeś....
No wybudzenie w każdym języku wygląda tak samo - podajesz zero logiczne na odpowiedni pin i gotowe. Popatrz na kilka tematów niżej tam jest attiny 45 power down a to to samo.
Tak właśnie bym sam to zrobił. Oczywiście, zanim procesor wystartuje, to żadna transmisja działać nie będzie, a może to być nawet kilkadziesiąt milisekund (wartość zależy od czasu startu oscylatora ustawianego fuse bitami oraz od wybranego trybu powerdown - wszystko jest w datasheet).
"The pin change interrupt PCI2 will trigger if any enabled PCINT23..16 pin toggles. The pin change interrupt PCI1 will trigger if any enabled PCINT14..8 pin toggles. The pin change interrupt PCI0 will trigger if any enabled PCINT7..0 pin toggles. The PCMSK2, PCMSK1 and PCMSK0 Regis- ters control which pins contribute to the pin change interrupts. Pin...
neo_84 ---> no skoro w nocie masz napisane (i to dla każdego praktycznie procka AVR to samo) że tylko poziomem to nie zboczem ;) więc dobrze myślisz - w Bascomie musisz zrobić tak jak napisałeś Config Int0 = Low Level
Witam. Spróbuj wykorzystać watchdoga w trybie przerwania nie resetu. W Main'ie błyskasz diodą pierwszy raz, ustawiasz pieska w tryb przerwania, włączasz watchdoga na 1S i usypiasz procesor i następie pętla bez końca i z pustym ciałem. W przerwaniu mrugasz diodą, resetujesz watchdoga i idziesz dalej spać. Sumarycznie będziesz nawet pobierał mniejszy...
Witam Procesor przechodzi w stan Powerdown po ustalonym czasie kiedy zmienna L=1. Ustawiłem wybudzanie z przycisku (podanie 0 na int0) no i nie działa . Przepatrzyłem już chyba wszystkie tematy na forum i robiłem z milion kombinacji. Już nie mam pojęcia co robić czy to może być wina BASCOM, procesora , prosilbym o konkretne wskazówki jak ustawić aby...
ENABLE INTERRUPTS 'Włączenie globalne przerwań ENABLE INT0 'Właczenie przerwania INT0 ON INT0 podprogram: 'Przypisanie podprogramu który zostanie wywołany po stwierdzeniu przerwania. "Only an level interrupt on INT0...". Wypadałoby jeszcze ustawić przerwanie aktywne na poziom a nie na zbocze. config INT0= LOW LEVEL Proszę bardzo :) Na marginesie, to...
Rozumiem, że Wam udało się uzyskać prądy porównywalne z tym co obiecuje Atmel? :) Spokojnie, na ATtiny2313 w pilotach podczerwieni w uśpieniu, procki zadowalają mi się prądzikiem jedynie 0,6uA !!! ;) to dużo ? Tak z ciekawości: Idle? Power-down? Standby? Jak przywracasz je do życia? INT? Pin Change? Ile klawiszy? Korzystam z najgłębszego PowerDown,...
Witam serdecznie, uruchamiam właśnie prosty termometr dwupunktowy oparty o Atmega8, 2 czujniki DS1624 Maxima i wyświetlacz LCD. Całość zasilana jest z dwóch baterii CR2032 i szeregową diodę 1N4148. Zasilanie bateryjne wymusza ograniczenie do minimum zapotrzebowanie na energie przez urządzenie. Zdecydowałem na niski zegar 1MHz z wewnetrznego generatora,...
nie nie, niestety w stanie spoczynku :( , będę musiał jeszcze nad tym troszkę popracować ;) i zrobić jednak jakoś wybudzanie procka za pomocą przerwania PinChange i zadawać mu sleep typu PowerDown gdzie zasysa tylko kilkanaście mikroAmperków w stanie spoczynku ;)
Witam! Mam pytanie: w jaki sposób obudzić uP Atmega8 ze stanu powersave? Poniższy program nie działa: Config Int0 = Rising On Int0 Przerwanie Enable Int0 Enable Interrupts print "reset" powerdown do loop przerwanie: print "aaaa" return Bez polecenia 'powerdown' program działa i wykonuje przerwanie. Czy jeszcze coś trzeba ustawić?
Jeżeli chcesz zrobić PowerDown(piszę z pamięci i mam nadzieję, że bez błędów): in r16, MCUCR ori r16, 0x70 out MCUCR, r16 Do wywoływania jest "sleep". Dawno w asm nie pisałem, ale to powinno wystarczyć ;) Małe podpowiedzi: -przyciski możesz ułożyć w matrix - nie pamiętam jak to po polsku jest, ale oszczędza sporo pinów ;) (http://www.atmel.org/dyn/resources/prod...
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 ?
Napisal jaki procesor atmega8, mniejsze z tym. No jak masz zajete wyjscia int na cos innego, to pozostaje ci to co kolega mowi, ale wtedy to tylko w trybie powersave a nie powerdown (gdzie mniej natezenia pobiera). Wszystko na to wychodzi, ze najlepiej by bylo to zrobic na intach. ________________________________________... Ustawiasz...
Witam. Jestem obecnie na etapie budowy stacji pogodowej. Po pokonaniu problemów ze stacją bazową, nadszedł czas na budowę czujnika zewnętrznego. Będzie się on składał z mikrokontrolera AtMega88PA, czujnika SHT11, nadajnika RTFQ2 i czujnika mierzącego prędkość wiatru (kontaktron lub dioda + fototranzystor, jeszcze nie zdecydowałem). Czujnik będzie zasilany...
Na prawdę nie chcę być zgryźliwy, bo kolega autor - zrobił fajne płytki i opracował swoje sterowanie IR .... jednak, to forsowanie z uporem wlączania/wyłączania zasilania pilota za pomocą jakiegokolwiek mechanicznego wyłącznika to - totalna porażka - moim zdaniem. A skoro kolega już tyle rzeczy dosyć fajnie oprogramował to mógł pójść jeszcze ten kroczek...
Witam. Schemat całego układu: http://obrazki.elektroda.net/75_12533785... Przed położeniem uC do snu ustawiam stany wysokie na bazach tranzystorów (zmierzyłem prąd samych tranzystorów, poniżej 0.00uA bo miernik nie chwyta). Ustawiam wszystkie pozostałe piny w stan wysoki oprócz: pinów przycisków S1-S4 które mają być masą dla pinu przerwania...
Aby Ci się zmienne nie kasowały po wyjściu z powerdown musisz je umieścić w sekcji NOINIT. Marek
Z tym odbiornikiem podczerwieni powinno być oczywiste, przecież czy użycie innego pilota, czy też jakakolwiek inna podczerwień i sygnał pojawia się na wyjściu odbiornika. A jak sygnał się pojawia to procek się wybudza. I to jest całkiem normalne, dzieje się tak w każdym urządzeniu, czy to w telewizorze, czy w czymkolwiek innym co używa podczerwieni,...
Zasadniczo przycisk ma wybudzać z powerdown a potem normalnie ma służyć jako przycisk funkcyjny z programową eliminacją drgań styków to znaczy czeka on 20ms.
O ile mi wiadomo z własnych doświadczeń, to przejście w tryby oszczędnościowe nie powoduje zmian w rejestrach i w pamieci ram, wiec stan wyjsc pozostaje niezmieniony. Tylko reset powoduje ustawienie we/wy w stan highz, ale nie powoduje wyczyszczenia zawartosci pamieci,. Przydaje sie to np. przy wybudzaniu z trybu power down przy pomocy watchdoga.
POWERSAVE (ATMEGA88) This mode is identical to Power-down, with one exception: If Timer/Counter2 is enabled, it will keep running during sleep. The device can wake up from either Timer Overflow or Output Compare event from Timer/Counter2 if the corresponding Timer/Counter2 interrupt enable bits are set in TIMSK2, and the Global Interrupt Enable bit...
A niby dlaczego miałby nie funkcjonować? Gdyby zawartość SRAM była tracona to program musiałby się wykonywać od początku, co efektywnie byłoby równoznaczne z resetem procesora. Czy przez przypadek nie tak właśnie działa przerwanie od watchdoga? Nie wykonuje się wtedy reset? Oczywiście w każdym trybie oszczędzania energii zawartość SRAM jest zachowana,...
Jeśli WD ma być "tylko" do budzenia to się zgodzę. Przyzwyczaiłem się WD zostawiać sobie też dla bezpieczeństwa aplikacji. If WDE is set, the Watchdog Timer is in Interrupt and System Reset Mode. The first time-out in the Watchdog Timer will set WDIF. Executing the corresponding interrupt vector will clear WDIE and WDIF automatically by hardware (the...
$regfile = "m32def.dat" $crystal = 1000000 Config Timer0 = Timer , Prescale = 1024 On Timer0 Tim0_wakeup Enable Timer0 Enable Interrupts Do 'Jakiś program . . . Do Start Timer0 Idle Tim0_wakeup: Stop Timer0 Timer0 = 0 Incr Pamiec Loop Until Pamiec = 5 ' Ma się usypiać 5 razy 'Dalsza część programu wykonywana po przebudzeniu . . Loop Niestety...
Zgadzam się, ale muszę wyświetlać "wyniki" (czas, temperaturę, wilgotność) na wyświetlaczu. W trybie POWERDOWN zatrzymywane są wszystkie clocki więc LCD nie będzie działał. Do tego program wybudza procesor timer'em 2. LCD może pracować na zegarze z pinu TOSC1. Czy po uśpieniu do POWERDOWN sam oscylator (na pinie XTAL/TOSC1) będzie pracował żebym mógł...
jeśli pokazuje ci 2mA to jeszcze nie jest niestety w najpełniejszym trybie PowerDown. W tym najgłębszym trybie miernik powinien ci pkazywać 0,6uA a skoro są mili ampery to znaczy, że bardzo częto się wybudza ze snu Dodano po 3 w związku z tym, że wykonałeś kawał dobrej roboty to tutaj pokażę ci jak ja zrobiłem usypianie procka, jak widać jest to robione...
Witam, chciałbym prosić o pomoc przy budowie układu wykrywającego dźwięki, a konkretnie odbicia piłeczki pingpongowej. Układ będzie współdziałał z mikrokontrolerem atmega8. Ponieważ zasilanie musi być bateryjne chciałbym żeby atmega była cały czas w trybie uśpienia (PowerDown) i wybudzana za pomocą przerwania zewnętrznego INT0. Przerwanie to miało by...
Zaznaczone linijki gdzie kod jest zmieniony [syntax=c]#include <SoftwareSerial.h> //wskazujemy użycie biblioteki LowPower #include "LowPower.h" //piny na których jest podłączona komunikacja z modułem GSM SoftwareSerial gsm800(11,12); const int wakeUpPin = 2; void wakeUp() { delay(2000); \\ Zmiana if(digitalRead(2)==1) \\ Zmiana { \\ Zmiana gsm800.write("AT+CMGF=1\r\n");...
Szkoda się rozpisywać. Zajrzyj http://obrazki.elektroda.pl/5441597100_1... Bez problemu wybudza z PowerDown. [syntax=vbnet]$regfile = "m644pdef.dat" $Crystal=4000000 $hwstack=40 $swstack = 16 $framesize=32 Pcmsk3 = &B01000000 Enable Pcint3 : On Pcint3 Pcint3_isr Enable Interrupts Do Loop End Pcint3_isr: Return[/syntax]
Wydaje mi sie ze wiem co robie, badalem pobor prady, podczas normalnej pracy jest ok 14mA, podczas idle jest 7mA, a przy powerdown jest jest duzo ponizej 1mA. A jakbym chcial korzystac z timerow do wybudzania to bym skorzystal :) Nie mam wielkiego doswiadczenia w programowaniu, dlatego pytam o rozwiazanie mojego problemu.
Mam 3 pomysły na zminimalizowanie poboru energii, warto je zaimplementować bo a nuż widelec akumulatorki padną... 1. Wyprowadzenia zasilania pamięci 24c32 oraz odbiornika TFMS5360/SFH506-36 podłączyć pod któryś pin mikroproca 2. Napisać tak soft, aby procesor był w trybie powerdown, i był wybudzany przez watchdog np. 3 razy na sekunde na kilkanaście...
Dodatkowo, dla zdiagnozowania gdzie może być problem, proponuję podłączyć dodatkowy przycisk pomiędzy pin przerwania a GND i spróbować tak go obudzić i jeszcze spróbowałbym (tylko na czas testów) tylko raz usypiać. Czyli np. zamiast POWERDOWN dodać takie coś: If Xxx = 0 Then Xxx = 1 Powerdown End If (xxx zmienna typu BYTE lub BIT) w ten sposób wykluczymy...
Panel dotykowy z 6 diodami sterowany po i2c na ATTINY44 Poniższy materiał przedstawia próbę ugryzienia tematu krytycznych zależności czasowych w asemblerze. Zadaniem było stworzenie stabilnie działającej aplikacji która obsłuży: komunikację z procesorem nadrzędnym w trybie slave i2c sterowanie multipleksowanymi diodami z 8bitowa regulacja jasności...
Się tu kolega (at)jacekcz chyba zapędził. Ten uC ma 64B SRAM i 1KB FLASH. To co tu się "próbuje dziać" to to, że Pomiary ADC są robione w przerwaniu co czas okreslony Watchdogiem, ale to rozwiązanie od razu wybudza też uC z głębokiego snu POWERDOWN (jeśli w nim był) i tylko Watchdog, PCINT albo LOW_LEVEL może uC z tego wybudzić uC. Tak więc po co dokładać...
Możesz użyć Attiny25/45/85V w obudowie DIP8. Schemat też należy przerobić i wyrzucić stabilizator a całość zasilić z 3 baterii 1,5V. Najprostszym sposobem na losowość uruchamiania jest umieszczenie obrobionego wyniku funkcji rand() jako argument _delay_ms(period). Poczytaj o rand() i srand(). Pamiętać należy, żeby odpowiednio ograniczyć wyniki by mieściły...
witam, chcę zrobić układ automatycznego otwierania drzwi domofonu po podaniu odpowiedniego rytmu dzwonka. Domofon mam w systemie 5+1 i teraz: 1. na styku 4 (mikrofon) mam napięcie 10,5V. Czy mogę je wykorzystać jako zasilanie układu? Nie spowoduje to jakiś szumów lub złe działanie mikrofonu? 2. między stykami 5 i 6 (które trzeba zewrzeć by otworzyć...
(at)niveasoft dzięki za pomysły, linki... Normalnie mnie oświeciłeś tym: po czym idzie spać do POWERDOWN Mój ESP8266 działa jak najbardziej OK, ale po prostu kocha prąd z baterii :( A gdyby tak między kontaktron a ESP dać np. ATtiny13? uC miałby za zadanie: -nie ma żadnych impulsów więc przechodzi do POWERDOWN i rozłącza zasilanie dla ESP -jest impuls...
http://obrazki.elektroda.pl/9303655200_1... Witam, Tu: http://www.elektroda.pl/rtvforum/topic33... znajduje się opis powielacza czasu automatu schodowego. Obiecałem tam, że na bazie tamtego układu opracuję „inteligentny” automat schodowy, i oto jest :). Jego „inteligentność” jest zawarta w założeniach...
witam mam problem z wybudzeniem tego proca. przycisk jest podłączony pod int0 proca w programie głównym przycisk robi za enter ale jak się go dłużej trzyma to program skacze do powerdown i teraz nie mam pojęcia jak go wybudzać tym samym przyciskiem używając przerwania ? Do If Fun = 6 Then Fun = 5 If Fun = 255 Then Fun = 0 If Flaga = 1 Then Select Case...
https://obrazki.elektroda.pl/3720710100_... Witajcie. :) Lubię grać z moją córką w tradycyjne gry planszowe. Jedyną irytującą częścią tych gier jest rzucanie kostką. Irytującą dlatego, że chcąc uzyskać wynik jak najbardziej losowy w efekcie szukaliśmy tej kostki albo pod stołem albo pod szafą. Czasem kostka na niezbyt równym terenie...
Witam, Napisałem program, który wprowadza uC w stan uśpienia. Wszystko działa poprawnie, ale do tej operacji używam dwóch przycisków. Jeden służy mi do usypiania (PA1), a drugi, jako przerwanie do wybudzania uC (PD2-INT0). W jaki sposób mogę zrobić to na jednym przycisku podpiętym pod PD2? Poniżej kod. [syntax=c]#define F_CPU 8000000UL /*czestotliwosc...
Witam kolegów serdecznie tuż przed świętami. Piszę program realizujący pomiar temperatury i zapisujący uzyskane dane do pliku zlokalizowanego na karcie SD. Powoli wtrącam timery zamiast wait(). Mam w sumie trzy problemy. 1) Formatuje uzyskane dane przez zapisem do pliku. Niestety nie wiem jak w stringu zamienić kropkę na przecinek i dopiero taki format...
Dzień dobry. Używam środowiska Bascom. Chciałbym dowiedzieć się przy jakim najmniejszym taktowaniu zegara systemowego scalaka mogę uzyskać komunikację 100khz dla I2C? Ustawiałem atmegę na 1MHz (8MHz wewnętrzny i dzielnik na 8), ale to było za mało by I2C działało mi na częstotliwości 100khz. Były błędy w komunikacji, albo tez Bascom się buntował. Przy...
Witam mam taki problem. Postanowiłem sobie zrobić układzik który będzie wykrywał czy w skrzynce na listy jest poczta. Sam program detekcji już opracowałem, ale chciałbym żeby procesor wykonywał pomiar obecności poczty np co jakis czas 5-10 minut po czym przechodził w stan czuwania- power-down w celu oszczędzania energii. Czytałem noty i nie mam pomysłu...
Witam Forumowiczów, Mam problem z ogarnięciem tematu wywoływania przerwań. Nie jest to problem jak je wywołać ale jak je okiełznać ;-) Wygląda to tak: Jest układ na Mega644PA-AU. Po I2C współpracuje z zegarkiem PCF8583, oprócz tego linia przerwania z PCF podłączona jest do portu D6 procka. Klawiatura zrealizowana jest na przetworniku ADC (port A0) i...
atmega8 powerdown wybudzanie atmega8 wybudzanie atmega8 powerdown
volvo silnika karta pamięci uszkodzona spawarka bester spb315
zaschnięta głowica brother reset pieca buderus
Błąd 02 w kotle Ariston dwufunkcyjnym - przyczyny i rozwiązania Understanding BK AddClockEvent Command in Electronics