Powiedz mi skąd u ciebie wektor przerwania wynosi 10 ? Czy to jakis Egzotyczny procesor czy jak ? Bo dla przerwania Timera 0 dla normalnego uK jest to inna wartość Patrz np Atmel strona http://www.atmel.com/dyn/products/tools_... C51 Timer1 in Mode 1 with Soft Gated Timer (20 KB, updated 06/04) /** * FUNCTION_PURPOSE: timer1 interrupt...
[url=http://www.google.pl/imgres?um=1&hl...
Witam !!! Jeżeli piszesz w asemblerze, a z Twojego postu tak właśnie wynika to powinieneś poprostu pod adresem w który skacze procesor w momencie wykrycia przerwania wstawić skok do funkcji obsługi przerwania którą napisałeś. Pozdrawiam (M.)
Miałem podobny problem z przerwaniami serial na 2051 i s51/2. Wygląda na to ze albo coś nie działa tak jak powinno albo są jeszcze jakieś procedurki ustawiania tego o których mi nie wiadomo. Narazie używam sprawdzania flagi RI i TI a przerwanie leży i czeka na lepsze czasy.
Zacznij od przerwania timera.
Licznik T2 liczy nadal po przyjęciu przerwania. 8051 ze zredukowaną liczbą wyprowadzeń to np: AT89c1051 AT89c2051 i AT89c4051 ,różnica polega na rozmiarze wbudowanej pamięci Flash, odpowiednio 1k , 2k i 4k bajtów tu jest opis dla [url=http://kuniow.pl/~mipik/Pliki/89c20... a [url=http://kuniow.pl/~mipik/Pliki/opis_... po polsku...
Witam. Korzystam z MCU 8051 IDE. Mam zrobić program, który wykrywa i identyfikuje naciśnięty przycisk na klawiaturze matrycowej. Program powinien reagować na wciśnięcie przycisku - zwarcie łącznika. Klawiatura matrycowa jest podłączona do portu P1: wiersze - bity od 0 do 3 i kolumny - bity od 4 do 7. Co zrobić, żeby uzyskać przerwanie zewnętrzne podczas...
Dobrze myślisz. I teraz wartość 65536-4608 wpisujesz do licznika na start i co każde jego przerwanie.
Twój program nie ma zakończenia. END nic nie załatwia. Przed END powinien znaleźć się taki zapis: [syntax=asm51]LOOP: SJMP LOOP[/syntax] Czyli pętla pusta. Ale i tak masz w obsłudze przerwania jakiś dziwny zapis. Po co zapisujesz do pamięci RAM (adres 30H) zawartość młodszej części rejestru licznika? Tam powinno być raczej wpis właściwych wartości do...
Witam. Timer mikrokontrolera '51 taktowanego zegarem 11.059200 MHz zliczy w ciągu jednej sekundy 921600 impulsów. Ze względu na wielkość timera (2 bajty) może Kolega zliczać setne części sekundy - ustawić przerwanie co 9216 impulsów. Każde wywołanie przerwania zwiększy zmienną o 1, czyli mamy w niej wynik pomiaru z rozdzielczością 0,01 s. Rozwiązanie...
Musisz napisać funkcję która zmieni liczbę w tekst. Do zamiany liczby w tekst służy np. funkcja itoa z stlib.h Pytanie tylko czy SDCC ją zawiera, jeśli tak to funkcja może wyglądać tak: [syntax=c] void lcd_zmienna(int val) { char bufor[17]; lcd_text( itoa(val, bufor, 10) ); } [/syntax]
błagam tylko nie goto.... użyj któregoś z timerów i wykonuj czynności jak podał yego666 w przerwaniu tego timera
witam wszystkich. chcialem zrobic uklad w ktorym nacisniecie ktoregokolwiek z klawiszy bedzie powodowalo obsluzenie go wewnatrz procedury obslugi przerwania. szukalem czegos podobnego na forum ale znalazlem tylko opisy ze mozna to zrobic uzywajac diod ale bez zadnych schematow. wiec robie to tak jak na przedstawionym rysunku ale niestety nigdy na wejsciu...
Nie nie zawiera . W pierwszej kolejności musisz zezwolić na przerwania , a dopiero potem konkretne przerwanie
Witam !!! 3. Co to są banki rejestrów jak je zmieniać. - w 8051 sa cztery banki rejestrow (po 8 rejestrow w kazdym banku) zmienia sie je (banki) poprzez odpowiednie ustawienie bitow RS1 i RS0 rejestru statusowego PSW. Bank rejestrow najprosciej mowiac to zbior wlasnie 8 rejestrow w ktorych mozemy przechowywac argumenty (dane ) dla wykonywanych instrukcji...
JAk w bascomie 8051 rozwiacac nastepujacy problem.Mam program skladajacy sie tylko z kilku petli.Chce zeby za pomoca przerwania zrealizowac natychmiastowe przerwanie wykonywania petli i przejscie do nastepnej. prosze o pomoc
:arrow: calinka W 51 przerwanie w przerwaniu jest możliwe. Oto cytat z: Andrzej Rydzewski "Mikrokomputery jednoukładowe rodziny MCS-51": <<Umieszczenie przerwań na danym poziomie priorytetu decyduje o możliwości przerywania programów obsługi innych przerwań. W czasie wykonywania programu obsługi z niższego poziomu priorytetu, będzie przyjęte zgłoszenie...
Przerwania to nic innego jak wywoływanie konkretnej funkcji, gdy wystąpi określone zdarzenie (np. przepełnienie licznika, odebranie danych z UARTA, zmiana poziomu na pinie INT0) Polecam zapoznać się z datasheetem od uC, którego używasz. Tam znajdziesz informacje o przerwaniach, m.in jakie przerwania są dostępne, jakie rejestry odpowiadają za odblokowanie...
kamyczek masz racje podaja ale w sposob tak zawiły ze niejestem w stanie zrozumiec o co biega dlatego szukałem w necie :) I w tym miejscu musze przyznac racje innym ktorzy pisza ze na baskomie czlowiek wiele sie nie nauczy ;) Potrafie pisac proste programy na AVR w bascomie a nie wiedziałem jak działa przerwanie
Niech będzie to: 1. dwukierunkowa 2. 8-bit 3. z potwierdzeniem 4. master slave 5. używamy przerwań
Jak zaprogramowac timer w bascomie 8051 aby generowal przerwanie po 1s, w jakim trybie powninien pracowac timer(y) i czy trzeba tworzyc jakies petle czasowe? Za pomoc z gory dziekuje :D
nie czytalem twojego programu ale czy korzystazsz z przerwania wyzwalanego zboczem ??? bo ja jak kiedys probowalem wyzwalac zboczem to reti powodowalo wejscie z powrotem do przerwania !!!
Faktycznie nieczytelnie :( Uważam, że powinieneś sprawdzenia dokonywać w pętli LOOP. Jednak odczytywanie będziesz miał opóźnione o ponad 100 ms. Najlepiej gdyby sprawdzanie odbywało się, w którymś z przerwań jeśli to możliwe.
Podstawowa różnica jest to ze w 8051 możesz zmieniać priorytet przerwań czego w avr nie zrobisz (jedynie programowo).Procesory AVR maja za to dużo więcej źródeł przerwań , '51 ma 5
To jest moja opinia i nie musi być absolutnie prawidłowa dla każdego przypadku. Jak najefektywniej obsługiwać klawiaturę matrycową w C (cyfry + kilka klawiszy odpalających funkcje specjalne) ? Wydaje mi się że w obsłudze timera zrobić przemiatanie wierszy/kolumn (kwestia nomenklatury) i jednocześnie rozróżnianie klawiszy (kod klawisza dekodować na podstawie...
Poczytaj sobie ten artykuł: http://www.drogowiec.pb.bialystok.pl/ref... na końcu są czasy ustawowe i kolejności następst świateł. A program to można zrealizować wedle zasady: Inicjalizacja_procesora (stos, zerowanie, ustawienie timerów) przerwanie_timer: podzial:=podzial-1; {Ustawione tak by uzyskać zmniejszanie czasu co 1 sek} if...
Witaj sawic! Na stronie Easy-soft znajdziesz kilka atrykułów na temat programowania mikrokontrolerów 8051 w języku C. http://www.easy-soft.tsnet.pl/modules.ph... Polecam też artykułów zamieszczony w EP od nr. 6/2002. Na mojej stronie http://republika.pl/rejestr znajdziesz też kilka programów w C na 8051 w których wykorzystałem przerwania....
Witam mam problem z programowaniem mikrokontrolera 8051 w programie µvision51. Chodzi o systemy przerwań w mikrokontrolerze, mam kod programu, ale niestety nie znam komend, tzn. nie wiem co dane komendy oznaczają: kod programu: [syntax=apache]Nop LJMP ETYK SETB 10H RETI ETYK: MOV 0A8H, #81H ANL 088H, #0FEH CLR 10H SETB P1.0 CLR P1.6 SETB P1.7 CLR...
Witam wszystkich progrmistów w asemblerze... mam wielki problem, dostałem zadanie ( w zasadzie to dwa, treśc drugiego w innym poście) do zrobienia z czegoś z czego jestem zielony i potrzebuje pomocy w rozwiązaniu i zrozumieniu problemu... Za wszelką pomoc bardzo dziękuje Zaprojektować i uruchomic system generujący przerwanie czasowe, spełniający następujące...
Zablokuj przerwania (przed wejściem i po wyjściu z funkcji) i zobacz czy się zmieni. Pewnie procek w międzyczasie w przerwania wyskakuje.
Trzeba jeszcze pamiętać o numerze przerwania np: interrupt 1 to akurat przerwanie pod adresem ubsługi 0x0Bh w Keilu.
Ale czy przy używaniu przerwań też można? Ponieważ przerwania INT0 i INT1 będą wykorzystywane. Co prawda w bascom łatwo włączyć konkretne przerwanie tylko kwestia jest w tym, czy reszta wtedy jest użyteczna czy już tylko przeznaczona na przerwania i nic więcej.
Zmień początek programu, reszty na razie nie analizowałem. [syntax=asm]sek1 equ 55h sek2 equ 56h ms1 equ 57h ms2 equ 58h min1 equ 59h min2 equ 5Ah godz1 equ 5Bh godz2 equ 5Ch MOV R5,#0 MOV R4,#0 MOV R3,#0 MOV R2,#0 org 0h JMP stoper ORG 000BH jmp INTT0;przerwanie od timer 0 org 100bh[/syntax]
nic nowego, nie mam pojęcia co jets nie tak z tym przerwaniem, symuluje sie dobrze ---------------dodano Wyłączyłem bit maskujacy przerwanie i sytacja sie nie zmieniła, program dalej idzie w buraki po kilkukrotnej zmianie stanu na porcie p3.2 Dodano po 3 myśle że to nie wina programu, tylko bramki NAND. urządzenie wykożystuje jeszcze dwa klawisze i...
Witam Mam do napisania program generujący przebieg prostokątny o następujących parametrach: Diody świecą się przez 50 ms, potem przez 950 ms nie świecą, potem przez 300 ms świecą, a potem przez 700 nie świecą. Napisałem na to taki program: [syntax=c]#include<8051.h> #define czas 65536-46080 void zwloka50(void) { TH0=76+1; TL0=0x00; TR0=1; while(!TF0);...
Chyba nie, taka "uroda" 8255. Można by było wystawiać dane i ręcznie generować sygnał strobe, ale wtedy komunikacja nie działała by już w przerwaniach.
To jak na boga odczytac ilosc impulsów ktora przekroczyła 255 ? Skoro kazda operacja logiczna operuje na 8 bitowym akumulatorze to jak to zrobic ? Co przerwanie wpisywac liczbe z T1 do rejestru i zerowac TH1 i TL1 ? niby bylo by to wtedy (max 1000 impulsow na sec) czyli 15 przerwan przy kazdym przerwaniu zliczone max. 67 ale jak to poskladac do kupy...
Trochę wróżycie z fusów. Nigdzie nie wyczytałem, że jest to przerwanie od UART tylko przerwanie w którym wysyłamy przez UART chyba 2 bajty. Tylko autor postu tak naprawę wie "o co chodzi" w tym programie. Jeśli utrata przerwania nie zakłóci działania programu można je wyłączyć. Jeśli nie, potrzebna będzie flaga "dane gotowe" i obsługa w przerwania przypadku...
To przez przerwania ! BASCOM 8051 i AVR po obsłużeniu przerwania wyłącza (nie wiedzieć czemu) ogólne zezwolenie na przerwania jeśli procedura obsługi jest w środku listingu. Ja mam swój osobisty sposób na tego typu przypadki a mianowicie, umieszczam procedurę obsługi przerwania na samym końcu programu i to pomaga...
No więc mają to być przerwania od timer0. Kończąc podprogram1 kończę zliczanie timer0. Jeśli przejde teraz do podprogramu2 to na nowo uruchamiam timer0 ale wtedy chcę aby generował mi przerwanie do przerwania2 . bascom 8051
W przerwaniu od timera masz tylko ładować na zmianę do TH0 czasy trwania stanu L i H w zależności od stanu wyjścia. Jeśli nie pomyliłem się w mnemonikach 8051 to kod ma tak wyglądać. Wartości czasów TIM_L i TIM_H musisz sobie policzyć taka by spełniały założenia. ORG 0 ; wektor zerowania JMP MAIN ; bezwarunkowo skocz poza obszar wektorów przerwań ORG...
Witam Szukam kompilatora C do Atmega32 który potrafi obsłużyć przerwania tak jak dla 8051 w RIDE tj. void UART (void) iterrupt 3 using 0 {} . Z góry dzięki
Problem rozwiązałem: przerwania w symulatorze trzeba generować z palca.
Masz rację, zauważyłem to, ale cóż... Prowadzący zajęcia wymaga algorytmu, to trzeba coś zrobić, ale właśnie nie do końca wiem co, jak pokazałem w/w algorytm to powiedział, że jest źle, ale nie wytłumaczył jak powinien być poprawiony. Dostałem znak zapytania przy bloku decyzji "zgłoszono przerwanie?" i teraz nie wiem czy tego wcale nie powinno być i...
Wie może ktoś co zrobić w Keilu, żeby można było korzystać z więcei niż jednego przerwania? Chodzi o to, że jak jest ich już 2 to nakładają się na siebie. Pisze program w C i nie wiem co z tym fantem zrobić?? W asm to nie ma sprawy bo odrazu robi się skok do właściwej procedury i dopiero tam odkłada się co potrzebna na stos a w C to juz gorzej bo nie...
(at)lawczys Witam ! U mnie w Bascomie AVR DEMO wer. 2.0.7.9. plik Twój kompiluje się bez błędu, kod zajmuje 9% pamięci ATmega8. Może używasz Bascoma 8051 zamiast AVR ? Pozdrawiam. Stefan
Sugeruję za wczasu zmienić szkołę, bo może się okazać, że pomoc na elektrodzie nie wystarczy do jej ukończenia.
Napisz jeszcze co ma liczyć układ. Czas czy impulsy z zewnątrz. Jeżeli impulsy to przerwanie bedzie z zewnątrz, wejście INT0 lub INT1.
Dobry pomysł :D Gdyby priorytety były ustawione na stałe , to przy ich liczbie 32 ,w niektórych sytuacjach prędzej ulotniłaby się pamięć programu niż obsłużone było przerwanie o najniższym priorytecie :D:D
Bardziej zależy mi na pragramach.
Poradziłem sobie - winny był monitor PAULMON, który nieprzystosowany do pracy z DS89C430 nie miał przekierowania przerwania od portu szeregowego 1 (wektor 003Bh). Po wywołaniu przerwania program głupiał i skakał do kodu monitora. Przerobiłem jakiś inny, prostszy monitor i wszystko działa. Jeżeli będziecie pisać monitor na ten procesor, umieścicie kod:...
Dziękuję dobry człowieku za odpowiedź :) Optimized access zostało wyłączone coś pomogło ale teraz wyskakuje mi błąd : 0095 Wiadomość przerwana ze względu na przekroczenie limitu czasu wiadomości. 80E2 Wiadomość przerwana ze względu na błąd ramkowania. 80E1 Wiadomość przerwana ze względu na błąd parzystości jak to ustawić bo za chiny nie mam pojęcia...
8051 obsługuje przerwania zewnętrzne. Nie widzę problemu, by zastosować taki mechanizm do odłączania CPU od magistrali.
Wiem jak działają przerwania, nie wiem z kolei jak je konfigurować. W takiej sytuacji, najprostsza droga to HAL. Akurat konfigurowanie peryferii dobrze w nim działa. Podejrzysz co robi HAL i po robocie, chyba, ze chcesz na nowo wynajdować koło. Niby wiesz jak działają. Dlaczego więc pytasz o rejestr maski przerwań zewnętrznych? To pytanie nowicjusza...
Czy ktos moglby mi napisac przykladowa obsluge przerwania od timera, bo ja napisalem ale dziala to dziwnie.Za pierwszym razem obsluguje przerwanie i skacze do podprogramu a potem jak wraca to juz do sjmp $ na koncu i licznik sie nie laduje do zadanej wartosci i liczy od zera, ale problem wiekszy w tym ze jak juz sie przepelni to nie obsluguje przerwania...
Ano racja, przy tak dużym preskalerze i nie za długim przerwaniu to będzie prawie jak 8051... ;) Właściwie to nawet dokładnie tak samo, bo mniej znaczący bajt timera w 51 zachowywał się dokładnie tak, jak ten preskaler.
He..He.. W książce kilkanaście rozdziałów wcześniej napisali. „W mikrokontrolerach AVR nie jest, zatem możliwe swobodne ustawianie priorytetów źródeł przerwań, tak jak to jest np. w 8051. Czasami może zdarzyć się, że podczas obsługi jednego z przerwań potrzebne będzie obsłużenie innego przerwania.”.. bla..bla..”Wykrycie przez odbiornik...
RSa zostaw na razie w spokoju, pomęcz się z napisem statycznym umieszczonym na stale w programie, najpierw jako jedną tablicę opisującą od razu cały wyświetlacz dla napisu. Potem za pomocą opisu napisu znakami i opisem znaków. Nie trzeba ci niczego pisać. Twój program był w porządku lecz jeszcze bez przerwania to najistotniejsze a przynajmniej odpowiednio...
Poczytaj o licznikach 8051, ładujesz wymierzoną liczbe do licznika, licznik odlicza tyle cykli maszynowych, i po odmierzeniu tej liczby (20ms) zmieniasz w przerwaniu stan portu, i tak w kółko, trzeba znać częstotliwość taktowania. Taki skrót żebyś wiedział czego szukać.
END jest tylko znacznikiem dla kompilatora i nie powoduje skoku na początek programu, musisz to zrobic za pomocą rozkazu SJMP, AJMP lub LJMP w zależności jak długi masz program. A co do instrukcji RETI i RET nie jestem pewien ale chyba chodzi o priorytety - jeśli zakończysz jedno przerwanie o wyższym priorytecie instrukcją RET to przerwanie o niższym...
Co do $regfile = "m8535.dat" to jest to coś w rodzaju instrukcji, którą dodaje się w pierwszej linii programu, z tym że w cudzysłowiu należy wpisać nazwę pliku odpowiadającego zastosowanemu uC, który można odnaleść w miejscu gdzie zainstalowano bascoma (np. C:\ Program Files\MCS Electronics ...). Dla porządku m8535.dat nie da się tym zaprogramować bo...
Piszę pracę inżynierska, którą jest emulator systemu DSM-51. Program mam prawie skończony, tylko mam kilka wątpliwości. Jest kilka trudnych elementów, ale nie wiem, czy w ogóle warto je implementować. A te elementy to: 1. Tryb 0 i 2 pracy sterownika transmisji szeregowej mikrokontrolera 8051. W tych dwóch trybach szybkość jest stała, ale nie wiem, czy...
Wykorzystaj timer i w przerwaniu zmieniaj stan pinu, 8051 na pewno jakis timer ma :) A jeszcze lepiej jak ma sprzetowy PWM.
U mnie działa bez problemu. Niepotrzebne są 2 linie w obsłudze przerwania: [syntax=asm]CLR P3.0 CLR P3.1 [/syntax] Bo to jest robione zaraz po wejściu do procedury obsługi przerwania.
michalko12: akurat poparte doświadzczeniem. Kiedyś tworząc miernik częstotliwości na 8051 w przerwaniu wykonywane było wiele rzeczy, przez kolejny tydzień walczyłem ze znalezieniem przyczyny bo raz działał ok, innym razem świrował. Od tego czasu staram się, żeby przerwanie byłoby jak najkrótsze...
http://www.atmel.com/dyn/resources/prod_... tutaj sprawdzisz, że P3.2 to nie"port szeregowy", a wejście przerwania zewnętrznego - dalej drąż treść zadania i męcz kartki swoimi zapiskami ja włączanie Timera 0 zrobiłbym tak ............ org 03h setb tr0; włączenie zliczania czasu clr exo ; ; wyłączenie przerwania zewnętrego żeby nie...
Chyba raczej piąty Obaj, koledzy, macie rację, bo chodzi Wam o ten sam bit. Jednak kozak_sc numeruje bity po wykładnikach liczby 2. januszth: oto przykład... 01001000 | 00010000 ------------ 01011000 (ustawienie bitu) 10110010 | 00010000 ------------ 10110010 (pozostaje bez zmian, bo bit już był ustawiony)
MOVX służy do komunikacji z zewnętrzną pamięcią DANYCH. Rozkazy są w pamięci programu z której możesz odczytać (tylko) dane rozkazem np. MOVC A,(at)A+DPTR, niezależnie czy używasz zewnętrznej czy wewnętrznej pamięci programu. W tej pamięci są jak piszesz "operacje przerwań". (Oczywiście pod warunkiem, że je tam umieścisz) :). pozdrawiam
Najlepiej w tym przypadku włączyć przerwanie od T0 i po każdym przepełnieniu licznika zwiększać o jeden rejestr B org 0 sjmp start org 000bh ;wektor przerwania od T0 inc b cjne b,0,koniec ;tu jakieś instrukcje po odliczeniu 2^24 koniec: reti start: mov b,#0 ;konfiguracja T0 ;program główny end To jest mały zarys zliczania 2^24, należy jeszcze odpowiednio...
Masz narzucony zegar 12MHz i on jest podstawą do obliczeń. Timer będzie taktowany zegarem 1/12 Fosc czyli 1MHz i tego nie zmienisz. Masz do odmierzenia 2 czasy 3360us i 10640us. Wybierając tryb 2 Timera utrudniłeś sobie sprawę bo maksymalny okres który możesz zliczyć do 256us. W takim przypadku musisz zrobić dodatkowy programowy licznik. Największy...
Hmm.... no ok. a jakby sprawa wyglądała w przypadku AVR? bo powiem szczerze - uzywam w tej chwili Bascoma 8051 tylko ze wzgledu na to ze na AVR wbudowany symulator nie pokazuje mi w czasie rzeczywistym stanów wyjść (tam na tych diodkach..). Bycmoze jakiś mój błąd konfiguracyjny ale póki co go nie odkryłem. W ciagu najbliższego miesiąca planuje się zaopatrzyć...
Witam, Robię zegar, czy istnieje jakakolwiek metoda dla 8051 aby odmierzyć dokładnie 1sekundę, wszytko było by ok gdyby przerwanie było generowane co konkretną ilość taktów niestety tak nigdy nie da się zrobić ponieważ poza timerem trzeba zrobić jakąś nieskończoną pętlę a wszystkie skoki w 8051 trwają 24 cykle zegar za czym idzie to że czasem przerwanie...
Witam. Temat już był wałkowany wielokrotnie ale w asm dopiero zaczynam i już pół dnia siedzę i mi sie coś sypie. $include(REG51.inc) ORG 000Bh JMPPRZERWANIE MOV TMOD, #00000001b SETB TR0 SETB EA SETB ET0 MOV R7,#1FH ;=======================================... LOOP: JMP LOOP ;=======================================... PRZERWANIE: PUSH B...
ja najcześciej korzystałem z książki pt: Podstawy porgramowania mikrokontrolera 8051, ale i w internecie mozna znależć wiele przydatnych i pozytecznych rzeczy! Zgadzam sie z JOZZIM, bardzo dobra książka. Autorem jest Gałka (chyba Piotr) i kosztuje ok 31 zł. Jednym słowem wszystko o uP rodziny 8051 - rejestry, flagi, przerwania itd, itd :)
z zewnętrzną pamięcią danych 32kB oraz przetwornika A/C wpiętego w przestrzeń adresową danych . Jest źle. Skoro ma być w przestrzeni adresowej to musi być dekoder adresu który ustawi sygnał CS/ dla przetwornika po wybraniu konkretnego adresu nie będącego zajętym przez inne peryferia. Spójrz do noty katalogowej tego MAX150; https://obrazki.elektroda.pl/8044273300_...
W zasadzie nie potrzebujesz JP13. To chyba taki ukłon w stronę 8051 z dwoma przerwaniami zewnętrznymi. AVRy mają przerwania PCINT na prawie wszystkich pinach i w momencie jak wciśniesz przycisk i tak możesz wywołać przerwanie. Niemniej w ogóle nie powinieneś robić tego na przerwaniach zewnętrznych (poza wyjątkową sytuacją gdy wprowadzasz uC w głębokie...
A wchodził Ci znów po tym do tego przerwania ?
Nie porównuj programu z BASCOM 8051 do programu z BASCOM AVR bo to dwa różne kody wynikowe. W układach AVR wszystko odbywa się szybciej. Mniej taktów zegara przypada na wykonanie jednej instrukcji. Poza tym tam nie musisz na nowo uruchamiać licznika - działa on stale od momentu gdy ustawisz preskaler. Uproszczenie procedury przerwania w sposób przez...
DMA w Z80 to znaczna przewaga. DMA ma duże znaczenie w wolnych CPU. Z80 demonem szybkości nie był ale DMA, wektoryzowane przerwania (to akurat 8051 ma) dodawały mu kopa. Nawet gdy CPU jest szybkie, brak DMA daje się odczuć, dlatego wszystkie ARM mają DMA. Jak szybki musiałby być CU aby bez DMA odsłużyć kamerę?
Robisz zasadniczy blad ustawiajac flage TI ty masz ja kontrolowac czy jest zeram co oznacza ze przerwanie ja wyzerowalo. Jak zrobisz wpis do SBUF to nastapi automatycznie wykonane wysylanie tego bajtu. Po wyslaniu procek ustawia flage TI co powodyje wygenerowanie przerwania i to wszysto.
Nie. Często do bloku SPI/I2S możesz podać tylko zegar z głównego oscylatora lub wygenerowany przez PLL. Musisz sprawdzić w Refrence Manul czy masz dostępny dedykowany pin I2S_CKIN (w STM32F4 chyba jest). Oczywiście w popularnym zastosowaniu nie ma to większego znaczenia natomiast przy Audio HiFi, HiEnd gdzie wymagany jest mały jitter i dokładne zegary...
W kodzie jest mnóstwo błędów, ale to, co Ty uważasz za błąd akurat błędem nie jest. Zacznijmy od tego, że prawdopodobnie masz ciągle zgłoszone i nieobsługiwane przerwanie nadajnika, bo zupełnie nie wiadomo po co kazałeś UARTowi wysłać 0. Timer generujący szybkość transmisji jest źle zaprogramowany - pierwszy okres będzie inny, niż następne, a te następne...
Witam Powstawiaj odpowiednie instrukcje tam gdzie napisałem zapal, zgaś itp. Powinien program zadziałać nie daję gwarancji że się nie machnołem. Niemniej idea chyba będzie widoczna i powinieneś w razie czego uruchomić ten program. Pozdrawiam ledequp1.7 buzerequp1.5 licznikequ21h ; licznik przerwań czas_led22h czas_buz23h czy_sequ1 ; czy sekunda org0000h...
ok ale mógł byś mi podać coś dokładniej na temat tych przerwań bo zapomniałem dodać ze z tego programowania to orłem nie jestem i za bardzo nie wiem jak ustawić te przerwania
Doczytałem :) A więc tak: Podczas przyjmowania przerwania są ustawiane wew. dwa przerzutniki odpowiadające wyższemu i niższemu poziomowi (w 8051 są dwa). Polega to na tym że przerwanie wyższego poziomu nie może zostać przerwane przez niższy lub ten sam poziom priorytetu. Jeżeli przerwania zostaną przyjęte jednocześnie i wszystkie mają jeden poziom o...
witam Dzięki za zainteresowanie:) Uwzględniłem tą poprawke i nadal to samo:(, ale wydaje mi sie ze akurat to nie jest konieczne gdyż timer2 działa z automatycznym przeładowaniem pozdro Dodano po 6 Ja z kolei wyczytałem w ksiązce do 8051 że jeśli zostanie zgłoszone przerwanie o wyższym priorytecie to procesor powinien do niego przejść, ale u mnie tego...
źle mnie zrozumiałeś, tu przerwanie spowoduje reset procesora. W standardowym rozwiązaniu (sprzetowy pies) coś takiego by nie miało miesjca
Numeracja plików mam rozumieć że jest zgodna z numeracją zaznaczonych punktów pomiarowych? Jeśli tak to definitywnie ten F12438-03 jest uszkodzony. Pin 13 8051 to wejście czujnika prędkości wału a 12 to położenie wałka rozrządu (wywoływanie przerwań). Bramka 74LS02 odwraca sygnał z F'a dla 8051, kolejna bramka 74LS02 sterowana z 8051 zmienia zapewne...
Witam, mecze się i mecze, próbuje stworzyć układ który na wyjsciu bedzie mi generował przebieg prostokątny 5V ale za nic mi to nie idzie, wysyłam wam podgląd schematu który stworzyłem i przebiegi Diody maja po 5V http://obrazki.elektroda.net/2_123972014... http://obrazki.elektroda.net/0_123972024... z góry dzięki wszystkim za wskazówki....
Jasne! Ja Ci podam! Jest to adres 002Bh. W tych pdf-ah sa opisy pewnie do wersji podstawowej czyli 8051.
Jak przechwytujesz dane z portu szeregowego: w przerwaniach czy w pętli ?
Witam Mam do napisania program do licznika T1 ze zliczaniem impulsów zewnętrznych z obsługą przerwań. Bez NPM tylko jako przerwanie. Proszę o pomoc.
Jeżeli chodzi o sumulatory Bascoma AVR i 8051 to nie nalęży im za bardzo wierzyć w podawane czasy, jężeli przerwanie miało być wywołane np. co 10ms, Bascom mówi 15 to należy go olać i wierzyć we własne obliczenia (o ile są poprawne).
Dzięki za szybką odpowiedź. Dobry pomysł. Myślałem też nad takim podejściem, ale widocznie jeszcze nie obmyśliłem tego optymalnie. Teraz już wiem, że może zadziałać :). Będę miał normalny LCD h**p://www.artronic.pl/o_produkcie.php?i... i RAM 32kB. Widzę, że podpiąłeś sporo peryferialii pod tą magistralę :). No to 1 problem się rozwiązał :) Pozdr....
Problem jest prozaiczny. Przycisk obsługujesz czy on tego chce czy nie. Polecam rozwiązać obsługę przycisku w przerwaniu wtedy będzie działało.
org 0h ljmp program: org adres przerwania1 ljmp lub call przerwanie ewentualnie jeśli nie wchodzi na inne aktywne przerwanie to może być tu napisany program przerwania opcjonalnie reti org adres programu program: tu program, oczywiscie musi być zapętlony aby nie doszedł do etykiety przerwanie przerwanie: tu program przerwania + opcjonalnie reti , ret...
Po pierwsze, żeby coś napisać w C musisz podciągnąć bibliotekę z predefinicją danego procka, chyba DS89C450.h lub jakoś tak. Włączyć opcją #include "DS89C450.h" do pliku Teraz grzeczenie otwóż ten plik i poczytaj co i jak ma ten procek w C dostępne :) czy jest to sygnał INT5 czy, co brak. Generalnie 8051 nie miał przerwań zewnętrznych powyżej INT1 ,...
od czegoś trzeba zacząć :) http://www.easy-soft.net.pl/artykuly/jez... co kolega sądzio poniższym rozwiązaniu? http://extremeelectronics.co.in/microchi... Na poczatek ok, można zrozumieć zasadę...
Czy można w dowolnym miejscu porgramu wywołać funkcję obsługi przerwania - SIGNAL (SIG_USART0_TRANS). Obecnie jest ono wywoływane po każdym wysłaniu znaku czyli: UDR='x'; ale czy mogę wywołać je w innych sposób analogicznie do procesorów 8051 gdzie wystaczało ustawienie TI=1; Próba ustawienia bitu: UCSRA|=0x40; nie powiodła się, gdyż przerwanie nie...
Ja również zrobiłem kiedyś zegar na tym mikrokontrolerze. Działa już bezawaryjnie od około 2005 roku. Ja uczyłem się programować ten układ na podręczniku "Podstawy programowania mikrokontrolera 8051" panów Gałka. Tam właśnie jest opisane użycie tajmera do odliczania czasu - korzystając z kwarca 11,0592 można bardzo prosto uzyskać przerwania co dokładnie...
serialin przerwanie delphi przerwanie przerwanie timer0
tokarka frezarka volvo silnika laptop karta inteligentna
diagram schemat diagram schemat
Blaszki i styki w piecyku Saunier Duval Opalia - funkcje i znaczenie Wentylator w Passacie działa po wyłączeniu silnika - czy to normalne?