Tamte akurat miały architekturę von Neumann-a, więc wszystkie adresy były jednego rodzaju. Składnia DANE<<1 (albo chyba DANE*2 też mogło by być) wynika z (nieco) idiotycznej konwencji, że dla przestrzeni kodu asembler numeruje (adresuje) słowa (pamięć FLASH jest 16-bitowa), natomiast przy dostępie przez LPM trzeba zaadresować pojedynczy bajt.
[url=http://www.elektroda.pl/rtvforum/to... ,8 post masz cala obsługę spi
zasugerowałem się Twoim tokiem myślenia i tez wychodzi mi 13 97 54....
[syntax=c] int i; int suma_af = 0; const unsigned char * p = (const unsigned char *)&data for (i = 0; i < sizeof(my_type)l i++) { suma_af += p[i]; } [/syntax] Zakładam, że struktura jest upakowna ;)
Więc pojawia się pytanie jak sprawdzać kolejne bity w kolejnych przebiegach "pętli" (w przypadku procedury zapisu) oraz jak ustawiać logiczne 1 w kolejnych bitach przy kolejnych przebiegach "pętli" (w przypadku procedury odczytu). Jeśli chodzi o zapis to zrób tak, że sprawdzasz, czy najmłodszy bit w rejestrze jest wyzerowany, jeśli tak to ustawiasz...
...Jakieś pomysły?? Źle "składasz/sklejasz" odczytany bajt :( //procedura odczytu bajtu z urzadzenia unsigned char wire_read_byte1(void) { unsigned char bajt, tmp, i; bajt = 0; for(i = 0;i<8; i++) { tmp = wire_read_bit1(); tmp = tmp << i; bajt = bajt | tmp; } return bajt; } Ja zrobiłbym to tak: //procedura...
Przede wszystkim należy czytać po sektorze - czyli po 512 bajtów. Karty SDHC nie umożliwiają odczytu dowolnego bajtu - odczyt 256 bajtu sektora wymaga odczytania i pominięcia pierwszych 256 bajtów, co trochę trwa.
widze tu spory nieład.. odczyt 8 bitów można zorganizować tak (półpseudokod): odczytaj_bajt: TMP = 0 M = 128 pętla_8_razy: jeśli Inp=1 to TMP = TMP + M M = M/2 (lub M >>= 1 lub M = M>>1 lub shift M,1,right) wykonaj wystawienie_sekwencji_przejscia_do_kolej... koniec pętli koniec odczytaj_bajt odczytaj_8_bajtow: wykonaj...
A spróbuj w miejsce I2C_odbierz podstawić: [syntax=c] unsigned char I2C_odbierz(unsigned char ack) { TWCR = (1<<TWINT)|(ack<<TWEA)|(1<... while (!(TWCR&(1<<TWINT))); return TWDR; } [/syntax] I w funkcji main: [syntax=c] init_UART(); I2C_init(); unsigned int adres = 0; I2C_start(); I2C_wyslij( (0xA0 | (adres >> 7))...
A co to ma być :!: :?: : for(uint8_t i=0;i<8;i--) i-- :?: Myślę, że problem tylko w tym i sprawa oczywista, bo pobierało tylko jeden bajt. Nie możesz poprzedzać komendy 0x33 przez 0xCC, bo w jednej ramce może być tylko jedna komenda ROM!
http://www.atmel.com/dyn/resources/prod_... Jest to nota atmeloska. Napisz dokladniej do czego chcesz ta pamiec wykorzystac. Przeciez masz sprzetowe SPI i procek nie bedzie zajety tylko komunikacja. W tej pamieci nie da sie zapisywac ani odczytywac jednego bajtu. Musisz zapisac cala strone do bufora a pozniej do pamieci głównej a przy...
IC address: 110 0000b
aligned - wyrównany unaligned - niewyrównany Chodzi o wyrównanie adresu oraz rozmiaru - jeśli adres dzieli się przez rozmiar odczytu bez reszty, to masz do czynienia z dostępem wyrównanym, w przeciwnym wypadku - z niewyrównanym. Odczyt/zapis jednego bajtu zawsze jest wyrównany. Odczyt/zapis 2 bajtów na raz (jedna instrukcją LRDH/STRH) jest wyrównany...
Wklej tutaj cały kod. Jak wskazał Kolega Pong.Chu, problemem może być odczyt tylko jednego bajtu.
...Dokumentację od 24C02 przejrzałem... To za mało :| Czy Twoja procedura odczytu bajtu spod zadanego adresu(random read) jest zgodna z dokumentacją :?: Nie jest :!: http://obrazki.elektroda.net/19_12515511...
No to masz problem z odczytem bajtu zawierającego 8 pikseli, bo to właśnie robi putpixel - być może jest to kwestia błędnej zmiany kierunku portu. No właśnie, jak można zapisać 8 sąsiednich bitów do portu?... ;) Można np. wyzerować 8 bitów jednym zapisem do IOCLR, a następnie ustawić potrzebne również jednym zapisem do IOSET, nie uważasz?
Maskowanie odczytu bajtu po F0 przechwytuje chyba za mało bitów 8+start+stop +parity=11 a maszyna stanów przewiduje 8. Prawdopodobnie trafia wtedy do stan=0 będąc w trakcie transmisji. Wyprowadź sobie na jakieś dodatkowe diody aktualny stan maszyny. To ułatwi Ci diagnozę problemu. Jaka jest idea sygnału licznik?
Podobno w atmegach w "signature row" sa pod kolejnymi adresami zapisane bajty kalibracji dla różnych prędkości wewnętrznego oscylatora. Potrzebuje bajtu kalibracyjnego dla 4MHz. Jak go odczytac?
Jejku, jaki procesor?
Chciałbym odczytać bajt ze wskazanego miejsca w eepromie 24c16 za pomoca nastepujacego kodu: odczytbajtu: SER W OUT TWBR, W CLR W OUT TWSR, W LDI W, (1<<TWINT)|(1<<T... OUT TWCR, W RCALL wait IN W, TWSR CPI W, 0X08 BRNE error LDI W, 0XAA OUT TWDR, W LDI W, (1<<TWINT)|(1<<T...
Pokaż chociaż kawałek kodu to zobaczymy jak to zrobiłeś. Do przemyślenia podam kilka przybliżonych wartości. Odczyt 9 bajtów z DS18B20 (razem z CRC) trwa ~7ms Odczyt tylko dwóch bajtów ~3ms Multipleksowanie 4 LED7Segment to najcześciej 200Hz czyli co 5ms Obsługa wyświetlaczy w przerwaniu trwa ~ 5 us przy 8MHz Napisz przerwanie optymalniej a Dallas nawet...
Witam, słabo znam te procesory, musisz więc sprawdzić w dokumentacji, moim zdaniem problem nie bierze się z kolejności wysyłania ale z kolejności odczytu. Generalnie, ośmiobitowe procesory przy dostępie (odczycie i zapisie) do szesnastobitowych timerów wykorzystują (dla zagwarantowania jednoczesności obu bajtów) specyficzny mechanizm. Starszy bajt nie...
Masz przecież źródła tych funkcji w pliku eeprom.h.
A może skorzystasz z biblioteki eeprom.h? Jest tam procedura eeprom_write_byte (uint8_t *addr, uint8_t val); - do zapisu [nie rozumiem tylko dlaczego adres jest 8-bitowy - przecież np. ATmega8 ma 512 bajtów EEPROMU...] oraz uint8_t eeprom_read_byte (const uint8_t *addr); - do odczytu bajtu. (Jest też fajna procedurka eeprom_read_word(..) / eeprom_write_word(..)...
Witam Postanowiłem zbudować Tafe dla 89C2051. Zbudowałem i problem. Wgrałem ICprog 1.4 i 1.5 testowałem i nic. Wszystko jeszcze raz sprawdziłem od strony elektrycznej i nic nie znalazłem(brak błędów). Objaw jest taki program nie programuje procesora, jak czytam procka to pierszego bajtu nie czyta a następnie czyta wszystkie. Układ 174 mam wersji LS...
Tej pamięci nie znam, ale zazwyczaj z pamięciami FLASH z interfejsem SPI jest tak: Adresy będą pewnie 3-bajtowe i zapewne adresują pojedyncze bajty. Ty masz liczby 12-bitowe, więc najlepiej na każdą przeznaczyć 2 bajty. Wtedy adresy dla każdego pomiaru będą kolejne parzyste (np. adres pomiaru nr 12 to 24). Aby coś do pamięci zapisać, trzeba: - wysłać...
Nie stosowałem dotychczas więc nie wiem czy pomoże ale poczytaj o INPUTBIN, INPUTHEX
Chyba musisz doczytać dokładniej... 1. Wysłanie jednego BAJTU przez UART przekłada się na wysłanie jednego BITU przez 1wire. 2. Wysyłać można tylko 0xFF albo 0. 3. Odczyt inicjowany jest przez mastera - musi on nadać 0xFF żeby cokolwiek przyszło. 4. Odczyt jednego BAJTU z UARTa przekłada się na odczyt jednego BITU z 1wire. Ty zaś wysłałeś od razu 0x33...
podaj jakis kontakt do siebie najlepiej GG lub telefon
//procedura odczytu bajtu z urzadzenia unsigned char wire_read_byte(short int czujnik) { unsigned char bajt, tmp, i; bajt = 0; for(i = 0;i<8; i++) { tmp = wire_read_bit(czujnik); tmp = tmp << i; bajt = bajt | tmp; } return bajt; } Chciałem zrobic na 2 innych pinach czytanie temperatury, mozliwe ze...
Na razie przygotowywuje się teoretycznie do obsługi tych kart. Karta nie będzie formatowana FATem. Docelowo będzie podzielona na kilkadziesiąt bloków o tych stałych adresach. Każdy blok będzie miał ok 3k bajtów. Sposób odczytu ma być prosty- podaje adres, a ona zwraca wartość z pod tego adresu. Znalazłem kilka inormacji, (to jest chyba najlepsze http://www.cs.ucr.edu/~amitra/sdcard/Pro...
Trochę poprzestawiane. Tak jakby programator rozpoczął odczyt od drugiego bajtu. Powinien pasować kod 0 7 0 3
Odczytaj jeszcze raz bo wydaje mi się że pierwszy odczyt przesunięty o jeden bajt. Tym razem jako 24C16.
Sprawdz podlaczenie pinow A0, A1, A2. Dla A0, A1, A2 podlaczonych do masy adres do odczytu to 91h a do zapisu 90h. Zgodnie z: 2. Odczyt bajtu: Kod: twi_start (); twi_wr (ADRES_DO_ZAPISU); twi_wr (NUMER_REJESTRU); twi_start (); twi_wr (ADRES_DO_ODCZYTU); twi_rd (DANA); //bez ACK twi_stop (); Powinno być tak: twi_start (); twi_wr (0x90);...
Witam, moim zdaniem źle odbierasz dane ze sprzętowego spi. Nie ma sprawdzenia czy dana (bajt) jest przez spi odebrana, a Ty zczytujesz ją zanim odbieranie sie zakończy. Przy spi programowym Ty wysyłasz zegar i po ośmiu taktach sprawdzasz liczbę odebranych bajtów. Przed odczytem SPID.DATA sprawdź flagę przerwania - co znaczy że odebrano, bądź wysłano...
Przepraszam moje nie dopatrzenie , co do Twojego kodu ,wkleje swoj do obsługi TWi działający ponieważ widzę pewne róznice w kodach : void TWI_INIT(void) { TWSR = 0; /* no prescaler */ TWBR = ((16000000/F_TWI)-16)/2; /* must be > 10 for stable operation */ } // procedura transmisji sygnału START void twistart(void)...
Przejrzałem naprędce stronę FTDI. Myslę, że powinno Cię zainteresować to: http://www.ftdichip.com/Documents/AppNot... Opis trybu pracy do ktorego chcesz zmusic scalaczka http://www.dlpdesign.com/images/bit-bang... Opisy kilku użądzonek z FT... . To powinno Ci pomóc.
Korzystanie z PetitFS aby było szybkie to tylko i wyłącznie odczyt do bufora w pamięci RAM po 512 bajtów. Każdy odczyt mniejszej ilości bajtów to i tak odczyt sektora 512 bajtów a potem wyszukiwanie w nim tylu bajtów ilu potrzebujesz. Więc zastanów się jeśli ty próbujesz odczytywać po 1 bajcie to i tak aby odczytać 512 tych bajtów, aż 512 razy zostanie...
Od jakiegoś czasu (2-3 tygodnie?) zauważyłem że komputer zaczął wolniej pracować. Na początku było to zauważalne głównie po starcie systemu i po kilku sekundach komputer wracał mniej więcej do normy. Jednak przedwczoraj zaraz po starcie systemu, gdy chciałem uruchomić dla przykładu firefoxa to komp dostał zwiechy tak na minutę nim FF odpalił się (czerwona...
bez sensu jest w takim przypadku zajmowanie się całym rejestrem. Szczególnie że najczęściej jak w avr np sporo z nich jest nawet adresowana bitowo, ale nawet to nie ma znaczenia wystarczy z n-tego bitu wyprowadzić sygnał reset. Przecież rejestry są na przerzutnikach wystarczy podpiąć się pod odpowiedni. Dalej or sygnałów wystąpienia przerwania czy też...
Ja po AVR'ach poszedłem w stronę NXP i mikrokontrolerów LPC1xxx. Muszę powiedzieć że tak droga była bardzo gładka i przyjemna. W zasadzie może kilka tygodni zabawy z płytką stykową ([url=http://www.elektroda.pl/rtvforum/t... testowanie peryferiów i już następne projekty opierałem o te mikrokontrolery. Już kilka razy o tym pisałem,...
Już znalazłem. Jakby ktoś był zainteresowany, to szybkość SW-CAN (33,3 kbps), info ma Id 1280 (0x500), bajt 2 (odczyt dziesiętny) i jest to dzielone przez 8. Czyli dokładność 0.125 V DC.
SZukałem, dokumentację czytałem, jak prosze o pomoc to dlatego, że mimo to nic mi nie wyszło. Proszę o jakąś wskazówkę lub linka do tych forów gdzie jest to wyjaśnione, bo ja trafiam na mało treściwe tematy takie jaki się właśnie zawiązuje w moim wątku. Jak ma jeden układ i robię: reset 33h READ ROOM odczyt bajtów to działa, natomiast jak podłączę dwa...
brakuje "pół HEXa" I nadal nie daje ci to do myślenia ? Jeżeli korzystasz z arduinowej funkcji Serial.read() do odczytu bajtów z UART, to jak najbardziej może się zdarzyć, że jakiś bajt zostanie zagubiony. Jest to zależne od "tempa" z jakim funkcja Serial.read() opróżnia bufor kołowy dedykowany dla UART. (at)szczukot Pomyśl, co read() zwraca w sytuacjach...
Domyślam się że gdzieś trzeba wpisać procedurę opóźniającą 5ms. Pomiędzy operację zapisu i odczytu bajtu? Z angielskiego jestem noga więc typowe noty katalogowe niewiele mi mówią. Dodane 13.02. Wpisałem procedurę opóźniającą pomiędzy procedurę zapisu i odczytu bajtu i dalej to samo.
W każdym przypadku lepiej użyć do tego DMA. Do jednego bajtu to chyba byłaby przesada. Raczej przy takich wolnych odczytach i niewielkich/nierównych ilościach w każdym zapisie/odczycie bajtów zrobiłbym to na przerwaniach. I przy okazji: 1. Dummy byte 0xff może nie być dobrym pomysłem - nie chce mi się czytać DS-a tego układu czy coś tym nie mącisz....
Kiedys napisałem takie proceudy pod asm i działały bez problemu bit stopu clrscl clrsda setbscl setbsda bit startu setbsda setbscl clr sda clr scl ; ****************************************... ; * Procedura wysłania bajtu na magistrale I2C * ; ****************************************... wysl_e: mov r1,#8 ;do R1(rejest roboczy)...
Inna kombinacja, w której zmniejszyłem rozmiar odczytu do 16 bajtów (+2 bajty crc) i zwiększyłem szybkość transmisji do 1500000 Spróbowałem raz i zadziałało, było bardzo szybko.
Witam Próbuję wykonać czytnik kart RFID z użyciem modułu RMD6300, który po UART przesyła bajty do ESP8266. Cały odczyt bajtów przebiega bez problemu, czekam na bajt o wartości 2 zaczynający przesył danych i przy otrzymaniu bajtu o wartości 3 kończę odczyt. Problemem jest to, że RMD6300 po przyłożeniu do niego karty RFID, dokonuje odczytu kilkukrotnie....
Odczyt jest z programatora który zamienia bajty {funkcja SWAP}
Szukam pomocy w naprawie pena oto jego odczyt: Controller: ITE IT1171 A0AA Possible Memory Chip(s): Micron MT29F64G08CBABA Micron MT29F64G08CBABB Micron MT29F64G08CBCBB Memory Type: MLC Flash ID: 2C64444B A9 Flash CE: 1 VID: 048D PID: 1172 Query Vendor ID: XXXXXXXX Query Product ID: U1170CONTROLLER Query Product Revision: 0.00 Physical Disk Capacity:...
Pisałem o przeniesieniu zaraz przed "lcd_dec(a);" a nie zaraz po "i2c_start();" W przypadku protokołów nie ma dowolności w kolejności przesyłanych danych: tutaj musi być start, bajt adresu do odczytu (0x91), odebranie bajtu (a=i2c_get(0);) i stop. Inna kolejność spowoduje, że nie otrzymasz tego, co chcesz. O tym że i2c_get(0) musi być po wysłaniu adresu...
Chetnie sprobuje tylko z czym?
Mam atmega16 oraz czujnik temp na i2c(twi). Mam problem z odczytem drugiego bajtu danych z tego czyjnika... Pierwszy bajt danych odbieram, potem wysylam potwierdzenie i drugi odebrany bajt ma zawsze wartosc FF. Nie wiem gdzie jest blad. Czyjnik jest ok! Ma ktos moze jakis kod w asemblerze odczytujący z jakiegos urządzenia (czyjnika) na magistrali TWI...
Hej, zwróć uwagę na rozmiary int i double . Dlaczego nie wstawiasz do sizeof konkretnej zmiennej, tylko typ? Musisz jeszcze znać format danych, rozmiar i kolejność bajtów.
Więc w moim przypadku zacznę odczyt bajtu dopiero po wykryciu przerwy. Mam jeszcze jedno pytanie. Czy sprzętowym UART (w STM32) mogę odczytywać bajty z M-BUS? Protokoły są bardzo podobne.
Witam Sprawa prosta. Rozwiązać problem można na kilka sposobów. Ja robiłem tablicę 16-to elementową i w pętli z każdym zboczem sygnału zegarowego wpisywałem wartość do tablicy. Po odczytaniu 16 bitów czytałem te komórki, które mnie interesowały i sumowałem wynik z odpowiednimi wagami bitów. Poglądowy program poniżej. Config Pinx.x : Clk alias Portx.x...
Problem polega na tym, że odczytujesz wartość ADC z uC zamiast z DS18xxx. Brakuje ci obsługi DS18B20. Poniżej fragment kodu działającego u mnie. [syntax=vbnet] Config 1wire = Portb.0 '0,1,2 NOP 3,4,5,6,7 works good ON MY Equipment Do 1wreset 'reset 1wwrite &HCC 'jedna kostka, więc wykorzystujemy rozkaz SKIP ROM 1wwrite &H44 'dokonaj konwersji Waitms...
Faktycznie driver nie obsługuje BinaryInputStream ale odczyt bajtów działa bez zarzutu także cel osiągnięty .Pozdrawiam
pakiety wysyłane są co 400ms więc na w buforze powinno być około 10 lub więcej bajtów , z pominięciem case wyświetla się dodatkowy znak ale nie więcej niż 3 łącznie , poza tym w pętli do - loop until (do testów) dopisałem zmienną która zlicza znaki w tej pętli i wychodzi max 3 ... ps.może toporny lecz tylko do testów zaponiałem dodać że gdy wstawie...
Żeby to działało, to przecież najpierw musisz wysłać adres urządzenia z LSB ustawionym na zero (zapis), potem te 2 bajty adresu, potem zrobić "repeated start", znów adres urządzenia z LSB ustawionym na 1 (odczyt) i dopiero odczytać ten jeden bajt o który Ci chodzi.
Kolego. Przy pamięciach I2c (24c...) nie ma problemu, problemy zaczynają się przy pamięciach microwire 93c..... Te pamięci można czytać w organizacji 8bit i 16bit. Odczyt różni się tym, że ma przestawione bajty, tzw. swap. Czyli na jednym odczyt 12 34 a na drugim 34 12. W programie od Seeproga jest opcja swap na pamięci. Pozdrawiam PF
Programator to atmega8 + trzy zatrzaski 74hc574 (aby procesorowi starczyło wyjść). Do tego gniazdo ZIF aby ułatwić wkładanie i wyjmowanie pamięci. Do tego zaprojektowany przezemnie protokół przesyłu danych - pc wysyła do mikrokontrolera po r232 paczki danych (po 255 bajtów każda) z sumą kontrolną. Jeśli suma się nie zgadza - atmega żąda przesłania paczki...
Bardzo kombinujesz, a wyżej masz dokładnie napisane dla dużych bibliotek, na dwa sposoby. Float ma cztery bajty, nie ma sensu w twoim przypadku zamienić go na int, żeby za chwilę zamienić tego inta z powrotem na float. Użyj memcpy (#9), albo ręcznie przepisz wszystkie bajty (#13).
Taka ciekawostka (bug?) odnośnie PFS154 i może innych. Instrukcje: set0 pa.X set1 pa.X modyfikują także inne bity niż wybrany. Wygląda na to że najpierw jest odczyt całego bajta z bufora wejściowego (zamiast wyjściowego) portu, potem modyfikacja bitu i zapis bajta do bufora wyjściowego. pa = pa & ~(1<<X); pa = pa | (1<<X);
Nie zrozumiałem,że chcesz powiedzieć ,że twój zegarek nie wyświetla sekund :) tylko pullujesz zegarek DS 3 razy na minutę ,żeby nie przegapić zmiany minuty :) Żartuję oczywiście :) metoda dobra jak każda :) Podeślij kawałek kodu obsługi i2c może znajdziemy babola. Podejrzewam, że układ DS podobnie jak niektóre PCF-y[phlipsa] blokuje stan zliczania czasu...
W sumie to sprawdziłem zwykłym skandiskiem windowsowym i wypluł mi takie coś: Sprawdzanie systemu plików na C: Typ systemu plików to NTFS. Etykieta woluminu: System. Zaplanowano sprawdzenie dysku. System Windows sprawdzi teraz dysk. Porzadkowanie niewielkich niespójnosci na dysku. Oczyszczanie 2 nieuzywanych wpisów w indeksie $SII pliku 0x9....
Czy mogłby ktos napisac przyklad odczytu bajtu D0-D8 z portu LPT w Visual Basic wraz z opisem zaistalowania potrzebnych bibliotek Kombinuje juz od jakiegoś czasu .. ale jakas mi nie wychodzi pozdrawiam Temat zamykam. - arnoldziq
wybacz śmiałość początkującego ..., Twoja racja o ile na tym samym bajcie w SRAM operują jeszcze inne funkcje , ( lub bajt jest częścią większej całości ) do zbadania kilku bitów na tym samym bajcie , w chwili wywołania funkcji wystarczające jest jednorazowy odczyt bajtu - tak myślę . J.P.
czy ktos z kolegów używa 24c512 atmela i moglby sie podzielic kawalkiem kodu do porównania. interesuje mnie procedurka zapisu i odczytu bajtu oraz nawiazanie transmisji od odczytu i zapisu przy uzyciu tych procedur. najchetniej w asm51, ale w innych jezykach tez bedzie pomocnie.
Na c sie nieznam. Myśle ze kolega wie że pilot nadaje najpierw kod pilota potem dopiero kod klawisza może twój program po odczytaniu pierwszego bajtu konczy juz odczyt. Kiedyś miałem program na 8051 pokazywał na lcd pełny kod każdego klawisza ale chyba mnie gdzies zapodziało to
Czyli Twój pseudokod to jest taka jakby kolejka FIFO? No niezupełnie. To co przedstawiłem buffer_is_empty() zwracająca prawdę lub fałsz) należy sobie dopisać. Sprawa jest dosyć prosta np. w przypadku USART. Wystarczy dodać bajt do bufora, później - jeśli bufor nie jest pusty - pobrać bajt i wysłać. W przypadku I2C sprawa jest o tyle skomplikowana,...
Zapisać -> Nie wiem w jakim stanie go masz, ale pewnie jako 8 bajtów:) Wytnij z tego bajty rodziny etc, zostaw sam SN właściwy, i jak pisał chyba JmL masz "tablice" w eepromie, no to siup zapisujesz pod ta i ta komórkę, co potrzeba. - tyle apropo zapisu Odczyt -> odczytujesz co któryś bajt(same SNy) do jakiejś innej tablicy w ramie i szukasz w niej...
witam Mam problem z odczytem bloku DATA - chcę pętlą odczytywać id dsów i mierzyc temperaturę i tak dla 10 po kolei, problem w tym że już na początku jest coś nie tak z pierwszej linii data zamiast 28,18 odczytuje mi się 08,95 potem każde pierwsze 2 bajty to 2 ostatnie z poprzedniej linii. Oto fragment kodu [syntax=basic4gl] Odczyt_ds: 1wreset 1wwrite...
Ja raz zapisałęm adres 0 i odczytywałem bajt po bajcie aż do 131072 bajtu i teoretycznie wszystko sie dobrze odczytało,m ale sprawdziałęm tylko poprawność odczytu ostatniego 131072 bajtu i było ok. Nie musiałęm adresować na dwa razy tak jak pisałeś wcześniej. Pozdro
Przesyłam dokumentację do tego sprzętu. Jedyne, co udało mi się ustalić, że ciepłomierz przed odczytem trzeba wybudzić pięcioma bajtami FEH. Niestety trzeba samemu napisać soft do tego sprzętu. Używałem MBSheet, ale nic nie udało się odczytać.
Disable Interrupts 1wreset Enable Interrupts Disable Interrupts 1wwrite &HCC Enable Interrupts Disable Interrupts 1wwrite &H44 Enable Interrupts Waitms 750 'czas konwersji 750 ms Disable Interrupts 1wreset Enable Interrupts Disable Interrupts 1wwrite &HCC Enable Interrupts Disable Interrupts 1wwrite &HBE Enable Interrupts Najgorzej to z tym: T(1)...
57H został dodany dla zgodności. Procedura odczytu SR: 1. CS=0 2. Komenda D7H 3. Odczyt bajtu statusu 4. Weryfikacja flagi BUSY, jeśli RDY skocz do 6 5. Skocz do 3 6. CS=1 ps. Pamiętaj, że "wychodząc" z zapisem poza stronę musisz zakończyć zapis i rozpocząć z nowym adresem.
Co do SPI, ja już sporo czasu zmarnowałem nad programatorem LPT, co odczyt to jakieś bajty się różniły, w szczególności na dużych kościach (4MB niektóre chodziły ok, ale powyżej masakra). Zamiast robić, to może lepiej kupić z Chin? Co myślicie o programatorach na CH341A pod USB? Dużo to nie kosztuje, więc kusi przetestować...
Stąd, że inkrementujemy zmienną 16-bitową, którą zapisujemy jako dwa bajty, jeden po drugim i tak samo ją czytam - w kawałkach. Jeśli przerwanie zinkrementuje zmienną pomiędzy odczytem jednego i drugiego bajtu, to w pętli głwnej dostaniemy wartość, której jeden bajt jest już po inkrementacji, a drugi - przed. W zależności od kolejności odczytu obu bajtów...
Pokaz schemat. Podłączyłeś pull-upy? Nie możesz kodu uczynić trochę bardziej czytelnym.? Porozdzielaj sekwencje START/STOP I2C, wyodrębnij zapis i odczyt bajtu. Stwórz z tego procedury, takie jak w przykładach na tej stronie: http://www.atmel.com/devices/atmega1284....
Mam jeszcze jeden problem. RF przy bitrate 4,8kbps i wiecej zaczyna gubic dane (w tym samym stopniu w odleglosci 30cm jak i 30m) a przy 19,2kbps juz w ogole nie ma komunikacji. Przy transferze 1kbps mam idealna komunikacje przez 4 betonowe sciany, na odleglosci kulkudziesieciu metrow. Jakies pomysly? Prawdopodobnie procedura odczytu bajtu z FIFO jest...
A ja mam pytanie.... czy on podczas odczytu zamienia bajty (swap) ,czy nie . Po odczycie 93c56 ,c46 tak mi na to wyglada ze swap robi . Pozdrawiam....
Pamiętaj, że rejestry SPI, w zależności czy to jest M/S, czy realizujesz przez USART, mają bufory. Jeśli więc coś nadajesz, a nie odczytasz SPDR, to ta wartość i tak tam jest, zostanie odczytana przy kolejnej okazji. Stąd możesz mieć opisane problemy z odczytem jakiś wcześniej przesłanych bajtów. Stąd też najlepiej albo jednocześnie zapisywać i odpisywać...
Walczę już kilka dni próbując różnych podejść i niestety się nie udaje, więc postanowiłem spytać, może ktoś miał coś podobnego. Mikrokontroler stm32F407VGT6, potrzebuję zapisać bajt w pamięci flash pod określonym adresem. Mam 2 funkcje do zapisu i odczytu jednego bajtu w sektorze 2 pamięci flash: void flash_init(void) { FLASH_PrefetchBufferCmd(ENABLE);...
Witam. Dopiero zaczynam programowanie. Mam program w Borland C dla DOS-a 3.1 który powinien wyświetlać czy naciśnięty został jakiś klawisz np SHIFT. Mam tylko dopisać adresy odpowiednich bitów. Wiadomo że w bajcie pod adresem 0040:0017h znajdują się bity odpowiedzialne za informacje o wciśnięciu klawiszy specjalnych klawiatury np bit 0 - prawy SHIFT...
Opis przesyłu (warstwa fizyczna): SCK - pin 3 - Serial clock CE - pin 2 - chip enable SDI - pin 6 - serial data input SDO - pin 5 - serial data output Stan spoczynkowy łącza: SCK=0 i CE=0 Dane podawane na SDI (do układu) są zatrzaskiwane w układzie TC72 przy zmianie SCK z 1 na 0 Dane pojawiające się na SDO (wyjście ) są wysuwane przy zmianie SCK z...
wilk125: jeszcze mam takie pytanie, jeśli kwarc zew. mam 8MHz i preskaler ustawiony jest na 8, to jeden takt timera1 w tym przypadku będzie odpowiadał 1us ? Tak Tak powinno być TCCR1B, moja pomyłka Przy odczycie wartości z TCNT1, sróbuj najpierw odczytac TCNT1L(młodszy bajt TCNT1), i następnie TCNT1H (starszy bajt). Chociaż odczyt jak wyżej tez powinien...
Witam wszystkich po raz kolejny. Dzisiaj postaram się Wam opisać po raz kolejny moduł radia TEA5767 od firmy NXP, z tym że dzisiaj będzie na podstawie bardziej rozbudowanego zestawu oraz będzie tutaj też mowa o odczycie informacji z tego modułu. https://obrazki.elektroda.pl/3222283100_... https://obrazki.elektroda.pl/9594809000_...
Tak się składa, ze również korzystam z BMA180. O to moja funkcja odczytu i zapisu bajtu z czujnika pod wskazany adres: [syntax=c]u8 spi_read_byte_acc(u8 adres) { u8 data; // Opuść ChipSelect, wyczyść poprzez odczyt DR bufor RX, oraz wyślij adres wraz z poleceniem odczytu. CS_ACC = 0; data = SPI1->DR; SPI1->DR = BMA180_READ | adres; // Oczekiwanie na...
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)...
Chyba mnie źle zrozumiałeś - ja już czytałem tą notę i wiem, że to się tak robi .. Konkretnie chodzi mi o to, co znaczy "WORD ADDRESS", i konkretnie proszę o przykład, jak odczytać bajt o adresie 200h. Taka: bitstartu; // inicjacja trancmisji i2cwrite(0xA0); // identyfikator + adres fizyczny, zapis i2cwrite(tutaj nie wiem co); // proszę...
Bynajmniej nie chciałem urazić w poprzednich postach, jednak, moim zdaniem, dopiero przedostatni post autora tematu konkretnie wskazał problem. Nie znam za bardzo arduino, ale bazując na [url=http://codebender.cc/]kompilatorze online, obsługa eeprom w arduino jest identyczna jak w c. Przykład: [syntax=c]#include <avr/eeprom.h> typedef struct {...
najpierw używałem samych przerwań na najwyższym priorytecie jak ST przykazało, niestety od czasu do czasu zdarzało się że RTOS wyłączał wszystkie przerwania i przy odbiorze ostatniego bajtu zdążył się wygenerować już STOP i sprawdzenie if ((SR2Register & I2C_SR2_MSL) == I2C_SR2_MSL) było nieprawdą, co powodowało brak odczytu ostatniego bajtu. W distortos...
Witam. coś szukam i nie potrafię znaleźć (poza angielskimi notami aplikacyjnymi) opisu jak odczytuje się kartę sd lub mmc w trybie spi... czy może ktoś podać linka lub jakiś krótki opis? chodzi mi o samą ideę odczytu bajt po bajcie od początku do końca (nie interesują mnie gotowe programy, obsługa fat itp)... za każde informacje (zwłaszcza te podstawowe)...
Pewnie dlatego, że po 16-bitowym adresie nie wysłałeś do pamięci ani jednego bajta danej do zapisu.
Czy można to sprawdzić po usunięciu tej linii? Dodano po 29 . Mogę również wgrać swoje narzędzie: https://obrazki.elektroda.pl/5750249800_... . Mój port załączony. Procedura testowa, której używam jest prosta: - Używam read_4096 do odczytu 4096 bajtów - następnie używam write_lorem_ipsum i ponownie odczytuję, aby sprawdzić wzór lorem...
Przed odczytem zerujesz bajty. pierwszy bajt 0: drugi bajt 2: (po wcisnięciu) 0*10+2=2;
Jak sam napisałeś nie masz problemu z odczytem jednego bajtu. Problem może być właśnie tutaj. Urządzenia pracujące z wykorzystaniem magistrali I2C wymagają odpowiedniej sekwencji potwierdzeń i ich braku przy odczycie większej ilości bajtów. Niektóre urządzenie w ogóle nie zwracają uwagi na ACK, czy NACK. Wysyłają dane jedna po drugiej.
Przesłanie jednego bitu trwa średnio około 60 us, odczyt wymaga przesłania ID i danych, łącznie 12 bajtów - ok. 5,7 ms. W porównaniu do czasu konwersji (nawet 750 ms) to chwila.
wysyłanie bajtu transmisja bajtu odwracanie bajtu
częstotliwość skanować bosch płyta indukcyjna napięcie daewoo pompa
philips lx3700 samsung wf70f5e0w2w
Oleo Mac 937: Problemy z gwałtownym wchodzeniem na gaz Spadek napięcia w domofonie Cyfral przy otwieraniu zaczepu