Z tego co pamietam to funkcja Rotate wymaga podania liczby przesuwanych bitow. Powinna wiec wygladac tak: ROTATE Buforek,Left,1 UPDATE: Katoda LED na VCC ?? To zadnym stanem logicznym tego nie zapalisz ;) Anoda powinna byc podlaczona do VCC. No chyba ze odwrotnie rozumiemy pojecie anoda-katoda w zlaczu. Pozdro Dexter
Witam! Czy ktos moglby mi jak krowie na granicy podać zasade przesuwania bitow arytmetycznie i logicznie( z jakims przykładem) Myslalem ze wiem jak sie robi ale jednak na zadaniach sie wykładam. pozdrawiam
Dlatego, ze typ int ma na AVR 16-bitow, a ty probujesz zrobic przesuniecie o 16 bitow (0x10), efektem tego jest wyzerowanie przesuwanego rejestru. Kompilator o tym cie ostrzega.
Rejestr przesówny 74HC595 x 2 i masz 16 bitow rozdzielczosci na 3 liniach. Predkość 'przesuwania' dla niego to 100 MHz. Policz czy to wystarczy.
Modullo 15 Mam to napisac w asmie. Jeden sposob podalem powyzej Oczywiscie do niego trzeba jeszcze przesuwania bitow a nastepnie xnor na and i not. Poprostu szukam jakiegos prostrzego sposobu. Chodzi mi o metode korzystajaca glownie z and bo wiadomo ze na samym and sie pewnie nie da. (poprostu takie mam zadanie sam sobie zwykle zycia nie utrudniam)....
/.../Jestem z veriloga zielony, więc pomóżcie jesli chodzi o verilog [i ew. implementacje w fpga], to na pewno ktos ci tutaj pomoze; napisz jak chcesz to zrobic majac do dyspozycji rejestry dowolnej dlugosci, operacje mnozenia i dodawania liczb calkowitych, przesuwania bitow itd; jesli liczysz na to, ze ktos odrobi cala prace za ciebie i poda gotowe...
tak to jest najszybsza metoda wykorzystujaca przesuwanie i dodawanie wartosci 3 .Porownanie czasu tej operacji w asemblerze a sposobow napisanych w basicu pokazuje jakie to sa roznice.Algorytm jest kilka razy szybszy i kilka razy mniejszy.i ta metoda nie jest tylko dla 8-bitowych liczb lecz dla kazdej wielkosci liczby.po prostu zamiast 8 bitow przesuwamy...
Sory ze dopiero teraz odpisuje(mam nadzieje ze nie za pozno) ale mialem ostatnio troche na glowie i jeszcze wiecej sie szykuje. W kodzie dotyczacym shiftera uzyta jest petla. W Twoim kodzie korzystasz z listy czulosci w procesie(np. clk). Wspominalem juz wczesniej ze takie polaczenie nie bedzie dzialac. Bez wglebiania sie w kod(sorki ale malo czasu,...
witam czy da sie w jakis szybki sposob przeslac liczbe 16 bitowa na 2 porty uP??? bo ja robie tak ze wysylam 8 bitow przesuwam w bity w zmiennej o 8 i wpisuje na inny port ale to za dlugo trwa da sie jakos 1 unstrukcja ew. dwoma??? jak wy robicie takie cos??? mowie o uP AVR teraz akurat mega8 oraz programowaniu w C pozdrawiam serdecznie
Pamięć jest zorganizowana w komórki 16-bitowe, objawia się to np tym że wskaźnik programu wskazuje na słowo (2 bajty) a nie na bajt. Wszystkie instrukcje muszą być więc wyrównane do granicy dwóch bajtów. Jakkolwiek z poziomu samego programu pamięć flash jest zorganizowana bajtami, więc spokojnie można w niej umieszczać tablice bajtów bez utraty pamięci....
Co do przesuwania kolejnych bitow na kolejne wagi to pierwotny pomysl po malej korekcie z shiftem dziala For I = 11 To 0 Step -1 Call Zegar Shift Y , Left A = Dataa Y = Y + A Next wykonuje sie minimalnie wolniej 657 odczytow na sekunde, w tamtym sposobie 680/s Obecnei proboje z instrukcja SHIFTIN podobno mozna ja wykorzystac do szybkiej komunikacji,...
....byla taka funkcja w Logo! Nazywa sie Shift Register. Polega na tym, ze mamy np 1 bajt czyli 8 bitow i teraz strzelajac zboczem powodujemy przesuwanie sie "jedynki" logicznej od pozycji 0 do 7. Oczywiscie pozostale sa zawsze zerami. Andrzej
można też nie niszcząc zmiennej for (i=0;i<8;i++) { SDI=(temp>>i)&0x01; } To co pokazałeś to jeden z najgorszych sposobów na wyłuskanie bitów z bajtu. Zobacz jak zostanie skompilowane wyrażenie SDI=(temp>>i)&0x01, w przypadku gdy i jest zmienną. Podpowiem ci, że zostanie zamienione na pętlę. Jeśli chcesz zachować wartość zmiennej,...
Kurde.. mozdze i mozdze ale nie wiem jak odczytywac bity z bajta po kolei? Nie pisalem duzo w C, wiem ze to nie jest trudne, ale nie mam pojecia jak to zrobic.. jakis wskaznik i potem go przesuwac? Jesli ktos bylby tak uprzejmy i wyjasnil n00bkowi taka base operacje na bajcie jak przesuwanie i wypluwanie bitow. Myslalem o masce, iloczynie logicznym...
Nie, ebay. Prosto z USA.. tylko zlacze ARK nie wytrzymalo trudow podrozy razem ze sciezka odpadlo. Jednak jak to mowia... troche szpachli i wszystko da rade naprawic :D Eee.. czemu? Juz mowie. Poprostu mam kontrole nad tym co robie. Dopiero raczkuje w C. Jak sie uda, w dwoch osobnych funkcjach odczytac wszystko poprawnie to dopiero wtedy wezne sie za...
Będzie to kodowanie z offsetem, i to w dodatku z offsetem zależnym od pomiaru w momencie naciśnięcia przycisku. Tak się po prostu nie robi. Czyli jedyna rada, to sprzętowo, za pomocą potencjometru regulować punkt 0? Nie, nie. Chodziło mi o to że jak regulujesz programowo, to zmienne muszą być trochę bardziej pojemne, na przykład typu LONG. Ale skoro:...
jesli nie ma zadnych ograniczen, wstepnych zalozen [rzeczywiscie mozliwych znakow jest 256 ?] to bedziesz potrzebowal sporej fpga; na szybko, w przerwie meczu - taka idea: robisz pamiec o 16 bitowym adresie i szerokosci slowa 10 bitow, przychodzacy symbol jest mlodsza czescia adresu pamieci, a zawartosc pamieci starsza czescia, tak zlozony adres przesuwa...
witam juz wszystko jasne, faktycznie pytanie bylo troche bez sensu. O ile sie nie myle, sparawa wyglada tak: - jezeli chcemy syganl przeslac wiekszej lub mniejszej dokladnosci wystarczy tylko przesunac przecinek w prawo lub w lewo a co za tym idzie sygnal musimy pomnozyc lub podzielic o dana liczbe bitow. (przykladowo jesli przesuwamy przecinek o 2...
Zmien deklaracje pinow bo nie wiem na jaki procek piszesz. Program jest podstawowy, ale pokazuje jak sie obchodzic ze sterowaniem HD44780 na czterech bitach. ;***************************************... ; Wyświetlacz LCD podłączony do P4 ; ustawienie przełączników ; SW P4 ; on | ; off |00000000| ; 12345678 ;***************************************...
dzieki za szybką reakcje wyglada to mniej wiecej tak, z taka roznica ze ponizszy fragment kodu jest tylko przykladem, bity w projektowanym przeze mnie urzadzeniu maja inna kolejnosć czy instrukcja"for lauf = 1 to 24" spowoduje szeregowe przesuwanie 24 bitow jaką instrukcja, i czy da sie wpisac do rejestrow w ATmega8 24 bity naraz, a pozniej jedna instrukcja...
http://obrazki.elektroda.net/33_12693286... Cześć! Kiedyś, kiedy zaczynałem zabawę w wyświetlacze graficzne, potrzebny był mi program na PC, który pozwalałby konwertować czcionki i obrazki do tablicy C, by potem użyć jej w programie dla mikrokontrolera. Potrzebowałem zapisywać ja w postaci monochromatycznej, gdzie jednemu bitowi zmiennej w...
Zdefiniowana jest struktura UDT: ILOSC - WORD (16 bitOw) DATA - Date (16 bitów) CZAS - TimeOfDay (32 bity) A więc długość rekordu wynosi 4xWORD i o tyle muszę przesunąć dane przy nowym zapisie. Pozdrawiam
Nie rozumiem, co ten link ma do mojego kodu? Jaki jest zamysł na zrealizowanie tego ćwiczenia? Piszesz bardzo ogólnie i mało pomocnie. Jedyne co w tym linku znalazłem to przesuwanie kursora w lewo i prawo, jednakże nie działa to dobrze ponieważ nie ogranicza się do przesuwania tekstu w jednej linii. Jest jeszcze scroll, ale on przesuwa cały wyświetlacz,...
W zasadzie masz racje... ale kompilator sobie z tym radzi. Wyglada to tak ze przesuwam bit ktory i tak pozniej zeruje. Moim zdaniem jest to praktyczne rozwiazanie. Bo raz masz napisane wszystkie nazwy bitow i tylko dajesz wykrzyknik czy chcesz je ustawic czy nie. Wielkie dzieki za kompleksowe wyjasnienie :) Pozdrawiam serdecznie
Mam problem.Chce wykorzystac w ukladzie PIC16F877 uklad USART jako rejestr przesuwny.Ustawiam tryb dzialania na synchorniczny, zewnetrzny clock i ustawiam bit CREN.Uklad musi byc ciagle wlaczony tak jak rejestr przez ktory ciagle przechodza dane.Pytanie jest takie jak zrobic zeby rejestr (w tym przypadku USART) ciagle przesuwal dane i w momencie gdy...
mnie znanym sposobem, choc na pewno wolnym jest branie reszty z dzielenia przez 10 (np. x%10)... i tak az sie skonczy liczba ;)... oczywiscie za kazdym razem trzeba jeszcze podzielic przez 10 ta liczbe, zeby moc uzyskac kolejna cyfre... a jesli chodzi o "wyciaganie" poszczegolnych bitow z liczby to przydatny jest ktorys z operatorow przesuwania bitowego...
Znakomita większość przetworników A/C nie potrafi przetwarzać napięć ujemnych. Żeby to umożliwić konieczne jest przesunięcie zakresu napięcia wejściowego do "zjadliwego" dla przetwornika. Czyli np. jeżeli przetwornik przetwarza napięcia z zakresu 0-2.5V, to do takiego zakresu musisz "przeskalować" swoje napięcie. dla sygnału -5V na wejściu przetwornika...
moze pomysl o dodaniu (programie i przy pomocy taniego hardware) generator dithera dodawanego do mierzonego sygnalu - mozna w ten sposob poprawic rozdzielczosc i czesciowo zlinearyzowac tor pomiarowy Przecież napróbkowywanie ma to już samo w sobie. A w dodatku w żaden sposób nie linearyzuje to przetwornika. To nie jest to samo - nadprobkowanie bez...
Dzięki bardzo:) Mam tylko pytanie odnośnie tych kluczy przełączających to chyba nie mają być "przełączniki" ręczne. Podajemy informację na wejście cyfrowe (no własnie gdzie ono jest) i w zależnosci od danej liczby one (klucze) są włączone albo wyłączone. I jeszcze jedno....gdzieś wyczytałam, że jeśli zastosuje się zewnętrzne źrodło napięcia odniesienia...
Dla przykładu: http://mikrokontrolery.blogspot.com/2011... Przesuwasz 0 na piątą pozycję i robisz OR z zawartością rejestru PORTx, co ci z tego wyjdzie?
tego problemu juz nie mam bo nie potrzebuje takiego rozwiązania ale popieram i polecam sposób Press`a
Podpięte, ale oczywiście nie działa:) Tzn. prawdopodobnie nie chodzi o problemy elektryczne, ale programowe. Staram sie przerobić procedury KS0108 z AVR na STM32. Tam były np. porty 8bit, tu 16 itd... Mam takie pytania. jeżeli mam. char commandTW = 55; uint16_t command; command = commandTW; command <<= 8; to będę miał w 8 starszych bitach command...
zakladajac ze AVR studio, a w zasadzie gcc, przeznaczone dla 8-bitowej architektury w ogole jest w stanie skumac to, ze ma przesuwac cos o wiecej niz 8 bitow... gcc dla 16bitowych PICow jest w stanie prawidlowo przesuwac zmienne 32-bitowe, ale kto wie jak to w avrach jest <: wrzuc no listing assemblerowy tego kawalka kodu. sprawdz tez, czy jak dasz...
rasty, niedokładnie tak: STR przepisuje dane na wyjścia; CP działa i bez niego. Zabezpieczenie wejścia rzeczywiście by się przydało - układ jest do sygnału TTL. A może projektant liczy na to, że ten opornik 22k wystarczająco zabezpieczy? Pewnie 74HCT14 ma jakieś diody przy wejściach, tylko trzeba ograniczyć prąd. Poza tym robienie opóźnień na inwerterach...
Uzywam LPC2106, tryb Master, wiec powinno byc ok. addr = 0 0 a5 a4 a3 a2 a1 a0 w celu odczytu wartosci zapisanej w pamieci 93c46 wysylamy: start_bit opcode address 1 start_bit 1 | 0 |_ opcode a5 | ... | a0 |_address W czasie wysylania ostatniego bitu a0, pamiec 93c46 zaczyna nadawac, zaczynajac transmisje od bitu '0' (nieistotny). Kolejne 16 bitow to...
Wszystko jasne. Zmyliła mnie te emotikonka i nijak nie mogłem rozszyfrować o co chodzi z przesuwaniem o iloczyn logiczny :smile: Dzięki za wyjaśnienie. Chyba już było poprostu za późno, żebym sam to w nocy rozszyfrował :smile:
Do implementacji na rejestrze przesuwanym odrzuca się najstarszy bit. Czyli mam to rozumieć tak, że? jak mam wielomian opisujący CRC16: 1 1000 0000 0000 0101 oraz pakiet bitow np. 0010 001 0111 0001 1101 0000 0000 0000 0000 to operacje XOR wykonuje jesli pakiet[MSB]='1' czyli 1000 0000 0000 0101 (crc16) XOR 0001 0111 0001 1101 (16-bit rejestr) = 1001...
Przede wszystim, jesli oczekujesz pomocy, musisz podac na jaki procek ten assembler. Po komendach widze ze nie jest to x86, czyli PCet. Byc moze chodzi o jakis mikrokontroler. Nie wiem czy wiesz, ale assembler nie ejst przenoscym jezykiem i nie ma jakies jego standardu - w przeciwienstwie do Ansi C czy pascala. Dalej nie wiem czy wiesz, ze nawet jesli...
Gotowca Ci nie podam, bo nie mam takiego przykładu, ale jakiś pomysł - tak. Podpinasz sygnały z wentylatorów do jednego portu (będzie łatwiej). Konfigurujesz timer na konkretny okres (o tym później), w głównej pętli programu porównujesz poprzedni i obecny stan portu (tego z wentylatorami). Jeśli któryś bit zmieni stan (może być tylko z 1 na 0 lub z...
Witam. Chciałem rozgryźć wyświetlacze z HD44780. Po nieskutecznych próbach z interfejsem 4-o bitowym, wszystko skasowałem, i napisałem zupełnie od nowa, tym razem pod interfejs 8mio bitowy. OK, poczytałem datasheety, diagramy itp. Według mnie wszystko raczej się zgadza, ale wyświetlacz się nie chce zainicjalizować (a raczej dwa wyświetlacze, bo próbowałem...
Ja tez nie kumalem tego kiedys .. poszukaj ,poczytaj i zrozumiesz:) ps1- http://galaxy.uci.agh.edu.pl/~chwastek/l... na tej stronce masz kurs samego C , tam sa wytlumaczone operatory itp rzeczy. ps2 . co_dana & 0x80 - jedno & oznacza iloczyn (AND) bitowy tzn: mamy np to zmienna co_dana ktora ma powiedzmy wartość 185 - binarnie...
hmm no witam panowie problem w tym ze pamiec 8-bitowa ma za krotka dlugosc slowa zeby zapisac 999 znakow w systemie dzieisietnym a po przekonwertowaniu to robi sie cos kolo 10-bitow... w tej pamieci najstarszy bit moze przyjac wartosc 256:( troche problemow mialbym z licznikiem przesuwajacym komorki pamieci przy zapisie i odczycie bo tutaj chyba by...
Przy dłuższych liczbach bardziej opłaca się użyć agorytmu z przesuwaniem i dodawaniem a działa on tak (4 bajty x 4 bajty, wynik 8 bajtów): Przygotuj 8 bajtowy rejestr komórek w pamięci na wynik, w postaci: |Mnozna|00000000h| Gdzie 4 starsze bajty to mnożna a cztery młodsze to zera. Teraz wykonujesz pętlę 32 razy (4 bajty) Przesuwasz 8 bajtowy wynik...
Praktycznie kazdy program który znajduje używa biblioteki ice.lib mimo, ze nie znam bascoma to widze, ze jest deklarowana zmienna np. "tekst", a później uzywana funkcja z tej biblioteki pisz_tid {tekst} więc poniżej wstawiam to co jest w bibliotece. Hmm jak tak teraz patrze to widze, ze tu praktycznie assembler jest i nasuwa mi się pytanie, czy w winavr...
W c i c++ można to robić na wiele sposobów. Może na początek to tak najbardziej podstawowo: Wynik(16bitów) = StarszyBajt*256 + MlodszyBajt. przesuwanie w lewo o jeden bit to WynikPrzesuniętyWLewo = Operand*2 , w prawo to WynikPrzesunietyWPrawo = Operand/2 . Oczywiscie na zmiennych bez znaku. Oczywiście takie operacje są też od razu zdefiniowne...
Cos chyba kolega przekombinowuje z tym projektem (tak się domyślam po metodzie zjechania z 10 bitów do 8). Proponuje zamiast mnożyc floaty zrobić V8bit = V10bit >> 2; Nie używam za dużo przesunięć bitowych, nawet nie wiedziałem, że jest taka możliwość. Dziękuje za wskazówkę. dodatkowo mnożąc przez ułamek używałeś do tego armaty w postaci biblioteki...
Ja już opykałem sprawe. Trzeba w rejestrze MCUCR włączyć dodatkową pamięć Ram. A potem : unsigned char *command = (unsigned char *) 0xFF04; unsigned char *data = (unsigned char *) 0xFF05; void write_command(char x) { *command = x; _delay_ms(10); } void write_char(char x) { *data =x; _delay_ms(10);...
no to ja z sugestiami od poczatku kodu lece: 0. #define led_off PORTB |= (1<<0); dobry zwyczaj to uzywanie wielkich literek przy define. do tego na koncu calych linijek ktore definiujesz NIGDY nie nalezy stawiac srednika. do tego zwyklo sie nazywac makro_funkcje z uzyciem nawiasow jednak czyli np LED_OFF() no i chyba to: #define _repeat = 9028...
Trochę to dziwne... Ogarniasz programowanie obiektowe w C++ (polimorfizm, dziedziczenia, przestrzenie nazw itd.), a nie potrafisz napisać porównywania dwóch tekstów (ciągów znaków)... Niestety wlasnie tak teraz ucza na studiach, wszystkiemu samemu sie trzeba uczyc, np w 1 semestrze skonczylismy programowanie bez wiedzy o klasach a od 2 semestru bez...
Kreska jest na tym samym klawiszu co backslash(slash??)\\\||| Kreska ta w jezyku C oznacza bitowe OR po polsku LUB 1<<PB2 to operacja przesuniecia. Argument z lewej strony jest przesuwany tyle razy ile wskazuje argument z prawej strony i w ten sposob tworzona jest maska czyli jakas wartosc. W tym przypadku 1 jest przesuwane 2 razy (PB2=2 jezeli...
Witam. Mam problem z inicjalizacją wyświetlacza LCD w trybie 8 bitowym. Jeżeli ktoś czuje się dobrze z asemblera i ma ochotę pomóc mi znaleźć problem to będe bardzo wdzięczny. Układ pracuje z kwarcem 16MHz i zasilany jest napięciem 5V .include "m128def.inc" ;KONFIGURACJA LINII ATMEGA128 .EQUK_ST_LCD_DB=DDRC;Kierunek portu STEROWANIA WYSWIETLACZEM...
Mam problem z uruchomieniem LCD 16x2 w trybie 4-bitowym. Program zapożyczyłem z książki "Mikrokontrolery AVR w praktyce" Jarosława Dolińskiego. LCD coś tam działa ale tekstu nie wyświetla mi poprawnie - zupełnie inne znaki. komenda "piszilcd(....)", czyli pisanie instrukcji, też nie działa do końca poprawnie dla wartości 0x0f włącza sie LCD, kursor...
Cześć, od jakiegoś czasu zmagam się z problemem dość podstawowym i - jak to zazwyczaj w takich przypadkach bywa - wyczerpały mi się pomysły na jego rozwiązanie. Podłączam LCD do Atmegi8 zgodnie z następującym schematem: http://radzio.dxp.pl/hd44780/hd44780_avr... , a więc tryb 4-bitowy z odczytem flagi zajętości (R/W wyświetlacza podłączone...
no hello z sd juz zrezygnowalem - zbyt skomplikowana procedura zeby sie do tych kart dobrac ale cena nawet ok (16mb uzywana ok 10 pln) kol marek Lodz: tak walsnie myslalem od samego poczatku zeby wykorzystac uklady dostepne w telefoni chociaz nie wiem czy nie byloby dla mnei zrobic swoj wlasny koder/dekoder oparty na 6 tonach i zamiast rozszyfrowywanie...
Witam. Po mrugający ledach i wyświetlaczach 7 segmentowych postanowiłem pobawić się LCD. Ze strony http://radzio.dxp.pl/hd44780/ ściągnąłem biblioteki w wersji 4 bit. Wyświetlacz to: http://www.artronic.pl/o_produkcie.php?i... Połączenia: DB4 - PB1 DB5 - PDO DB6 - PB2 DB7 - PD1 RS - PD3 E - PD2 R/W - PD4. Bibliotekę zmodyfikowałem następująco: #include...
spoko juz poradzilem sobie :) rzeczywiscie z ta funkcja wyslij to byl niewypal.. wszystko mi sie mylilo przez nia ;) wogole wysylalem najmlodsze bity w odwrotnej kolejnosci.. juz jest ok.. zastanawiam sie teraz nad przesuwaniem wyswietlacza w momencie kiedy wyraz jest dluzszy od niego... probuje cos takiego ale nie wiem czy to najlepszy sposob... void...
Witam wszystkich. Proszę o pomoc, na wyświetlaczu 2X16 nie wyświetla mi się nic. Użyłem biblioteki ze strony radzia. Tryb 4 bitowy z odczytem flagi, niestety avr studio kompiluje wszystko, nie ma błędów, a mimo to układ nie działa poprawnie. Korzystam z płytki z oślej łączki ZL11AVR. Pod bascomem układ wyświetla. Proszę o pomoc. Plik główny. #include...
napiszemy tu książkę o ładowaniu systemu. - bo faktycznie pytanie jest tematem na taką książkę. Zabawy ze zmianą rozmiaru i przesuwaniem partycji zawsze jest obciążone ryzykiem rozjechania adresacji. Najprostsze jest zwiększanie rozmiaru partycji NTFS. W przypadku FATu szybko przewrócimy się o rozmiar tablic alokacji. Jeśli chodzi o zmniejszanie, łatwo...
Ale właśnie nie bardzo wiem jak zrobić przesuwanie dzielnika w lewo aż do zrównania się z najstarszym niezerowym bitem dzielnej...
Temat mojej pracy brzmi "rejestr 10 bit. równoległo/szeregowy z przesuwaniem w lewo i prawo i z zerowaniem " nic więcej nie wiem Bardzo proszę o pomoc jeżeli posiadasz schemat takiego rejestru to bardzo proszę o pomoc. Jest to dla mnie bardzo ważne. Może być na bramkach zależy mi na tym bardzo.
Mam spore doswiadczenie w projektowaniu układów cyfrowych, ale o czymś takim nie słyszałem. I przyznam, że nie rozumiem problemu. Bo co to właściwie znaczy "jednobitowy" i ma mnożyć ten bit przez 6 ?! To jakaś bzdura. Natomiast przy mnożeniu liczby (iluś-tam bitowej) przez 6 można skorzystać z zależności, że: y = 6 * a = 4 * a + 2 * a A mnożenie przez...
czyli zawsze te najbardziej znaczące bity ? dla 4 bitów rozdzielczości będzie wyglądało tak jak poniżej ? Wersja 1: [syntax=c]int pomiarADC(uint8_t index) //zakres<0,10> oznacza ile bitow chcemy { ADMUX &= ~(1 << ADLAR); // zeruje ADLAR setMux(index);// ustawia odpowiedni kanal ADCSRA |= (1 << ADSC);// start ADC while (ADCSRA &...
Generalnie z samym odczytem 32bit udało się zrobić i przetwornik pokazuje połowę wartości tylko teraz nie jestem do końca pewien z tym przesuwaniem :?:
Kolega (at)yokoon użył komendy ' Config Lcd = 16 * 2' Czy ta komenda informuje sterownik HD44780 że ma pracować na 4 bity danych. Miałem podobną sytuacje jak pierwszy raz walczyłem z tym sterownikiem. Efekt był podobny. Sterowałem go z szyną 8 bitową. [syntax=cpp]void LCD_Initalize(void) { unsigned char i; LCD_DB4_DIR |= LCD_DB4; // Konfiguracja kierunku...
Algorytm którego używam przesuwa bity, ale równie dobrze można dzielić tak jak piszesz, tylko jak używam dzielenia to program "rośnie" wiec chyba pozostanę przy sprawdzaniu najstarszego bitu i OR. Rośnie o kilkadziesiąt bajtów. Tyle ile ma procedura biblioteczna dzielenia liczb 16 bitowych ze znakiem. Ale pewnie dzielenia prędzej czy później będziesz...
No ok rozumiem pomysł, powinno zadziałać samo przesuwanie. Wystarczy 7 bajtów (7x8=56) Jak zapewnić sobie w Bascomie te 7 rejestrów na wyłączność? Tzn jak sprawić żeby we wstawce asm. nie skasować czasem jakiejś bascomowej zmiennej? A jeśli sie nie da w rejestrach, to do których komórek pamięci zapisywać skladowe bajty rejestru żeby nie nadpisać jakiejś...
Przesuwanie w lewo jest realizowane na dodawaniu wartości samej do siebie (w asmie instrukcja lsl to alias do add, rol to alias do adc) więc bajt jest uzupełniany zerami. Przesunięcie w prawo jest dzieleniem przez dwa bez reszty, przesuwając w prawo liczbę bez znaku (lsr) wartość będzie uzupełniana zerami, ale przesuwając liczbę ze znakiem (asr) bajt...
Dlaczego nie mają dzielenia? To proste - dzielenie jest najtrudniejszym w implementacji sprzętowej z podstawowych działań arytmetycznych - złożoność sprzętowej dzialarki jest wielokrotnie większa, niż sprzętowej mnożarki, a mnożarki - wielokrotnie większa od sumatora. instrukcji dzialenia nie ma również Cortex M0, a procesory, które ją mają, wykonują...
no to zrzutuj tą liczbę na ... float liczba; nt send; send = (int)liczba; i już można stosować przesuwanie itd ;-) albo zrzutować na tablicę charów... albo na cokolwiek innego :P
Witam, zwracam się z wielką prośbą do Was forumowicze o wyjaśnienie jak najszybciej, na poniższym przykładzie jak to się liczy. Szukałem ale jakoś nie mogę znaleźć, a w książce znalazłem tylko te najprostrze inkrementacje i przesuwanie w lewo i prawo. Bardzo proszę o jak najszybsze odpowiedzi.... Pozdrawiam i wielkie dzięki przykład: int y=4, x=10,...
jeśli ma być tylko 8 schodków, to wg mnie najlepiej byłoby użyć rejestru przesuwanego np. 74164 + kilka zewnętrznych elementów (oporniki, diody, tranzystor, lub bramki) + generator prostokąta. Ogólnie chodzi o to, aby ten rejestr przesuwany zapalał kolejne bity, a kiedy zapalą się wszystkie to następowało ich kasowanie i cykl się powtarza (kasowanie...
Jest dobrze ale zadanie jest podejrzanie proste ! Czy w zadaniu jest powiedziane jak masz wprowadać dane do rejestru ? Szeregowo czy równolegle, bo zalecany układ 74LS157 (mux 2 na 1) sugeruje na równoległy zapis a potem przesuwanie ..
aby odmierzac dokladnie czas 1s lepiej by licznik zliczal 50 000 impulsów czyli musiz wpisac wartosc poczatkowa do licznika 15535+1 na przekrecenia licznika przy 2us na 1 impuls daje ci to 100 000us czyli 100ms no i dajesz raz 10 i masz pelna sekunde :) a program wyglada tak ORG 0000h LJMP START ORG 000Bh LJMP LICZNIK START: ;ustawienie przerwan...
Szukaj pod hasłem "ring buffer". Bufor cykliczny operuje na bajtach. A mnie interesuje bufor bitowy z jednoczesnym przesuwaniem tychże bitów. Spójrz na kody, które podesłałem. Rozumiem, że można stworzyć w ten sposób bufor cykliczny bitowy, ze wskaźnikiem bitu, ale to chyba będzie mistrzostwo nieefektywności.
Ja robie tak że linia enable jest cały czas na 0 podczas przesuwania danych do rejestru a po wpisie ostatniego bitu ustawiam impuls na H na pare taktów CPU a potem L i na pewno to działa - patrz PDF do scalaka. Oto mój niezawodny kod do tego scalaka: ;***************************************... ;****** STEROWANIE PLL ********** ;***************************************...
Mnożenie, dodawanie, przesuwanie... Czemu nie pogadamy o dzieleniu? Czemu nie pogadamy o tym, jaką wielką różnicą jest fakt, że operacje 32-bitowe dla architektury 32-bitowej są "atomowe", więc w wielu sytuacjach nie trzeba się bawić w żadne sekcje krytyczne i wyłączanie przerwań? Czemu zakładasz, że w projekcie operacje na macierzach czy liczenie CRC...
jak zadajesz takie pytanie, to zawsze podaj: -jaki procesor -ile ew. masz miejsca w pamieci (na tablice itd.) -raczej podawaj dokladnie problemy, bo to jest dosyc ogolne... -jaka ma byc dokladnosc tego jest cos takiego jak fixedpoint math - to taka matematyka na liczbach ulamkowych z uzyciem liczb calkowitych. Polega to na tym, ze zamiast...
Pytanie tylko, dlaczego jego post znalazłem w koszu? Wiadomość skasowałem sam. racając do tematu: Informacja o znaku ujemnym zapisana jest zawsze na najstarszym bicie. Wrzucając liczbę 16-bitową do 32-bitowej, informacja o znaku już nie jest na ostatnim bicie, tylko na 16-stym, a LongInt ma tą informację na 32 bicie. Mam rację? Nawet jeśli mam, to...
AVE... Odsyłasz do noty bo nie potrafisz napisać programu, który osiągnie max bez DMA. Czy tak ciężko przyznać, że nie masz racji? Jak napisać taki program napisałem w spoilerach. Jeśli nie możesz tego odczytać, to może powinieneś iść do okulisty? Co do GPIO to w przypadku PIC i XC8 nóżką manipulować można na kilka sposobów: 1. Można bawić się w maski...
Nie piszę w C, ale jak tak patrzę na Twoją procedurę inicjalizacji to coś ona za krótka jest. Mniej więcej powinno być tak - najpierw wysyłasz 30h trzy razy a potem jeden raz 20h co oznacza przejście na tryb 4 bitowy. Od tej pory instrukcje do LCD musisz wysyłać w dwóch półbajtach - najpierw starszy półbajt, potem młodszy. Tak więc to jeszcze nie koniec...
Możesz ten układ z powodzeniem wykorzystac. Podajesz na 4 przedostatnie wejścia równoległe ( P3 do P6 ) swoje 4 bity. Potem krótki ujemy impuls wpisu do rejestru ( PL ) i dane juz tam siedzą. A na zewnątrz wypuszczasz je kolejnymi 4-ma impulsami CP1 ( przy CP2 = "0" ). Przesuwanie zawartości w prawo. Pamietaj, że jako pierwsze wyjdzie P6, czyli trzeba...
Witam. Lerząc sobie juz w łóżku myślałem nad tym programem i doszedłem do wniosku że ten program robi masę niepotrzebnych obliczeń, a mianowicie: tak wyglądał stary fragment kodu: for(k=19;k>=0;k--) //for pobiera odpowiednie bity z bajtów opis. kolumny { if(kolumny [k] & (0x01<<i)) {DS = 1;}...
ajj.. masz racje ;) ale przy pomocy bitow nie stworze tablicy, wiec kazdy musialbym osobno przypisac, nie?
Dla zapisu całego słowa do portu (w 16bitowych uK - 16bitów) nie ma znaczenia czy użyjesz LATx czy PORTx, ale wykonując operacje na bitach (pinach) portu lub nawet na całym porcie, typu: przesuwanie bitowe, dodawanie itp. to wykonywane jest to w sposób taki: odczyt-zmiana-zapis. Np. wykonując bezpośrednio po sobie rozkazy: bclr PORTB,1 bclr PORTB,2...
Witam! Chciałem być ambitny i się zaczęło... Początek projektu na procesorze AtMega16 (8MHz na kwarcu) i wyświetlacz HD44780 16*2, komunikacja 8bitowa z uwzględnieniem flagi zajętości. Układ i biblioteka obsługi wyświetlacza zaczerpnięta ze strony #include <avr/io.h> #include <util/delay.h> //--------------------------------------...
Hmmm no jednak przed wczesnie sie cieszylem;/ co prawda wyswietla mi sie kod ale zdaje mi sie ze nie dokladnie taki jak powinien tzn. kod rodziny sie zgadza (stad moja przed wczesna radosc) a co do reszty nie jestem pewny jednak biorac pod uwage ze na trzech najbardziej znaczacych bajtach mam wartosci 00 gdzie miedzy innymi znajduje sie wartosc sumy...
w r1 jest ilość bitów do zamienienia - dasz 16, będzie 16 bitowa:)
To działa tak samo dla dowolnej ilości bajtów. Liczbę wejściową wysuwasz z najstarszego bitu najstarszego bajtu Czyli przesuwasz liczbę 32 bitową (mnożysz przez 2). Wysunięty bit (w znaczniku przeniesienia) wprowadzasz do najniższego bitu najniższej tetrady liczby BCD. Przed każdym kolejnym przesunięciem sprawdzasz każdą tetradę czy nie jest >=5...
http://obrazki.elektroda.pl/7307254400_1... Autor w końcu znalazł nieco czasu, aby poeksperymentować z płytką STM32F4-Discovery, którą kupił jeszcze w zeszłym roku. Jak w przypadku innych mikroprocesorów, naukę dobrze jest zacząć od obsługi pinów GPIO. Ponieważ na płytce STM32F4-Discovery wyjścia zorganizowane są w dwu dwurzędowych...
Teraz zadziałało :) Zasugerowałem się nazwą przerwania z noty katalogowej Attiny26, tam jest tylko "TIM0_OVF0", a SIGNAL wziąłem z jakiegoś przykładu z netu. Dopiero tabelka na stronie, którą podałeś pokazała, co należy wpisać w ISR. Oczywiście dodanie słówka "VOLATILE" także pomogło, tak więc program już działa i mogę przystąpić do kalibracji częstotliwości...
na początek wystarczy tak if ( (a = j+k*10+l*100)!=0){ if ((i+e*10+f*100)>=a)... } } dalej można kombinować z upraszczaniem kolejnych operacji: j+k*10+l*100 to jak sądzę liczba dziesiętna składana z cyfr. Więc warunek ( j+k*10+l*100)!=0) mozna zastąpić ( j || k || l) pomija to...
Witam Moj problem polega na tym, iz program ktory napisalem do odczytu kodu z ds 18B20 nie do konca dziala tak jak powinien bynajmniej tak mi sie wydaje biorac pod uwage wyswietlone na LCD kombinacje: 40 38 86 67 12 00 00 00 wyswietlam od najmniej znaczacego bajtu zatem kod rodziny sie zgadza co do reszty nie wiem;/ ale biorac pod uwage ze ostatni bajt...
Program ma 5tys linijek. Nie da się go od tak zatrzymać. Podałem przykład wyżej dla 1 linijki programu. Próbowałeś to wdrożyc? Równie dobrze może być tam 5000 linijek. W zaprezentowanym przykładzie na początku programu jest warunek zależny od stanu wejścia X0. Jeśli X0 to robi skok do END (końca programu). Masz pomysł jak napisać program dla sortownika...
Może się mylę, ale aby kalkulacje na wyższych zbiorach szły sprawnie to już komputery kwantowe powinny robić ;) Albo chociaż 128 bitowe. Szerokość danych pojedynczego rozkazu wcale jakoś szczególnie nie przyspiesza. Można to łatwo sprawdzić kompilując program używający 64-bitowych zmiennych jako aplikację 32-bitową. A komputer kwantowy się nie nada...
Pewnie dlatego że przetwornik jest 10 bitowy i potrzebuje 2 bajty na wynik pomiaru... dokumentacja się kłania. Dobra. Mój błąd. Ale czy jak przesune to o 8 w lewo to czy nie będzie tam 0? Prosze o kawałek kodu z dodawaniem dwóch 8 bitowych z wynikiem 16 bitowym. A to przesuwanie to np.: lsl r16 (powtórzyć 8 razy)? Pozdrawiam n01x Nie radze sobie z...
Przede wszystkim to w ostatniej linii jest błąd. Nie powinno być tam operatora '>>'. co to jest to 2*4 potem &0xf... No cóż, zazwyczaj 2*4 daje 8, tak to już jest z mnożeniem ;) A poważnie to jest tak: '>>' - oznacza przesunięcie w prawo bitów wartości z lewej strony o liczbę podaną z prawej, np. short a = 0x1285; // 0001001010000101b short b = a>>8;...
Na początek spróbuj uruchomić odczyt temperatury na liczbach 8 bitowych (jeden bajt) - będzie łatwiej ogarnąć w asemblerze. Wynik odebrany w 12 bitach przesuwasz w prawo 4 razy i zostaje 8 bitów. clr c ; Zamien 12 bitow na 8 mov a, temp+1 rrc a mov temp+1, a mov a, temp rrc a mov temp, a clr c mov a, temp+1 rrc a mov temp+1, a mov a, temp rrc a mov...
Jesli o mnie chodzi to ja to robie w nastepujacy sposob : Wyslam jedna liczbe na adres portu (a nie po kolei kazdy bit) A licbe biore z tad ze sumuje wartosci bitow zagmatwalem ale jesli na potr wyslesz 255 to stan lini na lpt bedzie 11111111 jesli wyslemy 12 to stany lini beda nastepujace 00001100 Mozesz zastosowac 8 zmiennych (lub tablice) ktore...
/.../ co chcesz osiagnac: 1011 <- 11 x 0101 <- 5 --------- 1011 + 0000 + 1011 + 0000 -------- 0110111 <- 55 zrob mniej wiecej tak zadeklaruj porty wejsciowe clock, start, in_a, in_b i wyjsciowy - jesli in_a/b maja po 8 bitow - d_out 16 bitowy; poniewaz 'mnoznik'ma 8 bitow, potrzebny ci bedzie licznik zliczajacy 8 cykli zegara, proponuje zrobic...
Problem z dołączaniem uruchomionych i przetestowanych bloków większego programu wyniknął podczas pisania poprzedniej gry. (po wielu latach po erze komputerów 8-bitowych zapragnąłem wrócić w tamte klimaty i napisać kilka gier logicznych na mikrokomputer COBRA z procesorem Z-80) Poprzednią grę napisałem bez problemu w jednym pliku. Tekst źródłowy zawierał...
przesunięcia bitow ustawianie bitow maskowane bitow
zamiennik rozrusznika siła elektromagnesu przesunięcia bitowe
Mercedes Sprinter 412 - Kod błędu 5249 - Diagnostyka Hulajnoga Motus Scooty 10 Plus sama jedzie po odepchnięciu