deklarujesz skok do przerwania pod jakims tam adresem: .org INT0addr rjmp klawiatura teraz deklarujesz skok do resetu .ORG $000 rjmp reset reset: i dalej jakis kod... tyle ze ten kod zaczyna sie zaraz za rjmp RESET jednoczesnie zamazujac skok do Twojego przerwania INT0. Zakrecone no nie?;]
PA1 to nie jest nóżka związana z INT1! Pod PA1 siedzi PC INT1 - Pin Change Interrupt. "Zwykłe" przerwanie zewnętrzne INT1 to nóżka PD3 ;)
W PDF jest napisane, że flaga jest zerowana gdy : "interrupt routine is executed". Ja to tłumaczę jako obsługa przerwania jest WYKONANA. CZYLI po ZAKOŃCZENIU. W PDF jest też napisane, że zerujemy ją wpisując do rejestru wartość na określonym bicie 1.Czyli EIFR.0=1. Dlatego wpisując EIFR.0=0 NIE ZEROWAŁEŚ FLAGI!. Spróbuj ja wyzerować następująco If EIFR.0=1...
Proszę o informacje, gdzie w nocie katalogowej można znaleźć informacje na temat priorytetów wykonywania przerwań, jeżeli wystąpią w tym samym czasie. Nie można, ale ten co ma niższy adres w tablicy wektorów wykona się pierwszy jak przyjdą w tym samym czasie. Co najwyżej możesz właczyć przerwania na początku obsługi aby umożliwić obsługę kolejnych...
Bascom moze tego nie obslugiwac. I ile recznie mozna wpisac do rejestru wlaczenie tego przerwania, to podanie wektora przerwania pewnie bedzie juz problemem - moze edycja pliku z danymi o ukontrolerze. Przerwania zmiany stanu na PCINT przypisane sa do portów, i dodatkowo mozna zdefiniowac które piny maja byc monitorowane (nie musza byc wszystkie).
To jest przerwanie a nie pętla, musisz tylko dopisac rjmp podprogram, wykonać podprogram i powrócic z przerwania
W trakcie wykonywania tego podprogramu zostało zgłoszone przerwanie zewnętrzne na nóżce int1 atmega328p. Czy atmega328p przerwie wykonywanie podprogramu nóżki int0 Zależy jak zadeklarujesz przerwanie, czy ISR bez atrybutu lub z atrybutem ISR_BLOCK albo jako SIGNAL czy ISR z atrybutem ISR_NOBLOCK lub jako INTERRUPT. Jeśli przerwanie w przerwaniu jest...
mam maly problem.. zdarza sie ze moj układ oparty na ATmega 32 jakby sie zawieszał... wykorzystuje przerwanie zewnetrzne... // External Interrupt(s) initialization // INT0: On // INT0 Mode: Rising Edge // INT1: Off // INT2: Off GICR|=0x40; MCUCR=0x03; MCUCSR=0x00; GIFR=0x40; // Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x01; a w programie...
Wykorzystać przerwanie zewnętrzne INT0 (portd.2). W pętli głównej jeden warunek sprawdzający flagę zmienianą pod wpływem zewnętrznego przerwania.
Czyli zrobić zewnętrzne przerwanie na te funkcje??
mam następujący problem, mój program dokonuje pewnego cyklicznego odczytu od innego urządzenia, ten odczyt z natury trwa dość długo, w momencie kiedy dostanę przerwanie zewnętrzne odczyt jest chwilowo wstrzymywany i po wykonaniu przerwania nie chcę już wracać do procedury odczytu tego urządzenia bo nie muszę już czekać na jej zakończenie i w zasadzie...
Diody masz podpięte bezpośrednio pod porty ATmega? Jeśli tak to lepiej dołóż sobie oporniki aby nie spalić wyjść ATmegi. Bezpośrednio przy procku daj kondensator 100nF. Przed stabilizatorem np. 1000uF, a za stabilizatorem 100u (to i tak za dużo, ale lepiej więcej niż za mało). Zliczanie zrealizowałbym w taki sposób: - Odpalić któryś z wewnętrznych timerów...
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...
Chcę podłączyć pod pin przerwania zewnętrznego.
A mógłbym prosić przykład takiego programu? Dodano po 3 Chciałem spróbować zrobić przerwanie na bit startu, jednak atmega nie obsługuje przerwań zewnętrznych na porcie odbioru danych :( ma ktoś pomysł jak sprawdzić bit startu?
Nic dziwnego, zmieniasz taktowanie procesora, zmieniasz także baudrate na UART. Dla zewnętrznego kwarcu CKOPT=1, CKSEL=111X, 1 znaczy niezaprogramowany, X - dowolna wartość.
Przy uśpieniu oscylator, czy to kwarcowy, czy RC jest wyłączony. Wybudzić może go zewnętrzne przerwanie wyzwalane poziomem lub (nie w każdym procesorze) przerwanie asynchroniczne od timera2.
Kolega niech raczy zauważyć że kontraktron ma coś takiego jak drżenie styków. Może być tak że przerwanie jedno twoje załaczenie potraktuje jak wiele zboczy je wzywalających i cały pomiar weźmie w łeb bo się wykona po prostu wielokrotnie. Musisz użyć więc kolejnego sprawdzania stanu styku juz po wykonaniu przerwania tak aby się upewnić ze jest to "trzymanie"...
Co za problem z podłączeniem dwóch odbiorników IR? Nie widzę żadnego problemu. Podłączyć najlepiej pod zewnętrzne przerwania.
Na początek podaj więcej informacji. Jak często występuje to ważne przerwanie i jak długo trwa jego obsługa? Dlaczego chcesz wyłączyć globalnie przerwania? Jeżeli będzie obsługiwane to ważniejsze przerwanie to zewnętrzne od enkodera może poczekać, tylko zależy jak długo.
To nie program tu jest problemem a dopasowanie sygnału. Poczytaj o wzmacniaczach operacyjnych i komparatorach. W procesorze zbocze możesz wykryć za pomocą przerwania zewnętrznego.
Ja bym proponował na początek przerwanie zewnętrzne INT w którym liczysz impulsy, oraz przerwanie timera w trybie CTC co około 1s w której jak kolega (at)bochnio wspomniał będziesz zerować licznik. Kolejny krok to mniej więcej tak:[syntax=c]if(licznik > 6) POTRB |= (1<<PB0); // ustaw stan wysoki gdy przekroczy wartość else POTRB &= ~(1<<PB0);...
Jak w temacie. Napisałem następujący programik: #include <avr/io.h> #include <avr/pgmspace.h> #include <stdlib.h> #include <avr/signal.h> #include <avr/interrupt.h> #define ENABLE_INT1_FALLING cbi(MCUCR,ISC10);sbi(MCUCR,ISC11);outp((... void waitus(unsigned char czas){ TCCR0=0x02; TCNT0=255-czas; while((inp(TIFR)&0x01)!=0x01);...
DAC0808 - nie ma kompletnie żadnej filozofii. POdłączasz go do jakiegokolwiek ośmiobitowego portu, ustawiasz kierunek (DDRx = 0xff;) i zapiszujesz wartość (PORTx = wartosc;). PCF8591 - http://elportal.pl/index.php?module=Cont... część szósta, pobierz listingi. ADC0820 - podobnie jak DAC0808 podłączasz do portu ośmiobitowego....
Witam Oglądam sobie dokumentację do PCF8563 i brakuje mi w nim generowania przerwań (na pinie INT) co sekundę jak robi to PCF8583. Wolałbym nie używać pinu CLKOUT skonfigurowanego do pracy przy 1 Hz. Kiedy używam PCF8583 ATMEGA w przerwaniu zewnętrznym generowanym przez PCF odczytuje sekundy, a jak trzeba to minuty i ... tak dalej. W PCF8563 widzę teoretycznie,...
1. ok, z 1 się wycofuję bo masz zrobione zewnętrzne pull-upy ale niepotrzebnie mnożysz rezystory, gdyż takowe są wewnątrz procesora - wystarczy tylko włączyć je z poziomu programu. 2. to teoretycznie może powodować problem - najlepiej sprawdzaj przerwania w jakiś inny sposób - np. w każdym tylko zapalać lub gasić diodę 3. Rozumiem istotę Twojego problemu,...
Wejście w przerwanie trwa co najmniej 15 taktów, czyli dla 48 MHz będzie to 0,3125 us (zapewne dłużej, bo FLASH będzie wymagał pewnie 1WS). I nagle się okaże, że mamy ten sam problem co w AVR - zaledwie kilka instrukcji do dyspozycji, zanim nie przekroczymy granicy 1 us. No dobra, niech nawet będzie 0.4us. Zostaje 0.6us, a więc jakieś 28 cykli - to...
A widzial kolega to: http://www.elektroda.pl/rtvforum/topic17... Zwróć uwagę co robię z INT0 podczas odczytu 1W Poza tym u Ciebie w podprogramie odczytu temperatury nie dajesz nic wytchnienia dallasowi i czytasz temperaturę zaraz po rozkazie konwersji. Kolejna sprawa to czy zawsze przed odczytem musisz szukać czujników? Nie lepiej jest to zrobić...
Witam, Na początku zaznaczę, choć oczywiście wierzyć mi nie musicie, że przewertowałem przynajmniej kilkadziesiąt witryn internetowych w poszukiwaniu informacji, o które teraz proszę. Nie znalazłem tego, co mnie interesuje. Pracuję nad, jak na moje możliwości, dość rozbudowanym projektem. Potrzebuję w mojej ATMedze168 obsłużyć następujące przerwania:...
Dziękuję bardzo za odpowiedź :-). 1. Potrzebuję mieć możliwość podłączenia dowolnego wyświetlacza - telewizora, monitora. Projekt z wyświetlaczem LCD zintegrowanym z projektem odpada. 2. Jakby się uparł, mogę wziąć bardziej nowoczesny mikrokontroler, jednak chciałbym, aby był on w technologii przewlekanej oraz aby był w rozsądnej (<40zł) cenie. No...
Witam podczas rozbudowy mojego poprzedniego programu zabrakło mi przerwań zewnętrznych więc postanowiłem zmienić Atmege32A-PU na wersję Atmega 324A-PU posiada ona znacznie więcej przerwań zewnętrznych ale podczas pierwszej próby uruchomienia wystąpił problem mianowicie Atmega nie jest wykrywane przez mkavrcalculator znalazłem w internecie że możne pomóc...
Procesory zamienione miejscami. Procesor z prototypu w nowej płytce działa poprawnie więc można wykluczyć błąd elektroniki. Urządzenie sterowane jest z kilkoma przyciskami , przyciśnięcie jednego z przyciskow powoduje że zmienia się tekst na wyświetlaczu i generuje krótki dźwięk. Tu wszystko działa prawidłowo, nie ma tylko tego dźwięku. Wyzwalanie dźwięku...
500ms to trochę za dużo jak na drgania styków. To jest microswitch czy jakiś przycisk przemysłowy? Spróbuj wyzwalać przerwanie stanem niskim a nie zboczem opadającym. Ustawiając inny zegar nie spalisz chipu. Co najwyżej ustawiając niższy zegar niż dotychczas możesz mieć problemy z zaprogramowaniem jeśli nie zmienisz też częstotliwości w programatorze....
Witam, szukam w nocie ATmega128 informacji jaki jest gwarantowany poziom napięcia przy jakim zostanie wyzwolone zewnętrzne przerwanie ( dla opadajacego i narastającego napięcia) na wejsciach INTxx. Może ktoś znalazł coś takiego ??
Nie obraź się ale Twoja metoda pomiaru częstotliwości jest "trochę" zagmatwana :) Korzystasz z timera w dziwaczny sposób a funkcje typu Delay() w połączeniu z przerwaniami nie działają poprawnie i nadają się co najwyżej do migania diodą. Natomiast pomiar częstotliwości można zrealizować np. tak: 1. Ustaw timer aby generował przerwanie w stałych odstępach...
chciałbym widziec atmege w roli 27xx ATmega 644 (1284) lub nowsze -szybsze, więcej pamięci, rozbudowane przerwania zewnętrzne.
Przerwania zewnętrzne INT mogą reagować na zbocze rosnące, opadające lub na jedno i drugie. W procedurze obsługi przerwania tylko ustawisz flagę, którą potem analizujesz.
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...
A po co tak teoretyzować - wystarczy zajrzeć do PDF'a scalonego odbiornika TFMS czy TSOP żeby zobaczyć jak należy postąpić nie tylko z linią sygnału wyjściowego ale też jak podać zasilanie. Ludziom nie chce się tam zajrzeć a potem zdziwienie, że nawet jak działa - to jednak jakieś błędy się wkradają, czasem jakieś zakłócenia itp (jak tam już zajrzysz...
1.Każdy Timer działa niezależnie- to jest licznik sprzętowy działający jak zewnętrzny układ. To że został "wsadzony" w układ scalony OBOK procesora to tylko żeby użytkownikom było wygodniej. Dlatego nazywa się to "układem peryferyjnym", peryferiami itp. Takich "układów peryferyjnych" w mikroprocesorach jest dużo. Nie tylko liczniki ale też przetworniki...
Oj przeczuwam kłopoty, piszesz że przesiadasz się z małego AtMega na AtMega128, a tam niektóe rejestry mają zmienione nazwy lub wręcz niektóre bity są w innych/nowych rejestrach. dla AtMega8..32 działa coś takiego #define GLOBAL_INT_ENA()asm("se... #define GLOBAL_INT_DIS()asm("cl... #define INT0_ENA()...
Jeśli urządzenie działa tak jak chce autor, to każdy sposób wykorzystania przerwania zewnętrznego jest prawidłowy. W niektórych przypadkach podłączenie przycisku pod pin przerwania zewnętrznego jest niezbędne np. by wybudzić mikrokontroler z trybu Power Down lub Standby. Czasami nie ma po prostu innego wyjścia, ze względu specyficzne wykorzystanie...
Możesz zrobić tak: W tabelce zdefiniowana długość poszczególnych elementów (piknięć i przerw). W timerze zdefiniowana maszyna stanów - na podstawie jej stanu aktualnego (wartości timer'a) wybierasz określony "punkt programu" - czyli przerwę lub "piknięcie". Co się tyczy przycisków, to możesz zdefiniować albo przerwanie zewnętrzne, albo w przerwaniu...
Witam, jestem początkujący, chciałem zaimplementować w swoim układzie (dodatkowo) funkcję pokazującą czas, czyli generalnie zegarek. Układ będzie oparty na procesorze ATmega*. Poczytałem trochę na forum o kwarcach i chciałem uporządkować wiadomości. Jeżeli chcę by nie było dysproporcji między aktualnym czasem a wskazaniem układu, to rozumiem, że potrzebuję...
OK. "Poskładane" na szybko na płytce ZL10AVR, LEDy podpięte do portu A i.. świecą na stałe. Przewertowałem juz kilka przykładów, niby wszystko jest ok, ale efektu ściemniania brak. Inny program, obsługujący sprzętowego PWM'a działa. Co do kwarcu to testowałem i na wewnętrznym i na zewnętrznym.
http://obrazki.elektroda.net/6_120274527... Z tego wynika, że przerwania zewnętrzne są kolejno INT0 najważniejsze do INT7 najmniej ważne.
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...
W skrócie; co 1 sek wykonywane jest przerwanie w którym sa zliczane impulsy (dla wyliczenia częstotliwości) .Atmega pracuje z zewnętrznym rezonatorem kwarcowym 8Mhz.Niedawno kupiłem nowe Atmegi32 i o dziwo program zle dziala (wyliczana czestotliwosc "plywa" ) Kiedy wgrywam soft do atmegi kupionej dawniej wszystko jest ok . Teraz kupiłem 3 i na wszystkich...
W jaki sposób można ustawić priorytetowość przerwań? Mam taki problem: Za pomocą przerwań zewnętrznych mierzę długość impulsów na 2 wejściach.Wszystko gra do póki nie podłącze do atmegi USART który wypytuje co jakiś czas o te dane. Kiedy leci pytanie i Atmega ma przerwanie od USART co jakiś czas są przekłamania odnoście czasu trwania długości impulsu....
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...
Atmega jest taktowana zewnętrznym kwarcem 16mHz. Dzieląc 16Mhz przez 32kHz wychodzi mi około 488 cylki. Poza tym nie ma znaczenia czy kod w przerwaniu zajmuje 3 linijki czy 100. Przerwanie wykonuje się dokładnie tyle razy. Zegar na tym zrobiony ma błąd mniejszy niż 1 sec na dobę więc nie ma mowy, że uC nie wyrabia.
Tak wygląda część z przerwaniem. Cały kod jest dość długi i działa poprawnie, tylko z tym mam problem. Nie jestem w stanie wykryć co robię źle. [syntax=c] int k = 0; volatile char licz=0; ISR(INT4_vect) { licz = 1; } ///////PĘTLA GŁÓWNA PROGRAMU int main(void) { sei(); DDRE &= ~(1<<PE4); PORTE = (1<<PE4); DDRA = (1<<PA7); PORTA...
ZA namową kolegi poszedłem po min 3 zewnętrzne przerwania przerwania oraz 6 PWM czyli min ATMega 64 lub 128. wybór oczywisty 128 ponieważ takie posiadam. Czy ktoś uruchamiał już 6 PWM ??? Ostatnio na forum była o tym dyskusja, chyba nawet 12 kanałów dało się wyciągnąć.
Nie mogę sobie poradzić z problemem configuracji przerwania zewn. np INT0 tak aby program reagował na któreś zbocze. Po wstawieniu configu żywcem z helpa - przy próbie kompilacji mam komunikat że w ATMEGA32 przerwanie zewn. może być wywołane tylko poziomem. Co ciekawe , gdy w ustawieniach BASCOMA przestawię chip - ATMEGA 16 , jest wszystko ok - kompilacja...
Jeżeli stabilność samego rezonatora kwarcowego jest dla danego zadania za mała, to oczywiście żadne rozwiązanie zależne od niej nie da pożądanego efektu. Wtedy należy użyć zewnętrznego generatora o dużej stabilności. Wykorzystują one specjalnie dobierane rezonatory pracujące w znacznie bardziej rozbudowanych ale i o wiele stabilniejszych układach. Przy...
Atmega jest taktowana zewnętrznym kwarcem 12MHz, żeby jeden tick timera trwał ~1us. 1. Czy timer 8-bitowy przyjmujący zewnętrzne impulsy, może je przyjmować w takich samych odstępach czasowych jak 16-bitowy? Niestety na etapie projektowania nie zauważyłem, że żeby użyć 16-bit timera do przyjmowania impulsów zewnętrznych należy użyć nóżki T1, a nie T0,...
Hej. Tak sie zastanawiam choć całkowicie nie znam sie na komendach at ale po komendach : UARTSendString("AT+CGMM"... UARTSendChar(0x0D); od razu sprawdzasz czy nie przyszły jakieś dane do bufora i co dalej w momencie gdy nie ma żadnych danych program sie zawiesza pętla while . Może powinieneś zdefiniować sobie przerwanie zewnętrzne...
Do tego stopnia sobie poszalałem, że początkowo główna pętla programu była pusta :) ale to nie był dobry pomysł :P . No nie. Generalnie, w przerwaniu powinno być to, co się powinno wykonywać albo a) bardzo często, albo b) bardzo precyzyjnie (czasowo lub zdarzeniowo). Procedura obsługi przerwania powinna być tak krótka (inaczej: tak szybka), jak się...
Dyskusja scholastyczna - oczywiście w spterowniku przemysłaowym gdzie trzeba przemiatac powiedzmy 10000+ razy wejście na sekundę + robić wiee innych rzeczy to atmega nie wyrobi. Powiedz kolego który sterownik ma czas przemiatania 100uS? Pytanie w jakim celu? Jeśli zależy mi na szybkiej reakcji (robiłem projekt z reakcja poniżej 2us na Atmega) to używa...
Narysuj schemat ideowy podłączeń tej klawiatury do procesora (tylko dokładny).
Atmegi mają taką instrukcję jak sleep jednak wstrzymywanie pracy procesora następuje w drodze programowej i np. zewnętrzne przerwanie przywraca go do "życia". Czy istnieje jakiś trick aby sztucznie stworzyć linię typu HOLD taką jak np. w Z80. Bo akurat zależy mi na zatrzymaniu pracy procka w sposób sprzętowy. Czy np. zatrzymanie podawania sygnału zegarowego...
Witam! Mam problem ze zrozumieniem działania zewnętrznych przerwań w mikrokontrolerach atmega (avr). Dla przykładu posłużmy się konkretnym osobnikiem - Atmega48. W specyfikacji http://www.atmel.com/dyn/products/produc... (strona 64) wyróżniają dwa przerwania INT0 i INT1 i dodatkowo 24 - PCINT23..0. Te 24 przerwania są podzielone...
nie wiem ile danych chcesz przesyłać i jakie budujesz urządzenie, ale czy konieczny jest dodatkowy procek zarządzający komunikacją? Nie lepiej w przerwaniu odbiorczym ładować sobie bufor a odczytywać go pod koniec głównego procesu? pzdr.
Witam, Używam przerwania zewnętrznego na INT0 w konfiguracji na zbocze opadające. Funkcja przerwania jest definiowana w ten sposób: [syntax=c] ISR( INT0_vect, ISR_BLOCK) { //ciało przerwania } [/syntax] Wszystko działa bardzo dobrze, oprócz jednej rzeczy. W przerwaniu wykonuje się kod, który powoduje powstanie zbocza opadającego na pinie, z którego...
Można by było spróbować tak: 1. Na pierwszym uC ustawić zegar 2. Zaprogramować tak, że po zmianie sekundy daje krótki impuls na jakiś pin. 3. W pozostałych dwóch stawić jeden z pinów INTx i w momencie wywołania przerwania zwiększać liczbę sekund. Wadą tego rozwiązania są możliwe zakłócenia indukujące się na przewodzie. Jednakże stosując zewnętrzne mocne...
Witam, Chciałbym się spytac, czy miałby ktoś jakiś przykładowy kod do tej kamerki? Chodzi mi głównie o sprawę przerwań zewnętrznych(HSYNC,PCLK,VSYNC), gdyż chcę ja podłączyc do uC(atmega) i chciałbym napisac do tego w miarę wydajny kod Dziękuje za odpowiedź, BB
No właśnie. można na ATTiny i WD, można dowolny ATMega z RTC, można XMEGA z RTC, co ma dodatkowo zaletę, że można go wybudzać w dowolnej chwili i ma podtrzymanie bateryjne. Opcji jest wiele.
A wewnętrzny pull-up włączony? Bo objaw jest typowy dla programu, w którym włączone jest przerwanie zewnętrzne, a wejście wisi w powietrzu, choć program jest prosty i nie ma w nim obsługi przerwań... Ustaw w pętli niech samo zwiększa wartość zmiennej i obserwuj czy dalej są zakłócenia.
Witam. Zbudowałem sobie klawiaturę matrycową 4x4 do mikrokontrolera Atmega 128. Klawiatura jest podłączona do 8 wyjść portu D. Obsługę klawiatury chce realizować poprzez przerwania wykorzystując przerwania zewnętrzne INT0...INT3 Poniżej przedstawiam kody: DEFINICJE: #define KLAD DDRD // PORT LINII STERUJACYCH #define KLAP PORTD //#define WE1 0 // LINIA...
Chciałbym zapytać o Wasze doświadczenia z BASCOM i usypianiem AVRka i wyłączaniem czego się da w celu oszczędzania energii. Co i jak wyłączać, dotyczy zwłaszcza portów I/O? Jest cały rozdział w DSie na ten temat. Załóżmy, że wybudzać procka ma jedno jedyne przerwanie a cała reszta jest niepotrzebna. Jakie przerwanie? Zewnętrzne? Wewnętrzne? Doszedłem...
Piotrus_999 To timer miał określać momenty pomiarów, więc stosowanie przerwań ADC w takiej sytuacji ma niewielki sens. No ale raczej pojedynczy pomiar adc w tych prockach ma raczej niewelki sens. Jeżeli musialbym dostac wynik pomiaru i to w miarę dokładnie w okreslonej chwili to raczej bym jakies zewnętrzne adc zastosował. A to niby dlaczego? ADC w...
No to tak: Jeżeli dobrze czytam program to masz 4 przyciski, timer ustawiony tak aby przerwanie od niego występowało co 50 Hz i nic poza tym. Używasz tylko przerwania od Timera - boisz się innych? Czy może to tylko nieznajomość AVR. Aż prosi się żeby przyciski działały pod INT0 / 1 - zewnętrzne przerwanie i po kłopocie. Następnie _delay_ms(750); zamienił...
Problem teoretycznie rozwiązany. Dokonałem zmiany takiej, że wyjście z LM324 nie powoduje zgłoszenia przerwania w atmedze, tylko atmega ciągle sprawdza stan linii przy pomocy PINx. Jednak z ciekawości jeśli ktoś wie dlaczego, metoda z użyciem przerwania nie zdała egzaminu to proszę o sugestie. Myślałem że te przerwania zewnętrzne są właśnie po to żeby...
Procedury przerwań zewnętrznych: Dodano po 1 z tego co wiem, w ISR pozostałe przerwania są wyłączane, czy mam rację ? nie istnieje więc chyba możliwość, że odpala się za dużo przerwań i łącznie za dużo rzeczy odkładanych jest na stos ? Swoją drogą wywołanie takie prostego ISR z jedną linijką kodu również wiąże się z odkładaniem wszystkich zmiennych,...
Atmega 162 potrzebna mi jest do zbierania danych z 4 rsów, dwóch sprzętowych UARTy i dwóch programowych, działające na przerwaniach zewnętrznych i timerach. Bardzo byłbym wdzięczny za kawałek kodu z funkcjami obslugi SPI dla Nut/OS, jeśli oczywiście ktoś miał z tym do czynienia.
W programie sterowanie diodą D1 jest na porcie B, nie C.
Nie sadze ze 10s, jeśli chodzi Ci o przerwanie od watchdoga to wynosi ono 8s w nowszych układach a w starszych tylko 2s. A jeśli chodzi o power down to procesor czeka juz tylko na określone przerwania ( w przypadku tego układu jest to stan niski na INT0 lub spełniony warunek startu USI) Nowsze procki budzi sie jeszcze zazwyczaj timerem watchdoga oraz...
Nie za bardzo Cię rozumiem. Dlaczego chcesz wywołać przerwanie z pętli głównej? Czy to nie może być wywołanie funkcji? Funkcja to nie przerwanie. To akurat nie procek z trybem nadzorcy bo wtedy różnice są duże. Zasadniczo chodzi o to, aby funkcja, której używam zarówno w przerwaniu, jak i w programie głównym nie była przerwana przez samą siebie. Opisałem...
Mierzenie czasu chciałem zrealizować za pomocą kwarcu zegarkowego i przerwań. Układ chciałem zasilać z dwóch baterii AAA jednak to tylko 3V, więc szybko może spaść poniżej 2,7V. W czym problem? 1. Co muszę mieć w programie żeby korzystał on z kwarcu zewnętrznego? 2. Jak powinno wyglądać przerwanie co 1s (najlepiej jakiś przykładowy kod)? 3. Czy jest...
Witam! Schemat zaczerpnięty z noty katalogowej: http://obrazki.elektroda.net/14_12064770... Proponowane podłączenie (ATmega -> AD7843): MOSI -> DIN MISO -> DOUT SCK -> DCLK pin przerwania zewnętrznego np. INT7 -> PENIRQ "dowolny pin" -> CS "dowolny pin" -> BUSY Pozdrawiam!
555 jest blisko tego, co mi potrzeba, przyjrzę się bardziej. Szkoda, że dużo zachodu jest z podłączeniem. Nie jestem pewien, czy jasno opisałem, więc jeszcze raz: mam przycisk filtrowany RC podłączony do mikrokontrolera. Chcę, żeby zamiast przejścia 1->0 było przejście 1->0->1. excray - któryś z AtMega, załatwienie programowe wymagałoby zrezygnowania...
Chciałbym zrealizować u siebie w projekcie przerwania, w ten sposób, że odbieram dane z kompasu->przerwanie i kolejno na początek. Nie rozumiem dokładnie - chcesz, żeby po ustaleniu się danych w HMC58831 wystąpiło przerwanie w którym odczytał byś wskazaną wartość? Jeśli tak - to z tego co widzę masz w układzie pin DRDY informujący o tym, że dane są...
Czyli pozostaje mi odbiór RC5 poprzez zewnętrzny układ ( UART programowy ), wtedy już bez użycia przerwania. Albo... mam układ Atmega 1284P i według noty ma: - dwa Timer'y 8-bit - dwa Timer'y 16-bit Tylko, że wpisanie: "Unknown CONFIG parameter"
Dzięki! Zrobiłem jak wyżej i działa. Mam jeszcze jedno pytanie odonośnie tego tematu: powiedzmy, że wykorzystuje 2 przerwania (jedno zewnętrzne INT0 i USART_RXC). Będąc w procedurze przerwania INT0 (wykonując je) chcę odczytać zawartość bufora. Czy przerwanie INT0 może zostać przerwane przez USART_RXC i powrócić do INT0? Będąc w INT0 muszę odczytać...
Na studia mam do wykonania cyfrowy stroik do kamertonów W tym artykule opisano ciekawy pomiar z użyciem transoptora szczelinowego: https://www.elektroda.pl/rtvforum/topic3... Od strony mechanicznej układ wymaga nieco precyzji, ale sam pomiar jest już banalny. Wystarczy prosty licznik impulsów na przerwaniu zewnętrznym, bez analizy widma, transformat...
Generalnie nie nazywałbym tego tematu zegarem czasu rzeczywistego. Atmega jest spoko, jeśli stosujesz Bascoma to masz jak zwykle problem z precyzyjnym wyliczeniem czasu i cykli procesora więc ... . 1. Albo praca na timerze i przerwaniu ... 2. Albo zewnętrzny RTC :) - jako samodzielny układ scalony :) ; W skrajnym przypadku ... , stosowanie Atmegi może...
Proponowałbym również modyfikację układu pod kątem alternatywnych funkcji pinów. Wspominałeś, że chciałbyś poćwiczyć na początku miganie diodami i sterowanie przyciskami. W porządku, jednak szybko to opanujesz i apetyt wzrośnie :) Po opanowaniu zwykłego sterowania diodami, myślę że rozsądnie byłoby zaznajomić się z obsługą przerwań, która jest kluczowa,...
Cześć. Mam urządzenie zasilane z sieci. Chciałbym zapisywać dane o nim do eepromu, żeby znać jego np czas pracy i może jakieś inne dane. Widziałem już jakieś sposoby, ale chciałbym abyście powiedzieli co sądzicie o następującym rozwiązaniu: http://obrazki.elektroda.net/60_12777380... Przerwanie INT pojawi się kiedy padnie zewnętrzne napięcie. Kondensator...
Pomóżcie mi bo mnie krew zalewa. Atmega mierzy impulsy na wejściu zewnętrznego przerwania INT1. Timer2 służy jako podstawa czasu. Od około 240 kHz na INT1 miernik mierzy nie poprawnie, to znaczy nie występuję przerwania od Timera2 w trybie CTC i program wisi w pętli while, ale gdy przełączę zakres na generatorze na mniejszy to wyświetla mi się wartość...
Witam Mimo, że większość proponowanych tutaj rozwiązań podłączenia RFM12 do Atmegi wykorzystuje SPI programowe, ja podłączyłem tradycyjnie, przez SPI sprzętowe - mimo, że nie miałem problemów z wgrywaniem kodu do Atmegi spiętej z RFM12, to uruchomienie ich razem jest problematyczne ( każde osobno działa bez problemu ) [syntax=basic4gl] $include "Config_AVR-DOS.BAS"...
Po długich bojach udało się znaleźć winą były jakieś śmieci w rejestrze UCSR1A które sprawiły że jednocześnie oprócz int0 pd2 pracowała jako xck1 co chyba uniemożliwiało wywoływanie przerwania int0. Pisze bo może się komuś to przyda. Warto też zwrócić uwagę na fusebit M161C przy takich problemach
To tak jak pisałem: budzisz przerwaniami i po sprawie. Jakbyś jeszcze napisał co to za RX używasz to może by się okazało, że ma interfejs SPI, który też jest obsługiwany przez przerwania... Im więcej danych podasz, tym lepszą odpowiedź uzyskasz Pozdrawiam P.S. Do Twoich zastosowań wystarcza z nadmiarem (pod)rodzina ATmega 48/88/168 w wersji V, a jeszcze...
Potrzebny mi timer z wyzwalaczem i przerwaniem na ATmega. Założenie jest takie że przed rozpoczęciem zadania ATmega ma aktywować timer, a jeśli nie zostanie ono wykonane w określonym czasie to nastąpi przerwanie i wyświetli awarię. Problem w tym że czas timera jest dość spory (powyżej 1 min) i bardziej widzę zrobienie czegoś takiego na zewnętrznym niezależnym...
Przerwanie zewnętrzne co najwyżej może dopisać transakcję do kolejki, a nie obsługiwać czasochłonną transmisję po TWI. TWI ma swoje przerwania, można je inicjować z pętli głównej na zasadzie maszyny stanów, obsługującej kolejne transakcje, a gdy już kolejka się opróżni - samowyłączenie. Użytkownik po wywołaniu czegoś tam powoduje dopisanie nowej transakcji...
KEYBOARD_KEY_TIMEOV skąd się to bierze? Ogólnie widziałem że używasz real-time do domierzania opźnień. Jak I2C się pogubi to i program stanie. Przesiądź się na arduinową funkcje millis() lub w przerwaniu od jakiegoś timera zrób własne liczniki czasu, niezależne od zewnętrznego zegara. millis() zwraca czas w ms od uruchomienia systemu, w dużej zmiennej....
Witam, mam problem z uruchomieniem programu do zliczania impulsów na T1 przez 1 sekundę. Wyświetla mi ciągle zero. Co źle ustawiłem z Timerami ?? Atmega 32 [syntax=c] #define F_CPU 1000000UL #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #include <hd44780.h> volatile unsigned char licznik = 0; //liczba...
Witam Po przesiadce na C umęczyłem taki program, ale dalej coś nie teges? Przerwanie wykonuje się 128 razy ale tylko Y się zwiększa. Jeżeli te sprawdzenie IF od stanu 0 na pinB.3 jest złe to i tak przerwanie powinno się wykonać 256 razy. Bo mam na tym porcie 128 impulsów "0" a przerwanie powinno się wykonać na zboczu opadającym i narastającym. Co jeszcze...
MOC3041 się nie nadaje do układu z regulacją PWM. Ten optotriak ma detekcję prsześcia przez zero i nie włączy się w innym czasie. Użyj czegoś prostszego np moc3021. Musisz zrobić własny detektor przejścia przez zero i podłączyć pod któreś przerwanie zewnętrzne. Jak przyjdzie przerwanie to w zależności od zadanego wypełnienia odmierzasz odpowiednią ilość...
Przejrzałem jeszcze raz ten wątek i jakby nie bardzo rozumiem problem. 1. Jeśli procesor ma czas na wykonywanie innych czynności poza przerwaniem, to dlaczego brakuje mu akurat tych dwóch cykli na powrót z przerwania? 2. Czy Twój procesor ma modyfikować dane w tablicy? Jeśli tak, musisz ograniczyć zakres poszukiwań do rodzin pozwalających na zapis w...
Witam serdecznie! Przejdę od razu do sedna. Napisałem program do megi328, z przerwaniem INT1, odpowiednio poustawiałem rejestry, uruchomiłem globalną obsługę przerwań sei(), i niestety atmega po podłączeniu zasilania od razu wykonuje przerwanie, mimo, iż switch nie został wciśnięty, wiem, że tak się dzieje, ponieważ w przerwaniu dla przykładu zapalam...
zewnętrzne przerwanie atmega przerwanie zewnętrzne atmega zewnętrzne przerwanie
projektor telefonu ustawienie taśmociągu citroen bezpiecznik
schematy instrukcje serwisowe schematy instrukcje serwisowe
Migająca dioda na słuchawce Gigaset 415 - przyczyny Bezpiecznik termiczny w ekspresie Krups - lokalizacja i naprawa