Niekoniecznie będzie to 160%, gdyż wg noty zegar wynosi min. 10 MHz, czyli 16 MHz, które można łatwo uzyskać (24 MHz zresztą też), zadziała. Oczywiście o jakimś sensownym przetwarzaniu danych raczej mowy nie ma - ale jeśli kamera będzie podłącozna pod interfejs RGB kontrolera LCD to przesył obrazu kamera LCD procesora nie zajmie. Wszelkie timingi da...
Chyba raczej ldi r16,2 out MCUCR,r16
Witam, żeby dużo nie zmieniać w programie, w pierwszej kolejności spróbowałbym przenieść przerwanie na zbocze opadające, ewentualnie zwiększyć podciągnięcie (dodatkowe np. 10k do pinu). Samo przerwanie też bym zmienił na "jedna_czterysta_pięćdziesiąta_litra++" (np uint32_t) i dostosował resztę.
To jest tak: Config Int0 = P3.2 ' Ustawienie przerwania zewnętrznego na pin P3.2 Reset Tcon.0 ' Przerwanie wywoła stan niski Set Tcon.0 ' Przerwanie wywola opadające zbocze (z H do L) To samo z Int1 To tyle pozdrowienia.
sygnał podany na wejście PD2.
Ale nadal pozostaje pytanie: Dlaczego flaga INTF1 jest ustawiona, skoro po resecie powinna być 0? Do tego momentu wejście sobie pływa i logika od wykrywania zbocz może już je rejestrować. [syntax=c]PORTD|=(1<<PD3); // podciągam do vcc[/syntax] Tutaj: [syntax=c]EICRA|=(1<<ISC11);// przerwanie na zbocze opadające EICRA&=~(1<<ISC10);//...
Witam. Jestem początkujący w programowaniu więc proszę o wyrozumiałość. Potrzebuje program sterowania klapą (otwieranie i zamykanie dwie krańcówki góra dół i silnik lewo prawo). Chce aby jazda w gore lub w dol odbywała się w momencie zmiany stanu pewnej zmiennej zewnętrznej konkretnie zboczem rosnącym. Wyczytałem, że w Bascomie można zrealizować t przerwaniem...
...Jakie jest zatem rozwiązanie tego problemu (jeśli jest)? Bascomowy UART programowy działa jedynie wtedy , kiedy wywołamy funkcję z nim współpracującą. W pozostałych przypadkach ( kiedy działają funkcje/procedury nie związane z programowym UART-em ) , nadchodzące dane są "niewidoczne" dla procka :( Np. jeśli masz w kodzie Wait 1 , a w czasie działania...
A spróbuj tak: [syntax=c]{ _delay_ms(3); PORTC|=_BV(PC0); _delay_ms(1); PORTC&=~_BV(PC0); }[/syntax] Pamiętaj że łączny czas funkcji od momentu pzerwania do momentu powrotu z przerwania pod żadnym pozorem nie może przekroczyć 10ms. Inaczej każde następne przerwanie jest "spóźnione" o wartość nadmiarową nad te 10ms. Poza tym: [syntax=c]MCUCR|=_BV(ISC01)|_BV(ISC00);....
Witam. Poczytaj o przerwaniach i o reakcji na opadające zbocze. Wykrywasz przerwanie na opadające zbocze. W obsłudze przerwania sprawdzasz czy na wejściu jest stan niski.
No fakt - najpierw inkrementuje :oops: Jeśli chodzi o TF2 to sprawa ma sie tak(to sprawdziłem w bibli 51): Ponieważ Timer2 posiada 2 źródła przerwań , za którymi stoją flagi EXF2,TF2 to nie są one zerowane sprzętowo , byśmy wiedzieli co spowodowało przerwanie T2 , a mianowicie opadające zbocze na T2EX(P1.1) czy przepełnienie licznika.Więc flagi TF2/EXF2...
Takie ustawienie enkodera jest mozliwe. Reagowanie na stan to bład. Powinieneś reagować na zbocze. Np. przerwanie zewnętrzne AVR'ów potrafi reagować zarówno na zbocze narastajace i/lub opadające. Jak odczytywac w którą strone następuje ruch?. Najlepiej jak sobie znajdziesz gdzieś w internecie opis takiego enkodera z wykresami sygnałów wyjściowych, bo...
Można by ustawić przerwanie zewnętrzne na zbocze narastające, uruchomić timer i przełączyć przerwanie na zbocze opadające. Gdy pojawi się to opadające to zatrzyma timer i masz czas impulsu. Jeszcze jedynie uwzględnić przepełnienie timera, w razie jak się coś przestawi z czasami.
Przerwania typu PCINT działają podczas zmiany stanu pinu, obojętnie czy to jest zbocze narastające czy opadające. Poprostu ma być to zmiana stanu, tak więc jeśli naciśniesz przycisk to przerwanie bedzie generowane dwa razy (w momencie naciśniećia i puszczenia). Natomiast inaczej jest w przypadku przerwań INT0 i INT1 gdzie możesz sobie wybrać kiedy ma...
Sposób kol. remiorn jest prawidłowy pod warunkiem, że sygnał jest wolniejszy (ponownie nie zmieni stanu) niż przerwanie programu i wejście do funkcji obsługi przerwania wraz ze wszystkimi czynnościami jakie są realizowane na początku tej funkcji. Może nastąpić bowiem taka sytuacja, że sygnał zdążył się zmienić z powrotem na stan początkowy. Jeżeli natomiast...
Witam. Procek tak się zachowuje bo nie określiłeś czy przerwanie ma być generowane przez zbocze opadające, rosnące czy przez stan niski na końcówce INT. Domyślnie wyzwalane jest stanem niskim więc wykonuje się raz za razem. Instrukcja Config INTx. Przeznaczenie: Konfiguruje sposób wyzwalania przerwania INTx. Składnia: CONFIG INTx = LOW LEVEL | RISING...
Witam, mam do Was zapytanie, otoż do portu P3 mikrokontrolera 89s52 chciałbym podłączyć linie sterujące wyświetlaczem siedmiosegmentowym i na linii INT0 byłby jakiś sygnał i teraz moje pytanie, czy jak podłacze do P3.2 (INT0) sygnał wyświetlacza i sygnał z ukladu generującego przerwanie (zbocze opadające lub poziom niski) to będzie to działać, czy nie....
A co jest na wejściu INT1. Jeśli zrobiłeś przerwanie niskim stanem to może masz tam cały czas stan niski i jak włączysz przerwania to znów się robi obsługa przerwania. Ustaw przerwanie na zbocze opadające i powinno się poprawić.
Witam serdecznie. Zbudowałem sobie licznik impulsów na AVR-ku. Generalnie układ pracuje poprawnie ale bywa że czasami zliczona jest nieprawidłowa ilość tych impulsów. Iteraz mam pytanie bo zgupiałem. Powiedzmy że sygnał liniowo opada ze stanu wysokiego w stan niski w czasie 1 sekundy. (Bardzo ale to bardzo małe strome zbocze) Przerwanie ustawione jest...
Przedewszystkim trzeba ustawić aby przerwanie wywoływało opadające zbocze a nie stan niski (ustawienie domyślne). W tym celu należy odpowiednio ustawić rejestr Tcon(set Tcon.0)
Debouncing w przerwaniu - tylko nie mów, że robisz to przez aktywne oczekiwanie wewnątrz przerwania. Jeśli tak, to zauważ, że to, że skasowałeś flagę przerwania i jesteś w przerwaniu wcale nie oznacza, że flaga nie może zostać ustawiona ponownie. Możliwy jest taki scenariusz: wciskasz przycisk, pojawia się zbocze opadające które ustawia flagę a więc...
przecież masz ustawione przerwanie na zbocze opadające.
Tak po pierwsze to przerwanie masz domyślnie wzbudzane stanem niskim, czyli przerwanie wywołuje się W KÓŁKO dopóki na pinie panuje stan niski. Musisz je ustawić tak, by reagowało na zbocze (w Twoim przypadku opadające). Poza tym jak pisał (at)emarcus - cały program jest pisany bez zastosowania się do jakichkolwiek dobrych nawyków, a i jak widzę wiedza...
Jak na razie testuję to na guziku, podłączonym do PD2 (INT0)... To może nie być miarodajne, ze względu na drgania styków, chyba że wprowadziłeś jakiś sprzętowy debouncing. Jeśli chodzi o kod, nie sprawdzałem, czy cała idea jest prawidłowa, ale zauważyłem: ... MCUCR=1<<ISC00; //przerwanie wyzwalane zboczem narastającym __|-- MCUCR=1<<ISC01;...
próbowałem już z przerwaniami ale coś nie mogłem odczytać z TIMERA wartości na jakiej został zatrzymany przy przyjściu przerwania INT. Bo właściwie to nie wiem jak poczekać na przerwanie tak żeby np. w pierwszym INT kasować TIMER a w następnym odczytywać. A czy można zdefiniować równocześnie przerwanie na zbocze opadające i narastające i kiedy przyjdzie...
Możesz spróbować mniej więcej tak: // deklaracja zmiennych globalnych volatile uint8_t prev_tcnt, T; // w funkcji 'main' // skonfiguruj przerwanie INT0 tak, by reagowało na obydwa zbocza MCUCR |= (1<<ISC00); // używaj raczej makra ISR ISR(INT0_vect) { // sprawdzasz które zbocze wywołało przerwanie // jeżeli zbocze narastające,...
Kod jest OK. Napisz jak wygląda LED_G_ON. Zdeasembluj to w studio i sprawdź gdzie faktycznie jest wektor przerwania, czy na własciwym miejscu?
To raczej inaczej się robi. Wykorzystaj piny ICP i przypisane im rejestry. Timer musi pracować z częstotliwością zależną od wymaganej przez ciebie rozdzielczości pomiaru czasu. W przerwaniu odczytujesz zamrożone stany rejestru i masz pomiar w tyknięciach licznika timera. Czyli trzeba to zrobić tak: Ustawić przerwanie na zbocze narastające, zapisać...
1. Można to różnie rozwiązać. Najprościej, to wykorzystać któryś z pinów INT. Algorytm: - ustaw przerwanie z pinu INT0 na zbocze np. narastające, - gdy pojawi się zbocze narastające to wywoła funkcję obsługi przerwania, - w funkcji przerwania uruchamiasz timer i zmieniasz ustawienia INT0 na zbocze opadające, - gdy wystąpi zbocze opadające - zatrzymujesz...
CZy w mikroprocesorach 89C2051 można ustawić przerwanie zewnętrzne aby reagowało na zbocze narastajace bądź opadające pisząc progam w Bascomie. Szukam po necie nic na ten temat nie mogę znaleźć.
... INT'y mam ustawione tak, że generują przerwanie gdy jest zbocze opadające, ale w trybie wylaczenie to chyba bez znaczenia. Prosze o pomoc Dzieki Wyłącznie INTx ustawiony na poziom (niski) obudzi Twojego proca - patrz dokumentacja :D Piotrek
Czyli np jeżeli chce zmierzyc czas trwania impulsu to robię to tak - while(jakis_warunek) { -ustaw przerwanie na zbocze narastające -uruchom timer -ustaw przerwanie na zbocze opadające -odczytaj timer, wyzeruj rejestry timera } Czy takie coś zadziała?? Czy jest możliwość skonfigurowania dwóch osobnych przerwań na zbocze narastające i opadające czy za...
Nie tędy droga, Ty musisz zrobić coś dokładnie odwrotnego - nie wygenerować sygnał, ale go zmierzyć. Rozwiązania są 2, ale jeśli programujesz w bascomie i nie masz ochoty na operacje na rejestrach w procesora to kurczą się do jednego. Mianowicie: 0. ustawiasz timer na zliczanie impulsów i zmianę wartości jakiejś zmiennej - parametry dobierz w zależności...
Wyrzuc pojemność, daj dwie bramki szeregowo (żeby ujemny sygnał na fototranzyztorze dawał ujemny na uP) i zliczaj nie na T0 tylko na INT, w obsłudze przerwania zliczaj programowo. Eliminację kilku po sobie następujących lini zrób progarmowo w taki sposób że pierwsze zbocze opadające jest zliczane a nastepnie blokuje przerwania na INT przez czas np....
Nie neguję rozwiązania przerwanie-w-przerwaniu, w niektórych sytuacjach jest to rozwiązanie bardzo eleganckie i efektywne, tylko należy pamiętać aby dobrze wyłączać przerwania. Nie popieram natomiast pętli oczekującej w przerwaniu, kod warto przeprojektować względem tych pętli pozbywając się ich - czy to przez automat skończony zmieniając INT1 na przerwanie...
LPC176x (czyli wersja 100-nóżkowa) posiada 4 timery, każdy z nich posiada po dwa wejścia: CAP0 i CAP1. Daje to max 8 wejść, czyli może się udać. Pokrótce wejścia CAP pozwalają zapisać aktualny stan timera (rejestr TC) w rejestrze CR0/CR1 w momencie zmiany stanu na takim wejściu. Pomiar szerokości impulsu PWM jest tym samym tak dokładny, jak często tyka...
Chce mierzyć impulsy z zakresu 10kHz do 120kHz... 89cx051 (at)24MHz + Basic = Ciężka(niemożliwa?) sprawa przy 120kHz. Może w asm dałoby radę , ale Basic :( Zmienił bym także koncepcję/sposób pomiaru , a mianowicie: Sygnał podaję na INT0 i odwrócony(zanegowany) na INT1 , włączam bramkowanie liczników T0 i T1 i niech zliczają cykle maszynowe.T0 liczy...
Tylko na opadanie. W końcu ZBOCZE.
AVE... (at)Nsvinc... Zrobiłbym to tak(na PIC16F785): 1. Ustaw przerwanie pinu na zbocze narastające. 2. Gdy pojawi się zbocze narastające: - zresetuj flagę przerwania; - ustaw przerwanie pinu na zbocze opadające; - ustaw preskaler timera; - włącz timer sprzężony z głównym zegarem. 3. Gdy pojawi się zbocze opadające: - zatrzymaj timer; - zresetuj flagę...
Witam. Zapomniałem napisaś poprzednio . Przerwanie ma reagować na zbocze opadające i tak jak już napisałem pierwszą instrukcją w przerwaniu jest wyłączenie triaka. Sam stosowałem takie rozwiązanie i nie miałem najmniejszych problemów. Jednakrze stosowałem inny detektor zera (bardziej precyzyjny).
Przerwania PCINTx wykonują się przy każdej zmianie stanu logicznego, niema możliwości konfiguracji np. tylko dla zbocz narastającego lub opadającego. Stan zbocza na poszczególnym pinie sprawdzasz w przerwaniu. Attiny13 ma 6 pinów PB.0-PB.5 (PCINT0 do PCINT5) które mogą wywołać przerwanie. I tu jest jedna myląca rzecz :) dla tych pinów jest tylko jeden...
Żeby nie mieszać przysłona zasłonięta ma dawać 0 (zaneguj sprzętowo) podłączone do pina /INT (jak zwał tak zwał) przejście /INT z 1>>0 (zbocze opadające)- przerwanie 0 na pinie /INT licznik liczy prościej nie potrafie
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;...
Dotykając czymś metalowym +5V lub masy wyzwala się przerwanie (opadające zbocze). Oscyloskop na linii +5V pokazuje szpilkę trwającą ok. 200ns (tani chiński oscyloskop, nie wiem na ile precyzyjny). Dzieje się tak nawet przy zasilaniu bezpośrednio z baterii. Co więcej, podłączając oscyloskop tylko do baterii i dotykając minusa nożem też jest szpilka....
Jeśli masz osobny procesor audio to nie ma porzeby sumowania czasów. Wystarczy pomiar pomiedzy przerwaniami. Jeśli jest zachowana symetria to owszem ale dmucham na zimne. Czyli to co nazywasz przerwaniem to szpilka "0" lub "1" czy jakoś inaczej. Przerwanie to zbocze opadające. A co jeśli nie ma CTCSS co proc-audio wtedy daje :?: A tego nie wiem jeszcze...
Anody diod chyba muszą brać prąd z plusa zasilania a są podłączone tylko do wejścia procka. Daj tam (między anody diod a plus zasilania) jakiś opornik 500-1000 Ohm. Skonfiguruj przerwanie na opadające zbocze. Dodano po 4 Masz jakiś oscyloskop?
Ustaw timer w tryb multiwibratora. Opadające zbocze wyzwoli multiwibrator i wywoła przerwanie. Będziesz miał informacje o początku pierwszego bitu.
Zostaje do omówienia pin INT od PCF8574. Na tym pinie pojawi się zbocze opadające gdy zmieni się coś na wejściu PCF8574. Nie ma możliwości maskowania przerwań dla poszczególnych pinów PCF8574, a przerwanie jest wyzwalane na każdą zmianę stanu (zarówno rosnące, jak i opadające zbocze) na pinach PCF8574. Lepiej chyba użyć MCP23017 do tego celu. Dodano...
Kolega snaap nie napisał jeszcze, jak ma skonfigurowane przerwanie INT1. Ja podejrzewam, że ma wyzwalanie stanem niskim, a nie tak jak kolega ravmar (autor wątku) zboczem opadającym. Różnica między tymi dwoma typami przerwań polega na tym, że w tym pierwszym (wyzwalanym stanem niskim) flaga INTF1 jest zawsze zerowana, niezależnie od tego, czy przerwanie...
Faktycznie o drganiach styków nie pomyślałem czyli dać delay 3 ms po wyzwoleniu przerwania ? Czy w jakiś inny sposób lepiej to zrealizować? Czytałem opisy do badania stany styku ale to jest przerwanie i samo w sobie reaguje na zbocze opadające. (stan portu PULL_UP wywalam przerwanie przez podpięcie do 0)
opadać zbocze zbocze opadać wyzwalać zbocze opadać
procesor obróbki wideo głośniczek komputerowy chinczyk schematy
Bashan 200 chłodzony cieczą – test dekompresatora, objawy i regulacja Bashan 200 ciecz – lokalizacja dekompresatora na wałku rozrządu, budowa i diagnostyka