W programie sterowanie diodą D1 jest na porcie B, nie C.
O i dzięki schematowi od razu widać błąd: http://obrazki.elektroda.pl/6463515500_1... Przyciski podłącz do GND, a nie Vcc, a w programie włącz pull-up, i ustaw reakcję INT na zbocze opadające. Tylko czy wiesz dlaczego Twój układ nie działał? Osobna sprawa do drgania styków przycisku: http://mikrokontrolery.blogspot.com/2011...
Wyrzuciłem z obsługi przerwania pętle opóźnijące: SIGNAL(SIG_INTERUPT1){ if(bit_is_clear(PINC,PC5)){sbi(PORTC,PC5... else cbi(PORTC,PC5); } Niestety nic nie pomaga. Nadal nie działa. Nie działa , bo ... kompilator nie wie ,co to za wektor SIG_INTE R UPT1.Gdybyś napisał SIG_INTE RR UPT1 , to by wiedział :D Piotrek PS Odpowiednikiem powyższych "zabiegów"...
Stosy to dla mnie czarna magia, wiem tylko, że każdy przeskok wymaga zapisania adresu zwrotnego, ale nic poza tym :oops: No przy takim podprogramie to 1 megabajtowy stos to za mało :D, to się chyba nazywa rekurencja: [syntax=basic4gl]Petlapomiarowa: If Impulsy < 15 Then 'Jesli nie ruszono, wyswietlaj dalej napiecie Gosub Pomiaradc If Konwersja >...
...Symulator pokazuje 1us a mi sie wydaje ze 10us. W tym wypadku , uwierz symulatorowi ;) Piotrek
OK, mam nadzieję, że zegar ustawiłeś w opcjach. Ponieważ muszę wyjść, to dam Ci wskazówki, a resztę wymyślisz sam lub koledzy pewnie podpowiedzą. Gdy pierwsze zbocze drgania styku ustawi flagę przerwania i mikrokontroler wejdzie w funkcję jego obsługi, to zaraz na początku automatycznie kasuje (w tym mikrokontrolerze) flagę przerwania. Ty w swoim programie...
Stąd, że porty D2 i D3 są portami dedykowanymi do wprowadzenia zewnętrznych przerwań. Spójrz datasheeta megi8.
Jaką masz częstotliwość przerwań timera? Testowanie stanu przycisków powinno następować z częstotliwością rzędu 30..50 Hz jeśli pamiętasz tylko jeden stan wstecz. Jeśli masz większą częstotliwość, to albo testuj je w co którymś przerwaniu, albo wsuwaj stan do zmiennej i wykrywaj sekwencję stanów (bitów) np. 1110.
Na ostatnie pytania odpowiedź standardowa: potrzebna jest stabilizacja i filtracja napięcia zasilania mikrokontrolera. Tematów o tym zagadnieniu też tysiące. Wewnętrzny pull-up nie spali ci optotriaka. Czasem może paść raczej port, kiedy jest przeciążony.
licznik0 i licznik1 muszą być zadeklarowane jako volatile
O jakim innym AVR mówisz? Co masz na myśli mówiąc 'wolno'? Zależy mi, aby było obsługiwane na jednym porcie ponieważ mam takie dwie linie a Atmega8 mam tylko 2 zewnętrzne przerwania.
zaczalem sie dopiero bawic uC, i mam pytanie czemu przerwanie zwenetrzne (int0) jest takie 'delikatne'? Podlaczylem nozke int0 przez microswitcha do masy i mimo ze microswitch nie byl zwarty przerwanie bylo generowane caly czas. Gdy odlaczylem microswitcha to program chodzi ale najmniejsze 'musniecie' kabelka z int0 generuje przerwanie. da sie cos z...
Nie pamiętam, jak działa makro sleep_mode(); ale przecież przechodzisz do trybu uśpienia w przerwaniu od timera a jak wiadomo wejście w dowolną procedurę obsługi przerwania blokuje globalne zezwolenie na obsługę przerwań, wiec prawdopodobnie w chwili uśpienia skutecznie blokujesz także przerwanie zewnętrzne, przez co nie możesz później wzbudzić procesora...
Autor chce uzyskać SLEEP_MODE_PWR_DOWN, a z tego tryby wybudzi go jedynie watchdog lub przerwanie zewnętrzne (zależnie od uC).
tak , podłączenie jest prawidłowe jedna mała uwaga jeżeli układ ma służyć tylko do separacji to ok , natomiast jeżeli do innych celów to lepiej wykorzystaj dostępne piny z obsługa przerwania zewnętrznego , ustawiając reakcję na opadające zbocze sygnału
Zastanawia mnie jeszcze dlaczego nie wykorzystano wbudowanego komparatora atmega8 do wykrywania zera. Zwłaszcza że niewykorzystane piny są. Już drugi raz widzę rozwiązanie na wzmacniaczu zbocza i przerwaniu zewnętrznym.
Witam. Czy byłby ktoś w stanie pomóc mi napisać prosty program, w którym wykorzystuje przerwanie zewnętrzne? Podłączyłem switch z jednej strony do Vcc (takie jest założenie daleszego rozwianięcia zadania) a z drugiej do Portu PD2. Proszę o pomoc oczywiscie z pisania w jezyku C. Może znajdzie się ktoś wyrozumiały, ponieważ większość stron, które przeglądałem...
Bo jak ma działać? Widać kolega nie do końca rozumie mechanizm przerwań, skoro czeka na przerwanie INT0, a włącza przerwanie przepełnienia Timera0. Adresem przerwania przepełnienia Timera0 jest OVF0addr, a nie INT0addr. Przerwanie od INT0 wyzwalane jest ZEWNĘTRZNIE zboczem lub stanem na fizycznym wejściu INT0 mikrokontrolera, a nie Timerem. Skąd ten...
Witam. Mam problem z przerwaniami w atmega8. Wcześniej nie potrzebowałem przerwań więc to zagadnienie mnie nie interesowało. Potrzebuję wywołać przerwanie zewnętrzne int0 które uruchomi timer1, a ten zacznie odmierzać czas. Proszę o pomoc. Pierwsza zasadnicza uwaga to nie zauważyłem w programie konfiguracji interruptu0- coś np. takiego: config INT0=...
nie prościej dać zwykły szybszy kwarc wygenerować przerwanie co 50ms - 1s.
Sygnał przerwania może być wywołany z jednego z peryferiów (np wbudowane liczniki, adc, twi itd), albo właśnie przez nóżkę procesora (w wypadku atmega8 bodaj są 2 zewnętrzne przerwania) Co do arduino pewnie musisz użyć biblioteki.
Bo nie tak się używa przerwań zewnętrznych. Można po pojawieniu się przerwania od zbocza narastającego wystartować timer, w przerwaniu zmienić na zbocze opadające i gdy pojawi się zbocze opadające zatrzymać timer, odczytać jego stan do zmiennej volatile wykasować i ponownie ustawić na zbocze narastające. Mozna też wykorzystać oba dostępne przerwania....
Wynika z tego że wewnętrzne oscylatorki są kiepskie. Tak, by być pewnym transmisji należy stosować zewnętrzne kwarce.
Do jakich pinów podpina się sygnały z enkoder inkrementalnego do Xmegi ? Czy do któregokolwiek pinu i działają one jak zewnętrzne przerwania w Atmega8?
Dzięki Charly za odpowiedź. Mam jeszcze jedno pytanie, czy wtedy sygnał z tego pinu mogę podłączyć do T0, tak, aby pin ten działał jak przerwanie zewnętrzne?
Wykorzystujesz przerwanie zewnętrzne od Int0? W takim wypadku odczyt adresu i komendy wykonaj w podprogramie obsługi tego przerwania.
Witam, ustawienie rejestru DDR i PORT na 0 daje wejścia pływające (ATmega8 nie ma rezystorów ściągających do masy, tylko podciągające do plusa). Tak jak jest teraz łapiesz kolego zakłócenia. Należałoby albo dodać zewnętrzne rezystory między przyciskami a masą lub zmienić położenie przycisków (między pinem a masą) i włączyć wbudowane rezystory. O volatile...
Zły pomysł, zły kod. Użyj jednego timera w trybie zliczania impulsów zewnętrznych i podłącz wyjście wentylatora do jego wejścia. Drugi timer zaprogramuj na zgłaszanie przerwań co 1 sekundę (timer 0 tego nie potrafi), w procedurze przerwania odczytaj wartość licznika, wyzeruj licznik i wyświetl wartość. Nie jest to idealne rozwiązanie, ale o niebo lepsze...
Wystarczy nawet dioda, dzielnik i sprawdzanie obecności impulsów choćby nawet zewnętrznym przerwaniem jeśli jest wolne.
Cytat z pomocy BASCOMA AVR: "W trybie Power Down, zewnętrzny oscylator zostaje zatrzymany. Użytkownik może przywrócić działanie procesora tylko za pomocą: układu WATCHDOG, zewnętrznego sygnału reset lub za pomocą zewnętrznego sygnału przerwania."
Oczywiście uint8_t - zjadłem '8'. Jeśli zmienna jest używana tylko wewnątrz procedury, to powinna być zadeklarowana wewnątrz procedury. Jeśli taka zmienna ma "przeżywać" czas, kiedy procedura nie jest aktywna (czyli zachowywać wartość pomiędzy wywołaniami), to musi być zadeklarowana z atrybutem static. Ten sam atrybut oznacza coś zupełnie innego w odniesieniu...
Po pierwsze do ATmegi 8 wepchnąć RTOS to może być ciężko... chyba, że KaRTOSa. Po drugie moim zdaniem to wystarczy napisać normalną procedurę obsługi przerwania zewnętrznego i tyle.. Program pracuje cały czas, dostaje sygnał z pinu EXT0 i zabiera się za obsługę instrukcji w przerwaniu..
Witam A jak masz skonfigurowane przerwania INT0 i INT1? Z power down można wyjść tylko poprzez przerwanie zewnętrzne wyzwalane poziomem. A poziom wyzwalający przerwanie musi się utrzymywać do czasu wybudzenia mikrokontrolera z trybu power down. Jacek
Witaj, No save spokojnie możesz użyć.... pod warunkiem, że nie korzystasz w obsłudze przerwania z instrukcji Bascoma bo jeśli tak to nie odkładając rejestrów na stos, zgubisz ich wartości i w najlepszym przypadku będą się działy różne rzeczy. Ja bym napisał wstawkę w asemblerze odkładając wcześniej na stos używane rejestry w tym SREG. Możesz też użyc...
Bity w MCUCR określają na co będzie reagować przerwanie zewnętrzne... Zmiana stanu, opadające lub narastające zbocze więc jest to jak najbardziej potrzebne... SIGNAL (INT0_vect) - obsługa zewnętrznego przerwania INT0... SIGNAL (TIMER0_OVF_vect) - obsługa przerwania od przepełnienia timer0... Co do portu... Jak na mój gust powinno być PORTC = !PORTC;...
....... panie autor.... zastanów się, nad tym co się dzieje na twoim wejściu INT ??? Przerwanie sobie jakoś tam zainicjalizowałeś i ok, ale co masz na wejściu ??? bo wg mnie - trzeci stan Hi-Z. Czyli napięcie ci pływa - brak podciągania .... i dziwisz się, że przerwanie jest wciąż wyzwalane nawet bez naciskania przycisku? ..... Podciągnij wejście albo...
To dwa sygnały na timery jako liczniki a trzeci sygnał na przerwanie zewnętrzne. A trzeci timer jako zegar.
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.
Pewnie pozostanie Ci tylko allegro lub sklepy internetowe. W moim eks-wojewódzkim mieście też ciężko coś bardziej specjalizowanego kupić. Edit. W temacie uszkodzonego procka. Może przerwanie zewnętrzne na PD5, a w przerwaniu steruj i czytaj licznik T0 ,,na piechotę"?
Obsługę przycisków też zrób w przerwaniu timera, jak radzi BlueDarco - nie ma sensu obsługa przerwania zewnętrznego, bo zniszczy Cię drganie styków...
Tylko dalej nie rozumiem w jaki sposób mi pomoże zewnętrzne przerwanie i w jakim celu mam w nim sprawdzać czy jest na nim stan niski?
Jak jest z dokładnością zegarka RTC w Atmega8? Słyszałem plotki, że nie chodzi to zbyt idealnie. Potrzebuję zrobić zegar do zliczania tylko dni i zastanawiam się czy jest sens stosować zewnętrzny układ RTC. Układ musi mieć podtrzymanie zegara z baterii/kondensatora w przypadku zaniku zasilania. Śmiało możesz użyć np. Timer1 w trybie CTC jako generatora...
Proszę zauważyć że czas pomiaru nie jest tym samym co częstotliwość pomiarów czy czas powtarzania pomiarów. Przy sygnałach zmiennych trzeba dążyć ,by pomiar był możliwie krótki i do tego służy dzielnik przetwornika . Częstotliwość pomiarów i start konwersji można zainicjować dowolnie wybranym zdarzeniem np przepełnieniem licznika czy przerwaniem zewnętrznym.
jak chcesz takie duze czestotliwości mieżyć to musisz użyć timera żeby liczył zewnętrzne impulsy, wtedy drógim timerem wyzwalasz przerwanie co określony czas (im dłuższy tym lepszy bo pomiar dokładniejszy) liczysz ile było ilmpusów z zewnątrz w okreslonym czasie. wydaje mi się że tą metodą dało by sie mieżyć nawet do 100Mhz ale jest jedno zalożenie...
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);...
No dla mnie tym następnym krokiem był przerzutnik T :) Również polecam :) Potem, sugeruje proste przerwania zewnętrzne, timer (tu duze pole do popisu, mozna sobie zrobić na nim mruganie diody, przyciskami sterowac częstotliwość), potem sterować jasnością z PWM. Dalej proponuje pobawić sie wewnętrznym eepromem, przydaje sie w dalszej nauce, potem zewnętrzny...
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...
Rzeczywiście to pomogło. Zastanawia mnie, dlaczego jak licznik był w trybie normalnym wywoływane było przerwanie... Bo przerwanie jest od porównania. Gdy TCNT1 = OCRA1 to jest wywoływane przerwanie. A wytłumaczysz mi dlaczego OCR1AL ma wynosić 124, a nie 125? Bo tak jest napisane w datasheet. Zresztą zauważ że taka sytuacja jest sensowna. Zwróć uwagę...
Nie działa Ci, bo nie przeczytałeś dokumentacji... http://obrazki.elektroda.net/0_118799421... Flagi przerwań czyści się przez wpisanie do nich logicznej jedynki. Trochę może paradoksalnie to wygląda, ale ma swoje logiczne uzasadnienie. Chodzi o to, że czyszcząc flagi w ten sposób da się to zrobić o wiele szybciej i co najważniejsze - bezpieczniej....
Bo niestety muszę zegarek rozbierać No niestety w tym trybie nie uzyskasz stabilnej sekundy, tym bardziej, ze Bascom w obsłudze przerwania może robić zbędne bzdury i jeszcze nie raz ten zegarek będziesz rozbierał. Do konstrukcji czasomierza najbardziej się nadaje asynchroniczny licznik Timer2 w trybie CTC, taktowany specjalnym rezonatorem kwarcowym...
Piny, które jednocześnie służą jako źródło przerwań zewnętrznych. Oznaczane są INT0, INT1, .... itd. ATmega8 ma o ile pamiętam 2 takie wyprowadzenia. Aby móc z nich korzystać trzeba oczywiście wszystko odpowiednie pokonfigurować. Powodzenia! ;)
Otóż zliczam czas na timerze 2 i co 1 sekundę generuje mi przerwanie obsługiwane w procedurze signal. Jednak gdy jestem w menu które wywoływane jest za pomocą przerwania: ISR_BLOCK, czas nie jest liczony. Jak zrobić by priorytet przerwania Timera2 był większy niż przerwania zewnętrznego. Nie mogę ustawić ISR_NOBLOCK bo zapcham szybko stos. Czy w AVR...
Może jakiś wyłącznik krańcowy. Szyba dochodzi do końca w skutek czego zwiera wyłącznik krańcowy co powoduje wywołanie przerwania zewnętrznego na atmedze i ona wyłącza silnik.
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()...
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...
W programie poniżej dekrementuję zmienną globalną(volatile) "time" w przerwaniu. Problem tkwi w tym, że dekrementacja działa prawidłowo tylko gdy zainicjuję zmienną globalną "time" początkową wartością, natomiast ja chcę podawać wartość zmiennej do dekrementacji w głównej pętli while(1) tak jak to jest w kodzie poniżej (który oczywiście nie działa)....
Witam! Moje pytanie dotyczy przerwań zewnętrznych INT0 i INT1. Czy istnieje możliwość przyporządkowania ich do innych wyprowadzeń układu czy są sztywno "przymocowane" do pinów 4 i 5? Pozdrawiam.
Fakt trochę sie zagalopowałem z tym wywodem :/ Jednak w ten sposób zdefiniowane wejście które może być źródłem przerwań zewnętrznych będzie działać na zbocze rosnące czyli gdy podasz na nie VCC. Oczywiście po zdefiniowaniu przerwań. Pozdrawiam
Wewnętrzny zegar jest na tyle mało dokładny, że aby można było nim coś zmierzyć, należało by ustalić jego dokładną częstotliwość porównując z jakimś wzorcem, po czym zapisać poprawkę do osccal albo uwzględnić to w czasie przepełnienia t1 - a i tak dokładność nie będzie duża ze względu na wachania częstotliwości. Warto poczytać w dokumentacji jaką dokładnie...
Witam. Mam takie oto zadanie: po wciśnięciu przycisku ma zacząć się odliczanie czasu, po puszczeniu przycisku koniec odliczania. Wartość na bieżąco wyświetlana na LCD Z obsługą LCD spokojnie dam sobie radę, ale z timerów i przerwań jeszcze nigdy nie korzystałem. Prosiłbym o linka jeśli ktoś widział gdzieś podobny program albo opis konfiguracji timerów...
Jak z 9-ciu czujników zsumujesz sygnał i podasz na zewnętrzne przerwanie INT0 , to nie będziesz musiał bez przerwy sprawdzać stanu tych czujników. Jak przyjdzie zewnętrzne przerwanie z któregokolwiek , to zrobisz stop , a później możesz sprawdzić z którego to przyszło.
NP: IF A and B and C then coś tam się dzieje end if A B C to klawisze ( piny porty zmienne ) Pozdro! I to powinno dziać się w obsłudze przerwania, jeżeli ma to się rzeczywiście natychmiast stać. Klawiaturę podłącz tak, aby po wciśnięciu dowolnego klawisza generowała określony stan, linię z tym stanem podłącz do pinu zewnętrznego przerwania w kontrolerze,...
A nogę Reset wykorzystujesz jako zwykłe wyprowadzenie IO i też jest zajęte czy nadal służy jako Reset zewnętrzny? Dodano po 1 BOD generuje reset, nie przerwanie.
To w takim razie musisz dołączyć schemat może? skoro to mają być przerwania zewnętrzne. Co ty masz tam przyłączone do PD2 i PD3? P.S. Sorry ja odpadam - nie rozumiem po co taki kod. Skoro nie masz zainicjowanych przerwań?
Ok, myślałem nad samą diodą Zenera, ale jakiś ogranicznik prądu w postaci rezystora też się przyda. Muszę teraz przemyśleć zliczanie impulsów za pomocą przerwań zewnętrznych tak jak doradziłeś mi w innym temacie.
1.Możesz powiedzieć CO chciałeś uzyskać jako wynik działania INT0? Jak napisał Logan-to jest przerwanie zewnętrzne-od zewnętrznego przycisku np. 2.Czy kompilowałeś ten program w miarę pisania czy napisałeś cały i dopiero potem skompilowałeś?
Nie wiem jakiego uśpienie używasz, ale zarówno z trybu Power Down i Power Save można wyjść za pomocą przerwania zewnętrznego ale zgłaszanego poziomem (a nie zboczem, tak jak masz w porgramie). Czytaj notę, rozdiał Power Mangament and Sleep Modes.
Przewód ma ze 60cm. Nie rozumiem dlaczego nie działa pull down, ale pull up zewnętrzny też mi coś nie funkcjonował. Cały czas była masa.
Witam! Czy istnieje procedura odczytu sygnału z pilota SONY będąca odpowiednikiem GetRC5 (dla pilotów RC5)? Przeglądałem elektrode, suport na www firmy MCS ale wszystko co znalazłem to dosyć rozbudowane procedury. Poszukuje też materiałów na temat sposobu kodowania IR SONY i ewentualnych innych przykładów procedur odczytu w bascomie. (Procek to ATMEGA8...
Mój problem polega na tym, że jak dodamy po Reset Portc.5 a przed Loop polecenie Wait 1 czy np. Waitms 1000 program odczytuje błędne dane jednak zawsze dla każdej z kart takie same. Czy to może mieć z wiązek z użytym przerywaniem? Chodzi o to aby odczytywał jeden raz ID karty i ciągłym przyłożeniu, a nie jak jest teraz że co 100ms bo tak moduł przesyła....
Ok, tylko co jeżeli chciałbym żeby był np taki efekt: dioda świeci 4 sekundy na zielono, pozniej 4 sekundy na czerwono i powiedzmy 4 sekundy na żółto, jeżeli czas świecenia zrealizuję za pomocą funkcji Wait , to nici z obsługi przycisku w petli głównej, jeżeli bym to zrobił przerwaniem zewnętrznym wówczas program najpierw obsługuje przerwanie i sterowanie...
Wyliczenie temperatury jest właściwe, tylko zamiast 28 powinno być 25. Wtedy wyjdzie 100. Zastosowałem większą wartość ponieważ w datasheetcie pisze że wartość Vref może wahać się nawet do 2,9V. W programie z przerwaniem musiałem dodatkowo ratować się dodaniem 2stC do wyliczonej wartości, tak była zaniżona. Prawdopodobnie zmyliły cię nazwy cz_d i cz_u....
Każdy uK da się wprowadzić w stan obniżonego poboru mocy (to się chyba IDLE nazywa) i wybudzić zewnętrznym przerwaniem. Więcej w dokumentacji na www.atmel.com. Pozdrawiam.
Witam Do wyjść klawiatury wpinasz równolegle bramkę NAND 4-wejściową (zakładam klawiatura 4x4), a wyjście bramki do wejścia z przerwaniem zewnętrznym (INT0, INT1). W momencie naciśnięcia przycisku z klawiry na wyjściu bramki będzie "1" które wykrywasz (lub zbocze) na INTx. W obsłudze przerwania sprawdzasz klawisz jak normalnie.
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...
pamięc 62256 (32k) 8,00 PLN atmega162 29,00 PLN (strasznie podnieśli ceny niedawno kupowałem po 11 PLN) 74AHC573 1 PLN razem 38 PLN zostaje 62 PLN na resztę , tworzysz sztuczny problem coś mi się zdaje chyba że nie zależy tobie na szybkości zapisu więc łap się za atmega8 i pamięci SPI bo na pamięć równoleglą zużyjesz wszystkie wolne piny i jeszcze będzie...
A może zna ktoś profesjonalny i kompletny układ to przesyłania zwykłej transmisji szeregowej drogą radiową? Mam na myśli coś takiego, żeby nie trzeba było pisać własnego kodowania, sprawdzać poprawności danych etc i przede wszystkim, żeby układ był sprawdzony. Zasięg powiedzmy 100m. Częstotliwość taka, żeby w obszarze zabudowanym nic go nie zakłucało,...
Oczywiście że jest, podpinasz 1-wire pod wejście przerwania zewnętrznego, pdf z dokładnie opisaną transmisją 1-wire w ds1820 i jedziesz z programem.
http://obrazki.elektroda.pl/2159092800_1... Witam, mój pierwszy projekt elektroniczny na Elektrodzie i w ogóle :) Licznik rowerowy widoczny na poniższym zdjęciu. Pomysł zrodził się w zeszłym roku, właściwie bez żadnego powodu. Zaczęło się od zabawy układami AVR - przez diody i przyciski, potem ekran z telefonu. W końcu padła bateria...
Zrób sprawdzanie portów do których podpięte są przyciski w pętli głównej, albo w podprogramie obsługi przerwania Timera0 - po wyświetleniu cyferek na wyświetlaczach. Zawsze pozostaje jeszcze Timer2 :D, ale jak zapuścisz przerwania z 3 timerów i do tego jakieś zewnętrzne int to mogą być problemy...
Nie jestem pewien co do połączenia układu MBI5026 do Atmegi8 http://www.datasheetcatalog.org/datashee... Czy jeśli podłączę w ten sposób: GND->GND VDD->+5 CLk->SCK LE-> wolny port OE-> wolny port SDO-> zostawiam nie podłączony bo nie używam drugiego układu MBI5026 SDI-> wolny port to będzie dobrze? Dodano po 8 Jednak SDI nie może być...
A ogólnie działa serwo na funkcji delay ? U mnie serwo kiedyś na takich czasach delay nie działało, dopiero jak dałem kilka małych delay to zaczęło chodzić. Lepiej odmierzać czas za pomocą Timera . http://www.robotyka.net.pl/category/arty... -opisane tu są zarówno Timery jak i przerwania zewnętrzne z przykładami, może pomoże.
Masz złe podejście do tematu: TSOP to nie fotodioda. Przeczytaj w dokumentacji co TSOP daje na wyjście - o ile dobrze pamiętam, to po odebraniu sygnału przerzuca wyjście w stan niski na maks. 60ms (tu mogę być w błędzie), a po tym czasie powraca do stanu wysokiego, nawet jeśli ciągle odbiera sygnał. Z tego powodu trzeba przebieg 36kHz podawany na diodę...
One mają trochę różnic. M.in. różnią się pamięcią Flash, EEPROM, SRAM czy ilością zewnętrznych przerwań. Szczegółów szukaj w dokumentacjach producenta. Raczej mało prawdopodobne że będziesz mógł bez przeszkód zamienić te dwa µC.
Wprowadzić uC w tryb POWER_DOWN możesz zawsze, tylko jakie będą tego efekty, jak mówi datasheet: -zatrzymywany jest oscylator zewnętrzny - z trybu tego uC może zostać wybudzony poprzez zewnętrzny reset, reset od watchdoga oraz reset od układu Brown out detector,zewnętrzne przerwanie od INT0/INT1 - Ten tryb uśpienia w zasadzie zatrzymuje wszystkich generowanych...
Możesz użyć procesora który ma obsługę tylu przerwań ile masz kół pasowych. Zdaje się że ATtiny2313 ma możliwość obsługi do 8 zewnętrznych przerwań zatem on by się pewnie nadał, tyle że ma 2kB flash'a i może ci się program w bascomie nie zmieścić
PC6 (RESET) - opcjonalnie nóżka resetująca procesor PD0 (RXD) - odbiornik UARTA PD1 (TXD) - nadajnik UARTA PD2 (INT0) - przerwanie zewnętrzne PD3 (INT1) - przerwanie zewnętrzne PD4 (XCK/T0) - taktowanie USARTA albo impulsy dla timera VCC - zasilanie cyfrowe GND - masa PB6 (XTAL1/TOSC1) -do podłączenia kwarcu (wejście) PB7 (XTAL2/TOSC2) -do podłączenia...
Dziękuję za podpowiedzi:) Wstawiłem konda 100nF, próbowałem wyzwalać przerwanie na niski stan jak i na zbocze opadające i dalej to samo.. Czy jeśli napiszę taki kod: ISR(INT1_vect) { _delay_ms(100); while(bit_is_clear(PIND,PD3)... LCD_Clear(); LCD_WriteText("Co tam!"); _delay_ms(1500);...
W kwestii formalnej, ten kod się nazywa kodem Gray'a (od nazwiska Franka Gray'a 1887-1969, pracownika laboratoriów Bella, który go opracował) Co do samego problemu, to - prędkość obrotową wyliczysz z jednego kanału mierząc ilość impulsów w jednostce czasu lub mierząc czas trwania jednego okresu i przeliczając to na obroty (wiadomo ile masz impulsów...
Ale nie blokuje przerwań. Przycisk przenieś na PD2 lob PD3, ustaw zezwolenie obsługi przerwań i przerwania zewnętrznego, ustaw obsługę tego przerwania np. on INT0 ustaw_flage ustaw_flage: flaga=1 return i wpisz zamiast: "If Pinb.0 = 0 Then" "If Pinb.0 = 0 or flaga=1 Then" P.S. Ale obsługi Timerów powinieneś się tez nauczyć.
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...
Da się jakoś zablokować przerwanie jeżeli jestem w trybie ustawiania godziny? Lepiej zamiast tego zrobić całość POPRAWNIE. tj: 1. Bez instrukcji opóźniających 2. Z eliminacją drgań styków za pomocą przerwania timera (najlepiej tego samego, co od obsługi LEDów) 3. Odczyt z PCF też wykonywać w przerwaniu (układ ten generuje impulsy o częstotliwości 1Hz...
nproton Rozumiem dobrze. Ja chcę zdekodować 2 kanały z ppm które dochodzą już do serw a nie cały sygnał ppm. Jak zobaczysz ze swojego wykresu zmienia się ich czas trwania. Program już działa bardzo dobrze, jutro go wstawię dla potomnych. Mam jeszcze zagwostki: 1) Czy da się jakoś zmuxowac/powielić przerwania od wejść zewnętrznych? Jak bym chciał nie...
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...
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...
Witam. Mam problem z przerwaniem zewnętrznym Int0 w Atmega8. Chodzi o to, żeby po naciśnięciu przycisku podłączonego do końcówki Int0 wykonała się procedura obsługi przerwania. Napisałem wręcz helpowy program i nie działa. Jest takie coś, że od razu po włączeniu procka wykonywane jest przerwanie (na dodatek przez cały czas). Próbowałem też wyłączyć...
Tego nie widziałem. Znalazłem za to informację że dotyczy to rezonatora pracującego jako generator wytwarzający główny sygnał zegarowy: http://obrazki.elektroda.net/9_123515576... A po drugie, akurat w ATMega8 jest błąd w krzemie i te wewnętrzne kondensatory nie działają (tzn. FuseBit ich nie włącza). Użycie rezonatora jako źródła sygnału dla...
Drgania styków kontaktronu postaram się wyeliminować sprzętowo. Nie odpuszczaj, zrób to programowo, chociażby po to by się tego nauczyć na przyszłość. To jest proste. Weź nie żartuj. Nie da się tego zrobić rozsądnie przy wykorzystaniu przerwania zewnętrznego i timera. Sprzętowe rozwiązanie w tym wypadku jest optymalne.
Jeszcze chyba potrzebne Enable Timer1. Poza tym, nie wiem po co masz ustawiane Edge, tu nie chodzi o wyzwalanie zboczem przerwania zewnętrznego. Poza tym nie definiujesz preskalera i po wyświetleniu wyniku warto byłoby wyzerować timer bo zacznie liczyć od tego co skończył, chyba, że tak chcesz.
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,...
przerwać zewnętrzny przerwać atmega8 stm32 przerwać zewnętrzny
uszkodzony panel dotykowy tworzenie playlist uszkodzony zasilacz corsair
aktualizacja dekodera manta aktualizacja dekodera
Audiovox BA-200B 1 CH SUB AMP – brak kondensatora C8, schemat i dobór wartości Nokia, Lumia, Android – zapomniany kod blokady, jak odblokować telefon bez utraty danych