poprawnie jest: LAR1 P#1.0 // adres źródłowy L #zakres_danych skok: T #zakres_danych ........ ....... ....... L #zakres_danych LOOP Skok
Mam wrażenie ze nie rozumiesz idei adresowania pośredniego. Nie wiem czy będę w stanie to dogłębnie wytłumaczyć. Adresowanie pośrednie stasujemy generalnie tam gdzie wygodniej jest nam nie podawać adresacji w formie jawnej (wiem ze to trochę zagmatwane ale nie da się wyczerpać wszystkich przykładów gdzie stosować). Oczywiście często można zastąpić adresacje...
Tutaj znajdziesz niezły opis adresowania pośredniego - Rkarcz [url=http://www.elektroda.pl/rtvforum/vi... Opcji jest kilka wystarczy poszukać :) Takie FC na szybko, myślę, że sobie coś dopasujesz.
Ładny program tylko, po co? do tego służą bloczki FC85 FIFO i FC87 LIFO, do tego FC 84 ATT ( i oczywiście FC 86 jak ktoś potrzebuje ). Zresztą program jest napisany na 300 i jest nieprzydatny bo kolega ma program na 1200 ze starą wersją poniżej V2.0 ( do tego pracuje na 10.5 gdzie jest tylko LAD i FDB a sterownik nie przewiduje adresowania pośredniego...
Najlepiej byłoby użyć do tego SCL'a. Możesz wtedy indeksować tablicę jakąś zmienną, np.: tablica[i]. W pozostałych językach musisz to zrobić statycznie lub skorzystać z adresowania pośredniego (indirect addressing). Przy czym w przypadku dodatkowych struktur UDT jest to trochę uciążliwe, bo trzeba dobrze liczyć bajty.
W końcu sobie poradziłem bez kolumny pomocniczej - fajna łamigłówka W jednym arkuszu dwa przykłady z indeks'em i adresowaniem pośrednim ale zasada ta sama zaokrąglenie w góre podzielonego na pół numeru wiersza a później wyszukania. Mam nadzieje że to nie jest twoja praca domowa. :)
Wcale ci nie odpada. Bo jak mówiłem każdy string i tak kończy się zerem. A widzę za za dużo zaczynam teoretyzować i kombinować. Weź jakiś kurs przykłady i je realizuj bo inaczej do niczego nie dojdziesz.
Może chodzi o ortogonalność architektury (każda instrukcja może być wykonana na dowolnym rejestrze, nieważne czy to jest rejestr I/O, SP (Stack Pointer), PC (Program Counter) czy też rejestr ogólnego przeznaczenia (tak samo każdy rejestr może być adresowany pośrednio). Texas w swoim MSP chwali się taką architekturą dowodząc że ma najmniejszy kod wynikowy...
Bo, moim zdaniem, powinieneś adresować bufor pośrednio. Np. tworzysz sobie bufor od danego adresu. Adres zapisujesz do R0 i potem adresujesz np. mov A,SBUF mov (at)R0,A inc R0 Wówczas R0 jest Twoim wskaźnikiem do danej komórki bufora. Można zdefiniować jeszcze stałe np. BUFFER_START i BUFFER_END, które będą adresami początkowym i końcowym bufora, co...
Zobacz tutaj: https://support.automation.siemens.com/W... a w załączniku ZIP z trzema dokumentami i przykładami. Niestety wszystko w języku angielskim, ale mam nadzieję że i tak pomoże.
Witam Jeżeli adresujesz pośrednio to musisz podać dać MOV R0,#01 wtedy zaczniesz adresować od R1. Nie możesz jednocześnie trzymać adres w R0 i daną z portu rs. Czytaj posty napisałem gdzie leżą rejestry Rx :D. Nie mam pojęcia co się zmienia w R3 i dalej, z programu wynika że nic nie powinno się zmieniać w tych rejestrach. Co do stosu to masz rację nie...
Witam Z analizy programu wynika że jeśli chodzi o wyjścia używane są następujące: QB 0 QB 1 (również jako QW0 i współpracują z instrukcją „DO”) Q5.3, Q5.4, Q5.5, Q5.6, Q5.7 Q8.0, Q8.1, Q8.4 Q12.7 QW24 QB60 QB100 QB110 Nie ma więc w programie sterowania jawnie wyjściem Q7.7. Jednak zastosowano tu manewr adresowania pośredniego poprzez instrukcje...
nie wiem jak codevision ale w gcc chyba nie da sie tak nisko zejsc zeby wybierac tryb adresowania w instrukcjach, to juz kompilator wybiera sobie , w kodzie mozna sobie tylko napisac cos w stylu: a = *wsk++; *(--wsk) = a; i miec nadziej ze skompiluje sie tak jak chcemy lub gdzie potrzeba szybkiej procedury to w asmie napisac. Ja tam pamiec wewn/zewn...
Ładuj bit przesunięty o 2 bity w górę od adresu znajdującego się w rejestrze adresowym AR1 w chwili wykonywania instrukcji. Czyli praktycznie ładuj bit 02 ze słowa wskazanego przez AR1. (rejestr wskazuje co prawda na bit, ale zawsze się tak go ustawia, aby był to bit zerowy kolejnego słowa lub bajtu) Numer DB jest również wskazany przez ten rejestr.
O ile znam S7 nie ma takiej możliwości. Sa inne mechanizmy adresowania pośredniego.
88 TCON 89 TMOD zapisujesz w SFR są to rejestry adresowane bitowo i bajtowo, dlatego jest taka zależność podzielności przez 8, podzielne przez 8 możesz adresować bitowo Wydaje mi się, że rejestry SFR adresowane są tylko bezpośrednio, a przy adresowaniu pośrednim powinienem trafić w pamięć RAM
Niestety w języku LAD nie ma adresowania pośredniego. Do tego trzeba skorzystać z języka STL, który ma o wiele więcej funkcji niż LAD czy FBD. I tutaj koniec. Jednak można kombinować tak, jak wyżej i z dostępnych funkcji tworzyć adresowanie nazwijmy je "pseudopośrednie". Ale takie drabinki szybko robią się bardzo duże :), szybkość wykonywania programu...
W takim razie jak by to wyglądało w 90-70? Rx3i też nie obsługuje adresowania pośredniego ?
Dziękuję serdecznie. Wiedziałem że jest to związane z adresowaniem pośrednim, ale nie dawałem formuły w cudzysłów i mi błąd wyskakiwał. Dzięki serdeczne jeszce raz. Pomogło!
Poczytaj o adresowaniu pośrednim.
Przepraszam za zamieszanie - AT89c51 ma tylko 128b RAM AT89c52 256b RAM (to jest więcej od AT89c51 właśnie o ten obszar adresowany pośrednio)
Myślę,że bez paru linijek z adresowaniem pośrednim się nie obejdzie.
Witam. Napisałem już trochę programów w życiu, ale -aż wstyd się przyznać- do dzisiaj nie rozumiem roli jaką odgrywają wskaźniki, nie potrafię ich używać, nie wiem do czego one służą, czemu z nich korzystać itd. Marcin Wskaźniki - no cóż, to takie twory, które potrafią bardzo ułatwić życie (czytaj programowanie), albo doprowadzić załamania nerwowego....
Witam, Może spróbuję L #ProgramNr L 1 -I //Operacja odejmowania #ProgramNr - 1 L 242 *I //Operacja mnożenia (#ProgramNr-1)*242 L 0 +I //Dodawanie [ (#ProgramNr-1)*242] + 0 T #Temp_1 //Zapamiętuje wynik wszystkich operacji w zmiennej Temp_1 L #Segment L 1 -I //Odejmowanie (Segment-1) L 12 *I //Mnożenie (Segment-1)*12 L 2 +I //Dodawanie [(Segment-2)*12]+2...
Uziemione poprawnie? Pytanie spędzające sen z powiek wielu, a adresowane pośrednio do autora instalacji elektrycznej w lokalu...
Wygląda, że jest to adresowane pośrednio w zmiennej DB_VAR11161 jest zapisany nr bloku danych, który ma być aktualnie wywoływany.
Hej czym tak naprawdę różnią się akumulatory ac0-ac3 od innych zmiennych np. MD? Jaka jest główna różnica? Służą do adresowania pośredniego? W s7-1200 są rejestry akumulatorów?
Powinieneś poczytać o adresowaniu pośrednim, wtedy byś zrobił ten program tak na szybko. Wskaźnik do adresowania mamy 16 bitowy (do timerów, liczników, bloków danych) - liczba INT. Drugi mamy 32 bitowy. http://obrazki.elektroda.pl/6039223800_1... jak widzisz mamy na 3 ostatnich bitach nr bitu, dalej nr bajtu. Najprościej, wpisując np 7 to...
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...
Szkoda tylko, że adresowanie pośrednie zostało pominięte.... a większość rzeczy trzeba wyciągać od wykładowcy.. pozostałą wiedzę możesz przyswoić sam w domu.. z pomocą helpa w stepie i nie tylko. Niemniej jednak zawsze taki kursik się przydaje, uważam, że jak dla początkujących to jest ok. Lecz brakowało mi tam właśnie konkretów na temat adresowania...
1. używasz adresowania pośredniego? 2. kolejne to : klikasz na marker i wybierasz go tu location 3.sprawdzasz nazwę i komentarz i szukasz odniesienia. Możliwe że marker pochodzi z Visu
Może ten temat trochę ci pomoże [url=http://www.elektroda.pl/rtvforum/vi... Przyjrzyj się załącznikowi "register". To tworzenie ANY P. do adresowania pośredniego.
Poszukaj o adresowaniu pośrednim i o typie ANY. Zerknij na: http://www.elektroda.pl/rtvforum/topic30... http://www.elektroda.pl/rtvforum/viewtop... W bardziej "ludzki" sposób można przez napisanie kodu SCL.
Witam Użyj adresowanie pośredniego. L Indeks L P#2.0 //dla Int *D LAR1 OPN DB x L DBW[AR1,P#0.0] T Wynik i już
Eagle masz racje nie korzystam z AVR bo korzystam z PIC. A 51 to mnie ostanio na laboratorium katują (tylko taką wypaśną 80c517) A co do tematu to co za procesor który nie ma adresowania pośredniego?
Nie oczekuję zrzucania rejestrów na stos. Ale gdybym mógł zdefiniować dany SUBUNIT używając wirtualnych wejść wyjść i markerów zadanych parametrem (coś ala $1 $2 $3) to potem można by go wielokrotnie wykorzystywać nawet jeżeli by to było bardziej na zasadzie funkcji #INLINE niż podprogramu ... Także trzeba uczciwie napisać "FATEK nie ma podprogramów"...
Ja ostatnio bardzo dużo siedzę w DCS i tam najlepszym dla mnie językiem jest FBD. Szybko i bardzo przejrzyście dla późniejszej diagnostyki. W mniejszych sterownikach to przeważnie LAD, rzadko IL. Co do adresowania pośredniego w LAD to tylko chyba Siemens ma z tym problem :)
87C52 miał 256B RAM a SAB 80C515A 1KB RAM. Oba obszary SFR i RAM są rozróżniane poprzez sposób adresowania. W 87C52 obszar SFR 0x80h...0xFFh pokrywa się z dodatkowymi 128B RAM. Rozróżnienie gdzie trafi dana odbywa się za pomocą trybu adresowania: RAM poprzez adresowanie pośrednie z adresem w rejestrach R0,R1 a do SFR poprzez adresowanie bezpośrednie....
Obszar wyższy 128 bajtów (od adresu 0x80 do 0xFF) dostępny jest dla adresowania pośredniego, czyli jeśli w rejestrze R0 lub R1 zapiszesz adres np. 0x85 i wykonasz mov (at)R0,A, to zawartość akumulatora powędruje właśnie w "górny" obszar RAMu.
ad 1. Jeżeli chodzi np 0 89C51 i 89C52 to różnią się właśnie pamięcią danych (52 ma dodatkowe 128 bajtów - adresowane pośrednio). uC '52 mają też dodatkowy Tajmer T2. Tyle z grubsza między nimi różnic. ad 2. Dokładnie.
Super, że napisałeś o jaki procesor chodzi... Sądząc z instrukcji o '51. mov to instrukcja przeniesieania wartości z/do pamięci wewnętrnej/rejestrów uC, movx to instrukcja dostępu do zewnętrznej pamięci danych (fizycznie inny układ scalony niż uC), DPTR to 16 bitowy rejestr używany generalnie przy adresowaniu komórek pamięci zewnętrznej, choć można...
oczywiście takiej instrukcji nie ma i właśnie w tym jest problem, potrzebowałbym zrealizować takie setb i clr lub mov c adresowane pośrednio bitowo. ułatwiło by mi znakomicie pisanie programu, może ktoś się spotkał z rozwiązaniem takiego problemu? chodzi o ustawianie pinów z tym że są na rożnych portach i w rożnej kolejności a ich adresy były by spisane...
Moje podejście do adresowania pośredniego W S7. może komuś się przyda Miałem napisać program który przegląda 24 maszyny. (pomiar i przeskalowanie temperatury) A następnie zapisać je kolejno w bloku danych. Oczywiście ponieważ proces nie był krytyczny czasowo w jednym cyklu sterownika obrabia się jedną maszynę. (a i sterownik ma równomierniejsze obciążenie...
Jest liczba zapisana w pamięci do której adres jest w rejestrze np R3. Jak najlepiej wyciągnąć wartość tej liczby Poczytaj o adresowaniu pośrednim :wink: [syntax=x86asm]movr0,#adres_zmiennej_w_R... adresu zmiennej w pamięci RAM do "r0" mova,(at)r0 ;zapis wartości zmiennej do "a"[/syntax]
:arrow: Marek z tego co rozumiem to ten adres pośredni to "małkpa"?. Jeśli zdeklaruje sobie pierwszy bajt np: BAJT_1 EQU 20H to do rejestru R0 muszę wpisać MOV R0, #20H i wtedy po każdym odebranym bajcie zwiększyć R0 (aż do 28H)?--- ni?! to fajnie Chłopaki-dzieki
I to Ci się kompiluje? Użycie R5 jako indeksu do RAM to dla mnie nowość... Tylko R0 i R1 mogą służyć do adresowania pośredniego. Użyj R0 jako wskaźnika na aktualny początek tablicy, R1 jako wskaźnika przebiegającego od R0 do końca tablicy i np. R2 jako wartości granicznej dla R0 i R1. Reszta to tylko 2 pętle i poszukiwanie minimum. Pozdrawiam, Dr.Vee
Z tego co rozumiem, to w parametrach masz przekazywane adresy pamięci, pod którymi znajdują się pierwsze znaki nazw plików. Możesz albo: 1) przekazać te adresy dalej (i zmienić dalsze funkcje), albo 2) skopiować zawartość napisów do Twoich zmiennych. Poczytaj o adresowaniu pośrednim, np: mov eax, [edx] Pozdrawiam, Dr.Vee
Ja zaś bym radził pozostawienie stosu na 07H i korzystać z banku 0--jak potrzeba użyć RX w podprogramach to w nich używane rejestry wypchać na stos. No i korzystać z nieco trudniejszego adresowania pośredniego np. MOV R1,#ZMIENNA MOV A,(at)R1 Pozwoli to później w innych uP z większym RAM wykorzystać raz napisane procedury w innych obszarach RAM-u nie...
Witam Mam mały problem. Muszę wykonać program który to będzie mierzył czas przejścia produktu przez strumień czujnika oraz przesłanie tych danych do DB. Chodzi o zliczenie np. 100 kolejnych czasów i zapisanie ich w DB. Wiem że do zapisywania takich danych należy posłużyć się pointnerami ale nie mam doświadczenia w adresowaniu pośrednim. A tak przy okazji...
Jak dla mnie Twoje pytanie jest mało szczegółowe. Do czego ma być użyty ten DPTR? Poza tym można go traktować jak 2 rejestry DPH i DPL, ale jest już używany więc użycie go do przechowywania wartości w0 - w4 mija się z celem bo jest używany do adresowania pośredniego czyli należało by go zapamiętać. Jedynie można go jeszcze użyć w pętli opóźniającej,...
Tak, mam Stepa w języku niemeickim i używam mnemoniki niemieckiej, programuję po niemiecku i pracuję w firmie niemieckiej. :D Przeglądałem programy z innych instalacji w zakładzie, normą jest mieszanie bloczków napisanych w stl z lad. Ja robię to samo ! Spróbuj adresować pośrednio za pomocą drabinki. Drabinka w Stepie jest bardzo słaba w porównaniu...
Trochę Cię naprowadzę. Data końca ze względu na WIERSZ() jest ograniczona przez długość arkusza. To ona tworzy wirtualną tablicę kolejnych liczb całkowitych, które wartością równe są kolejnym datom. A te wartości powstają dzięki takiemu adresowaniu pośredniemu. Podobno jeden obraz znaczy więcej niż tysiąc słów. http://obrazki.elektroda.pl/1969258300_1...
RAM 0x80-0xFF adresuje sie pośrednio rejestrami R0 i R1 np.: MOV R0,#AAH ;ładujesz adres RAM-u do R0 MOV (at)R0,#FFH ;zapisuje wartość FFH do RAM o adresie AAH MOV A,(at)R0 ;zapisuje do akumlatora daną z pamięci RAM o adresie AAH Natomiast wewnętrzna pamięć RAM od adresu 100H będzie najprawdopodobniej traktowana jak zewnętrzna pamięć danych i adresowana...
Wiem że tak można zrobić, ale we/wy jest dużo więc trzeba się sporo naprzepisywać pojedynczo L PIW xxx T DBx.DBW xxx Myślałem że jest inny prostszy sposób choćby skopiować cały obszar do bloku danych. BLKMOV (SFC20) nie daje rady bo wskaźnik nie przyjmuje wartości na adresy poza obrazem procesu. Chciałbym uniknąć pisania programu używając adresowania...
Zważywszy że darmowa wersja kompilatora C od Microchipa nie optymalizuje, albo ma podstawowy poziom optymalizacji, to się nie ma za bardzo czym przejmować ;) Np PIC16F1716 ma już przynajmniej dwa rejestry adresowania pośredniego, i chociaż dodawanie z przeniesieniem. No, nie jest to jakiś wypas, ale łatwiej napisze się w C (tzn kod wynikowy będzie lepszy)...
Zrób INT gdzie trzepień A =1 B = 2 C = 3 pewnie masz tam jakiś enkoder mówiący ci o położeniu monipulatora. Podczas wydania decyzji o ruchu do DBW 0 wpisujesz aktualna pozycje manipulatora do DBW 2 wpisujesz zadaną pozycje manipulatora Co do zrobienia tablicy musisz przeczytać o adresowaniu pośrednim w SCL w LAD go nie ma, w STL jest ale nie ma STL...
Witam, Mam wielką prośbę, jakby ktoś uprzejmy i miły mógł odpowiedzieć jak w asemblerze na procku 16f57 "dostać" się do ramu w banku 1 (30h-3Fh). Chciałbym w tym banku zapisywać i odczytywać dane, lecz wszystkie próby kończą się zapisem lub odczytem rejestrów w banku 0. Próbowałem z adresowaniem pośrednim, ale coś mi słabo wychodzi. Proszę o wskazówki...
Należy zatem zastosować więcej niż jeden timer:) Dokładnie tak. Czujnik detalu jako trigger startuje timer T0. Jeżeli T0<>0 to startuje T1 itp. Sygnał elektrozaworu dyszy wydmuchowej kasuje timer. Ma to też jedną wadę: musisz zdefiniować maksymalną liczbę timerów. Chociaż jeżeli sterownik jest jakiś sensowny to da radę to obejść z zastosowaniem...
lepiej zrobić połowę w ladd, połowę w stl czy wszystko w lad? Popularny jest stl? Jeżeli się go używa to są jakieś elementy programu w których jest bardziej polecany niż ladder? Z biegiem czasu sam wyczujesz kiedy lepiej używać LAD/FBD a kiedy STL. Tak ogólnie - wszelkie działania na przepisywaniu danych, wskaźnikach, adresowaniu pośrednim, odczyt/zapis...
Witam. W załączniku zamieszczam pewien schemat. Muszę coś o nim wiedzieć a niestety nie potrafię nic z niego wyczytać. Czy jest ktoś kto będzie w stanie opowiedzieć na poniższe pytania ? Nie chodzi o długi opis. Raczej o krótki podając chociaż jeden argument. 1. Architektura Harwardzka czy Von Neumana ? 2. Sposób realizacji adresowania pośredniego 3....
IMHO przyczyna leży całkiem gdzie indziej. Może procek się nie wyrabia. W przypadku zmiennej globalnej, na etapie konsolidacji jej adres jest znany, a więc dostęp może być przez adresowanie bezpośrednie. W przypadku zmiennej na stosie prawdopodobnie (nie wiem, domyślam się, nie chce mi się sprawdzać) zachodzi adresowanie pośrednie. Być może z dodatkowym...
------------------------ L DIB Aby w pełni zrozumieć, o co tu chodzi, musisz sobie przyswoić informacje na temat wskaźników w Step7. Ten kod to nic innego jak kopiowanie bajtu z bloku danych DI do bloku danych globalnego i dodanie do niego offsetu o wartości 8 . ------------------------ OPN DB Otworzenie Bloku DB o numerze zawartym po zmienna #localS_DB...
jedna część lezy w SFR od 00h do 7fh, można adresować pośrednio i bezpośrednio- to kapuje. Nie bardzo jednak pojmuje jak przechowywać dane w wyższej niż 7fh części. W manualu pisze że przez (at). Jeśli zrobie MOV R0, #20h MOV (at)R0, #5 To do adresu 20h wsadzi mi 5 Jeśli wpisze: MOV R0, #0E0h MOV (at)R0, #5 To nie zapisze mi 5 do ACC??
nie wszystko da się "przełożyć" na SCL lub S7Graph. S7Graph wyśmienicie nadaje się do zaprogramowania głównego przebiegu procesu. Nie nadaje się zupełnie do adresowania pośredniego lub do programowania złożonych zależności logicznych. W SCL można napisać teoretycznie wszystko ale np. przebieg łańcuchowy procesu lepiej, prościej i wygodniej jest napisać...
Myślę, że bezproblemowo. Omron z pewnością ma coś na wzór siemensa jak bloki danych. Tylko znaczniki sa kasowane po zaniku napięcia i stopie sterownika (oczywiście jeżeli ustawiliśmy w parametrach bloku danych, że ma być podtrzymywany, rzecz jasna). Jak nie będziesz mógł czegoś takiego znaleźć, poszukaj instrukcji do programowania OMRONów, ja używałem...
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...
mov wX, [wY+wZ] adresowanie pośrednie z offsetem. Wcześniej musisz do wY załadować adres RxBuf, a do wZ - RxPtr offset (bajtowy!) w tablicy. Co do wykorzystania zmiennych z C w assemblerze, to - jak już zauważyłeś jest to problematyczne, ale gdy próbowałem to zrobić, to nie było problemu... Lektura dokumentacji do kompilatora C30 wystarczyła. 4\/3!!
Dziękuję koledze LordBlick, poprosiłem go o odblokowanie tematu, bo wydaje mi się, że mimo pozornej prostoty problemu warto się nad nim chwilę zastanowić. Zanim przejdę do odpowiedzi na post #3, powiem dwa słowa o makrodefinicjach. Wiele osób z nich chętnie korzysta, w pokazanym wyżej przykładzie zdecydowanie lepiej posługiwać się makrami LED_ON i LED_OFF...
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...
Do takich rzeczy najlepszy jest [url=http://iat.fs.cvut.cz/109/files/S7/... Na początku wydaje się ciężki ale warto. Jedziesz po wszystkich wartościach i porównujesz z wartością do tej pory maksymalną. Możesz wykorzystać wskaźnik albo adresowanie pośrednie. I w takich przypadkach jak ten można(należy) wykorzystać skok do tyłu.
L DBNO // zaladuj do akumulatora numer aktywnego (otworzonego) globalnego DB T MW20 //zapamietaj w MW 20 otworzenie odpowiedniego DB (adresowanie pośrednie) L 20 T "DB Nr." //np. MW100 AUF DB ["DB Nr."] // otworzenie DB 20 Zapoznaj się również z: TDB // zamień global z instanz L DBLG //długość DB globalnego L DILG // długość DB instanz L DINO // numer...
Potrzebuję pomocy!!! Mianowicie mam układ uP. tylko z zewnętrzną pamięcią danych, EA=0. Problem polega na tym czy FSR znajduje się w wewnętrznej pamięci danych czy już zewnętrznej. jeżeli w zew. to czy za każdym razem gdy chcę pobrać dane powiedzmy z akumulatora, czy innego rejestru z obszaru SFR muszę adresować go pośrednio?? Bardzo proszę o pomoc!!!!...
Witam, potrzebuje napisac blok funkcyjny (FB) ktory bedzie zbieral dane z wejscia analogowego i zapisywal je do kolejnych obszarow pamieci w bloku danych (DB), przewaznie takie cos robi sie przez adresowanie posrednie; w sterownikach s7-300 wiedzialbym jak to zrobic ale w s7-1200 sa jakies dziwne wskazniki i nie moge znalezc nigdzie przykladu jak by...
(at)Markos, (at) Szacho - właśnie o to mi mniej więcej chodzi. Chce mieć średnią z przepływu za okres 10 minut, a aktualizowaną co 5s. Wiem że muszę zliczać impulsy w okresie 5s i wpisywać do jakieś tablicy 120'to elementowej, czyniąc to w koło. Kwestia jak to napisać, bo za mocny w adresowaniu pośrednim i takich algorytmach jeszcze nie jestem. O ile...
Witam W bloku DB o wielkości 10000 bajtów można bez problemu zapisać 1000 pomiarów. DATA_BLOCK "Dane_Pom" TITLE = VERSION : 0.1 STRUCT Pomiary : ARRAY [1 .. 1000 ] OF STRUCT DiT : DATE_AND_TIME ; Wartosc : WORD ;//Z AI przed skalowaniem END_STRUCT ; END_STRUCT ; W OB1 w jego zmiennych tymczasowych jest aktualny czas...
jak wyżej w temacie. Na czym to polega w sterownikach PLC??
Spójrz na listę rozkazów AVRów. Operacje arytmetyczne WSZYSTKIE maja 8-bitowe operacje. X,Y,Z są wykorzystywane do adresowania pośredniego. Więc nie zajmuje się nimi ALU lecz jednostka sterująca. Więc jak mówiłem bitowość procesora definiuje długość operandu ALU. Taka jest definicja. A inkrementalna również operuje na tylko je rejestrach 8-bitowych....
Witaj, jeżeli masz w oknie wartość typu byte to do bloku zwracana jest liczbowa 0-15. Na dole przykład z konfiguracją dla zmiennej w bloku typu string. http://obrazki.elektroda.pl/1358429400_1...
Pytanie co chcesz zrobić, ale w takim programie, bez symboli, to będzie bardzo ciężko pracować. Szczególnie, że duża część była w SCL'u. Jeśli nie masz biegłości w "starym" Step'ie i różnego rodzaju pośrednim adresowaniu to będzie męka :) Nie znajdziesz źródeł? Wg mnie obsługa jest poprzez FB540, do którego podają strukturę z danymi i w niej adres początkowy...
Witam. Rn oznacza nazwę rejestru np. R1, R2, R3. Rejestr znajduje się pod jakimś adresem w pamięci uC. MOV Rn, #dana powoduje wpisanie do rejestru o nazwie Rn danej o nazwie dana np. Mov R5, #22h. A to akumulator, symboliczna nazwa rejestru tak samo jak R1. Nie jest to zmienna Mov A, Rn oznacza wpisanie do rejestru A (akumulatora) zawartości rejestru...
"...zapisywać do tablicy.... " , czyli chcesz po prostu, zapisywać do kolejnych komórek pamięci wyniki pomiaru ? Taki oto przykład z adresowaniem pośrednim będzie Ci pomocny, z tym ze jest on na "małe" picki, wypełnia rosnącą wartością obszar 128 bajtów pamięci danaequ20h indexequ21h tablicaequ22h clrfindex ;przyjmuje wartosc 0...7F wypelnmovlwtablica...
Ok dzięki, poczytam o tym. Rozumiem że poprzez adresowanie pośrednie odnosimy się do pamięci. Czyli np. dana w r0 wskazuje na miejsce w pamięci. Nie za bardzo rozumiem jak pozapisywać te dane w pamięci a potem je poprawnie odczytać. Przecież jak odczytam dane wskazane przez r0 to będzie jeden bajt (czyli moja jedna liczba), gdzie przechować resztę...
Przeczytaj [url=http://www.elektroda.pl/rtvforum/vi... oraz przyjrzyj się mojej funkcji "register". Ta funkcja wykorzystuje SFC BLCMOV , adresuje ANY pośrednio. Do funkcji stawia się Integer jako numer źródłowego i docelowego DB oraz ilość bajtów do kopiowania.
A w czym dokładnie masz problem? Do zapisania danych pod adresami odpowiednimi uzyj adresowania pośredniego. Przykładowy algorytm moze wygladac tak: 1.Do jakiegos rejestru wrzuc pierwsza liczbę. 2. Potem odejmuj od niej każdą następną. Ze zbioru. 3. Po kazdym odjeciu sprawdz czy wynik jest ujemny (sprowadza sie do sprawdzenia jednego bitu ). Jesli jest...
1. Było nie dawno tutaj o adresowaniu pośrednim w S7-1200 http://www.elektroda.pl/rtvforum/topic23... 2. jak ja bym to zrobił. 1. Utowrzył UDT gdzie miałbym nr pomiaru i czas w jakim został wykonany pomiar. Następnie DB z x * UDT w zależności ile chcesz mieć tych pomiarów. Co do funkcji. Najpierw użyłbym funkcji Move blk Podczas wystąpienie sygnału,...
Witam ..... za cenę wincc flexible do 500 zmiennych będę miał citeca i ifixa a wincc..... Wawrzo. Nie do końca to jest prawda. WinCC flexible nie zalicza do zmiennych komunikacyjnych zmiennych odpowiedzialnych za komunikaty alarmowe. Mogę mieć 500 komunikatów i 500 zmiennych cały czas do dyspozycji. Jak już porównywać do dokładnie. Niektórzy reklamują...
Witam, mam do rozwiązania problem zapisu do pamięci pewnych danych a później wysłanie ich do innego urządzenia więc kilka pytań: 1. którą pamięć wykorzystać? wiem że EEPROM jest typem pamięci nieulotnej i w czasie idle (sleep) dane nadal są przechowywane ale wadą jest ograniczona żywotność. SRAM z tego co udało mi się przetłumaczyć nadaje się bardziej...
o ile sterowanie Mitsubishi programuję metodą drabinkową (mam zresztą do wyboru drabinka lub ST) to w Step7 mogę się "wyżyć". Zaczynając w S7Graph - główny przebieg procesu, AWL=ST obliczenia,adresowanie pośrednie,transfery,skoki, FUP- proste układy RS,& > itp. oraz niekiedy SCL-okrojony Pascal- logiczne powiązania (np. winda) oraz konwertowania liczb...
podaję przykład adresowania pośredniego, który to napisałem dla jednego naszego kolegi forumowicza.Chodzi o wyszukanie wartości max w DB: Wyszukiwanie max z 16 wartosci zapisanych w DB jako "Word","Int" Wartosc Maximum zapisana w DB10.DBW32 AUF DB 10 //otworzenie DB L 0 T DBW 32 //zerowanie starego wyniku poszukiwania max LAR1 P#DBX 0.0 //zaladowanie...
Skoro nie jest dla Ciebie problemem już odczyt z tej klawiatury, do dalej też nie jest trudno. Robisz sobie tablicę 10 elementów, w niej na sztywno wpisujesz jakie chcesz mieć znaki (odpowiednią sekwencję bitów), a potem odczytujesz sobie z tablicy odpowiednio... Tak wiem... tablica... ASM... nie pamiętam jak to jest w 51, ale w PIC można adresować...
Witam Na początek proponuję wykonać konwersję programu S5 do S7 przy pomocy narzędzia instalowanego ze Step 7 (Converting S5 Files). Program maszyny nie jest bardzo skomplikowany, nie ma tam adresowania pośredniego. Jeżeli chodzi o analizę programu w STL (szczególnie w S5) to pomocne mogą tu być informacje z książki s5/s7 windows (artur król, joanna...
Witam! DO to chyba jedna z "najlepszych" instrukcji w S5. Tak jak kolega powyższej napisał generalnie jest to adresowanie pośrednie. Np: DO DW15 - Oblicza adres pośredni na podstawie zawartości DW 15 np niech w niej jest 10 L DW 0 - oznacza załadowanie akumulatora zawartością DW obliczoną jako suma w tym przypadku 0 + 10 czyli tak naprawdę DW10.
Cześć, Od kilku dni próbuje nauczyć się czegoś o 8051 i początki są ciężkie ale jakoś to idzie :). Nie mam żadnego mikrokontrolera więc uczę się na symulatorach. Sęk w tym, że co symulator to inne błędy. Napisałem program w C który skompilowałem na SDCC i zawiera on taki kod: clr A mov R0, #0FFh mov (at)R0, A djnz R0, 003A // 003A - instrukcja wczesniej...
Czy nie jesteś czasem z tych co chcą wyświetlać animacje na LCD :?: ;-) Teraz poważnie. W AT89s8252 bezpośrednio adresuje się tylko pierwsze 128 bajtów, jeżeli zaadresujesz bezpośrednio górne 128 bajtów, to działasz na SFRach, żeby dostać się do RAMu powyżej 07Fh musisz adresować pośrednio przez (at)R0 -(at)R7. Czy jesteś pewien, że twój kompilator...
Widzę, że nie chciało Ci się zajrzeć pod podany link. SEGMENT jest deklaracją jakiegoś segmentu w pliku źródłowym: twoja_nazwa SEGMENT typ_pamięci parametry, oczywiście nazwę możesz sobie wpisać dowolną, jako typ pamięci można zazwyczaj zapodać DATA, CODE, BIT, IDATA, XDATA, co oznacza kolejno: pamięć danych (wewnętrzną, adresowaną bezpośrednio (0..127)),...
Każdy procesor zmienne, tablice czy inne dane, w ogólności całą pamięć, widzi wyłącznie w formie bajtów (czasem jeszcze bitów). Wszelkie typy abstrakcyjne takie jak liczby całkowite, zmiennoprzecinkowe, tablice, struktury itd zostały stworzone tylko po to aby było łatwiejsze do ogarnięcia przez człowieka. Po przetłumaczeniu (kompilacji) i połączeniu...
Rozumiem że chcesz złożyć charakterystykę z linii prostych o współrzędnych zapisanych w DB. No to generalnie nie ma większego problemu. Wyznaczenie charakterystyki z dwóch punktów nie stanowi problemu. Znalezienie w której części charakterystyki jesteś też nie jest problemem. Jakbyś chciał zrobić to ładnie z automatu żeby program sam wybierał odpowiednią...
Moim zdaniem najlepiej wykonywać operacje na zmiennych pośrednio przez któryś z rejestrów-to z powodu możliwości dostępu do każdej komórki RAM-u, także tych ≥128÷256 (niektóre typy 51' posiadają taki właśnie obszar RAM-u, dostępny jedynie przez adresowanie pośrednie) Fajfer2
Adresowanie pośrednie. Ale to raczej nie w LAD, a w STL-u. Musisz mieć zmienną indeksową tablicy. Następnie ustawiać ją na odpowiednim miejscu w pamięci. A następnie wpisywać wartość pośrednio do pamięci poprzez zmienną indeksową. Są odpowiednie polecenie w STL. Zajrzyj do manuala. Szukaj po słowach kluczowych "indirect addressing".
poszukaj na forum - "adresowanie pośrednie"
adresować modbus adresować układ adresować silnik
oznaczenie zmywarka siemens głowica tosca kondensator ładowarce
stacja zasilająca słoneczna stacja zasilająca
Skuter Futuri3 - Panel multimedialny nie działa Parametry tranzystora XOHD - identyfikacja i zamienniki