0xGH już wogóle wygląda...innowacyjnie :P Te dwa rejestry co wymieniłeś to nie są komórki pamięci. Rejestry które deklarujesz w plikach nagłówkowych to są już *(adresy w pamięci) , dlatego jest mozliwość postawić tam wskaźnik. A da się postawić wskaznik na np. R2? Spróbuj...;] Procesor ma rejestry robocze , nie wmapowane w pamięć, na których wykonuje...
witam czy rejestry robocze w avr maja jakis ustalony stan po resecie ?? jesli tak to jaki ?? Po "Power-on reset" komórki SRAM mają przypadkowe(nieokreślone) wartości, a reset sprzętowy nie wpływa na zawartośc komórek SRAM , więc na rejestry robocze również. Piotrek
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)...
Czy jest ktoś w stanie wskazać w listingu ochronę SREG w obsłudze przerwania? Ja widzę "tylko" 32 rejestry robocze. :)
tylko co z tego wynika ?? jeszcze male pytanko odnosnie AVR czy rejestry robocze maja jakas poczatkowa wartosc po resecie ??
Jak odlozyc rejestry robocze na stos? Przy takim zapisie wyskakuje mi blad: PUSH R1 dlaczego kompilator tego nie przyjmuje?
R200 to rejestr roboczy , i zadawanie informacji do tego rejestru nie przyniesie skutków.
w sumie to masz 32 rejestry robocze R0-R31 czyli 32 akumulatory z 51 w tym te od R16 do R31 można obsługiwać na poziomie bitowym.
W tym przypadku kompilator prawdopodobnie nie wrzuci zmiennej do RAM tylko wykorzysta w tym celu rejestry robocze. Chcesz wiedzieć więcej - zapoznaj się z asemblerem danego procesora i jego budową.
Najlepiej wykorzystać dwa albo trzy rejestry robocze Zakładam ze dioda jest podłączona do portu do pinu P3.1 strat: cpl P3.1 skok: djnzR0,$ djnzR1,skok djnzR2,skok jmpstart
Choćby tak, ale to jest średnio profesjonalne podejście: .nolist .include "m8def.inc" jmp Omin_conf .include "conf.asm" Omin_conf: .list ;STALE i ZMIENNE ;============== ;moje rejestry robocze .def tmp =R17 .def tmp2=R16 .def APP_STATUS =R1
AT90S1200 ma mniej pamięci programu i nie ma pamięci SRAM (tylko rejestry robocze) więc dla większości kompilatorów języka wyższego poziomu jest bezużyteczny. Kolega wyżej dobrze radzi, jest to następca poszukiwanego układu, jednak wsady ze starego 2313 mogą nie działać poprawnie (Unlooper nie działa prawidłowo) Ale jeśli masz kody źródłowe, to wystarczy...
72MHz nie ma szans, wprawdzie trochę szybciej, ale trudno to zmierzyc, za mało dostępnych rejestrów. Natomiast przy zapisie do RAMu uparcie stoi na 7 cyklach zegarowych i nic nie pomaga. Z DMA próbowałem, i tylko niestabilne 7MHz wyciąga, ale nie usypiałem rdzenia... Może trochę przyspieszy:) Co do AVR to chodziło mi o 32 dane 8-bitowe. AVR ma 32 rejestry...
Pierwszy fragment kodu przypisuje do stacktop (szyt stosu) wartość RAMEND - 100, czyli 100 bajtów przed końcem obszaru pamięci danych (RAMEND zalezy od ilosci pamieci RAM w mikrokontrolerze - oznacza adres ostatniej komórki RAM. Natomiast dyrektywa .org RAMEND - 99 powoduje że "buffer" zaczyna się 99 bajtów przed końcem tego obszaru. Natomiast obszar...
Danych na HDD nie utracisz po instalacji windowsa na SSD, ale to jasne, że jeśli miałeś programy wpisane do rejestru na SSD i posiadające swoje katalogi robocze, biblioteki na SSD, a zainstalowane są na HDD, to mają prawo przestać działać.
mikmas: a jednak wrzuciłeś esencje naszej rozmowy na forum... pic'e pracują nieco wolniej.. w większości piców 4 cykle zegara składają sie na 1 cykl maszynowy. poszczególne stany rdzenia są jednoznacznie identyfikowane. avr działają z szybkością 1:1 - 1 cykl zegara to 1 cykl maszynowy (w przypadku większości instrukcji prostych), ale poszczególne stany...
Parę uwag: - Ten program WPADNIE w pętlę nieskończoną, bo mu ją wpisałeś ( while(1);, nawiasy {} nie są potrzebne - polecam "biblię" - Kernighan&Ritchie "ANSI C"), tyle, że w tej pętli nic konkretnego nie będzie robił. Co do returna z main - AVR gdy trafi na niedozwoloną lub niezdefiniowaną instrukcję (a na to prędzej czy później trafi jak się return-nie...
"Czy ktos bardziej kompetentny moglby mi powiedziec czym roznia się te mikroprocesory pod wzgledem programowania, konfiguracji portow, taktowania itp. " procesory '51 mają rdzeń CISC więc instrukcje maja różną długość w kodzie binarnym, wykonują się w różnym czasie, posiadają różne preskalery zegara np 1:12 mają 89c2051 więc przy kwarcu 12MHz wykonują...
To bardzo slabo szukales. Taki temat pojawia sie co kilka dni. Srodowisko uruchomieniowe dla AVR-ow za darmo dostepne jest na strone producenta czyli Atmela. Nazywa sie AVR Studio i zawiera kompilator asemblera, symulator. Co do roznic to oczywiscie sa znaczace. AVR to inna architektura wiec inaczej sie robi pewne rzeczy. Do dyspozycji jest 32 rejestry...
Na stos są odkładane dane tylko podczas wywoływania funkcji lub przy przerwaniach - wiadomo, adres powrotu, odkładanie rejestrów roboczych etc.. w takiej pętli nie ma operacji na stosie (nie powinno być). Jakkolwiek "goto na_zewnatrz" robi z kodu troche spaghetti - skoki goto są bardzo nie czytelne... tutaj lepiej użyć "break;" który kończy wykonywanie...
W [url=https://pl.farnell.com/c/polprzewod... z UK dostaniesz a przesyłka 35 zł netto. Dostawa UPS w 2-3 dni robocze.
Witam Kolegów Forumowiczów, mam taki dylemat: potrzebuję zrealizować programowy niezależny 3-kanałowy PWM sterujący pracą diody RGB. Napisałem program, który ładnie generuje PWM tylko jest problem - brakuje czasu na inne procedury. Z założenia program pisany jest w asemblerze na mikrokontroler AT89C2051, który ma sterować diodą mocy RGB, dodatkowo obsługiwać...
Co do tych punktów za plik to wpisałem że że ma być 0 pkt. i nie chce się ustawić na 0, nawet jak edytuje :(. Pliki powyżej 125KB zawsze są opunktowane. co do tłumaczenia.. Co do kwesti technicznych, 4051 ma 4kb flasza i jak znam życie po przerobieniu nie będzie chciał wleźć do 2kb 2313 i tu można się pomylić. AVR ma 32 rejestry robocze a '51 ma tylko...
Do daty dzisiaj
Cos takiego powinno działac , musisz pokombinować. SP to stack pointer czyli wskaźnik stosu,a stos to chyba wiesz co to jest :) SPL określa młodszy bajt SP. Instrukjca nosave powoduje że na stos nie beda wrzucane zadne rejestry robocze. SREG to głowny rejestr kontrolny . Proponuje zajrzeć do pdfa z opisem układu. SREG.7 wskazuje na 7 bit w tym rejestrze....
ś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
Rozumiem, że przez "obliczyć %" masz na myśli policzenie 100 * x/15360. Żeby było prościej liczysz x/153 - błąd nieduży - przy niskich wartościach niweluje potrzebę korekty zaokrąglania, przy bliskich 100% błąd jest największy i dochodzi do 0.5%. Możesz sobie ręcznie zoptymalizować procedurę dzielenia dla znanego dzielnika - 153 to 0x99 binarnie, a...
Mam rozumieć, że układ zliczał prawidłowo, jeśli nie wykorzystywałeś INT0. Jeśli tak, to ja mam taką teorię: enkoder podaję impulsy o częstotliwości 250kHz (impuls co 4us), w czasie 100ms, takich impulsów może przyjść 25000. Z racji że opóźnienie jest programowe, każde wywołanie przerwania INT0, powoduje "wyskok" z procedury waitms (załóżmy że to jest...
Poza tym generowanie sygnału CLK przerwaniem timera to nie problem ale robienie takich długich operacji w przerwaniu jak wypełnianie całej tablicy to moim zdaniem partyzantka. Przerwanie ma robić jak najkrótsze polecenia np. tylko ustawiać flagi na jakieś zdarzenie. Na PK był taki profesor co jak zobaczył w przerwaniu jakieś pętle to od razu darł kartkę...
Kod przenośny dotyczący rejestrów roboczych uC???
Ustawienie tych bitów jest łatwiejsze i bardziej czytelne niż w AVR. czytelność ustawiania bitów zależy raczej od samego programu - są nakładki graficzne, pola wyboru konkretnej konfiguracji, a są też pola tekstowe na wpisanie wartości. Ja osobiśie ustawiam fusebity za pomocą avrdude bezpośrednio z konsoli, wartości pobieram bezpośrednio z dokumentacji,...
Brak jest również obsługi rejestru stanu SREG w przerwaniu a rejestr roboczy " i " uzywany jest także w pętli main. N.
Na przykładzie: [syntax=asm]INCF 0x20, 0x0[/syntax] Jaki jest sens podawania wartości 0x20 która jest zapisywana potem do pamięci programu skoro i tak instrukcja ta wykonywana jest na rejestrze roboczym?
Zmienna opatrzona volatile nie jest nigdy tymczasowo 'przenoszona' do rejestrów roboczych procesora. To w jaki sposób CPU wykonana niej operację? :)
Dziękuję za szybką odpowiedź. Czy istnieje jakieś proste wyjaśnienie tego faktu? (at)EDIT: Próbowałem zaświecić diodę LED programując dwa górne wyprowadzenia: PC6 (który jest oznaczany jak reset) oraz PC5. Po wgraniu programu dioda się nie świeci. Czy są jakieś wyjątki od tej możliwości? Poniżej wstawiam program, który wgrałem: [syntax=asm]/* * dioda_asm_cw3.asm...
Dobrze że przesuwasz bit w prawo w rejestrze ale musisz wpisywać bit w 7 bit rejestru i następnie go przesunąć w prawo. Ponieważ DS wysyła od najmłodszego(LSB) bitu. aby ustawić lub wyzerować bit w rejestrze roboczym musisz użyć następującej komendy: ustawianie bitu sbr r16,1<<7 ; 7 oznacza wagę bitu zerowanie bitu cbr r16,1<<7 ; 7 oznacza...
..bardzo trudno uodpronic uklad na reset np od zaklocen, zwlaszcza avr'ki ;)... wystarczy jeden przypadkowy reset na miesiac i musimy ustawiac zegarek co miesiac :(..ale wpadlem na inny pomysl, wystarczy zapisywac do eeprom aktualny czas co 1h, w razie resetu w najgroszym przypadku stracimy 60min dokladnosci...na 10lat daje nam to 80k zapisow ;)..ale...
8 bitowe 6502 i Z80 adresowały 16bitowo, tak samo zresztą 8051 i AVR. Były '51 z 24 bitowym adresowaniem. Z kolei 32 bitowe MC68000 adresowały 24 bitowo. 32 bitowe 680EC20 też. Dopiero pełna wersja 68020 adresowała 32bitowo. "bitowość" procesora to jest w uproszczeniu jaki jest natywny typ danych (!!) przetwarzanych przez procesor. Bawi mnie określanie...
Niekoniecznie, MCU ze sprzętowym mnożeniem całkiem gładko sobie z tym radzą. W jednej z implementacji szyfrowania udało mi się w assemblerze naskrobać kod szyfrujący z efektywnością 16kB/s przy 4MHz taktowania. Większość operacji odybwa się wyłącznie na rejestrach, SRAM jest używany tylko do pobrania i zapisania operandów; wszystkie zmienne robocze...
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,...
No właśnie dla sbrc zgłasza błąd przy kompilacji:( D:\projekt asm\asembler\konfiguracja.asm(24): error: Invalid register No i chyba mam już powód: sbrc służy do pomijania następnej instrukcji jeśli bit jest wyzerowany ale dla rejestrów roboczych czyli jak rozumiem R0-R31:( Natomiast dla rejestrów funkcyjnych jest rozkaz sbic ale niestety też nie działa...
Masz wiec do wyboru: zadawanie częstotliwości napięciem 0~10V zadawanie częstotliwości prądem 4~20mA zadawanie częstotliwości sygnałem pulsacyjnym We wszystkich trzech przypadkach wystarczy przenieść od rejestru roboczego żądaną wartość. Z RS-em dał bym sobie spokój.
ldi R30,0 ;rejestr ZL ldi R31,0 ;rejestr ZH ijmp ;skok do adresu wpisanego do ZL i ZH w tym przyladku do $0000 --> TA instrukcja wpisuje wartości 0 do rejestrów ZH ZL. Są to rejestry indeksowe ogólnego przenaczenia. Zazwyczaj stosuje się je do pośredniego adresowania rejestrów roboczych względem adresu bazowego. --> Stąd po wykonaniu rozkazu IJMP lub...
Dzięki za odpowiedź. Czy dysponujesz jakimiś materiałami bądź przykładami odnośnie tego w jaki sposób mam wykorzystać pamięć RAM jako bufor? Czy pamięć RAM ma wydzielony obszar dla buforu czy mam korzystać z rejestrów roboczych, a może ze stosu? Trochę nie mam pomysłu jak miałoby to wyglądać. ;)
A może ktoś umie uruchomić pwm na attiny15 i to jeszcze do tego w BASCOM'ie z dwoma ziennymi typy Byte .Nie pomoga $tiny i deklaracja ziennych 'wpisywanych'do rejestrów roboczych ->. Dim X IRAM As Byte. Z góry dziękuje za pomoc
Mam takie pytanie, dlaczego rejestr roboczy W jak często spotykam w necie to jest odtwarzany po obsłudze przerwania w ten sposób? [syntax=asm]SWAPF W_TEMP, F SWAPF W_TEMP, W[/syntax] A nie na przykład w taki? [syntax=asm]MOVF W_TEMP, W[/syntax]
No niestety kropka tu nie pomoże, sprawdzałem to wcześniej. Jeśli chodzi o zmienną to próbowałem jakoś odczytać wartość rejestru do zmiennej ale nic to nie dało, błąd zgodności danych czy coś takiego. Poza tym zmienne same w sobie też mam umieszczone w rejestrach roboczych. Próbuje jakoś ten asm wpleść ale też mi topornie idzie, co oznacza "nop"?
W AVR Studio? Nie wiem jak Ty to robisz, ale dyrektywa EQU powoduje błąd. DEF jest specjalnie dla rejestrów roboczych. Chciałbym żeby to było takie proste. Jednym EQU załatwić wszystko. Przy pisaniu na '51 tak można było zrobić. Używać EQU do woli. Ale tu chyba nie można. Przynajmniej mi się nie udawało bo próbowałem już wcześniej.
RitterX - Myśląc nad architekturą tego urządzenia jeszcze na wczesnym etapie musiałem przemyśleć bardzo dokładanie te kwestie o których wspominasz. W końcu podjąłem decyzję i zdecydowałem się na sposób podobny do strzelania z broni palnej, a mianowicie: załaduj i strzel. Upraszczając - "załaduj" oznacza pobranie z kolumny pamięci kodu instrukcji i ewentualnie...
czas trwania impulsu dodatniego częstotliwość tych impulsów to od 0 do 400 na sekunde a opis tej instrukcj to zerowanie bitu w rejestrze a jeśli załaduje rejestr roboczy funkcyjnym to wskazywany bit do zerowanie będzie pod nazwą bitu z rejestru funkcyjnego (a niejest tak???) to jesili nie to czemu wcześniejsze instrukcje działają np.ustawiają i zerują...
Widzę u Ciebie duże przywiązanie do Atmela, więc możesz wziąć jakiegoś ARMa i na nim zbudować układ realizujący założoną funkcję. Na przykład [url=http://www.atmel.com/devices/SAM3S4... Zaletą tego modelu jest przyjemna obudowa. Wadą jest brak możliwości pracy z zewnętrzną pamięcią S(D)RAM. Jeżeli przylutujesz TQFP44 czy 48, to tak samo idzie...
działa, a co jeśli chcę, aby czart świecenia i nieświecenia diody był 4 razy dłuższy od buzzera? Przez komendę MOV A,#40, znowu będzie źle Musisz dodać licznik na przykład na którymś z rejestrów roboczych. Ładujesz go na początku wartością 4 i przy każdym przejściu przez rozkaz wyłączania buzzera dekrementujesz ją. Następnie używając rozkazu CJNE sprawdzasz...
Do tej pory pisząc w asemblerze znałem architekturę wewnętrzną danego procesora i odwoływałem się do danego rejestru W C jest dokładnie to samo :) Tylko że zamiast używać assemblerowych instrukcji i operowania na rejestrach roboczych, piszesz "równaniami" w stylu REJESTR = (1<<BIT) i nic Cię więcej nie obchodzi. Może to z początku wyglądać dziwnie,...
asembler : mój program pokazuje 00, a po zwarciu pinu do zasilania: -16. Wygląda to tak jakby otrzymywał bajty mniej więcej: XXXX1001 i 0000XXXX. Po drobnych przeróbkach zgodnie z Twoim programem jest na odwrót: na wolno jest -16, po zwarciu do masy 00. Odpowiedzią na moje pytanie może być odpowiedź na pytanie: co może powodować że pomimo zwarcia pinu...
Nie wnikając specjalnie w twój kod. W asemblerze komendy IN OUT przekazują dane między rejestrami ogólnego przeznaczenia, a obszarem I/O. IN - sczytuje wartość z rejestru I/O do rejestru OUT- zapisz na port daną z rejestru roboczego np. ldi R16, 0x0F ;załaduj rejestr 0b00001111 out PORTB, R16 czyli tłumacząc na C PORTB = 0x0F; a po komunikacie można...
Jak wiem jak najlepiej? Skoro jest tylko jedna metoda? Tak więc trzeba użyć właśnie tej jednej metody. Jak to metoda to na razie nie napiszę, bo jednak jakieś minimum wiedzy o mikrokontrolerach jednak pasuje mieć (szczególnie że zadane pytania sugerują że to są pytania z jakiejś szkoły/uczelni). Co do drugiej części podobnie. Tutaj tylko podpowiem że...
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...
Chciałem zapytać jak korzystać ze stosu w mikrokontrolerach. Nie chodzi mi o komendy POP i PUSH lecz chciałbym się dowiedzieć w jakich sytuacjach programowych moze on być wykorzystywany. Chciałbym aby moje programy były bardziej czytelne i aby posiadały poprzez to lepszą składnie. Pytanko czy mogę stos używać miedzy innymi do przechowywania wartości...
90% aplikacji jest 1 wątkowa, to po co 12 wątków Tylko że wielowątkowość to nie to samo co wielordzeniowość. Wielowątkowy był już 286, choć o takiej z prawdziwego zdarzenia można było dopiero mówić w 386. Na upartego aplikacje wielowątkową można stworzyć nawet na 8051, bo ma 4 zestawy rejestrów roboczych, między którymi można się programowo przełączyć....
Witam wszystkich :) Ostatnio, jako niestety początkujący w tej dziedzinie, natknąłem się na zagwozdkę dotyczącą stanu rejestru wejścia/wyjścia w mikrokontrolerach AVR i mimo dłuższego szukania nie znalazłem satysfakcjonującej mnie odpowiedzi... Mianowicie: Chciałbym sprawdzić stan rejestru I/O (przykładowo port A) mikrokontrolera celem odczytania stanu...
Właśnie ze względu na konieczność roztrząsania wielu kwestii (np. odkładanie rejestrów roboczych na stos), o których "pamięta za mnie" kompilator C, do asemblera sięgam w ostateczności. Jeśli już koniecznie trzeba optymalizować, to chyba lepiej napisać kod w C, pozwolić go skompilować do asemblera (jest taka opcja, w tej chwili nie pamiętam nazwy),...
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...
Ajatol podałeś taki przykład z którego nic nie wynika. Sprawdź taki prosty program i wtedy stwierdź czy jesteś w stanie przewidzieć jaki będzie stan flagi. ldi r16,1 ldi r17,2 start: cp r16,r17 brcc dalej inc r16 dalej: inc r17 rjmp start Musisz przyjąć że to jest tylko symulator i robienie ręcznych zmian rejestrów procesora nie występuje w...
O ile pamiętam, to avr mają specjalne rozkazy ustawiania i kasowania bitów. Starsze kompilatory wymagały stosowania odpowiednich funkcji/makr, nowsze rozumieją zapis |= n jako ustawienie bitu i wstawiaja odpowiednia instrukcje. Zastosowanie dwóch albo więcej instrukcji logicznych zamiast pojedynczej może powodować problemy z przerwaniami - a często...
Nie znam C (mimo ze na studiach próbowali mnie tego nauczyć) a w ASM juz nieźle sobie radzę i specjalnie operacje dzielenia czy mnoścnia już na mnie wrażenia ine robią. Problemem jaki najczęściej mnie denerwuje jest: 1: mało rejestrów roboczych (troche pomaga stos) i niektóre niedogodności działań na niższych rejestrach 2: obsługa stosu (ale to wymaga...
Czy w ATmega8 da się wykonywać operacje na pojednczych bitach w rejestrach i/o, np TWCR? Jeśli chodzi o rejestry I/O z zakresu adresowego 0x00 do 0x1F to tak. Jeśli chodzi o rejestry znajdujące się wyżej - od adresu 0x20, przykładem jest właśnie TWCR - to nie. Polecenie SBI TWCR, 6 skutkuje błędem error: Operand 1 out of range: 0x36, (...) Wytłumaczenie...
jestem na etapie budowy takiego ukladu z wykorzystaniem ATMega8 (at) 8MHz, oto koncepcja programu: 1 beat => wystartuj licznik 16-bitowy clk/64 2 beat => zatrzymaj licznik pojedynczy bit gornego rejestru licznika dla tych ustawien ma wage 2,048ms a licznik zawiera jej wielokrotnosc rowna okresowi pomiedzy dwoma beat'ami 60000/2,048=29296,875 wiec do...
https://obrazki.elektroda.pl/5132775900_... Chociaż na zdjęciu widać mini płytkę z PIC18F1220, to posłuży ona jedynie do praktycznego zaprezentowania obsługi wątków które zaimplementowałem. Obecne możliwości kodu który chce zaprezentować, to działanie równoległe 2 lub trzech wątków, w tym głównej funkcji main która jest pierwszym wątkiem....
Witaj Freddie Chopin, chcę się jeszcze upewnić w tym materiale od michrochipa: http://techtrain.microchip.com/websemina... na stronie 15 widoczny jest DSP engine (jego dokładny schemat blokowy znajduje się np w tej nocie do dsPIC30f6010a : http://ww1.microchip.com/downloads/en/De... na stronie 19). Do...
Na wstępie przykładu podanego przez Elekrooonik-a warto dopisać : .def acc=r1 No tak :) nie pisałem tego bo wydało mi sie to oczywiste ze trzeba tą nazwe symboliczną przypisac wcześniej do któregos z 32 rejestrów rx. Dana umieszczona jest w r1, ale mysle ze warto by było ją wczesniej przekopiowac do jakiegos innego rejestru roboczego by jej zawartosc...
w elektrowni nikt nie odbiera telefonów Do [url=https://pl.wikipedia.org/wiki/Elekt... to się nigdy się nie dodzwonisz. Natomiast [url=https://pl.wikipedia.org/wiki/Zakła... przyjmuje zgłoszenia alarmowe 24/7/365, ale tylko dotyczące braku zasilania i awarii zagrażających zdrowiu i życiu. Pozostałe przypadki, jak...
Witam, uczę sie na PIC16f1517 i jako zadanie wyznaczyłem sobie konfigurację pinów danych portów. Chcę ustawić 1,3,5 pin PORTA jako wejścia a resztę na wyjście oraz 2,5,6 pin PORTD na wejścia a reszta na wyjścia. Nie wiem czy robię to prawidłowo ponieważ jestem bardzo początkujący wiec proszę o wskazanie ewentualnych błędów. Poniżej zamieszczam mój kod....
Rozumiem że przeniesienie programu w C polega na zmianie kompilatora, bibliotek i definicji procesora, to chyba wszystko? Chciałbym zobaczyć jak kolega łatwo przenosi 32kB kodu ASM AVR na PIC..... wspomnę tylko drobne różnice - inna arytmetyka stosowana w PIC (szczególnie daje się we znaki przy odejmowaniu), AVR dokonuje operacji na dowolnych rejestrach...
Witam. Podczas pracy z Atmega16 napotkalem problem z dzialaniem. W trakcie pierwszego uruchomienia urzadzenia po wykonaniu pewnej procedury program szedl w przyszlowiowe krzaki, chociaz nie do konca. Po dwoch dniach szukania bledu w programie okazalo sie ze rejestr roboczy uzyty w tej nieszczesnej procedurze za pierwszym razem zawiera jakies smiecie...
To, co tu się dzieje (na listingu) wynika z prostej rzeczy. Przy włączonej optymalizacji kompilator stara się trzymać zmienne robocze (przede wszystkim automatyczne) w rejestrach, zamiast na stosie. Jak zaczyna tych rejestrów brakować, to zmienne musi odłożyć na stos (drugi listing, użycie rejestru Y). Jeżeli faktycznie jedynym błędem była o bajt za...
a ja sie zastanawiam.. jak by odświeżanie zrobić 5FPS a żeby czas pomiaru trwał 2 sekundy można zastosować prosty stos FIFO z 10 zmiennych. przerwanie z czujnika by inkrementowało wszystkie 10 zmiennych, przerwanie z licznika odmieżającego 1/5 sekundy by kopiowało pierwszą zmienną stosu (stos_0) do rejestru roboczego, mnożenie przez 30 i wysłanie na...
Raczej mi nie pomogło:( A czytałeś w ogóle? Zwłaszcza uwagę "IMPORTANT:" w sekcji What is a Pointer? Jeżeli tylko zadeklarujesz pointer (Frame_LCD1) to nie wskazuje on w żadne sensowne miejsce. Jeżeli zadeklarowałeś globalnie (tak jak na początku) to jest to NULL pointer, a zatem wskazuje pierwszą dostępną komórkę pamięci, adres 0. Dla AVRów jest to...
Jakim cudem Ci się to skompilowało? Po pierwsze: IN R16, PINA1 ; przesuń PINA1 do rejestru pomocniczego Nie możesz do rejestru roboczego skopiować tylko jednego bitu. Co najwyżej cały rejestr in r16, PINA Ale możesz od razu przetestować wybrany bit instrukcją sbic, bo rejestr PINA znajduje się w dolnym opszarze wejścia-wyjścia. Całość powinna wyglądać...
Witam!!! Z moich osobistych doświadczeń wynika że AVRy (Atmega) radzą sobie całkiem nieźle z zakłóceniami. Dobre zasilanie to już pół sukcesu. Nie ma idealnych procesorów. Projektanci procesorów nie tworzyli by Brown-out detector i watchdoga gdyby nie były one przydatne i nie minimalizowało to prawdopodobieństwa zmiany wartości na stosie lub w rejestrach...
Błędnę jest też przekonanie że kiedyś mikrokontrolery 8051 czy podobne (CISC) były dobre do tamtejszych zastosowań, a teraz zmieniły się czasy i lepsze są inne mikrokontrolery (RISC). Wystarczy poczytać historię rozwoju mikrokontrolerów czy ogólnie procesorów. W skrócie: Procesory się rozwijały (wtedy CISC) aż ktoś policzył jaki jest narzut na operacje...
Witam! W muzealnym procku INTEL 80386 jest sześć rejestrów segmentowych: CS - rejestr segmentowy rozkazów stowarzyszony z licznikiem rozkazów SS - rejestr segmentowy stosu, stowarzyszony ze wskaźnikiem stosu DS - rejestr segmentowy danych, stowarzyszony z adresem danych ES - rejestr segmentowy dodatkowy 1 stowarzyszony z adresem danych FS - rejestr...
http://skalski.elektroda.eu/files/atmega... Atmega128 zapewnia następujące elementy: 128K bajtów wewnętrznej programowalnej pamięci typu FLASH z dopasowaniem odczytu podczas zapisu, 4K bajty EEPROM, 4K bajty SRAM, 53 linie wejścia/wyjścia, 32 robocze rejestry, Licznik rzeczywistego czasu(RTC), cztery liczniki z trybami porównywania i PWM, dwa...
"Mikrokontrolery AVR firmy Atmel to układy oparte na architekturze RISC. Dzięki temu ich wydajność jest nieporównywalnie większa niż układów popularnej serii MCS 51. Budowa układu opiera się o architekturę harwardzką…. Posiadają 32-bajtowy obszar rejestrów roboczych o natychmiastowym dostępie, brak jest ściśle zdefiniowanego akumulatora dzięki...
Czy podczas odczytu informacji z portu i ładownia ich do rejestru można to robić bezpośrednio, czy też trzeba najpierw załadować je do rejestru pomocniczego ? Musisz to zrobić przez rejestr roboczy czyli: in r16, PINB out PORTD,r16 in i out możesz stosować do dowolnego rejestru którego adres jest mniejszy od 0x20. Tak samo jak sbi/cbi Inną sprawą jest...
Jest tak jak pisał petione. Program w LD jest wykonywany od góry do dołu. Ten kawałek cyklu odpowiadający za wykonanie programu wygląda tak: -aktualizacja stanów wejść do rejestru wejść -wrzucenie stanów wejść z rejestrów do RAMu - mikroprocesor zaciąga stany wejść z RAMu - wcześniej pobrał program np. z EEPROMA, resetuje licznik rozkazów i pobiera...
Witam, mam problem z obsługą CALL, nie wiem jak to obsłużyć i zaimplementować a i raczej bez stosu się nie obejdzie. Program to terowanie silnikiem krokowym, i chciałem żeby po każdym kroku skoczył do etykiety PRZYCISK i sprawdził czy wciśnięta, jeżeli tak, to żeby powrócił w to samo miejsce i wykonał następny krok. jeżeli mógłby ktoś pomoc byłbym wdzięczny,...
Witam, próbuje podłączyć wyświetlacz led do mojego sterownika frezarki cnc - (nie ma oryginalnie led ale wiem że są wersję z led więc chce wykorzystać te piny) namierzyłem sygnały zegarowe i data które idą do dwóch rejestrów 595 połączonych szeregowo - w sumie otrzymałem 16 wyjść sterujących które sterują 6 cyferkami led, problem jest taki że nie mam...
Magistrale SPI mozna kluczowac odpowiednim multiplekserem analogowym. Magistralę SPI kluczować? Po to jest magistralą, żeby nie trzeba było jej sygnałów kluczować. I to jeszcze multiplekserem analogowym. - pozwala na zapis danych z ADC do pamieci przez DMA co zupelnie odciazy procek Projekt nie jest skomplikowany, więc nie jest to kluczowa funkcjonalność...
SREG czyli Status Register zawiera flagi jednostki centralnej mikroprocesora czyli jakby oznaczenia efektów jego ostatniego wykonanego rozkazu. Flagi służą głównie jako argumenty/znaczniki do wykonywania rozkazów warunkowych czyli najczęściej skoków. Przerwanie może nastąpić w dowolnej chwili czyli też pomiędzy ustawieniem flagi w SREG a jej wykorzystaniem...
JNB TF0, CZEKAJ_OVF1; - robię to tak: djnzr2,$ czyli w Twoim przypadku byłoby to: JNB TF0,$
Wydaje mi się, że to jest tak: Poprawcie mnie jeżeli się mylę ale w powyższy sposób można chyba odwołać się do adresu max FFFFh (64kb) , jak zatem czytać tablicę np od 82kb ? Innymi słowy czy można stworzyć wskaźnik składający się z trzech rejestrów ? ? Mikrokontrolery o pamięci powyżej 64kB mają dodatkowy rejestr RAMPZ do wyboru stron pamięci. Instrukcja...
Z tego co ja się dowiedziałem, można zrobić to tak : Skoro częstotliwość nośna równa się 36000 Hz, okres wynosi 0,0000278 s. Dla łatwiejszego rachunku zaokrąglamy okres do 0,0000280 s. Czas trwania logicznej "1" = 1/2 * T, a więc Ton = 0,0000140 s Czas trwania logicznego "0" taki sam, a więc Toff = 0,0000140 s Odpowiada to częstotliwości 35714.286 Hz....
Witam. Próbuje skonfigurować akcelerometr tak, aby po "szturchnięciu" wybudzał procesor po czym przechodził w tryb uśpienia do kolejnego "szturchnięcia" (akcelerometr). Pobór prądu powinien spadać wtedy do kilku uA. Samo przerwanie od szturchnięcia działa. Robię je zgodnie z tym co jest tu: https://www.nxp.com/docs/en/application-... na...
Nie 30, tylko 6 plików... No dobra, Ctrl+C, Ctrl+V: ADD A , Rn do akumulatora dodawana jest zawartość rejestru Rn A <− A + Rn gdzie Rn = R0...R7 (jeden z rejestrów roboczych) kod: 0 0 1 0 1 n2 n1 n0, gdzie n2...n0 – wskazują na R0...7 stąd: 28h−2Fh cykle: 1 bajty: 1 przykład: ADD A , R2 – ADD A , adres do akumulatora dodawana...
Witam wszystkich. Mam mały problem z rozwiązaniem sposobu zliczania i przedstawiania na wyświetlaczach zliczonych impulsów. Nie byłoby problemu gdybym chciał na przykład zliczyć impulsy od 0 do 255 (8 bitów), ponieważ zapisałbym je w jednym rejestrze (np R0), rozbił na jedności, dziesiądki i setki kodem: mov R0,#128 Mov A,R0 mov B,#100 div AB mov R1,A...
Witam! Próbuję uruchomić UARTA w trybie asynchronicznym w asemblerze. Debbuguję program i po wykonaniu linii: out UCSRC, R16 zmienia mi się stan rejestru UBRRH z 0x00 na 0x26. Pytanie - dlaczego? Poniżej strzępki moich asemblerowskich myśli :) .INCLUDE "tn2313def.inc" ; kwarc 8MHz .equ BAUD=51 ;predkosc transmisji szeregowej 9600bps .list...
Dzięki WojtasJD . Po wybraniu opcji logowania jako-->to konto-->Przeglądaj-->Zaawansowane-->Znaj... teraz i wybraniu z listy "Usługa lokalna" oraz zatwierdzeniu zapora znów jest aktywna :D. Ta Vista mnie zadziwia coraz bardziej :D Dodano po 4 Naprawdę Visa zaskakuje :D Nareszcie uzyskałem pierwsze pingi z XP na Vistę. Po udanym załączeniu zapory w Viście...
Witam. Próbuję zaimplementować prymitywny zegar czasu rzeczywistego na mikrokontrolerze AT89S52 taktowanym rezonatorem kwarcowym 12 MHz. Do tego celu wykorzystałem licznik T2 i przerwanie od niego pochodzące. Wartość początkową i do przeładowania po przepełnieniu ustawiłem na 3CAFh. Czyli przerwanie będzie występować co 50 ms (65 535 – 15 535...
Grzybens Chwilowo odchodząc od głównych objawów - czy nie powinno tam gdzieś być jakiegoś oczekiwania na pusty bufor nadajnika? O ile dobrze pamiętam działanie symulatora w AVR Studio, to po wpisaniu wartości do rejestru UDR przez chwile pojawia się ona w podglądzie rejestrów, ale zaraz w następnym cyklu symulacji pojawia się tam zero - co ma sens,...
I dobrze, bo równie dobrze może zabić jeśli ów test pamięci wykaże błąd. Bzdura. Jak testu nie przejdzie nie włączy układu wykonaczego. KPW? A myślałem że już ci przeszły te denne odzywki na forum. Tak więc swoje skróty typu KPW, HGW, KGB czy inne pozostaw dla swoich kolegów z podwórka i tam się nimi posługuj - tyle NORMA (o którą się dopominasz) ....
napięcie robocze outlook robocze stanowisko robocze
wymiana żarówka skoda tda2030a zasilanie serwis celma
mikrokomputer cobra1 scania halogeny dalekosiezne
Brak regulacji obrotów nawiewu w Citroën Xsara Picasso 2001 Jak sprawdzić, czy telefon jest szpiegowany?