Zacznij od przerwania timera.
<ciach> V-USB wymaga aby przerwania były blokowane nie dłużej niż ~25 cykli. Czyli w tym przypadku występuje problem ze zbyt długim przerwaniem timera w bibliotece "IR". Najprościej byłoby odblokować przerwania w ten sposób: Zbędne wyciąłem, bo logicznie kłóci się z kolegi postem. :)
Jakie Bez tego mechanizmu ciężko ogarnąć takie tematy jak zagnieżdżanie przerwań czy zmiana kontekstu po przerwaniu. Idea jest taka, że w twoim przypadku SysTick musi mieć wysoki priorytet (najwyższy w "systemie", w znaczeniu w RTOSie), tak aby tick był regularny i się nie gubił. Przełączanie kontekstu na najwyższym priorytecie zaś jest średnio zabawne,...
Witam Otóż mam mały problem. Pisze sobie szybkie przerwanie dla timera na Atmega644, to co mi kompilator z C przetłumaczył na assembler wrzuciłem do wstawki assemblerowej a przerwanie zadeklarowałem z argumentem ISR_NAKED, rejestry używane w przerwaniu zarezerwowałem przez: register uint16_t licznik asm("r30"); register uint16_t temp...
W poprzedniej wypowiedzi dokonałem poprawek w przykładowym kodzie. Tak, to już jest kiedy Elektrodę traktuje się jako przerywnik przy pracy. Kwestią otwartą jest nadal testowanie wybranego bitu, lub bitów. 1. Jak to wykonywać poprawnie testowanie jednego bitu ? Zależy to od danej sytuacji. W trakcie testowania pojedynczego bitu w PINx z pominięciem...
Tryb CTC jest w atmega8 na timer1 i timer2, Jeżeli chcesz mieć dokładnie to zastosuj któryś z powyższych timerów. przy odpowiednim skonfigurowaniu timera może on automatycznie zmieniać stan na odpowiednim wyjściu. (dla timer 1 jest to OC1A/PB1 OC1B/PB2, a dla timer2 OC2/PB3) W trybie CTC nie musisz ciągle wpisywać wartości do TCCRx.
Witam. Dużo siedzę w asm dla '51 ale bardzo dawno nie używałem przerwań zewnętrznych i wyleciało mi z głowy - jak zmienia się, żeby wywołanie programu obsługi przerwania działało na zbocze 1-->0 (sprzętowo) - u mnie działa na poziom niski a jest jakiś bit co to zmienia ale nie pamiętam jego nazwy/adresu... programowo bym to zrobił ale to się mija z...
Pytanie moze nie do konca dotyczy tego forum ale wiekszosc programujacych uP w assemblerze ma podstawy assemblera z komputerow PC... mam nadzieje ze zagladaja tu jacys specjalisci z tej dziedziny. Do rzeczy! Pisze TSRa czyli program rezydentny i mam problem z obsloga przerwania int 21h. Chodzi o to, ze moj TSR musi utworzyc plik i zapisywac do niego...
http://obrazki.elektroda.pl/4029783300_1... Układu SID (6581 stary i 8580 nowy), będącym muzyczną orkiestrą komputera Commodore 64 nie trzeba nikomu przedstawiać – między innymi dzięki jego brzmieniu owa maszyna osiągnęła tak dużą popularność. Warto tylko przypomnieć, że SID ma jedynie trzy kanały, ale umiejętności programistów...
Nie mam żadnego pomysłu na to aby zmusić kompilator AVR GCC(+AVRstudio) aby procedurę obsługi przerwania całkowicie zrealizować jako procedurę napisaną w assemblerze reszta jest w C... Utwórz sobie plik z rozszerzeniem "S", umieść w nim np. coś takiego i dołącz go do projektu :) #include <avr/io.h> #ifdef __SFR_OFFSET #undef __SFR_OFFSET #endif...
https://obrazki.elektroda.pl/3029878300_... Witajcie moi drodzy Oto trzecia część mojego praktycznego tutoriala dla ośmiobitowego mikrokontrolera PIC18F2550 od Microchipa i programatora SDCC . W tym temacie najpierw krótko omówię różne konfiguracje oscylatora PIC18F2550 - oscylator wewnętrzny (internal oscillator), zewnętrzny (zegarowy...
coś w ten deseń? na razie chodzi mi o to że: Licznik działa zgodnie z zegarem. Po przepełnieniu występuje przerwanie, a jego obsługa skacze do timera i uruchamia go na nowo. cały czas nasłuchuje usart i gdy nadejdzie przerwanie, to obsługa wrzuca z tcnt(czyli wartość licznika) do tablicy coś z tego ma sens? .include "m32def.inc" .cseg .org 0 jmp restart;...
Kiedy zdarza się przerwanie, bit I w SREG zostaje wyczyszczony, podczas powrotu z przerwania RETI ustawia bit I z powrotem na 1. Zapobiega to kolejnemu wywołaniu tego samego przerwania dopóki jego obsługa nie zostanie zakończona, jak i zagnieżdżonym przerwaniom.
Przerwania 89c2051 .asm Witam !!! pytanie dotyczy w zasadzie obsługi przerwań programu w .asm Program oparty na od T0 pomiar czasu-(timer) od T1 wyświetlanie wyniku wyświetlacz led7seg sekwencyjnie na port p1 moje pytanie to: - czy po zgłoszeniu każdego z tych przerwań mam zapisywać na stos psw;acc;cy - czy przy zakończeniu każdego z tych przerwań stosować...
W PONOŻSZYM PROGRAMIE JEST JAKIŚ BŁĄD, JEST PROSTY PROGRAMIK GENERUJĄCY PRZERWANIE OD T0 I ZMIENIAJĄCY CO 0.5s STAN P1.7 CHOĆ PROSTY TO JEDNAK NIE DZIAŁA. KOMPILOWANY JEST POD KOMPILATOREM FORTECH ASSEMBLER RODZINY PROCESORÓW 8051 NA 2051. NA PORT TEN WŁĄCZYŁEM DIODĘ JEDNAK NIC, TO SAMO ZADANIE POD BASSCOM NIE PISANE W ASSEMBLERZE DZIAŁA WIĘC UKŁAD...
Czy mógłby mi ktoś przesłać jakiś PROSTY program (w assemblerze) z wykorzystaniem przerwania na AT 90s2313 (np.migają diody i po naciśnięciu klawisza przestają).Jak ustawić przerwanie?-co przesłać do rejestru... Moze zna ktos jakieś odnośniki do stron z przykładowymi programami? Za pomoc z góry dziękuję.
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...
Witam, chcę zrobić prosty stoper zliczający 655.4sekundy aktywowany wciśnięciem 20H ( w symulatorze na razie), jednak nie działa mi przerwanie i nie wiem czemu, program zapętla się i inkrementuje tylko R1 i gdy licznik T2 się przeładuje to następuje zresetowanie i dalej zlicza, nie obsługuje przerwań PRZE_INT0 i PRZE_T2. Prosiłbym o pomoc :) EDIT NIE...
Witam, napisałem obsługę zewnętrznego przerwania, które się wykonuje bezproblemowo, jednak po obsłużeniu przerwania program nie wraca od razu w miejsce z którego przerwanie zostało wywołane. Oto kod: [syntax=asm].INCLUDE "m16def.inc" .DEF acc = r16 // akumulator .EQU SYS_FREQ = 1 .CSEG .MACRO delay1sek // delay 1 sekunda na 1MHz ldi r17, 0x09 9 delay3:ldi...
Wiatm potrzebuję zrobić pewną procedurkę ale nie wiem jak to wykonać. A mainowicie podczas wykonywania programu gdy wygenerowane zostanie rzerwanie INT0, program wchodzi do procedury przerwania, a po wykonaniu wraca do miejsca w programie z którego zostało wywołane. Chodzi mi o taką sytuacje żeby program zależnie od wartości zmiennej sprawdzanej w przerwaniu...
Witam, Musze zrobic szybkie przerwanie od timera w atmega162. W związku z tym nie moge sobie pozwolic na korzystanie z pamięci SRAM i stosu, więc zostają tylko rejestry, wystarczą 3, w tym dwa wskaźnikowe np. X. No więc w właściwym programie te rejesrty nie mogą byc użyte, ani modyfikowane. Czy da się to zrobic w AVG-GCC? Przepisywanie dużego fragmentu...
Cześć Napisałem sobie taki prosty programik używający timera TR0: ORG 0000h LJMP START ;tablica wektorow ********* ORG 000Bh LJMP przerwanie_licznik ;*************************** START: MOV R5, #0 SETB ET0 ;wl. przerwania z licznika ET0 SETB EA;ogolne wl przerwan MOV TMOD , #00000001b ;licznik T0 jako 16bit SETB TR0 ;start licznika program1:...
w tej wersji kompilatora po bezblednym skompilowaniu programu chcialem zaprogramowac proca ale pokazuje sie komunikat "Error(s) occured during assembly" natomiast w wersji 1.23.5 nie pokazuje tego bledu,dlaczego tak sie dzieje?
Witam Próbuje napisać program w asemblerze wykorzystujący przerwania od dwóch liczników (uczą dopiero programowania avr w asemblerze) Przerwanie od licznika 0 ma obsługiwać pierwsze cztery wyświetlacze a przerwania od licznika 2 kolejne 4 Problem polega na tym - że pojedynczo liczniki działają a jak chce użyć dwóch to działa tylko jeden (licznik 2)....
witam Co może być w tym kodzie nie tak?? .MODEL SMALL .DATA ;Segment danych Table DW 100 dup(?) ;Tablica danych .CODE ;Segment kodu ;Na wejściu procedura otrzymuje rejestry SI i BX, które wskazują na cześć tablicy ;poddawaną sumowaniu AddEm PROC lea bx,Table[si+bx];wyznacz w BX adres efektywnego pierwszego słowa xor ax,ax mov cx,20 aloop:...
Mam problem. Musze napisać program w asemblerze na dwóch licznikach który ma włączać diode na 100 ms i wyłączać na 900 ms. Napisałem i nie działa (bynajmniej u mnie) Czemu ?? ORG 00h LJMP START ORG 0Bh LJMP 50h ORG 1Bh LJMP 70h START: ILOSC EQU 65536-46080 ; czas odliczania 50ms MOV TH0,#ILOSC/256 MOV TL0,#ILOSC-(ILOSC/256)*256 MOV TMOD,#00010001B SETB...
Witam, Moje pierwsze starcie z asemblerem na ARM i przerwaniami ... Mam taki kawałek kodu tmr0_irq stmdb r13!, {r0-r4, r12, r14} ldr r0, =TMR0_BASE ldr r1, =TMR0_RST str r1, [r0, #TMR0_TCR_OFS] ; Reset timer0. ldr r0, =FIO_BASE ldr r1, [r0, #FIO2SET_OFS] ; Read content of set register. ldr r2, =LED mov r3, #&1000000 cmp r1,...
moze ktos juz pisal program na arm'a w asmie , chodzi mi o konfiguracje i obsluge przerwan zewnetrznych dodam ze napisalem to w c ale niestety jest zbyt wolne prosze o jakies sugestie , moze ktos ma jakis sprawdzony kompilator do asm pod arm7 etc
Witam Mam kilka pytań. 1. Czy w WinAVR jest możliwe wyłączenie dodawania przez kompilator prologu i epilogu do każdej wstawki asemblerowej. A jeśli tak to jak ? 2. Jak połączyć plik napisany w C z plikiem napisanym w asemblerze. avr-gcc -Wa,-adhlns=przerwania.lst,-gstabs -Wl,-Map=pierwszy.map,--cref -lm przerwania.S -o przerwania C:/WINAVR/BIN/../lib/gcc/avr/3.4.6/../.....
Mam małą prośbę do Was :) Może ktoś wytłumaczyć co gdzie i dlaczego się odwołuje ? Chodzi o to by wytłumaczyć mi jak te programy działają bym mógł je sobie edytować.... ZEGAREK LJMP START1 ORG 0BH LJMP PRZERWANIE ORG 1BH LJMP PRZERWANIE_2 ORG 100H START1: MOV TMOD,#17 MOV TH0,#76 MOV TL0,#0 MOV TH1,#76 MOV TL1,#0 MOV IP,#2 MOV R5,#20 MOV R4,#20 MOV...
Witam Chce zrealizować w moim programie opóźnienie rzędu 1500us (1,5ms). Korzystałem z funkcji 86h przerwania 15h, jednak to przerwanie nie działa na wszystkich kompach. Chce wykorzystać inny sposób. pomocy KaMaS Temat zamykam. - arnoldziq
Dzień dobry Mam problem z podstawami programowania w asemblerze. Dany jest prosty program: [syntax=asm] .model tiny .code org 100h start: movah, 9 movdx, offset info int21h movah, 0 int16h movax, 4c00h int21h infodb"Czesc.$" end start [/syntax] Czy znajdzie się może ktoś, kto zechciałby mi wytłumaczyć krok po kroku na jakiej zasadzie wyświetlany jest...
Wystarczy naciskać F8 idąc po swoim kodzie w głównym oknie i patrzeć na wartości rejestrów procesora po prawej. Pokaż co masz bezpośrednio po funkcji 7 przerwania 21h bo to coś dziwnego aż, że wszystkie rejestry są ciągle zerowe.
witam! jak nadpisać konkretny plik np wartościami 0x01?są w assemblerze przerwania (int 13h) które powodują zapis/odczyt z konkretnego sektora pod konkretną głowicą itd (w AL,AH podaje się odpowiednie dane jak np numer sektora itp..),ale jak np. sprawdzić w którym miejscu dysku znajduje się plik np. plikt.txt?w jaki sposób sprawdzić jego długość,zeby...
Chodzi o to ze po przyjeciu przerwania nie kasuje automatycznie flagi D wiec zaleca sie w procedurze przerwania ja skasowac Dotyczy to wszystkich flag (poza I). Są takie jakie były w chwili przyjęcia przerwania. I jest kasowane. Warto zaznaczyć, ze w 6502 wejście w przerwanie odkłada na stosom, poza adresem powrotu, także rejestr statusu. Rejestr ten...
Dawid nie wydaje mi się, napisałem kiedyś właśnie prosty zegar gdzie w funkcji przerwania od wewnętrznego licznika wykonuje się minimum 100 cykli + opóźnienie 150ms i nic się złego nie dzieje. Fakt że miejsce w pamięci na wektor przerwania jest niewielkie, ale C to nie assembler i kompilator jakoś to sobie ułoży.
http://obrazki.elektroda.net/57_12088851... Pokrótce przedstawię pomysł na wykorzystanie przestarzałych komputerów PC, których jak podejrzewam, podobnie do mnie wielu maniaków elektroniki po prostu nie chce wyrzucić. Komputer pracujący pod DOS-em, umożliwia dostęp do pełnych zasobów sprzętowych bez żadnej kontroli systemu operacyjnego, toteż...
Ale 01h przerwania 21h czyta znak, a nie liczbę. Co więcej, DIV chyba nie działa na 8-bitowych rejestrach, więc bierze AX przez BL. Stąd AX = 0134h = 308, a to jest podzielne przez 7.
Witam, Ja mam podobny problem - dwa timery i INT. Chciałbym, żeby przerwanie od jednego timera nie było przerywane aż do momentu jego ukoczenia. Wykombinowałem, żeby podczas wykonywania tego przerwania zablokować pozostałe, a potem odblokować. Nie wiem niestety jak jest tłumaczone "enable interrupts" na assembler - jeżeli to kilka instrukcji, to mogę...
Sterowanie serwami rozwiązałem (jeśli ktoś ma lepszy pomysł to chętnie wysłucham), problem tkwi w komunikacji z komputerem... Moja propozycja to wykorzystanie timera z przerwaniem. W przerwaniu timera byłyby zmieniane stany wyprowadzeń sterujących serwami. Ponieważ standardowo przerwanie od portu szeregowego ma mniejszy priorytet to nie mogłoby ono...
Niestety czasu nadal nie mam zeby odpowiedziec dokladnie (moze jutro się cos znajdzie :) ), Co do 'zasymulowania' to Keil jest bardzo dobry ew. (juz nie pamietam ktory mnie bardziej odpowiadał, bo ostatnio ich nie uzywalem) jest jeszcze Raisonance (http://www.raisonance.com/ ) i oba są dosc fajnymi srodowiskami zarówno do pisania jak i testowania kodu....
Faktycznie, taki zegarek akurat do domu nie bardzo się nadaje :) A co do reszty to: 1) Programuje praktycznie tylko w C/C++, a to dlatego, że jak się ma jednocześnie do czynienia z 4 rodzinami procesorów to już trudno assembler spamiętać (szczególnie w przypadku ARM'ów) :) Do AVR'ów używam WIN-AVR opartego na GCC. 2) W tym przypadku pomiar temperatury...
A niby dlaczego miałby nie funkcjonować? Gdyby zawartość SRAM była tracona to program musiałby się wykonywać od początku, co efektywnie byłoby równoznaczne z resetem procesora. Oczywiście w każdym trybie oszczędzania energii zawartość SRAM jest zachowana, co czyni twoje rozważania nieco pozbawionymi sensu. Jeśli chcesz wydłużyć czas to do wybudzania...
Ja soe nie znam, ale skoro uzywane są przerwania to trzeba jakis stos zadeklarowac. Przerwania uzywaja tych samyc rejestrow oraz sa rowniez uzywane w programie głownym W srodku przerwan zmieniaja sie znacznik w rejestrze SREG co moze miec znaczenie przy wykonywaniu programu głownego i.t.d. i.t.p. To chyba nie moze dzialac ale cuda sie zdarzają:-)
Swoim przykładem tylko potwierdziłeś to, co ja napisałem: "wszystkie zmienne lokalne, które muszą zachować wartość" - po wyliczeniu wartości dla b, wartość zmiennej "a" nie będzie już dalej potrzebna, nie musi zachować wartości, więc można zmienną w tym miejscu porzucić. Może nie wyraziłem się jasno, ale chodziło mi właśnie o posiadanie jak najmniejszej...
Wstawki asemblerowe w AVRGCC można umieszczać w programie po instrukcji "asm volatile", zresztą najlepiej przeczytaj sobie "GCC-AVR Inline Assembler Cookbook" - znajdziesz go pod tym adresem: http://www.stanford.edu/class/ee281/proj... Pozdrawiam.
Zgłaszam się po przerwie. Przeczesałem internet w poszukiwaniu różnych rozwiązań w sterowaniu serwami. Przedtem jednak udało mi się coś stworzyć na ATmega16 (at)16MHz. 18 serw i rozdzielczość 100 pozycji... Zajętość czasu procka ok. 10%. Jako, że od jakiegoś czasu zacząłem bawić się trochę PICami znalazłem bardzo ciekawe rozwiązanie, niestety tylko...
Witam tak studiuje te kursy z Ep i jakoś mi to do głowy nie wchodzi, kurs jest napisany straszie chaotycznie facet rozpisuje sie o mało znaczących rzeczach a najwazniejsze nie sa opisywane, tak jak by były oczywiste, może są ale dla niego,ja znam tylko bascoma na 8051 no i troszke assemblera ale assembler wydaje mi sie trudnym jezykiem przy bardziej...
Witajcie, Kontynuując moją przygodę "chirurga ARM" doszedłem (i zatrzymałem się) do plików startup'owych i linkera. Przeglądając czarne zakamarki internetu znalazłem jakieś przykłady (Fredie'go też) lecz nie rozumiem na jakiej podstawie one powstały. Jako główne źródło podawana jest biblioteka standardowa STM i zawarte tam przykłady. Interesuje mnie...
Właśnie ! Weź to obejrz w asmie. U mnie Keil to tak organizuje, ze w asmie pod odpowiednimi adresami przerwań są instrukcje skoków LJMP do obszarów, w których kompilator był łaskaw umieścić obsługę przerwania. Czyli wszystko jest ok! O! Już wiem. Najedź w lewym okienku na nazwę Twojego pliku źródłowego. Prawym przyciskiem myszy i wybierz "Options for...
Fajny przykład jak nie należy programu pisać. Nikt nie powiedział że należy :) To nie jest kod produkcyjny tylko żeby ułatwić debuggowanie. Dlatego pozbyłem się przerwań wszystkich. - zły wybór uc w ustawieniach projektu Jest OK, testowałem zarówno kompilowaniem "z palca" avr-g++, jak również Atmel Studio 6.2. - resety uc Dzięki, sprawdziłem - nie...
Witam Utworzyłem nowy temat ponieważ nie widziałem żadnego podobnego tematu na elektrodzie. Otóż potrzebuję pomocy odnośnie wyświetlania znaków na wyświetlaczu LCD. Jest on zgodny z HD44780 (jego numer to: WC1602ASFYLY...). Chodzi mi o kod programu napisany w języku Assembler tylko, że bez dołączanych do niego bibliotek oraz przypisywania innych nazw...
... To w mniej więcej w taki sposób pisze się programy do zegarów alfanumerycznych, i w ogóle obsługę przerwań tak się pisze? WIem tylko, że one (te zegary)zczytują z odzielnych funkcji cyfry i je wyświetlają, a ustawienie godziny ejst możliwe w takim razie w każdym momencie ... Najprostszym rozwiazaniem dla takiego zegarka bylby program zawarty praktycznie...
Ściągnij sobie zestaw instrukcji Intela. Jest w 2 częściach: (razem 4,8 MB) Stamtąd dowiesz się, co robią konkretne instrukcje. mov ax,4c00h int 21h kończy program z kodem wyjścia = 0. (jest to funkcja 4ch przerwania DOS'a) Z tego: ASSUME CS: CODE, DS:CODE ORG 100H; wynika, że jest to program typu COM.
Ok, dzięki hi8 i lo8 nie wyskakują tamte błędy, ale za to teraz otrzymuję to: Build started 30.10.2010 at 23:00:46 avr-gcc -mmcu=attiny2313 -mmcu=attiny2313 -Wall -gdwarf-2 -std=gnu99 -DF_CPU=20000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT wstawka.o -MF dep/wstawka.o.d -x assembler-with-cpp -Wa,-gdwarf2...
Proszę o odpowiedź czy dobrze rozumiem te obliczenia i zależności między częstotliwością, czasem przerwania a preskalerem. TIMER1 Wartość dla 1 sekundy OCR1A=((częstotliwość procesora)/preskaler)-1 Zgodnie z tabelką na stronie 110 mamy do wyboru preskaler: - 8 - 64 - 256 - 1024 więc obliczam według wzoru wartości dla każdego preskalera i biorę ten którego...
Stary post ale , jest sposob aby przerwania od timera wystepowaly w rownych(co do jednego cylku) z gory okreslonych odstepach. Przy kwarcu 12MHz aby odmierzac rowne czasy np 20ms wystarczy na poczatku przerwania wpiac taka procedurke ktora modyfikuje odpowienido rejestry TL0 i TH0 i uwzglednia opoznienie czasowe. t0VAL equ 20000 ; czas miedzy przerwaniami...
W DS89c4xx liczniki pracuja tak samo jak w zykłym 8051, pewnie zeby zachowac zgodnosc wstecz... Xtal jest dzielony przez 12 Reszta procesora taktowana jest 1:1 i cyklu maszynowego nie zmienisz!!! mozesz natomiast: - dynamicznie podzielic przez 1024 /ale liczniki pracuja swoja predkoscia/ /w momencie przerwania procek wraca do normalnej predkosci/ -...
Czasy się zgadzaja bo sprawdzalem w symulatorze avr studio. Jak to sprawdzasz ? Mi nigdy się nie udało w symulatorze AVRSimulator (AVRStudio) zasymulować czasu rzeczywistego, a AT90S2313 nie ma DebugWire, ani JTAG. Do generowania opóźnień proponuję użyć przerwania Timer0 Overflow , tak skonfigurowanego, aby było zależne od stałej Xtal, która definujesz...
Teraz już całkiem nie działa... :/ Muszę przyznać, że nie czuję się najlepiej w asemblerze. Mam nadzieję, że nie będę musiał już więcej nic w nim pisać. Wklejam kod: myszaF2 , dziękuję, że zainteresowałeś się moim problemem. Lepiej będzie jeśli podczas wklejania kodu użyjesz pełnej edycji i użyjesz znaczników SYNTAX - kod będzie o wiele czytelniejszy....
Udało się skompilować lwip i ... nagle przerwania przestały działać. Proc. lpc2148 Startup.S plik .ld i vector.S brałem z jakiegoś innego projektu z sieci (na mniejszy proc lpc zmieniając jedynie rozmiar sekcji ram rom) zapewne tu jest problem. Znalazłem na sieci projekt typowo pod LPC2148 http://gudjon.org/electronics/source_cod...
Z tym ADC to chodziło mi o to że można z niego zrobić Timer, bo też generuje przerwania w stałych odstępach czasu. 89S51 to już lepiej. Ma chyba 3 Timery, tak? No to jeden niech zlicza impulsy z zewnątrz (T0) a jakiś inny (powiedzmy T1) niech liczy takty zegara. Tylko że jakiś preskaler by się przydał. A w 51 to chyba tylko programowy. Czyli co kilka...
Witam, posiedziałem odrobinę i większość problemów się rozwiązała. <Pituś Bajtuś> oczywiście masz całkowitą rację. Po adresie początku stosu ma być tablica wyjątków/przerwań a nie instrukcje. Tak się ciekawie złożyło że kod się uruchamiał (ale pewnie tylko pod debuggerem ) czyli głupi ma zawsze szczęście jeśli nawet jest ono złudne ;) dodałem...
Cieszę się, że osiągnąłeś zamierzony cel, a że "po swojemu" to tylko plus bo znaczy, że sam kombinujesz, a to najważniejsze. Niestety muszę Cię zmartwić, ale robisz bardzo podstawowy błąd, polegający na zapętleniu się w przerwaniu w pętli: while(bit_is_set(ADCSRA,ADSC)); Rozważ hipotetyczny (aczkolwiek możliwy) przypadek, że pętla ta nigdy nie zostanie...
Ze względu np. na to (przepraszam za brak kolorowania składni): Ja aktualnie uzyskuję podobny efekt za pomocą makr - definiowanych np. dla różnych rodzin procesorów, ale funkcjonalnie będących swoimi odpowiednikami. O ile rzecz jasna jest to możliwe (bo w jednej rodzinie procesorów jest obecne peryferium X, a w drugiej nie ma). Można to nazwać Makro...
Witam czy mógłby ktoś sprawdzić poprawność kodu Assembler '51? Czy składnia jest ok? WDTCN DATA 0FFH ; WATCHDOG TIMER CONTROL AMX0CF DATA 0BAH ; ADC 0 MUX CONFIGURATION AMX0SL DATA 0BBH ; ADC 0 MUX CHANNEL SELECTION ADC0CN DATA 0E8H ; ADC 0 CONTROL ADC0H DATA 0BFH ; ADC 0 DATA - HIGH BYTE REF0CN DATA 0D1H ; VOLTAGE REFERENCE 0 CONTROL ADC0CF DATA 0BCH...
Tool chain editor used tools: Cross GCC Compiler Cross G++ Compiler Cross GCC Linker Cross G++ Linker Cross GCC Archiver Cross GCC Assembler A w zakładce discovery option compiler invocation command to arm-none-eabi-gcc wiec chyba korzystam z C Dodano po 1 EDIT: A tak w ogóle to jak przerabiasz przykład (zakładam że ten dla STM32F4), to poprawiłeś już...
Prosiłbym o pomoc w rozumieniu tego programu ponieważ chce wiedzieć jak to działa i również chodzi o sprawdzenie tego programu bo w jednym programie do symulacj pokazuje brak instrukcji a w drugim błąd w linii Tim0. Z góry dzięki [syntax=asm]T0_G EQU 0 T0_C EQU 0 T0_M EQU 1 TIM0 EQU T0_M+T0_C*4+T0_G*8 T1_G EQU 0 T1_C EQU 0 T1_M EQU 1 TIM1 EQU T1_M+T1_C*4+T1_G*8...
assembler przerwania assembler przerwania zegarowe assembler darmowy assembler
sygnał presostatu czujnik myszki bezprzewodowej blueconnect internet
wymuszanie pasma wymuszanie pasma
Przenoszenie muzyki z laptopa na PMP Slide Panel – transfer plików MP3, USB, micro-SD Zamienniki E100D i E174D RFT DDR – odpowiedniki TTL 7400, 7474, UCY7400, К155ЛА3