Tak, dokładnie. Nie koniecznie musi to być pętla For Next , może być i Do Loop , z tym że w przypadku tej drugiej Musisz zastosować zmienną, zwiększającą element tablicy. Na przykład tak [syntax=vbnet]Dim Licznik As Byte Dim 1(6) As Byte 1(1) = &H1B 1(2) = &H02 1(3) = &H12 1(4) = &H1B 1(5) = &H03 1(6) = &HE9 RCALL tablice RET Tablice: Do Incr Licznik...
Ustalasz długość odbieranych danych np. 2 bajty, wstawiasz licznik odliczający do 2 :) i łapiesz jeden bajt, potem drugi, Kasujesz licznik i od nowa :) wysyłasz następne 2 bajty itd. ...
Wychodzi ze albo mam bardzo krótkie pakiety, albo licznik bajtów "przeszedł przez zero" podczas tych 20 dni uptime :)
Możesz też nie używać Timera tylko licznika, przypisać bajt do timera wewnętrznego. Wtedy masz na poszczególnych bitach tego bajtu, impulsy o różnej częstotliwości. Zliczasz te impulsy i porównujesz je z wartością zadaną. A wartość zadaną zmieniasz za pomocą swoich przycisków.
Zrób odbiór na przerwaniu, a w pętli głównej tylko sprawdzaj jakąś zmienną, ustawianą w przerwaniu, czy coś przyszło, jeśli nie, to goń procka do innej roboty... ;) Acha, jak już wszystko będzie odczytane to tą zmienną sobie zerujesz... Ogólnie to można zrobić bufor, a ta zmienna będzie licznikiem nieprzetworzonych bajtów.
Witaj. Połączenie przewodowe jest nawiązane z szybkością 100 Mbps, więc nie przekroczysz tej prędkości. Licznik 400 milionów bajtów nie ma nic wspólnego z prędkością, jak poczekasz jeszcze trochę to będzie 500, 600 i więcej milionów. Albo masz uszkodzone okablowanie, albo urządzenie, z którym łączy się Twoja karta sieciowa nie ma interfejsu gigabitowego,...
Jeśli chcesz potencjometrem regulowac prędkość, to łączysz jego opór pomiędzy szyny zasilania mikrokontrolera, a suwak dajesz pod przetwornik ADC. I przykładowo program: Config Adc = Single, Prescaler = Auto, Reference = Avcc Start Adc i w programie co jakiś czas sprawdzasz sobie: opoznienie = getadc(0) i zamiast waitms 500, dajesz waitms opoznienie...
Młodsza część sumowania binarnego wszystkich bajtów oprócz pierwszego.
Jak dojdzie druga połowa ramki to ona nie przejdzie walidacji licznik bajtów sie wyzeruje jak i tablica trzymająca kolejne bajty.
$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ę...
Po pierwsze to powinieneś najpierw zadbać o TL0 bowiem to on "ucierpi" w pierwszej kolejności pod wpływem impulsów z licznika. Korekty dokonujesz dodając niezerową zdefiniowaną stałą do obecnej wartości młodszego bajtu licznika. TL0=TL0 | 0x30; TH0=0xF8; W asemblerze będzie to: ORL TL0,#30h MOV TH0,#0F8h Można także dokonać dodawania jak zaproponował...
Trzeba przed Do ... Loop dopisać Licznik=1, i wtedy pętla zajmuje 58 bajtów zamiast 60 jak For ... Next :)
po mojemu to ty masz 251tys km. według tergo pliku co wystawiłeś.masz tu dla porównania[GOLF w załączniku].A co do willema to lepiej zastanów się nad lepszym programatorem a będzie mniej problemów tego typu.pozdro...
Mam problem z przepisaniem pamięci CXK1012.Chodzi o bajt licznika błędów.Jakim programem to mogę zrobić?
Będąc podłączonym do sieci wejdź do centrum sieci i udostępniania i sprawdź połączenie lokalne. Na samym dole stanu są dwa liczniki - bajty wysłane i odebrane. Czy gdzieś jest wartość zero?
tak zgoda ale chcę liczyć ilość bajtów danej transmisji. Ramki mają od 2 do 6 bajtów. Poprzednio projekt ten zrealizowałem na Atmedze, W przerwaniach od SPI zliczałem ilość bajtów natomiast przerwanie od zmiany stanu linii SS zerowało licznik bajtów.
1. Algorytm: Założenia : - w bajcie "A" mamy kod ASCII cyfry jedności - w bajcie "B" mamy kod ASCII cyfry dziesiątek Start: -od A odejmij kod ASCII "0" (0x30) -od B odejmij kod ASCII "0" (0x30) -przesuń w lewo 4 razy B -OR A, B -koniec 2. wyświetlić ciąg 0-1-dynkowy z bajtu ? algorytm: Start: -Załaduj licznik bitów na 8 Kręć: -obróć bajt z liczbą w...
Dziwi mnie trochę, że konfigurujesz linię RX jako wyjście. Twoje funkcje fgetc i fputc wraz z procedurą przerwania mają błąd w obsłudze (zresztą całkowicie zbędnych i szkodliwych) liczników bajtów - od czasu do czasu będą głupiały - gubienie danych, zawieszanie itp.
Nie potrzebujesz pamiętać aż 10 liczb. Liczysz sumę 10 kolejnych pomiarów (wystarczy 2 bajty) i dzielisz przez 10. czyli potrzebujesz 2 bajty + 1 bajt na licznik=3 bajty.
Jak chcesz miec porzadek w programie i jesli procesor ma robić tylko tyle ile musi to : po 1. Powinienes zdefiniowac w RAM bufor wartosci MIERZONEJ po 2. j/w dodatkowo bufor wartosci WYSWIETLANEJ (wyswietlacza) po 3. W przerwaniu (timera) powinna znalezc sie JEDYNIE obsluga wyswietlania poszczególnych cyfr (pozycji) z bufora WYSWIETLANIA - dotyczy to...
Testując dokładnie transmisję z różnymi danymi wysyłanymi w ramce DMX dostrzegam taką analogię, że licznik bajtów ramki startuje od bajtu w którym znajduje się wartość dziesiętna 16. Bez względu na to czy ta wartość jest umieszczona na początku ramki, czy gdzieś dalej. Faktycznie wygląda to na złe ustawienie bitów stopu. Tylko jak to sprawdzić? do inicjalizacji...
2 bajty - licznik wlaczen + 3 bajty - licznik czasu Jezeli dobrze zrozumialem rekord mialby 5 bajtow (2+3) i odczyt co 1 minute ? Jezeli np. chcielibysmy kontrolowac proces przez 24 godz to potrzebujemy 24x60=1440 minut x 5 bajtow = 7200 bajtow na 24h.Czy dobrze zrozumialem ?
Mamy pomysły. Użyjesz sprzętu który ma oba interface sprzętowe. Zdeklarujesz sobie bufory do wysyłania/odbierania jako bajtowe o odpowiedniej pojemności. Do tego liczniki danych w buforze. Program ma działać samoczynnie - ma odebrać dane do bufora po rs i wysłać dane samoczynnie z bufora po i2c po wyzwoleniu oczywiście. I2C zaraz po pierwszym przerwaniu...
Jak najbardziej prawidłowa. Strona ma 256 bajtów, ty zapisujesz ją począwszy od 0xFA, następuje zrolowanie licznika i nadmiarowe bajty są zapisywane od początku strony. Wszystko masz w nocie tego układu.
Ten dziwaczny kod nie przesyła żadnej cyfry - on powinien przesłać 4 bajty o wartościach odpowiadających wartościom czterech cyfr dziesiętnych zmiennej licznik, czyli bajty o wartościach: 0, 0, 0, 1.
Dopisałem porównanie indeksów zmiennej. Jednak nie działa jak należy :( Teraz wygląda to tak: [syntax=avrasm]Szukaj: movw R28, R26 ; skopiuj zawartość pary rejestrów X do Z ld R16 , X+ ; załaduj znak ze zmiennej do rejestru R16 cp R16,R20 ; porównaj rejestr R20 (stała) z rejestrem R16 (zmienna) breq 1_Znak_znaleziony ;jeżeli znak jest taki sam skocz...
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...
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...
Cześć Atmegę 32 chcę dać jako slave. Wysyłana będzie ramka danych składająca się z 2 do 5 bajtów. W książce Język C dla mikrokontrolerów AVR znalazłem świetny przyklad ktory idealnie by się nadał. Jednak w nocie katalogowej atmegi32(atmega32APU) nie mogę znaleźć info o przerwaniu od zmiany stanu na lini SS. Czy jest jakaś możliwość sensownego rozwiązania...
Zaczynasz dobrze. Wg protokołu inicjację "/?!\r\n" wysyłasz na prędkości 300 bd (ustawienie transmisji 7E1). Nie żadnej innej - 300, bo tak mówi norma. Licznik energii ma wówczas maksymalnie 2 sekundy na odpowiedź, a odpowiedzią jest wpierw ramka identyfikatora licznika, który ma postać "/XXXZD<CR><LF>", gdzie XXX jest identyfikatorem producenta,...
Żeby ulepić klucz to musi mieć 7 Bajtów. Trochę mało danych na temat samego licznika, a to jest podstawa, żeby coś doradzić. Z ECU powinieneś mieć 7Bajtów. Nie wiem czym dysponujesz, prawdopodobnie ID48 prekodowany pod skode, zapis 7Bajtów CS i wtedy dopisać klucz za pomocą pinu (zwróć uwagę na blokadę czasową). Jak masz np. Tango, to też ładnie dopisze...
Po prostu nie możesz korzystać z instrukcji Input tylko z instrukcji np. Inkey i odbierać 128 bajtów o dowolnej zawartości (nawet bajtów zerowych) Po odebraniu 128 bajtów sprawdzić sumę kontrolną, tak jak pisał kolega mirekk36. Jeśli odebrałeś wysłasz ack spowrotem np. z sumą crc ramki Instrukcja Input się nie nadaje do tego celu. Tylko odbieranie za...
Ja doszedłem do trochę innych wniosków: aid: jeden 32 bitowy licznik, drugi idealnie stabilny to może być rozmiar kolejnego bloku danych audio w pliku tts. vid: jeden 32 bitowy licznik http://obrazki.elektroda.pl/9572088900_1... http://obrazki.elektroda.pl/3906301100_1... Dodatkowo rezultat z 535_00: [syntax=bash]$ python3...
... albo liczyć na 8 znakach (4 bajtach) BCD. Albo na 8 znakach w 8 bajtach - jak w zeszycie :D Piotrek
TH0 i TL0 to rejestry 8-bitowe - przy czym TH0 to starszy, a TL0 młodszy bajt licznika T0... zatem, aby prawidłowo wpisać je do zmiennej typu unsigned int, należy najpierw TH0 przesunąć o 8 bitów w lewo, a następnie operacją bitową (OR) dodać młodszą część licznika. Załóżmy, że: (odstępy zrobiłem dla lepszej czytelności) TH0 = 0b 1000 1000 TL0 = 0b...
0. Zacznijmy od czasu: Jeżeli masz do przesłania 3x24bity i chcesz to robić z częstotliwością ~96kHz, to wystarczy zegar SPI nieco powyżej 7MHz. Dla STM32F407 to nie problem, bo max. jest 42MHz dla SPI1 i 21MHz dla SPI2 oraz SPI3. Realne :) 1. To normalne, że ADC jest urządzeniem podrzędnym, więc nie generuje sobie zegara tylko jest taktowany z mastera....
Niezupełnie. Otóż w trakcie jednej transakcji można zapisać więcej niż jeden bajt. Wykryjesz jeden bit startu, ale bajtów do pamięci zostanie zapisanych więcej. Chyba, że po wykryciu bitu startu będziesz jeszcze zliczał clocki i co 9 będziesz ++ licznik zapisanych bajtów. Marmur99
Cały problem jest w tym żeby te dwie ATmegi się zsynchronizowały. Przerwanie od SPI występuje po zakończenia transmisji pierwszego bajtu. Zanim nastąpi obsługa przerwania to pierwszy bajt zostanie utracony. Nie mamy też gwarancji że dwie Atmegi "wystrzeliły" :) równocześnie i Slave nie czyta np. 4 bajtu nadanego przez Mastera. Jeżeli to by była np....
Nie wiem czy była by tak bardzo uproszczona zmienił by się tylko i wyłącznie sposób odczytu ale szybkość działania programu konwertującego nie ma dla mnie znaczenia niech sobie produkuje plik wynikowy i 15minut :D Odczyt pliku wynikowego jest ważny służy do tego drugi program i tam niema nic do roboty po prostu odczytać bajt wysłać comem zinkrementować...
to usunąć tego posta
znaczy się że jak nominalnie ma 400 i godzinę się kręci 400 to masz zliczyć 1 'jeden' a jak godzinę się kręci z obrotami 200, to masz zliczyć 0,5? pół motorogodziny? Jeśli tak to musisz mierzyć czas między kolejnymi impulsami i potem to uśrednić, tyle że ci ramu nie starczy, więc musisz uśredniać na bieżąco. Zanik zasilania zgodnie z radą kolegi, masz...
Witaj, Ja też walczę z SPI od pewnego czasu, ale używam SPI w Atmega8515 jako Slave. Jeśli dobrze zrozumiałem, to masz problem z USI w Attiny26. Z tego co wyczytałem w pdf'ie i z tego co pamiętam jak się bawiłem tym prockiem, to USI można skonfigurować jako normalny SPI. Musisz tylko odpowiednio ustawić bity rejestru USICR. Nie wiem po co liczysz impulsy...
Zdecydowanie wszystko trzeba zrobic na przerwaniach. Jezeli potrzebujesz wyslac 8 bajtow (2x32 bity ??) to zrob sobie w pamieci RAM kolejke tych bajtow oraz zrob licznik kolejki. W jakiejs petli sprawdzaj czy kolejka >0 jesli tak to wywolaj procedure wysylajaca bajt. W tej procedurze musisz sprawdzic czy mozna juz nadawac (w AVR-ach bardzo dobrze się...
Nie jestem pewien, czy to przeoczyłem, ale czy możesz (at)cdtdsilva określić, ile bajtów potrzebujesz? Potrzebuję 8 bajtów. Liczniki całkowite są zapisywane jako float - używając skrótu, zgaduję, że mamy dostępne tylko 4 bity, co spowodowałoby ich szybsze przepełnienie. Myślałem o użyciu pola „Wczorajsze zużycie” lub skomentowaniu go, tak jak w przykładzie,...
Tak ale tylko dlatego żebym wiedział czy w ogóle układ odczytuje bufor poza tym są osobne linijki na wyświetlaczu więc tam nic się nie nadpisuje pierwsze linijce jest odczyt z bufora drugiej stan przebiegu licznika
Użyj zdarzenia DataReceived portu szeregowego - jest wywoływane po odebraniu każdego bajtu do bufora portu. Możesz też sprawdzać ile bajtów jest w buforze i odczytać go dopiero gdy znajdzie się tam ciąg właściwej długości. Odczytanie bufora opróżnia go.
To jest zły pomysł, bo taka procedura czy pętla jest praktycznie nieprzydatna - można jej używać tylko wtedy gdy adres jednej zmiennej równa się 0XXFDH, co jest bez sensu. Przy takim założeniu równie dobrze można by rozkazy INX B oraz DCR C wyrzucić i zostawić tylko INR C - wyszłoby na to samo. Nie ma tu dobrego rozwiązania, po prostu w mikroprocesorze...
Ja zrobiłem do fabryki ponad 20 urządzonek porozumiewających się po RS485. Wszystko działa do dziś (na szczęście). Zrobiłem sterownik Master, który odpytuje pozostałe Slave'y i wysyła informacje na drugm porcie do PC. Protokół jest taki (sam wymyśliłem, ale też danych nie ma wiele): Bajt startu (#FE - unikalny, nie może się znaleźć w danych, bo zostanie...
Witam. Coś się źle odczytało Masz przesunięcie o jeden bajt, no i ta wielkość binu.Pozdrawiam. Edit. W załączniku zresetowany licznik błędów i poprawny bin. A kod to 0681 Pozdrawiam
Cześć Wróć się kilka postów wyżej, masz rysunek, w PPM koniec sygnału jest początkiem następnego, nic nie ma prawa zachodzić, po drugie w PPM nie są transmitowane imputsy kanałowe tylko ich początki i końce o szerokości około 250µs, dopiero dekoder robi z tego impulsy kanałowe więc nic nie ma prawa na siebie najść. Gdyby nawet nachodziło to co...
Ale wiesz ze ta pamiec jest podzielona na sztywno na strony i jak chcesz zapisac kilka bajtow to: a) nie mozesz zapisac wiecej niz strone b) nie mozesz przekroczyc granicy strony bo dane sie zawina na jej poczatek Dokładnie w tym był problem, kiedy licznik bajtów strony przepełniał się to zapisywał daną na początek strony, a nie w miejsce, którego...
Jeszcze prościej: trzymaj ten licznik w postaci tylu bajtów, ile masz cyfr dziesiętnych - po jednej cyfrze w bajcie. Inkrementacja takiego licznika jest całkiem szybka, a jego zawartość jest stale gotowa do wyświetlenia.
niestabilnym zasilaniu (miękkie z tendencją do sporych spadków) i pracy z pamięcią EEPROM, możliwe jest, że właśnie w tej pamięci nadpisane przypadkowymi danymi zostaną pierwsze 2, 3 bajty. Kiedyś był problem pierwszego bajtu (zerowanie licznika adresu) ale to odległe czasy. O problemie 2..3 bajtów nigdy nie słyszałem. O jak stare uC chodzi?
Pomyliłem się, znajdziesz go w folderze Drv a nie Bin. W razie "w" dorzucam do postu. Wczytaj się. Jest tam dokładnie napisane jak konfigurować sterownik i bloki w s7-1200/1500. Co do licznika to jest źle skonfigurowany. Jeżeli działasz na zmiennej Dint to ustaw licznik na takie wartości (patrz screen). http://obrazki.elektroda.pl/9322119500_1...
Witam Pierwsze linie kodu to deklaracja ustawień liczników T0 i T1. Konfiguracja dla ułatwienia została rozpisana na poszczególne bity, dlatego póżniej trzeba je przemnożyć x4 i x8 aby bity były na swoich miejscach. Dla licznika T0: CT0 EQU 0 M0 EQU 1 G0 EQU 0 T0S EQU M0 + 4*CT0 + 8*G0 oraz dla licznka T1: CT1 EQU 0 M1 EQU 0 G1 EQU 0 T1S EQU M1 + 4*CT1...
Chcesz - to masz. Wbrew temu, co piszesz, kod nie jest "jedynie słuszny" - znam jeszcze słuszniejszą wersję, a można napisać parę konkurencyjnych również z licznikiem bajtów - ale na oko nie ma oczywistych błędów i nie wymaga blokowania przerwań. [syntax=c]/* UART rx buffer service pseudocode BlueDraco, 2013 */ #include "...." #define RXBUFSIZE64 uint8_t...
Ale czy algorytm obliczania CRC zależy od wyboru wielomianu grnerującego i od wartości startowej? Proponuje wykorzystać gotową bibliotekę util/crc16.h dla C w AVR Jak mi powiesz jak to zrobić, to chętnie skorzystam. Mam 1k kodu w asm. Podobno wstawek w c nie daje sie do asm więc nie uśmiecha mi sie przepisywać tego na C tymbardziej, że w C nic nie pisałem....
... co do programu (procedury) to nic dodać nic ująć. ... Nie to żebym się ... czepiał ;) , tylko co się stanie , gdy po kolejnym incr R0 , R0 osiągnie "0" , a C jeszcze nie będzie ustawiona :?: Czyli ..."nic ująć" ale coś trzeba dodać np. licznik max bajtów do zliczenia(dodania) lub kontrola czy R0<>X. Pozdrawiam Piotrek
Ja używałem takiej: #define CRC8_polynominal 0x8D ... ... ldi R20, 11 'Licznik bajtów ldi X, &Buffer_out call Calculate_crc ... ... Calculate_crc: 'Reverse CRC ser R16 !Crc8_Loop: ld R17, X+ ldi R18, 8 !Crc8_Loop_Byte: bst R16, 7 bld R19, 0 eor R19, R17 rol R16 cbr R16, 1 lsr R17 ror R19 brcc CRC8_No_XOR ldi R19, CRC8_polynominal eor R16,...
Nie znam Bascoma, ale jeśli wartoscią początkową licznika jest 4096 dziesiętne czyli 1000 szestnastkowo, to bardzo dobrze! Nie musisz zmieniac wartości TL0, ponieważ w chwili przerwania przyjmuje odpowiednią wartość (00h). Trzeba tylko w ciągu najbliższych 256 cyklach wpisać do TH0 wartość 10h (16): MOV TH0,#10h. Ale nie wiem jak się robi "wstawki"...
3E - rozmiar = 62 bajty, Twoja ramka jest za krótka zgodnie z tym co jest w pierwszym bajcie 44 - typ ramki 0106 - 3 literowa nazwa producenta (APA) xxxxxxxx - id urządzenia 05 - wersja 07 - typ urządzenia (licznik wody) 7A - rodzaj nagłówka 7a - krótki nagłówek 4 bajty BF - licznik odczytu, rośnie z kolejną transmisją 00 - status 0080 - konfiguracja...
Proponuje oddać router o reklamacji, ponieważ fabryczne ustawienia routera nie mogą blokowac Ci dostęu do stron!!! Tym bardziej, że piszesz że bez routeraz wszysto jest ok.. mozesz jeszce ewentualnie przetestować połaczenie oczywiscie poleceniem ping komputer Sprawdzisz jak wygląda sprawa z zagubionymi pakietami...
Przy użyciu Twojego rozwiązania problemem jest zabezpieczenie struktury przed wielokrotnym dostępem. Jeśli po odczycie znaku najpierw zaktualizujesz licznik, a później będziesz kopiował dane, to możesz zgubić znak (przerwanie nadpisze ostatni z kopiowanych znaków). Jeśli najpierw będziesz kopiował, a później aktualizował licznik, to możesz: 1) stracić...
Trudno zrobić kogoś "hakierem" bo tu dużo z programowania nie ma, ale potrzebne są inne umiejętności. Nie wszystko się z tym opisem zgadza. Zauwaz że pomiędzy 65 a 83 i 85 a 103 pomiedzy jest zawsze 18 bajtów. Licznik jest dwubajtowy więc powinno być dziewięć zapisów kazdego... Zacznij od podłączenia licznika i sprawdź co wskazuje. Wartości dwubajtowe...
Odbieram dane 2 bajty z modułu pomiarowego ...pierwszy bajt to starsza część wyniku (H_DATA) a drugi bajt to część młodsza (L_DATA) to składam to w całość tak: [syntax=c] uint16_t licznik; licznik = (dane_RX[0])+((dane_RX[1])<<8);//p... odczyt i przepisz do zmiennej [/syntax] Jeżeli dobrze kombinuję to teraz w liczniku mam liczbę 16bit odebraną...
NO i poszla ! ale metoda na pieszo ,czyli odszukania lini z licznikiem bledow i zasady bajt kodu dwa bajty kontrolne .Kod w lini 0f80
Musisz opracować sobie mały protokół - pierwszy bajt to wartość licznika, drugi to stan klawiszy. Z tym że tutaj zaraz będzie problem który bajt jest który - w SPI stan niski na CS oznacza początek danych. Nadajemy po nim 2 bajty i ustawiamy go w stan wysoki. W przeciwnym razie, w prawdzie w jakichś szczególnych warunkach, transmisja może się rozjechać...
Czego nie rozumiesz? W dokumentacji jest wyraznie napisane ze do 64 bajtow w stronie. To do 64 wcale nie oznacza ze musisz za kazdym razem wysylac akurat 64 bajty. Oznacza to natomiast ze pamiec ma wbudowany licznik ktory przy zapisie bajtu(aktualnie gdzy wydamy komende ACK za bajtem) zwiekrzy wewnetrzny licznik i bedzie czekac na nastepny bajt. Jezeli...
cofałem taki licznik, eepromik wyciągasz i zmieniasz komurki powtażające sie...dwa bajty..:) jaki stan potrzebujesz?
Np. port = licznik >> 8; /* wyslij starszy bajt */ .
No to wygląda na to, że coś się skopiowało :-D Zamiast kombinować z jakimś karkołomnym wypełnianiem tabel, spróbuj na początek skopiować między sterownikami stałą wartość. Licznik to jest słowo i jedynie tego typu błąd mógł Ci wyrzucić kompilator (jeśli chciałeś potraktować licznik jak bajt). Co do przykładu z podręcznika Siemensa, to podaj proszę jakieś...
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...
Nadajnik: Const Crc8_polynominal = &B10001101 'CRC-8-CCITT Do Buff(1) = 23 Buff(2) = ADCL Buff(3) = ADCH ldi R20, 3 Loadadr Buff(1) , X Gosub Calculate_crc PrintBin Buff(1) PrintBin Buff(2) PrintBin Buff(3) PrintBin Crc_obliczone Waitms 100 Loop '---------------------------------------...
Klasycznie jak w Philipsach, na końcu przedostatniej linii, dwa bajty. SławeK
Tesz mi przyszedł taki pomysł... na Avr: zrobić w pamięci tablice 8x16.. 8 procesów, na każdy po 16 bajtów... w tych bajtah by były przechowywane: wskaźnik następnej instrukcji (PC), rejestry r16-r21, r26-31,r0 i r1... do całości wykorzystać jeden licznik... do bajtów danych następnej instrukcji (PC) wpisać adres w którym znajduje sie program.. (jeśli...
Cześć, witajcie. uruchomiłem komunikację dwóch atmeg po spi. w bascomie z pominięciem wbudowanych komend, tylko na rejestrach procesora. hardwarowo wszystko chodzi, dane sie przesyłają w obie strony z jednym dużym problemem. drugi dzień nad tym siedzę i mam już kwadratowy łeb. potrzebuję przesyłać tabele, których specyfika jest taka, że nigdy nie wystąpią...
W C potrzebujesz następujących rzeczy: - select - do oczekiwania w pętli na przychodzące dane. Obsłużysz nią też timeout, - open, read, write - do obsługi plików - również portu szeregowego - struct termios, tcsetattr - do ustawienia parametrów transmisji Program powinien działać następująco: 1. Otwierasz port szeregowy 2. Ustawiasz timeout odbieranych...
Nie wiem według jakiej numeracji podajesz te zasilania ale zakładam że dobrze. Jak jest SAFE7 to już coś ale po 20minutach powinno wpuścić, wniosek, coś z kwarcem lub programem procesora. Może źle go wlutowałeś ? A licznik to trzy bajty o dwie linie wyżej jak pamiętam. SławeK
Licznik T2 liczy nadal po przyjęciu przerwania. 8051 ze zredukowaną liczbą wyprowadzeń to np: AT89c1051 AT89c2051 i AT89c4051 ,różnica polega na rozmiarze wbudowanej pamięci Flash, odpowiednio 1k , 2k i 4k bajtów tu jest opis dla [url=http://kuniow.pl/~mipik/Pliki/89c20... a [url=http://kuniow.pl/~mipik/Pliki/opis_... po polsku...
Obsługa przerwania ma być najkrótsza. Najlepsza analogia do życia, to gdy dzwoni telefon, to tylko go odbierzesz, porozmawiasz i koniec, nie będziesz nieruchomo stał, aż zadzwoni następny raz. Podobnie w procesorze są przerwania uzależnione od różnych zdarzeń, zmiany stanu zewnętrznego pinu, opróżnienia bufora transmisji wyjściowej, otrzymania bajtu...
Z drugiej strony i tak musisz, bo co z tego, że ilość danych mieści się w pamięci, skoro są one adresowane poza zakresem adresów dla danego typu procesora. Trzeba więc sprawdzić wszystkie rekordy. Tzn nie sprawdzam wszystkich rekordów. Nie zakładam aż tak strasznej sytuacji że plik hex będzie adresowany w taki sposób że najpierw będą starsze adresy...
witam Wygląda na to, ze zostal skopany wsad podczas grzebania przy liczniku czy ktos wie ktore bajty odpowiadaja za predkosciomierz? Albo moze ktos ma wsad do tego licznika przebieg raczej nie jest istotny. Reszta wskaznikow dziala prawidlowo . Cris
Jeśli dobrze pamiętam, to trzeba w DINT zamienić miejscami składowe INT. Zakładając bajty w kolejności B1 B2 B3 B4, trzeba zrobić B3 B4 B1 B2. Możesz podać wartości rejestrów 1416 i 1417 oraz oczekiwaną wartość licznika?
Nie napisałem że jest to simlok ale blokada nałożona przez producenta która akurat w tym liczniku niepozwala na zmiane bajtu odpowiedzialnego za jednostki miar w liczniku mimo iż w bliżniaczym a4 ta funkcja działa. Konieczna będzie podmiana wsadu - samo długie kodowanie nie załatwia sprawy. Podobny mankament miała octawia 2 w wersji podstawowej - mimo...
Spróbuj tak jak napisałem. Najpierw czekasz na bajt0 i jeśli odbierzesz zapisujesz go w buforze (to nie musi być uint32_t, to może być uint8_t pakiet[0] i ustawiasz licznik na 1. W kolejnych wywołaniach (jeśli pakiet[0] zawiera coś) zapisujesz bajty do pakiet[licznik] aż osiągniesz TYP_PAKIETU_DŁUGOŚĆ. Sprawdzasz i ew dodajesz do bufora nadawczego wyślij(pakiet,...
W pierwszym przypadku w celu jak największej dokładności czasu opóźnienia jest wyliczana liczba przebiegów wewnętrznej pętli (która wykonuje się w 3 lub 4 cyklach, zależnie od tego, czy licznik może mieć 1 bajt, czy musi mieć 2 bajty) - te obliczenia są wykonywane na liczbach zmiennoprzecinkowych. Co do drugiego kodu, nie jest on funkcjonalnie taki...
HAL_UART_Receive_IT nie dość że trzeba wywoływać cyklicznie, to jeszcze potrzebuje argumentu właśnie ilości danych Tym się nie przejmuj. Używaj tylko długości danych=1 a tą funkcję wołasz tylko jeden raz z programu na rozruch. Ale HAL_UART_Receive_IT umieszczasz też w obsłudze przerwania od RX tak by to się kręciło w kółko. A w tym przerwaniu analizujesz...
Najlepiej zastosować gotowy skalibrowany czujnik wilgotności np. HH10D. Daje on na wyjściu częstotliwość proporcjonalną do wilgotności (łatwy sposób przeliczania). Częstotliwość łatwo zmierzyć którymś z liczników. Stałe kalibracji są umieszczone w 24C02 (na płytce z czujnikiem) pod adresem 10 (cztery bajty) i odczytuje się za pomocą I2C. Cena ok 35zł...
Do rejestrów ładuje się liczby wyłączenie w postaci binarnej, bo procesor nie wie, co to jest system dziesiętny. W tekście programu możesz te liczby zapisać w postaci binarnej, dziesiętnej, szesnastkowej, ósemkowej albo jako znaki - 'a', '5' itd. Możesz również zapisywać je jako wyrażenia stałe, np. 5 + 77 albo '5' - 15. Nie znam asemblera AVR, ale...
Nic z tego mi nie pasuje, żeby sprawdzić łącze. A może jest coś takiego jak "WAN status", jakiś licznik odebranych i wysłanych pakietów/bajtów. Co to za model?
Najprościej to można wykorzystać wewnętrzny eeprom, jako jeden lub dwa bajty masz licznik resetów, po każdym resecie zwiększasz o 1 i masz tablicę stanów, odczytujesz wartość z pod danego adresu i wpisujesz do portu.
Witam! Czy dysponuje ktoś może procedurą opóźniającą (np 1 sekundę) dla pic 16f84a napisaną w assemblerze dla tego uC? Pozdrawiam! Dodano po 5 wykombinowałem coś takiego, ale nie działa, a bynajmniej nie jestem w stanie zobaczyć efektów... #include p16f84a.inc COUNT1 equ 0x0C ; pierwszy bajt GPR - licznik 1 COUNT2 equ 0x0D ; drugi bajt GPR - licznik...
Organizacja jest taka sama ale są niewielkie różnice, tyle że niezalezne od typu scalaka lecz od producenta. Sciągnij sobie PDFy to poszczególnych to je poznasz, zwracam uwagę na pin7 pamiątki. Ale moim zdaniem jeśli odczytał to i zapisze. Podłączyłeś oba zasilania do radia ? Spróbuj wyłączyć kod z klawiatury lub zrób błąd i zobacz czy licznik błędów...
Drukarka nie ma ograniczeń na ilość stron. Pewien czas temu był temat, w którym pojawiła się drukarka MG6250 mająca przynajmniej 65535 stron na liczniku (wartość 65535 jest maksymalną dla licznika naturalnego zapisanego w dwóch bajtach). Niestety nie jestem zorientowany w sprzedawcach głowic używanych. Zawsze poszukiwałem drukarek uszkodzonych do badań...
Witam a to działający sposób na bascom 8051 [syntax=vbnet]Dim R As Byte Dim E As Byte Dim Bitek As Bit Dim Crc As Word 'Dim Crcl As Byte 'Dim Crch As Byte Dim D(2) As Byte 'Dim D2 As Byte Dim Crcp As Byte Crc = &HFFFF D(1) = &H45 'bajt pierwszy do obliczen D(2) = &H64 'bajt drugi do obliczen Do For E = 1 To 2 'licznik bajtów do obliczeń 'Crcl = Low(crc)...
1. W trybie CTC licznik liczy aż do osiągnięcia ustalonej wartości, następnie może (ale nie musi) generować przerwanie i zawsze jest automatycznie zerowany i liczy od nowa. 2. Tak, możesz w przerwaniu załadować TCNT dowolną wartością od której licznik będzie liczył. Tylko w przypadku rejestrów 16-bitowych pamiętaj, że koniecznie najpierw musisz załadować...
Zczytaj pamięć ze znanym stanem licznika. Następnie daj mu popracować by licznik się zwiększył. Zczytaj ponownie i porównaj dane bajt po bajcie. Zrób nawet kilka razy i analizuj. Zazwyczaj jest to któryś z popularnych algorytmów CRC np. CRC16. Wpisuj do kalkulatorów dane licznika i porównaj ze zmianami jakie nastąpiły. Mogą to być dane dziesiętne ,hex,...
Witam mampytanie robilem diagnostyke sieci i wyskoczyl mi taki raport i chcialem sie dowiedziec czy cos moze byc nie tak w tym raporcie co moze powodowac zwolniona prace internetu. Karty sieciowe NIEPOWODZENIE [00000001] Połączenie TV/wideo firmy Microsoft ArpAlwaysSourceRoute = (pusty) ArpUseEtherSNAP = (pusty) Caption = [00000001] Połączenie TV/wideo...
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...
W tabelce 55 strona 118, są dane które trzeba wysyłać. I na ten przykład dla sygnaturki, komenda to: SDI 0_0000_1000_00 SII 0_0100_1100_00 Te zera na początku i na końcu traktuje po prostu jako "puste" takty zegara, ustawiam piny w dół i cykam. Nie jestem pewien też czy między kolejnymi danymi z tabelki robić jakieś odstępy, czy cokolwiek, po prostu...
pendrive bajtów comport bajtów mnożenie bajtów
angielskie wtyczki pompa panasonic ciepła instrukcja serwisowa drukarki canon
naprawa daewoo matiz krups krążki
Wymiary pasków do Technics RS-EH600 Problemy z diodą klawisza dźwięku w Lenovo