Masz 2 wyjścia. 1. Funkcji obsługi przerwania trzeba ustawić atrybut : __attribute__ ((interrupt ("IRQ"))) który dodaje prolog i epilog funkcji obsługi przerwania. Ale podobno nie zawsze dziala... 2. Piszesz sam prolog i epilog funkcji obsługi przerwania w asemblerze. I zamiast skoku pod AIC skaczesz do etykiety obsługi przerwania która powinna zachowywać...
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...
Czyli on odkłada adres powrotu do rejestru R0? Ale ja u sibie korzystałem z timerów, z rejestrów i działało... ON nie odkłada adresu powrotu do R0 , tylko do komórki , na którą wskazuje wskanik stosu . A że wskaźnik stosu po resecie wskazuja na 07H , a po zmianie banku rejestrów na 1 , rejestr R0 "przenosi się" pod adres 08H , to już programista powinien...
Witam! Jako, że jestem zielony;) w programowaniu mikrokontrolerów PIC a dokładniej w asemblerze prosze pomoc. Podczas kompilacji w programie MPASM otrzymuje nastepujace bledy: Warning[205] C:\1\L.ASM 217 : Found directive in column 1. (error) Error[128] C:\1\L.ASM 217 : Missing argument(s) Message[302] C:\1\L.ASM 222 : Register in operand not in bank...
Dodana możliwość definiowania zakresu rejestrów na poziomie pliku konfiguracyjnego I tak możesz odczytać tylko dwa banki rejestrów więc moim zdaniem i tak lepiej czytać wszystkie możliwe. Ze względu na narzut na transmisję bardziej opłaca się czytać wszystko niż kawałkami. Dodałbym w XML dla rejestru flagę "parse" i zwracałbym tylko oznaczone w ten...
Dodaj w procedurze obsługi przerwania Timer'a 3, tuż przed zapisem do rejestrów przetwornika, instrukcję ustawiającą odpowiednią dla przetwornika stronę/bank rejestrów SFR (tak, jak to robisz przed inicjalizacją przetwornika). Jeśli wtedy zadziała, to przeczytaj opis rejestru SFRPGCN: SFR Page Control w dokumentacji i sprawdź w jakich bankach SFR znajdują...
:arrow: ZbeeGin Ten kod spowoduje wyzerowanie całej pamięci mikrokontrolera pod warunkiem, że przed jego wykonaniem ustawiony będzie zerowy bank rejestrów. W przypadku ustawienia innego banku powstanie piękna nieskończona pętla.
Szkoda, że nie chciałeś się dokładnie zapoznać z data sheet dla xx8xC52... 1. Licznik T2 może zliczać impulsy z wejścia T2 (P1.0), a wejście T2EX (P1.1) może służyć do zmiany kierunku liczenia lub generowania przerwania na opadającym zboczu. T2EX może też być wyjściem sygnału o programowanej częstotliwości. 2. Tak, dostęp do górnych 128 bajtów RAM jest...
Nieużywane banki rejestrów Rr już wykorzystałeś?
Podstawowa sprawa - jak już przełączasz banki i jesteś np. w banku 1 to wykonaj wszystkie komendy jakie masz zamiar wykonać na rejestrach w tym banku - z wyjątkiem tych, których wykonania kolejność ma znaczenie. Unikniesz zbędnego rozrastania się kodu i niepotrzebnego skakania po bankach. Jako, że linie portów liczymy od 0 zrobiłeś to sobie trochę na...
Niestety w tej dolnej 128B są zawarte 4 banki rejestrów (R0-R7). Górna pamięć RAM to też 128B ale inaczej adresowana . W sumie 256B (razem z bankami w 89c52). :)
Stos może być "u góry". Nawet być tam powinien. Zwykle ustawiałem go na E0h, ale to oczywiście zależy od programu. Nie "wjedziesz" w SFR, ponieważ RAM od 80H może być tylko adresowana pośrednio (czyli przez rejestry R0 i R1). Nie dzieliłbym RAM'u na "banki" bo w 51'ce masz już 4 banki rejestrów i może Ci się mieszać. Zmienne można "upychać" pomiędzy...
przykładzik jak zmienić tryb pracy LPT bez wchodzenia do biosa. Jedno ale: po restarcie 'bios' zmieni ten tryb na taki jaki ustawiałeś w biosie :) Albo i nie, właśnie zrestartowałem kompa i zostało tak jak zmieniłem Nie wiem czy to prawda, ale ponoć na każdej nowej MB jest chip W83697HF/F funkcje _inp() i _outp() zmieńcie na swoje, albo zlinkujcie z...
Witam Dostałem na zadanie domowe napisać program dla '51. Oto treść: Napisz program, w którym z aktywnego banku rejestrów przeniesiemy zawartość rejestru R4 i R5 do rejestrów R4 i R5 w banku RB3, oraz zmienimy aktywny bank rejestrów RB3 i przeniesiemy zawartość R4 i R5 do rejestrów R4 i R5 banku RB2. Aktywny bank rejestrów przy rozpoczęciu programu...
Jwszcze jedno pytanko: co daje operownie na rejestrach w pozostalych komurkach pamieci (czy moze chodzi o szybkosc)? Chodzi Ci o banki? Rejestry? czy pamięć RAM?
czas co jaki zostanie zdeklementowany rejestr R0 banku 1 jest określony przez szybkość wykorzystanego kwarcu i ilości cykli wykonywanych przez timer, możesz na przykład uruchomić timer mają w nim zapisaną już jakąś wartość, symulatory nie oddają rzeczywistego czasu pracy mikrokontrolera, musisz dopasować wartość rozpoczęcia pracy timera eksperymentalnie
Zmień w 5 linijce CJNE A,R2,skok na CJNE A,2,skok w tym rozkazie nie możesz użyć jako adres R2 , ale możesz to zrobić jako adres 02 wyjdzie na to samo pod warunkiem że korzystasz z 0 banku rejestrów
taki sposób deklaracji jest jak najbardziej poprawny, jest nawet pod pewnymi względami lepszy, bo nie deklarujesz adresu każdej zmienej z osobna, więc pomiędzy już zadeklarowane zmienne możesz "wcisnąć" następne bez potrzeby zmiany reszty. W pamięci rozkłada się to tak, że DSEG AT 01H ustawia Ci licznik adresu zmiennych (a właściwie to symboli, bo widzę,...
1. Spróbuj ustawić wskaźnik stosu np. na adres 64 ($40) tak by stos był poza obszarem banków rejestrów. 2. Zawsze ustawiaj bity wyboru banku rejestrów (RS0 i RS1), bo jeżeli miałeś je ustawione na bank 1 to być może stos się żarł z rejestrami R0-R7 (gdy był wybrany bank 1) przy wywołaniu podprogramu i modyfikował ci R2. 3. Czy ustawiasz typ pinu w danym...
Bardzo chciałbym żeby wszystkie posty były wiarygodne. 51-ka ma cztery banki przełączalne (w danej chwili aktywny jest tylko jeden) a w kazdym banku osiem rejestrów R0-R7. Co w efekcie też daje 4x8=32 rejestry. Dla ścisłości te 32 rejestry w MCS51 to nie to samo co 32 rejestry w AVR ponieważ: "...32-bajtowy(bardzo duży) obszar rejestrów roboczych,...
d) ok dzięki teraz zrozumiałem ten przykład. Czyli w pojedynczym banku rejestrów( są ich 4) mam R0 do R7 i do każdego takie R mogę zrobić (at)Rn? np. (at)R5, (at)R7? c)napisałeś " Operacje na B nie mają wpływu na A. (nie licząc oczywiście tych które używają i A i B)". NIe wiem czy ja źle patrze czy Ty pomyliłeś przykłady ale tam nie ma żadnego 'B'....
Stos jest stosunkowo duzy, początek na 05h, koniec na 19h Ja bym stos ulokował trochę wyżej w pamięci :wink: Jezeli działasz na tablicach i przełączając się miedzy bankami rejestrów które znajdują się "na dole" RAM'u to możesz niechcący wchodzić właśnie na stos....i stos idzie w maliny. Jeżeli jest dostępna pamieć IDATA to lepiej jest go tam upakować.
Witam! Procek ma 128 bajtów pamięci do użytku (od adresu 80h zaczyna sie SFR) w tym jeszcze od 00H do 1FH - to są 4 banki rejestrów a od 20H do 2FH to obszar adresowalny bitowo... Nie może kolega zmienić procka?? na np. ADUC836 (1MHz), ADUC842 (16MHz) i obydwa mają pamięci 2kB wewnętrzne po ustawieniu odpowiedniego bitu można sie do nich dostać jako...
Mam jeszcze jednak jedno pytanie. Zastanawiam się skąd mikro-kontroler wie do jakiego banku odwołać się po rejestr STATUSU. (chodzi rzecz jasna o pamięć RAM). Załóżmy że otrzymuje on instrukcje: WYZERUJ ADRES. Jak wiadomo do adresu doklejone zostaną dwa bity z rejestru statusu aby zdecydować o wyborze banku. (inaczej mówiąc aby złożyć kompletny 8 bitowy...
Cześć, po krótkiej przerwie stwierdziłem że pobawie się PIC i ASM, chciałem zacząć od zapalenia diody, więc żeby nie bawić się dokumentacje napisałem programik do zapalenia czegokolwiek na porcie A bsf STATUS,RP0 movlw b'01010101' (miałem 4 diody na porcie A) movwfTRISA ^ 0x080 ( coś się powinno zapalić ) bcf STATUS,RP0 movlwb'00110011' movwfPORTA tą...
a) OK -> SFR dokładniej pod adresem E0H (ACC dla 8051) b) NIE -> stała liczba dziesiętna 121 pod adres 00h (czyli do rejestru R0) c) rozumiem, że są tu dwie instrukcje? Pierwsza ładuje liczbę do rejestru a druga zapisuje pod adres wskazywany przez R0 stałą 121. Czyli 121 zapisane pod adresem RAM 0AH (czyli 10 w systemie dziesiętnym) d) to samo co w...
ściągnij sobie notę katalogową 51. Na jednej ze stron jest tabela z rozpisanymi wszystkimi rejestrami. http://katalogi.iele.polsl.gliwice.pl/se... a jeśli chodzi o robocze to od adresu 00h są od R0 do R7 a potem jeszcze 3 razy tak samo od R0 do R7 czyli cztery banki. Ostani roboczy kończy się na 1Fh
Hej, Mikrokontroler: EFM8BB10F8G, czyli taki 8051 "na sterydach" Język programowania: C Kompilator: Keil 8051 v9.53 Taki problem: Tworzę zmienne, przypisuję im jakieś wartości. Po pewnym czasie wartości zmiennych ulegają zmianie pomimo tego, że nie wykonuję na nich operacji. Przypuszczenia: Mapa pamięci RAM mikrokontrolera wygląda następująco: https://obrazki.elektroda.pl/3148577200_...
Musze zaleście biedy 0. Ogólnie masz słabość do języków, co? 1. W '51 wektor resetu jest pod 0x00, a użycie rozkazu LJMP xxxx, zabiera 3 bajty. Przelicz samodzielnie na jaki adres wskazuje ORG 100000000B i czego można się tam spodziewać. 2. C51 ma 4 banki po 8 rejestrów, więc R9 to chyba ciężko będzie znaleźć. 3. Rozkaz MOV wymaga dwóch operandów....
Panie specjalista. Nie ma pamięci flash, a ma ROM, który programuje się tylko raz. Dla potomnych: -ośmiobitowa jednostka arytmetyczno-logiczna (ALU) -cztery przełączane banki rejestrów roboczych (4 x R0...R7) -4 kB pamięci wewnętrznej ROM (pamięć zewnętrzna ROM do 64 kB) -128 B pamięci wewnętrznej RAM (pamięć zewnętrzna RAM do 64 kB) -zbiór rejestrów...
Czy ktoś zrozumiał o czym tu mowa? Offset adresu to wartość dodana do adresu początkowego danego bitu, rejestru, banku czy o czym tam mowa w dokumentacji, którą mogłeś załączyć.
Procedura zerowania RAM: [syntax=asm] MOVR0,#8 MOVR1,#247 ZEROWANIE: MOV(at)R0,#0 INCR0 DJNZR1,ZEROWANIE [/syntax] Zmień sobie wartość którą wypełniasz :-) Tylko uwaga na obszary. Zauważ że "oszczędzam" tylko pierwszy bank rejestrów bo tam są umieszczone R0 i R1, które używam do czyszczenia RAM. A instrukcja MOV A,(at)A+DPTR odczytuje do akumulatora...
Wybaczcie infantylne pytanie ale nie mogę dojść już ładu w swoim rozumowaniu. Adresy od 00h do 0ffh są zajęte przez wewnętrzny RAM oraz SFR. W obszarze od 00h do 7Fh mamy RAM oraz banki rejestrów i stos. Do tego wszystkiego dochodzi też nam pamięć programu i tutaj właśnie zaczyna się mój dylemat. Jak to jest wszystko ze sobą połączone. Jeśli pobiorę...
Możesz szukać emulatorów z 8051, który jest wiesz, jest starszym bratem AVR. Czy masz jakiś dowód na poparcie tej tezy, czy to takie wyssane z palca mądrości? C-51 to modyfikowana struktura harwardzka, ma częściowo rozdzieloną pamięć danych i rozkazów, ale wspólne magistrale i możliwe jest wykonanie programu z obszar pamięci danych. AVR to czysty harward,...
AVE... (at)Tronics, taki PIC16F628A ma osiem bitów, ale pamięć programów ma szerokość szyny danych 14 bitów i 13 bitów dla adresów. Daje to łącznie dwa kilosłowa czternastobitowe pamięci programu. Główna szyna danych ma 8 bitów, szyna adresowa RAM 9 bitów, ale RAMu jest tylko 224 bajty, resztę przestrzeni "zjadają" rejestry. Do tego bezpośrednio można...
Błędów może i nie dostrzegł ale powinny być komunikaty ostrzegające. 02F3 1283 00967 bcf STATUS, RP0 02F4 3025 00968 movlw ad Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct. 02F5 009B 00969 movwf EEADR To powinno zwrócić Twoją uwagę, że z adresowaniem rejestrów może być coś nie tak i w tym miejscu tak...
Mozna, jezeli po skoku takze odtwarzasz rejestry i konczysz rozkazem retfie. Widze ze zaczynasz przerwanie rozkazem banksel _W i dopiero zachowujesz W a potem Status. Czy rozkaz banksel _W nie zmienia rejestru STATUS (przed jego zachowaniem)? Nie zapisuj rejestrow w jakims banku, ale pod adresami wiekszymi niz 70h (70-7fh). Pod tymi adresami jest jeden...
Rejestry robocze Rn są 4 bankach, zależnie od stanu bitów RS w słowie stanu procesora, nazwy R0 do R7 wskazują na różne obszary pamięci RAM Banki przełącza się ustawiając bity D4(RS1) i D3(RS0) rejestru stanu PSW(D0h) Po restarcie mpsora bity RS1 i RS0 są wyzerowane a więc dostępny jest bank 0 (adresy 0-7 w RAM) Rn - rejestry robocze n=0,1,...,7 (R0,R1,...,R7)...
Jak 10 lat temu kończyłem swoją przygodę z '51 to na celownik wziąłem PIC i AVR jako następców. Na procesory wtedy patrzyłem pod kątem programowania w asemblerze. Przeczytałem noty katalogowe 2 najbardziej popularnych przedstawicieli i wnioski moje były takie: AVR- świetna, bogata lista rozkazów na dodatek większość realizowana w jednym takcie, bardzo...
eurotips :arrow: to zależy które rejestry Twój program wykorzystuje. Np. Rejestry PORTA i TRISA są w bankach 0 i 1 zarówno w F628 jak i F84. Natomiast np. rejestr EEDATA w F84 znajduje się w banku 0 a w F628 znajduje sie w baku 1. Najlepiej załącz źródło do postu to razem pokombinujemy.
PUSH 01h pod warunkiem, że korzystasz z 1 banu rejestrów PUSH 09h dla R1 w banku nr 2 itd....
TODO = musisz to sobie sam napisać - dawanie gotowców jest mało edukacyjne :) Jeśli "napoje" przechowujesz w rejestrach z banku 2 (RS1:RS0 = 10), to musisz ustawić R0 jako #16 + nr klawisza. Oczywiście wcześniej trzeba się przełączyć na inny bank niż 2 żeby mieć zestaw "świeżych" rejestrów. Pozdrawiam, Dr.Vee
Już wszystko wiem: W procku 16f57 rejestry ogólnego przeznaczenia GPR (72 rejestry), są dostępne w 4 bankach. Jeśli chcemy zapisać coś w banku 1 pod adresem 30h, to w skrócie: MOVLW 30h <- ładujemy adres 30h do W MOVWF FSR <- W do rejestru FSR MOVLW AAh <- ładujemy jakąś daną rejestr roboczy W (np. AA) MOVWF INDF <- rejestr W do rejestru...
Mam pytanie czy ktoś może wie jak to skomunikować. Wiem że należy ustawić bit SM2=1 i że w przypadku gdy rb8 jest równy 1 to jest tryb adresowy a gdy rb8 jest =0 to tryb danych. No ale teraz stoję przed takiem problemem. Mój master wysyła komunikat po systemie z adresem pierwszego uC. Ja w moim mikrokontrolerze odczytuję ten adres sprawdzam że to mój...
Koledzy mnie przekonali, oraz przeczytane pdf-y. Nie ma sensu walczyć z GAL-em bo TTL są także całkiem dobre. Z tymi bankami to bym aż tak się nie rozzuchwalał bo przecież trzeba dla nich jeszcze zarezerwować rejestr w którym będzie przechowywany numer banku. Dla urządzeń We-Wy wydaje mi się to być już przerostem formy nad treścią, tym bardziej że taki...
Przeczyść wentylator karty, banki pamięci ram, przeskanuj rejestr CCleanerem i pod kątem wirusów CureIT. Zainstaluj najnowsze sterowniki ze strony producenta płyty głównej oraz karty.
http://obrazki.elektroda.pl/3807779000_1... Witam Czy to jest ta rev. płyty głównej na której robisz testy? Programator do układów ISP - czy możesz coś więcej napisać na temat tego programatora? Czy pojawi się jakiś schemat ideowy połączeń? Jakie ttl-e zastosowałeś w swoim projekcie? Pozdrawiam Moja płyta to PCB 252311 REV.B , ale to...
51 ma standardowy 16bit magistrale adresową więc może zaadresować tylko 64kB, ALE jeśli zbudować zewnętrzny układ w którym będzie można wybierać które 64kB są widoczne z większego obszaru. Można to zrobić albo na zewnętrznym przerzutniku/liczniku sterowanym z lini pozostałych portów albo tak sterować liniami portów aby na raz była aktywna tylko jedna...
Po kilku dniach walki udało się uruchomić dwustronną transmisję na RFM73P. Jest to mocniejsza wersja modułu RFM73 firmy HOPERF. Ze względu na niechlujną dokumentację hoperf.com/rf/module/2.4g/RFM73P.htm uruchomienie stwarza problemy, dlatego chciałbym się podzielić kilkoma uwagami. Oba moduły wyposażone są w scalak RF73 będący klonem układu nRF 24L01(+)...
Nie chce mi się w tej chwili grzebać w książkach i sprawdzać czy wszystko zostało dobrze zainicjalizowane w Twoim programie, ale zauważyłem jedną rzecz: w DALEJ robisz LCALL POKAZ, który nie kończy się instrukcją RET, i pewnie stos się wkrótce przepełnia i zaczyna zamazywać rejestry z banku 0 i nie tylko. Może to jest przyczyną problemu a nie przerwanie?
Problem leżał w ustawieniach banków. pamięć trat była w banku nr 2, a nie ustawiałem tego banku, więc przypisanie nie miało sensu
Czy ktoś mógłby napisać po co używać "using" podczas wywoływania procedury obsługi przerwania (np. w 8952). Od razu napiszę że wiem że "using" słuzy do zmiany aktualnie używanego banku rejestrów R0..R7, ale po co je zmieniać skoro jawnie nie używam w kodzie C dostępu do tych rejestrów. Mój problem polega na tym że dosyć mocno zapełniłem zasoby AT89S52...
W sumie bardzo pomógł mi link od H0miczek jakoś go wcześniej przegapiłem w szukajce... (at)Freddie Wiem, że porównuję 8/16/32bitowce... takie jest zamierzenie, ja nie napisałem, że zamierzam zrezygnować z AVR, zamierzam hmmm bardziej dostosować procesor do wymagań (także cenowych). A nad ARMami zastanawiam się gdyż, jak mnie się wydaje są dość przyszłościowe;)...
Witam. Ja mam pytanie odnośnie zmiany banków poprzez bity RS0 i RS1.. Czy jakieś rejestry są kasowane przy przejściach między bankami i czy są jakieś rozkazy, które nie działają w innych bankach.. I również co dzieje się z akumlatorem. Z góry dzięki!
Jak sobie poradzisz z przemapowaniem rejestrów, bo znajdują się w różnych bankach, to reszta jest prosta. Czyli noty katalogowe na stół i przegląd kodu.
No może i ma emulację ale używanie tego to jak prowadzenie czołgu. Środowisko AVR Studio może nie jest lepsze ale ma intuicyjna obsługę i używa się go dużo prościej. A no właśnie mam kilka PIC18 i chcę się nimi zająć a informacji mam strasznie mało. Zupełnie nie mogę pojąc tego przełączania banków, to jest naprawdę upierdliwie. Ciągle trzeba mieć przed...
kompilator niewiele ma do faktu że wykorzystujesz FSMC. Jesli już, to linker. Aczkolwiek nigdy nie chciało mi się w to bawić i sobie wskaźnikami latałem po pamięci FSMC. Hardfault wystąpi wtedy, jeśli nie jest prawidłowo skonfigurowany bank pamięci w którym występuje adres który chcesz zapisać/odczytać. Konieczne jest skonfigurowanie samego FSMC i stosownego...
Wiem wiem :D Tą tabelkę przeglądałem już ze 100 razy. Te Twoje błędy dla trybu Low Power dowodzą że nie działają dwa banki. Jest taki rejestr gdzie ustawia sie opóźnienie zmiany banku (EMCDynamic RRD). Może masz tam wpisane za małe opóźnienie? Dodano po 21 Ustawiłem tryb Low Power, i mam kolejny Progress. Jest już o wiele więcej poprawnych danych. Mam...
Po kolei, z czego ma wynikać alokacja programu :) czy przypadkiem nie z budowy zestawu i wykorzystania niższej pamięci programu dla procedur systemowych:) Do alokacji kodu programu na sztywno służy opcja linkera --code-loc <Value> Domyślnie Wartość = 0. Uwaga kiedy ta opcja jest użyta Tablica Vectorów podąża za wskazanym adresem :) Przykładowo:...
P.S. W mplab kompilowalem, na symulacji ogladalem rejestry i przelacza sie pomiedzy bankami, ale po skompilowaniu wypisuje: "Register in operand not in bank 0. Ensure that bank bits are correct", tylko ze ja nie jestem w banku 0 tylko 1.
Czy ma ktoś może bibliotekę obsługi wyświetlacza dla CodeVision i mógłgby się podzielić? Ja coś tam dłubę w tej chwili, ale jest jeszcze za "surowa" by się nadawała do publikacji. :) Ale działa. A jeśli chodzi o regulację kontrastu, to testował to ktoś ? Wg informacji, które posiadam za regulacje kontrastu odpowiada rejestr R24h w banku 90h. Ale zmiana...
Pewnie chodzi ci o rejestr flagowy w procesorze, ale w jakim? W 8051 ten rejestr nazywa się PSW, poszukaj o nim na google. Znajdują się w nim takie znaczniki (flagi), jak: -RS0,RS1 - wskazuje aktualny bank rejestrów -C - znacznik przeniesienia -AC - wskaźnik przeniesienia pomocniczego -P - znacznik parzystości i pare innych
B3R5 EQU 18H START ;start LCALL LCD_CLR ;wyczyść ekran LCD MOV R0,#10H ;załaduj wskaźnik ( adres w pamięci) do R0 MOV R2,#0 ;wyzeruj rejestr R2 CLR A ;wyzeruj akumulator LOOP: MOV #R0,A ; tu prawdopodobnie miało być MOV (at)R0,A -> co oznacza wpisz zawartość akumulatora pod adres 10h INC R0 ;zwiększ adres INC A ;zwiększ akumulator o jeden DJNZ R2,LOOP...
$include (REG51.inc); dołączenie definicji rejestrów uK (kompilator RA-51 Raisonance) NAMEOBSLUGA_AT24C64 ;Poniżej definicje stałych użytych w programie FIXEDADDR EQU0A0H;stała częśc adresu pamięci 24C64 USRADDR EQU0;ustawiana przez użytkownika część adresu (wartości 0..7) MEMSIZE EQU2000H;liczba bajtów dla 24C64 PMEMSIZE EQU32;liczba bajtów na stronę...
Super obudowa :D Zrobiłem krótką animację pokazującą w jaki sposób przenoszone są programy z pamięci ROM do pamięci RAM z wykorzystaniem przełącznika banków pamięci. Wobec tego jak umieścić w ROM np. taki kod. ; Program deasemblera Z80 ; Dane interpretowane przez program deasemblera PFTAB DEFB E0,0A,0E,0F,96,AF,B4,B9,BE,BD,C5,09,4C,C...
A w tej chwili nie jestem w stanie dokładnie powiedzieć o jakie instrukcje chodzi ale są one z rozszerzenia DSP dla RISC-V. Z 3-stopniowym pipelinem (E24) to te DSP jakieś bardzo zaawansowane nie będzie, chyba że napiszesz oddzielny "koprocesor" DSP działający równolegle do zwykłego pipeline'u RISC-V z osobnym bankiem rejestrów (a'la FPU w procesorach...
Można byłoby zmienić etykietę TIMER0 na TIMER0abc z racji tego, że np. u mnie się gryzie z asemblerem. Ale to szczegół. Proponuję ustawić stos jako pierwszą instrukcję po etykiecie "Start" i raczej w górnej pamięci (mov SP,#80H). Wszystko zależy czy masz do dyspozycji 8051 czy 8052 (w każdym razie proponuję go ustawić "od góry"). W tej chwili masz go...
Podejrzewam, że RISC-32 bity jest nie do zrealizowania na TTL-ach. Nie no da sie napewno, tylko koszt (bo ilosc ukladow duza), no i szybkosc niektorych blokow moze byc niewielka (sumator). Jestem w takim punkcie: wiem że bank rejestrów będzie składał się z wielu układów, i wiem, że sumator w ALU będzie najwolniejszym członem całego układu. Ciężki wybór...
30 sekund? Żartowniś :) A musi być dokładnie tyle? Trzeba się nakombinować, żeby do tylu doliczyć chyba, że użyjesz kwarcu 32,768kHz. banksel trisb ; przeskakuje do banku, w ktorym jest rejestr kierunkowy bcf portb,0 ; ustawiam kierunek B0 na wyjściowy bcf portb,2 ; i B2 tez banksel portb ; wracam do banku 0 bsf portb,0 ; i ustawiam "1" na B0 Mam gdzieś...
Witam, Dlaczego program nie działa - docelowo ma sprawdzać czy wciśnięto przycisk dołączony do pinu RA1 i tym samym dodawać długie opóźnienie między wł/wył LED list p=PIC16F873A include <p16F873A.inc> __config _LP_OSC & _WDT_OFF ;kwarc zegarkowy 32,768kHz ;*****Ustawienia stałych***** STATUSequ03h TRISAequ85h PORTOAequ05h COUNT1equ10h COUNT2equ12h...
jak zmienia się banki w tym procesorze w asm? Służy do tego dedykowana instrukcja zmieniająca zawartość rejestru BSR. Szczegóły w dokumentacji mikrokontrolera.
Te bity są w rejestrze PSW adresowanym bitowo, więc najprościej ustawić je tak : ;) setb PSW.OV setb PSW.P setb PSW.AC "PSW – rejestr stanu programu (Program Status Word), jest to zbiór różnych flag (wskaźników): PSW.0=P – parzystość, flaga jest ustawiana gdy wynikiem operacji jest liczba parzysta, PSW.1=F1 – począwszy od 8052, flaga...
Siemka Panie i panowie poszukuje BIOS do tej płytki jak w temacie, ale taki zmodyfikowany, który ma wpisy do rejestru chipsetu dotyczące obsługi pamięci RAM wykonanej w technologii więcej niż 32 MBit. Czy to jest wogóle możliwe po takiej modyfikacji? Mam taką płytkę i RAM Kingstona o wielkości 256 MB o jednostronnej architekturze, który zajmuje jeden...
po resecie stos zaczyna się od 00h czyli tam gdzie są rejestry R0,R1 .. R7. No niezupelnie, wskaznik stosu w '51 po resecie przyjmuje wartosc 07h, czyli pierwszy bajt stosu jest zapisywany pod adres 08h (jest to rejestr R0, tyle ze pierwszego, a nie zerowego banku rejestrow). Pozdrawiam
Config nie jest obowiązkowy, lecz jeśli go nie dasz to przy programowaniu za każdym razem będziesz musiał fuse bity ustawiać ręcznie. To taki jedyny minus. Jeśli się nie kompiluje to znaczy, że gdzieś masz literówkę lub ten uC ma brak takiego fuse bitu. Żeby program przenieść na inny uC musisz sprawdzić czy nowy PIC posiada takie same porty, które są...
Plik hosts jest w porządku. Ten rejestr to też nie przyczyna- problem jest nawet przy logowaniu się do banku. System to Windows 10, problem pojawia się niezaleznie od przeglądarki- Testowałem najnowszego Chrome i Operę. Aktualizacje systemowe poinstalowane. Nie mam pomysłu co może być przyczyną. W cmd tracert daje normalne wyniki.
Witam Jeżeli masz książkę Andrzeja Rydzewskiego to na stronie 82 zobacz stan początkowy rejestrów. Na stronie 138 jest opis rozkazu PUSH to może coś się wyjaśni W skrócie, jeżeli nie przestawisz początku stosu to pierwszy bajt odłożony na stos znajdzie sie pod adresem 08H (jest to adres rejestru R0 z banku rejestrów nr1 ) standardowo używany jest bank...
No! Dzięki! Rzeczywiście nie takie to trudne:) Użyj klasycznego mnożenia liczb wielobajtowych, kilka mnożeń i kilka dodawań. Klasyczne mnożenie liczb wielobajtowych, może dotyczyć liczb np. czterobajtowych? lub więcej? Gdzie o tym mogę poczytać?. Czy w trakcie wykonywania operacji wielobajtowych lepiej używać stosu czy rejestrów i przełączać się między...
Jakies herezje kolego wypisujesz. Heh...a zaprzeczy kolega rzeczowo? Pod "brakiem obsługi" rozumiem ficzery które zostały wprowadzone wraz z technologią obsługi przerwań dostępnej np. w CM3 lub CM0 (o CA8 nie wspominajac). Late-arriving interrupts nie są obsługiwane przez prosty kontroler przerwań w ARM9. Co wejście w przerwanie marnuje się 40 cykli...
Okazało się, że u mnie COUNT3 jest pod 0Ah, Nie wiem czy to ma związek, ale w datasheet jest pod 0Ah PCLATH i Jeśli tam wpiszę FF to wtedy mruga... Ten PCLATH jest w każdym banku.. Może czas zacząć czytać ze zrozumieniem datasheeta? Już kolega jest bardzo blisko w znalezieniu rozwiązania. Proponuje zagłębić się w roździał 2.2 specyfikacji. PS dodatkowo...
A małych atmelach *89cx051 od adresu zerowego przechowywane są stany rejestrów r0..r7 (r0-0$,r1-$1,r2-$2... przy korzystaniu z banku 0). To chyba z tąd ten błąd - niechcąco się zrymowało :) Pzd
oczywiście że można !! a czy ja napisałem że można użyć takiej składni push r2 albo pop r3 ??? chodzi o to że rozkazy mają taką składnie pop direct push direct a direct odnosi się we wszystkich rozkazach '51 do dwóch przestrzeni : - 0 do 7Fh - to jest pamięć wewnętrzna danych - 80 do FFh - to jest przestrzeń sfr jeśli więc chcemy zapisać rejestr np....
AVR spokojnie takie impulsy odczyta, tylko trzeba sprzętowo podpiąć te 12 portów do dwóch banków rejestrów (np. PORTA i PORTB). Odczyt z tych portów to jeden 2 cykle procesora. Dobry program i myślę że impulsy o okresie 20us, to z palcem w d... da się obsłużyć. To daje około 160 instrukcji na sprawdzenia czy zmienił się stan na portach i inkrementowanie...
O fajnie, co do dyskietki to musze naprawic flopa lub kupic, po za tym jedna pamiec ram ma ma niecały rok, nastepna kupiłem jakies 2 mies temu,hm...o. Co do obrazu płyty to chętnie. Mój namiar to wowerman(at)o2.pl, dzieki wam za porady. Ps: moze wyciągnąc z jednego banku pamięc i zobaczyc co bedzie sie działo??
W Zmienne globalne — wiedz, kiedy są modyfikowane Zmienne globalne muszą być ostrożnie obsługiwane, gdy są używane z przerwaniami, ponieważ te są generalnie asynchroniczne. I jeżeli zmienna globalna jest modyfikowana przez ISR, może zostać zmieniona w dowolnym momencie. Musimy mieć na uwadze następujące aspekty: Odczyt/zapis zmiennych globalnych...
Przytoczona zmienna o nazwie kolejka_r nie jest modyfikowana w przerwaniu w żadnym momencie z żadnego punktu widzenia. Racja. Nie jest modyfikowana w przerwaniu. Ale z punktu widzenia przerwania zmienna kolejka_r jest modyfikowana w losowym momencie (bo w pętli głównej), więc to przerwanie musi pracować na najaktualniejszej wartości zmiennej, a nie...
Panowie panowie chwila o tym już było sporo. Zarówno instalacja jak i przeglądy w domach może wykonywać firma instalatorska nie posiadająca konsesji , licencji itd. Cała ustawa o ochronie OiM, sprowadza się do obiektów obowiązkowej ochrony zarówno fizycznej jak i technicznej. Nawet banki czy ich filie - ale tylko niektóre nie sa w rejestrze wojewody....
Po pierwsze: rejestr DPTR nie sluzy do zabawy (czytaj: nie jest to rejestr ogolnego zastosowania ) bo jest rejestrem adresujacym zewnetrzna pamiec i TYLKO do tego sluzy.Do takich rzeczy jak to uzywa sie R0-R7 zgrupowanych w 4 bankach. Po drugie: petla ktora napisales wykona sie 0xFE+(0xFF)*0xFE razy i ani grama wiecej :lol: Oczywiscie czas w jakim sie...
Zastanawia mnie jedynie kwestia późniejszej rozbudowy o prostą "kartę graficzną". Zależy mi de facto na prostym terminalu tekstowym, zrealizowanym w oparciu o jakiś istniejący kontroler, układy logiczne albo CPLD/FPGA. Te 32 bajty na jeden sygnał CS wystarczą, żeby coś takiego obsłużyć? Nie będzie konieczne mapowanie pamięci ekranu w głównej przestrzeni...
Błąd w rejestrze systemu. Sprawdź mysz pod dosem używając sterownika myszki dla dos i odpalając np Edit albo Qbasic. Sprawdź w trybie awaryjnym. Jak bedzie to na bank błąd w rejestrze Poszukam gdzie jest info o myszce
Witam wszystkich, powoli kończę swój projekt robocika zwiadowczego do wykrywania metalu, elektronika jak i 90% programu działa OK, niestety mam problem z obsługą timera w PIC16F84A który ma pracować w roli licznika, jeżeli chodzi o zliczanie impulsów z wewnętrznego oscylatora, to wszystko jest jak najbardziej OK, jednak jeżeli chce mu podawać impulsy...
Tdv: Wiem, że jest normalna deklaracja zmiennej w asemblerze dlatego wcześniej słowa 'deklaracja' użyłem w cudzysłowiu, a dlaczego korzystałem EQU, chyba dlatego, że chciałem mieć większy wpływ na organizacje pamięci RAM procka. Wadą tego rozwiązania jest możliwość popełnienia głupiego błąde (a widział ktoś mądry błąd :D ), ale wyobraź sobie, że musisz...
Witam. Napisałem kod na procesor jak w temacie, zaprogramowałem go (z małymi problemami, ale po zwiększeniu w programie /Dybkowski/ wartości częstotliwości kwarcu udało się), podłączam LCD i nic. W ogóle nie dochodzi do inicjacji. Podejrzewam, że może coś skopałem przy odczycie z wewnętrznej EEPROM. Proszę o sprawdzenie i/lub ewentualne sugestie. Dziękuję...
Do tej pory omówiliśmy znaczenie ostrożnej obsługi przerwań, metody solidnej strukturyzacji ISR oraz uwagi wymagane do zmiennych globalnych i lokalnych ( Uważaj na przepełnienia bufora danych Generalnie używamy programowych buforów do interfejsów komunikacyjnych. Na przykład, mikrokontroler może zapewnić podrzędny interfejs komunikacji szeregowej I²C...
1. Dlaczego licznik programu ma szyne 9-10 bitow. Wystarczy mu 9 bitow do adresowania 512bajtow Flasha. 1 bit w obu przypadkach jest marnowany, dlaczego? Spytaj twórców. Prawdopodobnie tzw. "core" tych procesorów jest wspólne dla układów z większą liczba pamięci. 2. Jak konkretnie dziala Instruction Reg i dlaczego 12 bitowa szyna rozdziela sie na 8(dane...
W moim sterowniku wykorzystuje szeregową pamięć eeprom 32kb o organizacji 64 bajtów na bank. Pamięć ta przechowuje tygodniowy rejestr zdarzeń. Po rozpoczęciu się nowego tygodnia potrzebuje szybką ją skasować. Nie mogę jej po prostu odrazu nadpisywać, tylko najpierw muszę ją całą skasować. Moje pytanie brzmi jak to zrobić i ile to będzie trwało. Witam....
Kończą mi się pomysły :lol: Na bank coś siedzi w rejestrze. Próbowałeś podłączyć drukarkę po kablu zamiast po wifi?
Nie wspominając ile jest bramek, liczników/timerów, rejestrów wszelakich, pamięci banków i innych układów w strukturze procesora które realizują rozmaite zadania :D Nawet teraz kiedy udają parę bramek ;-)
czyli twoja wersja to prawdopodobnie AMI Bios (American Megatrends Inc.) jeżeli tak to tutaj daję Ci dźwieki jakie wydobywa z siebie płyta główna przy problemach : 1 sygnał - Błąd odświeżania pamięci DRAM (układ odświeżania pamięci na płycie głównej komp jest uszkodzony). Rozwiązanie: Wyjmij i włóż moduły pamięci jeśli to nie pomoże to wymień pamięci...
A ja z uporam maniaka będę powtarzał: - XMEGA128A1 obsługuje tylko 4-bitowy SDRAM; - XMEGA128A1U obsługuje 4-bit i 8-bit SDRAM, ponieważ obsługuje EBI 4-port (porty E/F). Ale nawet jeżeli wybierzesz pamięć 8-bit, to zysk prędkości jest niewielki (<20%) ze względu na wszystkie dodatkowe czynności związane z adresowaniem i obsługą SDRAM. Zgodzę się...
banki energi banki pamięci power banki
sterownik regulator temperatura zmywarka siemens świeci kranik onkyo podłączyć bluetooth
Problemy z przełącznikiem świateł w samochodzie - brak świateł mijania i długich Brak powietrza w prawym miechu zawieszenia DAF 55-250 LF