Jeśli chcesz wyzerować LICZNIK to tak: MOV LICZNIK,#0 Zwróć uwagę na znak # bez niego rozkaz nie umieszcza w LICZNIK zera a wartość ram-u o adresie 0 czyli bez # jet to rozkaz: MOV LICZNI,R0
Piloty Normstahl są kodowane Keeloq. To jednak nie popularny dedykowany układ HCS zajmuje się kodowaniem, a uniwersalny procesor. Niezbyt dobrze napisany program na ten procesor powoduje że pilot przypadkowo zmienia licznik emisji i napęd rozkaz ze starą transmisją ( złym licznikiem) uważa za już wykorzystany (stary) i na niego nie reaguje. Jeżeli masz...
Cały ten bajzel to porażka absolutna. Powinni karać więzieniem za protokoły transmisji radiowej bez sum kontrolnych...;] Dziwne że ten robot nie dostaje kociokwiku jak się oddali od nadajnika a tylko po prostu przestaje reagować na rozkazy. Masz dużo szczęścia. Masz również dużo szczęscia dlatego, że to w ogóle działa, zważając na zaśmiecenie pasma...
Próbowałem ostatnio uruchomić zlecenie *D z C800 (dzień tygodnia na podstawie podanej daty). Przyczyna nieprawidłowości działanie był błąd w wykonywaniu rozkazów ADD i SBC na liczbach 16-bitowych, błąd poprawiłem. Program daje błędne wyniki z powodu błędu w ustalaniu lat przestępnych (nie jest prawdą fakt, że każdy rok podzielny przez 4 jest rokiem...
Taki program mógłby wyglądać tak: Mnożna: rejestr E Mnożnik: rejestr A Wynik: rejestr HL LD HL,0000 ;inicjacja wyniku LD B,08 ;licznik pętli LD D,00 ;zerowanie bardziej znaczącego bajtu DE NXBIT ADD HL,HL ;przesunięcie wyniku w lewo RLA ;sprawdzenie cyfry monożnika JR NC, FIN ;opuszczenie zera ADD HL,DE ;dodanie mnoznej FIN DJNZ NXBIT ;powrót do początku...
Watchdog - to układ czasomierza zerowanego programowo, np. odpowiednim rozkazem procesora. Rozkaz ten umieszcza się np. w głównej pętli programu lub podprogramie, który ma być wywoływany okresowo. Jeżeli z jakiegoś powodu (np. zakłócenia) program pójdzie w maliny to licznik watchdoga nie zostanie wyzerowany i zostanie wygenerowany sygnał RESET procesora...
Witam. Sprawdź w ten sposób: $crystal = 1000000 'deklaracja częstotliwosci pracy kwarcu $regfile "attiny2313.dat" 'model procesora dla którego jest ten program Deflcdchar 1 , 14 , 17 , 17 , 14 , 32 , 32 , 32 , 32 ' definicja znaku stopnia Config 1wire = Portd.5 ' konfiguracja portu PD.5 jako wejscia magistrali 1-wire Dim Odczyt(2)...
Witam Licznik T2 działa, problemem jest brak zezwolenia na przerwanie od T2 - ustawiasz tylko globalne zezwolena na przerwania. Poniżej poprawiony, działający kod. Oprócz tego wprowadziłem jeszcze kilka poprawek, wyjaśnienia w komentarzach. org 0000h ljmp Start org 002Bh ;ljmp Licznik2 ;! ;Licznik2: ;!te dwie linijki zbedne clr TF2 ;clr EXF2 ;!...
http://obrazki.elektroda.pl/5144790300_1... Przedstawiam Wam swoje najnowsze dzieło - KrzysioCart MicroSD - kardridż do konsoli Pegasus, który będzie ostatnim, jaki kupisz - żaden inny już nie będzie potrzebny. Kardridż obsługuję 82% wszystkich gier, jakie wyszły na konsolę NES / Famicom / Pegasus. Obsługiwane są następujące mappery...
https://obrazki.elektroda.pl/3928983600_... Opiszę naprawę dość rzadkiej konsoli, polegającą na odtworzeniu schematu pierwowzoru, zaprojektowaniu i wykonaniu płyty głównej i dalszych krokach niezbędnych do przywrócenia jej życia i funkcjonalności, w których zastosowałem swoją nowatorską metodę. Będzie więc coś dla miłośników retro,...
To nie Bascom jest przyczyną tylko źle napisany program ;). 1. odczyt timera1 16bit odbywa się po przez rejestr pomocniczy TEMP, ten rejestr jest też używany przez inne procedury i funkcje i jeśli jest użyty to właśnie niszczona jest wartość High timer1 bo ona tam jest wpisana gdy używasz komendy. wpisując tak timer1 do tablicy możesz gubić High timer1....
To jest przyklad tego jak mozna obsluzyc DS1820 przez mega 8 ale jest tam tez obsluga wyswietlacza w C.Moze sie pryda.Sam to dostalem od jednego kolegi z forum:-) wiec mam nadzieje ze sie nie obrazi...mnie interesowal DS. Pozdrawiam Maciek! #include <avr/io.h> #include <avr/pgmspace.h> #include <stdlib.h> #include <ctype.h> #include...
https://obrazki.elektroda.pl/8661538600_... Zainspirowany podcastami o historii komputerów (podcast #19 - Słowo o architekturze i słowniczek pojęć By lepiej zrozumieć zagadnienie pamięci, musimy najpierw poznać architekturę, a dokładniej to części składowe procesora. Nie będziemy zagłębiać się w tajniki najnowszych Ryzenów czy i9,...
Ponieważ kilka osób zwróciło się do mnie w sprawie odczytu pomiarów z dwukierunkowego licznika SDM630, udostępniam program, który pozwala dokonywać bieżących odczytów wskazań tego licznika. Do komputera PC należy podłączyć licznik przez konwerter np. USB-RS485, i w programie wpisać numer wirtualnego portu szeregowego oraz szybkość transmisji ustawiona...
Poza tym jak pisałem - szlag by mnie trafił jakbym musiał decyzję odnośnie włączenia piekarnika czy pralki podejmować na podstawie pogody. No również bym się zagotował jak bym miał czekać na pogodę ... tak jak opisywałem to z obiadem :) Pewien tutejszy użytkownik miał w zeszłym roku pobór niecałe 2000kWh rocznie, przerabia non stop gruntownie swoją...
Korzystając z informacji tego wątku, postanowiłem zrobić integrację do SolarComp 971 (wcześniej omyłkowo wspomniałem o 951). Uczyniłem taki układ połączeń wg. schematu: https://obrazki.elektroda.pl/6551245800_... oraz taki kod yaml dla esphome captive_portal: # ========================= # UART – RS485 # =========================...
Witam! Najpierw tytułem wstępu: Kompilator - program tłumaczący kod zrozumiały (język wyższego poziomu np C, Delphi itd) dla człowieka na kod zrozumiały dla maszyny, czyli binarny lub na język niższego poziomu np asembler. - asembler jest programem tłumaczącym kod napisany w języku niższego poziomu na język wewnątrzny maszyny czyli jw - binarny, zrozumiały...
Kolego, jesli pracujesz na pamięci wewnetrznej i przekręcisz licznik rozkazów to 51 w ZADNYM przypadku nie przełączy sie na pamięć zewnetrzną, a tylko następny rozkaz będzie wykonywał od adresu jaki ma w liczniku rozkazów. Praktycznie najczęściej pójdzie w maliny, choć może równie dobrze trafić na taką końcową sekwencję rozkazową, że wystartuje od adresu...
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...
... --> Stąd po wykonaniu rozkazu IJMP lub ICALL program jest KONTYNUOWANY od adresu wskazanego w rejestrze Z. Licznik rozkazów NIE JEST ZEROWANY! Spójrz na notę katalogową. Fantazjujesz ;) W nocie katalogowej (Instruction Set Summary) stoi: IJMP Indirect Jump to (Z) PC ← Z Czyż PC i "licznik rozkazów" to nie ten sam rejestr :?: Albo co się stanie...
Witam, Podłączyłem się do licznika 16EC3gr1 (PAF5EC3gr1) po rs232. Mam problem z odczytem rejestrów , na każdy rozkaz trybu rejestrowego licznik odpowiada [NAK] ([SOH]R1[STX] kod rozkazu [ETX][BCC]). Na "żądanie hasła" np.: [SOH]P0[STX](46492756)[ETX][BCC:i] wysyłałem puste : [SOH]P1[STX]()[ETX][BCC:a] odpowiedź [SOH]B0[ETX][BCC:q] i zerwanie komunikacji),...
Dzięki wielkie za udzieloną pomoc działa teraz pisze komunikacje na podstawie rozkazów licznika, big thx za podpowiedź ze skanowaniem portów :) Dodano po 2 Tryb odczytu danych napisałem, wykonuje się on pewnym rozkazem po czym licznik wysyła wartości. Kiedy odbiorę wszystkie wartości i wydam mu kolejny rozkaz odczytu tego samego(tej samej listy wartości)...
Po drodze na stosie zachowuje aktualny adres licznika programu zeby wiedzial w ktore miejsce ma wrocic po wykonaniu instrukcji reti informujacej o zakonczeniu obslugi przerwania.Dexter W procku nic się nie dzieje "po drodze" tylko po kolei. Jak układ przerwań odbięrze przerwanie, które jest aktywne to w pierwszej kolejności na stos odkładany jest licznik...
Witam, Dziękuję za pytania. -NIP instalatora - rozumiem, że nie ma wpływu na bezpieczeństwo i może być całkowicie jawny jest zwyczajnie numerem firmy, która obsługuje pilot SA? NIP jest 10 cyfrową liczbą. Liczba ta może być każdą liczbą i służy dla odróżnienia instalatorów. Jawność nie obniża mocy kodowania, Nawet rozważaliśmy możliwość wprowadzenia...
Czegoś tu chyba nie rozumiem. Obliczyć (określić) czas potrzebny na przerwanie? Czyli czas wykonania przerwania? Każdy czas nawet pojedynczego cyklu w [ms] można określić za pomocą symulatora działania programu zawartego w kompilatorze Bascom. Uruchamiamy program ale krok po kroku (każdy rozkaz na kliknięcie mychy), zadajemy (wymuszamy) przerwanie przyciskiem...
PCL to młodszy bajt licznika rozkazów PC. Licznik rozkazów wskazuje na adres słowa pamięci programu, w którym przechowywany jest następny do wykonania rozkaz (po tym, który się właśnie pobrał i wykonuje). PIC16F84 ma pamięć programu 1024 słowa więc do jej zaadresowania potrzeba aż 10 bitów (0 - 3FF czyli 0000000000 -1111111111). Jeśli np. twoje dane...
Zobacz w Helpie Bascoma, rozkaz DEBOUNCE Px.y , state , label [ , SUB] w szczególnie Config Debonuce
MOVC A, (at)A+DPTR - oznacza A:=ROM ; R0 -faza sinusa od 0 do 127 MOV DPTR,#TAB_SIN ; wskazanie tablicy z sinusem MOV R0,#00 ; wskazanie pierwszej próbki (faza=0) PETLA: MOV A, R0 ; załadowanie A fazą sinusa MOVC A, (at)A+DPTR MOV P1,A ; Wysłanie kolejnej próbki do portu P1, gdzie np. jest podłączony przetwornik D/A INC R0 ; zwiększenie...
Dobry wieczór. Przepraszam za tak dużą zwłokę, ale ostatnio miałem zakuwanie na egzaminy szkoleniowe do pracy i nie miałem kompletnie czasu by myśleć o tym:( Musiałbyś pokazać przykład swojego programu. Najpewinej efekty o któych piszesz wynikają z tego, że nie korzystasz z peryferii mikrokontrolera - m.in. timerów, przerwać itd. A na siłę starasz się...
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...
Problem do rozwiązania z wykorzystaniem przerwań. Wykorzystujesz przerwania od licznika np. T0. W programie głównym wpisujesz wartości do 16 bitowego licznika T0 włączasz przerwania EA i ET0 na końcu przerwania rozkaz RETI. W zależności od oscylatora ustalasz wartości wpisu do TH0 i TL0 wiedząc ,że jest on incrementowany raz na 12 cyki oscylatora. W...
Generalnie instrukcje są wykonywane po kolei tak jak są zapisane w pamięci programu. Wyjątkiem są instrukcje skoku. Licznik rozkazów zawieraja adres następnego rozkazu lub obecnie wykonywanego. Dzięki niemu procesor wie do którego miejsca ma iść :) http://jarek.jamrozik.webpark.pl/bud.htm http://www.helionica.pl/index.php/Liczni... http://en.wikipedia.org/wiki/Program_cou...
Z "internetu" wyczytałem , że przed modyfikacją zmiennej, która będzie użyta w procedurze obsługi przerwania trzeba wstrzymać globalne przerwania . Nie wiem czy dobrze zrobiłem - zmieniłem kod na : cli(); stan=1 sei(); Jest to skrajnie nieprawidłowe. Nie może to pomóc, tylko zaszkodzić. Kiedy występuje przerwanie dochodzi do zapisu PC na stosie i skok...
Ściągnąłem Terminal V1.9b i tam testowałem wszystkie parametry nastawy. Ale licznik dalej nie odpowiada. Widzę ze dane lecą do licznika bo dioda nadawcza miga. Albo wpisujemy błędny rozkaz albo coś jest walnięte.
Jestem dyslektykiem to dla twojej wiadomości. Ale chodzi mi czy po przepełnieniu licznika to przez ten rozkaz on skacze do timer0.Możesz mi wytłumaczyć jak to sie dzieje i jakie są zasady tego działania. chodzi mi tylko o tę czesc kiedy licznik sie przepełnia i wykonuje ten fragment programu.
Jeżeli jest potrzebna częstotliwość 5Hz - 200ms(okres), To najlepiej wybrać rozdzielczość 1ms. W pierwszym cyklu programu trzeba zainicjować PWM. W tym celu jednorazowo bitem specjalnym SM0.1: 1) Inicjujemy PWM ; przygotowujemy na nową wartość okresu i nowy czas impulsu. Służy do tego rozkaz: 16#D3 - rozdzielczość 1us lub 16#DB - 1ms Jedną z tych wartości...
At90S2313 to procesor 8-bitowy wiec wszystkie rejestry (oprócz licznika rozkazów i jeszcze jakiegos ktorego niepamietam) są 8 bitowe, równiez organizacja pamieci danych jest 8-bitowa więc jesli chcesz posługiwac się słowem 16-bitowym to musisz go sobie podzielić na dwie częsci i przechowywać w oddzielnych rejestrach ( lub komorkach pamięci Sram) .
Zanim przystąpiłem do prób z zaproponowaną procedurą do obsługi UARTu, przeprowadziłem testy siłowe za pomocą kodu: $regfile = "m16def.dat" $crystal = 16000000 $baud = 38400 Dim Licznik As Integer Dim Rozkaz As String * 2 Licznik = 0 Do Incr Licznik Print Licznik ; " : 1023:1023:1023:1023:1023...
SMB47 to jak wiesz rejestr sterujący pracą HSC1: Jesli wpisujesz do niego: 16#0C - 11000000 - to 1->SM47.7 - Licznik aktywny 1->SM47.6 - Rozkaz przepisania nowej wartości bieżacej z SMD48. W SMD48 masz 0 więc niejako go kasujesz Reszty nie ruszasz (wpisujesz tam 0) dzięki temu licznik nie zmienia sposobu działania, trybu, kierunku, itd. Jesli do SMB47...
Najprostszy uklad jaki mozna zrealizowac - spelniajac postulat minimalnej liczby polaczen i autonumeracji urzadzen na szynie - poprzez szyne rs232 w ukladzie Daisy-chain. polaczenie takie moze byc zrealizowane w ten sposob, ze od glownego procesora (centralki) idzie linia nadawania do pierwszego urzadzenia w szeregu, z niego z kolei do nastepnego i...
Odwrotnie. Skoro zmienia licznik programu to znaczy że jednak adres następnego rozkazu ma. Ale ma adres a nie rozkaz. Więc najpierw pobiera adres i to mu zajmuje jedną instrukcję, później rozkaz ale to jest nowy rozkaz więc musi poczekać jeszcze jedną instrukcję aż rozkaz się zdekoduje i dopiero w trzeciej instrukcji wykona rozkaz. Czyli w 3 instrukcjach...
Dostałem rozpiskę komend do licznika i już wszystko działa jak trzeba. Po wpisaniu komendy terminalem zatwierdza się CTRL+ENTER czyli 0A HEX. Czyli np. rozkaz pomiaru okresu to :MEAS:PERIOD? (CTRL+ENT) Licznik odpisuje: +1.562459832E-02 (0D 0A) dodając znak końca linii i powrotu karetki. Potem wystarczy już komeda :READ? Super sprawa! Dzięki za pomoc.
Dokładnie tak jak piszesz. O ile nie są zablokowane przerwania to procesor kończy aktualnie wykonywany rozkaz i natychmiast przechodzi do obsługi przerwania.
Witam Jakoś dziwnie to napisane. Przede wszystkim jak piszę TIMER to nie używam potem OVF1. Jakoś mi to brzydko wygląda choć działać powinno. Skoro chcesz mieć jeden odczyt na dwie sekundy to zrób to zupełnie inaczej. Np. w programie głównym zrób sobie licznik i dla wartości powiedzmy jeden niech wyśle rozkaz do DSa ażeby przetwarzał temperaturę. następnie...
Twój projekt ma 29 kB, nie widzę powodu dla którego nie dałoby się go wstawić na forum. Link do dropboxa jest niezgodny z regulaminem. Krok 0: Inicjalizacja kanału komunikacyjnego rozkazem SASI jest OK. Rozkaz LD dla licznika wykona się tylko przy ACC = H, tutaj tak jest, ale dobrym zwyczajem jest dodanie ACC H przed LD. Zamiast IP_channelA można użyć...
Procesory AVR mają 16 bitową organizację rozkazów. Zatem jeden rozkaz, to jedno 2 bajtowe słowo. Jeśli ATMEL napisał, że ATmega128 ma 128 kB pamięci programu, to oznacza to, że ma ona 64 k słów 2 bajtowych. Zatem licznik rozkazu musi mieć 16 b, aby obsłużyć taką ilość pamięci. Nie można przecież posądzać ATMELA o tak idiotyczne posunięcie, jak wkładanie...
Jedna uwaga! Za każdym razem, po wystąpieniu przerwania, następuje programowe ładowanie do licznika wartości początkowej, określającej częstotliwość przerwań. Należy pamiętać, że od momentu wystąpienia przepełnienia licznika (zgłoszenia przerwania) do momentu przyjęcia przerwania i jego obsłużenia upływa jakiś okres czasu (kilka - kilkanaście cykli...
Witam, Biorąc gotowy przetwornik, tylko 8 bitowy, nie wiem czy dobrze rozumuje: 1. Dekoder uruchamia zegar, będzie dawał osiem taktów na licznik 2. Licznik wysyła jedynke i zaczynam próbkować 3. Słowo 8 bitowe z ADC będzie sumowane z jakims slowem 8 bitowym - czyli sumator minimum 11-bitowy bo po 8 sumach dostane 11 bitowe slowo 4. Wynik będzie wpisywany...
próbowałem róznych metod, te strony znałem już wcześniej, mimo to nie udało mi sie uzyskac zadowalających efektów. najbardziej sensowna chyba była by metoda np co ok 800 us sprawdzac stan wejscie do któego jest podpiety odbiornik ale nie wiem czemu mi sie to zapętla i jak odbierze kod z pilota to leci bez końca. oto kod $regfile = "m16def.dat"...
bawiłem się trochę driverem UserPort, a nawet napisałem sobie funkcje do sterowania nim, tak że już go poznałem A co do LPT to w biosie dobrym rozwiązaniem będzie ustawienie portu w tryb Bi-Dir, i teraz jak chcesz wysyłać na port to zerujesz jeden lub wszystkie(jeśli nie używasz extra pinów lpt) bity portu 890: _outp(890,255-32) <-- tutaj...
rozkaz atmega8 rozkaz wyświetlacz rozkaz komputerowy
równania kwadratowe iveco daily ciśnienie oleju karta pamięci uszkodzona
kabel brake radio engine fault peugeot
Samsung CLX-2160 błąd pasa transferowego - przyczyny i rozwiązania Kody błędów w wózku widłowym Manitou ME315