UL to jawne zdefiniowanie stałej jako należącej do typu unsigned long (kiedy kompilator nie jest w stanie tego domniemać z wartości, jak w tym przypadku). Podobnie L to typ long a LL to typ long long (rozszerzenie gcc). Ewentualne wyjaśnienie szczegółów: W AVR gcc typ int ma 16 bitów. I taki jest domyślny typ stałej 1. Jeżeli kompilator nie promował...
Tak, może być to zmienna bitowa.
Bo w ten sposob odwracasz caly bajt a nie jeden bit. W GCC nie ma czegos takiego jak zmienna bitowa. Mozna definiowac najmniejsza zmienna jako bajt. Jest jednak mozliwosc stworzenia zmiennej botowej za pomoca uni. Nie pamietam jak to dokladniewygladalo, ale poszukaj na forum na pewnoe znajdziesz.
dobrze, a nie lepiej w przerwaniu napisać warunek, że jeśli zmienna bitowa równa się jeden to robi to a jeśli nie to tamto końćząc podprogram1 zrobisz SET tej zmiennej a kończąc podprogram2 RESET :D
Tak jak napisał kolega wyżej... Jeżeli potrzeba więcej niż jeden bit to przez maskę bitowa zmienna = portA & 0x1F
Nie można. Pole unii rejestr zawiera wszystkie 16 bitów widziane jako jedna zmienna 16-bitowa. Pole bit udostępnia je jako 16 indywidualnych zmiennych 1-bitowych b0, b1 itd.
nie istnieje cos takiego jak zmienna 1-bitowa i nie da sie tego zrobic. nikt ci nie pomoze w takiej kwestii. jesli zas chodzi ci o jakies normalne zmienne, to na przyklad: .section nazwa_sekcji_twojej,bss,near zmienna: .space 1 bss jako sekcja niezainicjalizowna. mozesz uzyc innej (np data), ale zainicjalizowac i tak musisz sam. 4\/3!!
Witam... Można to zrobic na wiele sposobow. Sa bardziej lub mniej prymitywne. W zaleznosci od potrzeb stosuje sie rozne metody "detekcji", "programowych blokad" itp Ja zrobilbym to np tak: ----------------------------------------... 'Blokada zadeklarowana jako zmienna bitowa If P1.1 = 0 Then Goto Instrukcja blokada...
Dzielenie zmiennej int16 na dwie mniejsze możesz zrobić tak:[syntax=c]int 16_t zmienna, zmienna1; int8_t mala_zmienna, mala_zmienna1; mala_zmienna = zmienna >> 8; //przesuniecie bitowe skopiuje 8 bitów starszych mala_zmienna1 = zmienna; // skopiuje tylko 8 bitów najmłodszych zmienna1 = (mala_zmienna << 8) + mala_zmienna1; [/syntax]
Bo zmienna BOOL jest 8-bitowa. W pierwszej kolejności konwersja na WORD a następnie przesunięcie.
Tworzysz problem na siłę. Skoro zmienna 16-bitowa nie starcza, to należy użyć 32-bitowej. Nie ma magicznego sposobu, żeby to liczyć na 8-bitach i trwało to 3 cykle... ul oznacza Unsigned Long, czyli dla AVRa pewnie to samo co uint32_t. (typ_zmiennej)jakas_zmienna to rzutowanie - sugerujesz kompilatorowi, że zmienna nie ma wcale typu A, tylko typ B....
Wskaźnik masz na dword, więc zmienna jest 32 bitowa i shr operuje tylko w obrębie tej zmiennej... masz operację przesunięcia z przeniesieniem (nie pamiętam rozkazu), przesuwaj po jednym bicie w pętli i przepisuj przeniesienie.
tu masz strukturę zmiennej typu uint http://obrazki.elektroda.pl/6505528200_1... poza tym to samo jest w manualu Zmienna jest 16 bitowa, odwołaj się do konkretnego bitu
Weintek wyświetla to co mu zdefiniujesz nic nie napisałeś jak zmienna ilo bitowa, czy zaciągałeś tagi, mozesz napisać macro. opcji jest wiele
Witam, zmienna "b" jest 8 - bitowa, w pewnym momencie wykonuje się mnożenie 128 * 2 = 256, czyli dla 8 bitów zero. Warunek b > 128 nigdy nie jest spełniony. Tak na szybko, chyba ten warunek trzeba zamienić na b == 0, ale lepiej to przemyśl. Pozdrawiam
Jeśli ZMIENNA jest zero to iloczyn logiczny zawsze sprawi że będzie 0.
Jest to bitowa zmienna pomocnicza. Prosty przykład zastosowania: Załóżmy, że aby załączyć wyjście trzeba wyzwolić 3 wejscia - I I - I I - I I - ( ) adres wyjścia Q0.0 ale można zamiast adresu Q0.0 użyć markera np M0.0 i wtedy program będzie wyglądał tak: - I I - I I - I I - ( ) adres wyjścia M0.0 - I I - ( ) adres wejścia M0.0, a wyjścia Q0.0 W tym...
Flaga to zmienna bitowa. Ma ona za zadanie zasygnalizowanie jakiegoś zdarzenia. W Twoim przypadku chodzi o zasygnalizowanie wystąpienia przerwania. Wystarczy np. coś takiego: Up: Set flaga Return Oczywiście zmienna bitowa flaga musi być wcześniej zadeklarowana: Dim flaga as bit W pętli głównej sprawdzasz czy flaga jest ustawiona: If flaga = 1 then...
Docelowo niepotrzebne usuwam. docelowo od tego miejscu wszystko wyleci. Po tylu wyrzuceniach za wiele nie zostanie. ;) Zdajesz sobie sprawę że jak zerujesz w pętli sekundy, nie naliczy ci minut i godzin w przerwaniu? Pomine kwestie atomowości. Też czasem mam dylematy drabinkowe Możesz też dołączyć bibliotekę z typami, ja bym napisał: [syntax=c] #include...
robisz to mniejwiecej tak: signed char tab1[256]; signed char tab2[256]; int temp; for (i=0;i<255;i++) { temp=(int)tab1[i]+(i... if (temp>127) temp=127; if (temp<-128) temp=-128; tab1[i]=(signed char)temp; } kod ten dziala nastepujaco:...
... Niestety nie rozumiem tego zapisu return( ((PINB & (1<<PB5|1<<PB4))... ); Załóżmy , że wcisnąłeś P1 ... ... { unsigned char tym; tym = 1<<5 | 1<<4 // 00110000 tym = PINB & tym // 00100000 tym = tym >> 4 // 00000010 tym = tym ^ 0x03 // 00000001 return( tym)...
flaga to zmienna bitowa. pseudokod: przerwanie co 50ms: if P1 =1 if flaga_P1 =1 start silnik zacznij odliczanie 20sek else flaga_P1=1 else flaga_P1 = 0 kolejny sygnal...........
Hmm. Głośno myśląc kombinowałbym tak: Zadeklarowałbym zmienną Double (osiem bajtów) pod określonym adresem w pamięci za pomocą Dim...As...At... Zmiennej tej nadałbym jednym ruchem wartość odpowiadającą poszczególnym bajtom "teoretycznej tablicy" - Zmienna = &HABCDE Dostęp do poszczególnych elementów uzyskałbym przez zmienna bitowa = INP(adres). Nigdy...
Kolego Kamil22011 "Dim Licz As Byte" oznacza zdefiniowanie zmiennej bajtowej o nazwie Licz. Zmienna bitowa była by w tym przypadku za mała bo w jednym bicie można zapisać tylko dwie liczby:0 lub 1. A co oznacza polecenie Dim jest wyjaśnione na początku 8 ćwiczenia "Mikroprocesorowej Oślej Łączki"
A na co Ci zewnętrzne liczniki , jeśli sprawę załatwi licznik 16-bitowy + rejestr/zmienna 8-bitowa. Poza tym , ja mówię o bramkowaniu licznika/timera w mikrokontrolerze , przez impuls/sygnał , którego "długość" chcesz zmierzyć :D Piotrek
le sorry, moj blad myslalem ze to program, a to byl koment do programu. Co do tego return. Jak dobrze widze to jest to sub a nie przerwanie lub podprogram. A wracasz z suba normalnie przez end sub. Dodano po 5 widze, ze masz tam petle to dodaj flage (zmienna jedno bitowa) do tego ifa i zrob loop until flaga. Dam ci przyklad: dim flaga as bit flaga=0...
Może mało eleganckie rozwiązanie, ale: 1. Skopiować zmienną Kontrola_produktu do zmiennej tymczasowej. 2. Użyć rozkazu przesunięcia bitowego w prawo na zmiennej tymczasowej. Przesunięcie o N bitów, gdzie N to zmienna Miejsce_kontroli. Wynik zapisać do zmiennej tymczasowej 3. Użyć rozkazu iloczynu bitowego z 2 zmiennych: zmiennej tymczasowej i liczby...
Hmm, moim zdaniem gdzieś jest zmienna 8 bitowa (Byte) musisz zmienić ją na większy typ. np. Word, Long.
Może wystąpić problem, jeżeli zmienna 8-bitowa będzie tymczasowo przechowywana w rejestrze MCU, a nie w pamięci. W tym wypadku akurat pomaga specyfikator volatile na taką okoliczność. Czy mógłbyś ten problem bardziej opisać bo ja myślę że jedyny to taki że jest większa szansa że zmienna będzie nie aktualna.
Wszystko gra i buczy, ale jak znaleźć ten sam kod po sczytaniu eepromu? Raczej wątpię, że przewijając linijki znajdę nagle 1834. I mam jeszcze jedną sprawę. Do tego potrzebna jest wiedza z programowania układów wbudowanych (jak reprezentowany jest bajt w pamięci a jak słowo, jaki jest zakres wartości, które przechowuje 16-bitowa zmienna itp.) i gotowce...
Stringa jak stringa, zmienna 8 bitowa ;) A z tym zapisem, oczywiscie nie jest to blad, ale chyba lepiej kazdy bit z osobna zalaczac ;)
Byte to zmienna 8-bitowa, Word to zmienna 16-bitowa, Byte (1 byte). Bytes are stores as unsigned 8-bit binary numbers ranging in value from 0 to 255. Word (two bytes). Words are stored as unsigned sixteen-bit binary numbers ranging in value from 0 to 65535. nie programuje w bascomie ale zapisywanie 'większej' liczby do zmiennej o 'mniejszej pojemności'...
count to zmienna 8 bitowa więc nie może przyjąć wartości 336. Ustawiasz przerwanie TOIE1 ale go nie obsługujesz. Ponadto zmienna count jest zwykłą zmienną globalną inkrementowaną jawnie, więc nie ma potrzeby deklarować ją jako volatile.
Witam. Jak sprawdzić w którym momencie wykonywania programu jest ustawiana konkretna zmienna bitowa w DB (DB niezoptymalizowany, TiA Portal 15, sterownik S7-1200)? Mam pewien problem i nie mogę dojść o co chodzi. Wraz z zainicjowaniem jednego z wejść cyfrowych na PLC (czujnik) ustawia się zmienna bitowa w DB. Na podglądzie WatchTable widać, że niby...
Witam! Chce za pomocą drivera DASGESRTP dla Intouch, czytać zmienna bitowe (z obszaru np %M28385 -%M28400) jako słowo, tak by móc w intouch-u zaoszczędzić ilość zmiennych, i do poszczególnych bitów w intouchu dostawać się mechanizmem zmienna.00, zmienna.01 itp(gdzie zmienna wskazuje na słowo zawierające bity z podanego wyżej obszaru). Z tego co kojarze...
Zmienna 16-bitowa zajmuje 2 bajty o adresach zmienna i zmienna+1. Do r16 ładujesz zmienna, do r17 - zmienna+1 (albo odwrotnie, według fantazji). Tylko po co męczyć się z asemblerem, skoro C jest zupełnie przyzwoity na tym procesorze? W końcu to nie jakiś PIC, na którym kompilator ledwie zipie.
Program już działa, problem tkwił właśnie w złym ustawieniu rejestru ADMUX. [syntax=c]ADMUX=(0xf0 & ADMUX) | PC1; ADCSRA |= (1<<ADSC); while(bit_is_set(ADCSRA,ADSC)) // Oczekiwanie na zakończenie przetwarzania {}; pomiar1=ADCH;//pomiar1 zmienna 8-bitowa, 255 stanów ADMUX=(0xf0 & ADMUX) | PC2; ADCSRA |= (1<<ADSC); while(bit_is_set(ADCSRA,ADSC))...
A może coś takiego: Dodano po 3 Flaga może być nawet zmienna bitowa. Poprawiłem kod
Spróbuj z tym programem. $regfile = "attiny2313.dat" $crystal = 1000000 Dim Zmienna as Bit 'zmienna bitowa 'konfiguracja portów, stan spoczynkowy = 1 przy przyciskach i przy d. LED. Do If pinb.0=0 then Zmienna = 1 'jeśli przycisk portu PINB.0 wciśnięty to -Zmienna = 1 If pinb.1=0 then Zmienna = 0 jeśli przycisk portu PINB.1 wciśnięty to -Zmienna = 0...
Jak ma wyglądać deskryptor HID dla jednej osi(np X) ale jako 32 bitowa zmienna ze znakiem ?
zmienna trigger_time jest 16 bitowa? A zmienna counter? Jeśli masz to przerwanie co 64us ... ISR(TIMER2_OVF_vect) { counter++; } to zmienna counter przepełnia się po ok 4 sekundach i liczy od nowa! problemem mogą być drgania styków, co masz na INT1 i INT0
Program w pascal-u który zamienia zmienną byte na jej reprezentację bitową : program Project2; uses CRT; FUNCTION Dec2Bin(Dec:byte):String... var B1:byte; Bin,BinDigit:STRING; begin BinDigit:='01'; Bin:=''; repeat B1:=DEC MOD 2; DEC:=DEC DIV 2; Bin:=CONCAT(BinDigit[B1+1 ... until DEC<1;...
1. Używasz nowych wektorów przerwań, ale starej funkcji SIGNAL. Zamiast niej używaj ISR(): http://www.nongnu.org/avr-libc/user-manu... 2. Zmienna accumulator jest 16-to bitowa a nie dbasz o sprawdzanie, czy już przekroczyła rozmiar tablicy. 3. Poza tym, jaki sens mają dwa przerwania, skoro przerwanie od Timer2 opiera się o...
Do rejestru DR trzeba się odwoływać przez 8-bitowy wskaźnik, bo on jest zadeklarowany jako 16-bitowy. Twoja zmienna tmp zupełnie nic nie zmienia. *(volatile uint8_t *)&SPI1->DR = ... 4\/3!!
Kwarc dajesz np. 12 MHz Robisz sobie pętelkę pomiarową wywoływaną z Timera np. co 200 µs sprawdzającą dane wejście pomiarowe. Jeżeli wejście jest =0 to nie zliczasz jeżeli = 1 to zwiększasz zmienną WYNIK o 1 (zmienna 16 bitowa) zakres będzie do jakichś 6.4 sekundy. W pętli sprawdzasz także czy zmienna nie przekroczyła 25000 (5 sekund). Jeżeli...
Witam . Jeśli dobrze widzę to głównej pętli programu masz zmienną short int dane . Jest to zmienna 16 bitowa bo tak zapewne przyjmuje kompilator . A ty tymczasem próbujesz wcisnąć dane zawarte w niej do rejestru U2TXREG który to jest 8 w porywach 9 bitowy . Może napisz coś więcej jakie błędne dane jak zauważył kolega wyżej .
A zmienna napięcie jak wygląda, zmienia się? Dodano po 1 BTW, coś takiego: DACB.CH0DATA = (uint16_t)napiecie; Zapisuje wartość napięcie do CH0DATL, bo to zmienna 8-bitowa, rzutowana na 16-bitów. Jeśli zmieniłeś wyrównanie to zapisujesz nie do tego rejestru.
stany = twiread(NOACK); twistop(); LCD_GoTo(22,1); LCD_WriteText(" "); LCD_GoTo(22,1); int i = 128; for (; i; i>>=1) LCD_WriteText((stany&i?"1&q... Przeanalizujmy zatem. Linie 1 i 2 pomijam bo to dzieło kolegi. Linie 3 i 4 są zbędne. Linia 5 ustawia...
Wprowadziłem Twoje poprawki michalko12. Jednak nie pomogły one... ;/. [syntax=c]#define ADC_START_MASK ((1<<24) | (1<<25) | (1<<26)) // funkcja przetwarzająca sygnał z analogowego na cyfrowy i zwracająca jego wartość int ADC_GetData (uint8_t ChannelNumber) { uint16_t ConvertedData = 0;// 16 bitowa zmienna; 12 bitowy przetwornik analogowo-cyfrowy...
Wklejam tutaj podprogram w którym czytam dane z termometru a potem je przetwarzam: Sub Termo Disable Interrupts 1wreset 1wwrite &HCC 1wwrite &HBE Odczyt(1) = 1wread(2) T = Makeint(odczyt(1) , Odczyt(2)) If T < 0 Then Set Minus Else Reset Minus End If T = Abs(t) T = T * 10 : T = T / 16 Przecinek...
Tak, ma. Proponowałem Ci we wcześniejszym poście przeczytanie strony AvrSide. Gdybyś mnie posłuchał to wszystkiego byś się dowiedział. Jest tam taki fragmencik: Avr-gcc nie posiada składni bezpośredniego dostępu do bitów zmienna.numer_bitu. Operacje na bitach wykonujemy używając iloczynu i sumy bitowej, np. dla bajtu: zmienna |= _BV(numer_bitu); //...
Zamiast Bitwait Pinc.3 , Set wpisz: Blad=0 Do If Timer0 > 200 Then Blad=1 Exit Do End If Loop Until Pinc.3=1 Wyskok z petli nastepuje kiedy warunek Pinc.3=1 albo kiedy Timer0 > 200. Wartosc 200 to oczywiscie przyklad :-) Drugie pytanie. Mozna dokladniej zmierzyc, choc to jest Timer0 8-bitowy. Robisz nastepujacy prosty trick: 1. deklarujesz zmienna...
Sorki nie doczytałem, że zmienna jest 8 bitowa... :) Ale gafa :) W razie czego to jest sposobik na liczby z dowolnego zakresu gdzie każda cyfra jest w oddzielnej komórce tablicy:)
Zmienna a jest typu char czyli jest to zmienna 8 bitowa. A więc jej wartość zmienia się od -128 do +127. Jeżeli będziemy ją inkrementować, to co 256 razy będziemy mieć wartość 0. Excray zwracam honor. Oczywiście będzie to działać poprawnie. Czasami trzeba dokładniej spojrzeć ile jest tych krzaczków & :D. Ostatnie rozwiązanie jest najbardziej eleganckie,...
Przypuszczalnie powodem takiego wyjątku jest niewyrównany dostęp do zmiennej. Nie wiem dlaczego jest niewyrównany, w listingu assemblera możesz sprawdzić spod jakiego adresu następuje odczyt. Aby to sprawdzić jeszcze szybciej, możesz spróbować odwrócić zawartość tej struktury - najpierw 64-bitowa zmienna, potem 32-bitowa, na końcu dwie 8-bitowe. Choć...
No to jeszcze zapowiadana wersja turbo (przy założeniu że zmienna Dystans jest zmienną 16-to bitową): [syntax=basic4gl]On Compare1a Timer1_isr Nosave ... ... Timer1_isr: push R16 In R16, SREG push R16 push R17 lds R16, {Dystans+0} lds R17, {Dystans+1} subi R16, 255 sbci R17, 255 sts {Dystans+0}, R16 sts {Dystans+1}, R17 pop R17 pop R16 !Out SREG, R16...
ADMUX=0b10000000; //kanał 7 ADC Zamiast 7 ustawiasz zerowy kanał ADC, a ten pin wykorzystujesz jako wyjście na wyświetlacz przecież... nic dziwnego, że bzdury wychodzą. O co chodzi z tym mnożeniem przez 100 (i dlaczego w przerwaniu, do tego jeszcze na zmiennej globalnej)? Jeśli już to powinno być przez 2 (wtedy wystarczą liczby 8-bitowe) albo (na 16-bitowych)...
Witam, Kolega za dużo kombinuje...bierzemy bajt do konwersji i rozdzielamy na dwie 4 bitowe wartości (używamy do tego celu maski zmienna = zmienna&maska), następnie konwertujesz dwa półbajty do ASCII i po problemie :) Sama konwersja też jest dość prosta, sprawdzasz czy pół bajt mniejszy od 10 jeśli tak to robisz logiczny or z 0x30h jeśli większy lub...
Może bitfield: volatile typedef struct{ u8 PB0:1; u8 PB1:1; u8 :6; }Bits; u8 zmienna = 0; Bits *STICK =(volatile Bits*) &zmienna; STICK->PB0 = 1;
Jeżeli wypełnienie nie zmienia się w trakcie działania programu tzn. już przy pisaniu programu na starcie chcesz tylko ustawić wypełnienie to sprawa jest prosta... 512 to 10 0000 0000 => OCR3AL = 0; i OCR3AH = 2; Jeżeli natomiast w trakcie działania zmienia się wartość wypełnienia to... np... pwm to zmienna 16 bitowa bez znaku to OCR3AL = pwm & 0xFF;...
1. Sczytywanie/wystawianie stanów Digital I/O do poszczególnym zmiennych typu CHAR lub String jest marnotrastwem czasu i pamięci PLC. W takiej sytuacji zamiast mieć 1 zmienna 16 bitowa opisującą stany wszystkich wyjść masz 16 zmiennych 8 lub 16 bitowych 2. Sterowniki PLC (w tym jęz. STL) mają dużo mocniej rozwinięty (i szybszy) interfejs do operacji...
Tak poradziłem zmieniłem ustawienia kodowania dla 4 kamer, mialem ustawione kodowanie obrazu H.265 i bitrare 3072 Kbps klatek pełna liczba , prędkość bitowa stala, jakosc wideo najwyższy ,rozdzielczość 1920*1080P Teraz ustawiłem H.265+ i bitrate 8192 Kbps klatek pełna liczba , prędkość bitowa zmienna , jakość wideo najwyższy ,rozdzielczość 1920*1080P...
Zadanie z arytmetyki liczb całkowitych: Podaj orientacyjnie zakres, jaki przyjmuje 8-bitowa zmienna a bez znaku... ;) Pytanie dodatkowe - skoro są to stałe wartości, to po co używasz zmiennych, zamiast użyć preprocesora ?
Zamienia na przeciwny stan końcówki portu lub zawartość zmiennej bitowej. Składnia: TOGGLE pin gdzie: pinzmienna typu Bit, lub nazwa końcówki portu. Opis: Za pomocą instrukcji TOGGLE można szybko zmienić stan końcówki lub zawartość zmiennej bitowej na przeciwny. Dla przykładu, gdy końcówka portu steruje przekaźnikiem, który aktualnie jest w stanie OFF...
Witam Ja Odczyt temperatury zrobił bym tak: .... 1wwrite &HCC 1wwrite &HBE Lsb = 1wread(): Msb = 1wread(): Minus = Msb.7 Tempa = Msb * 256 Tempa = Tempa + Lsb If Minus = 1 Then Tempa = Not Tempa Tempa = Tempa + 1 End If Tempa = Tempa * 10 'temperatura *10 Tempa = Tempa / 16 Jest to fragment kodu pozwalający na odczyt ujemnych...
Do poszczegolnych bajtow jakiejs zmiennej mozesz dostac sie np tak unsigned short a; //zmienna 16 bitowa unsigned char b,c; b = *((unsigned char*)&a); //pierwszy bajt zmiennej a c = *((unsigned char *)&a+1);//drugi bajt zmiennej a //To czy w b zapisany zostanie starszy lub mlodszy bajt zalezy od kompilatora Pozdrawiam
No tak, wszystko jasne... Powinno być: potega = 1L << przes; Sądzac z kodu wygenerowanego przez kompilator zmienna przes jest typu unsigned int. Domyślnym rozmiarem jest 16 bitów.
Powiedzmy, że jest zmienna 64-bitowa (long long int). Do tego mam 4 liczby 16-bitowe. Jak wpisać te 4 liczby po kolei do zmiennej 64-bitowej? | 64bit | = | 16bit | 16bit | 16bit | 16bit | Rozumiem, że trzeba to zrobić przesunięciami bitowymi ale właśnie coś nie chce mi to iść gdy np zrobię to w ten sposób: long long int w = 0; w = (1000 <<...
Funkcja Serial.print() z Arduino HAL przyjmuje jako argument zmienną typu int , która jest 32-bitowa w ESP8266, więc w funkcji tej następuje niejawna konwersja z typu int16_t do typu int . Dalej jest więc wyświetlana już jako wartość 32-bitowa. int16_t w formacie binarnym, to możesz użyć sekwencji funkcji: [syntax=c] Serial.print(highByte(dana), BIN);...
Przeznaczenie: Ustawia określony bit w stan 0. Składnia: RESET bit RESET WATCHDOG RESET zmienna.x gdzie: bit nazwa bitu; określonego w przestrzeni rejestrów specjalnych czy jako zmienna bitowa zmienna dowolna zmienna, x numer określający bit z zmiennej; 0-7 dla bajtów, 0-15 dla Integer/Word, 0-31 dla Long. Opis: Instrukcję RESET WATCHDOG stosuje się...
Witam Mam dwie zmienne typu char będące odczytem temperatury z DS18B20 i chciałbym cały ten odczyt zapisać do jednej zmiennej 16-bitowej. Wiem, że jak sytuacja byłaby odwrotna to wystarczyłoby: temp1 , a drugi w temp2 . Poprosiłbym o informację jak zapisać te dwie zmienne 8-bitowe w jednej zmiennej 16-bitowej wynik
Nie czytałem całości, ale 8-bitowa zmienna zajmie 3 znaki w reprezentacji hexadecymalnej (wliczając NULL terminator). Prawdopodobnie zatem prawidłowe będzie unsigned char ir_firstByte [3]
Masz racje rpal, tylko twoje rozwiazanie nie jest zbyt szybkie. Stad specjalizowane funkcje do konwersji - jesli masz tylko 16-bitowa zmienna to po co robic operacje na zmiennych 32-bitowych. Jesli szybkosc nie jest krytyczna to mozna sie tak bawic. Chociaz funkcji z AVR libc i tak sie nie przebije bo sa napisane w assemblerze. Warto zreszta zagladnac...
Mam problem z komunikacja miedzy CPU 315 dp a unidrive SP. Czy ktos wie jak powinna wygladac konfiguracja ? A drugie pytanie to jak u tworzyc w Step 7 dekoder, aby ze zmiennej tworzył pojedyncze bity.Potrzebuje zadana zmienna sterowac bitowo 7 wejsciami? Prosze tez w miaremozliwosci, jesli ktos ma jakies materiały do profibusa, czy mogłby mi dostarczyć
Program który napisałeś jest prosty (ale to już wiesz) i opiera się na nieeleganckich delay'each. Dzieje się tak, kiedy w programie wyzwolenie oparte jest na poziomie napięcia. Kiedy trzymasz wciśnięty przycisk warunek jest cały czas spełniony i wyjście po odczekaniu 3 sekund zamienia swój stan (zgodnie z projektem). To od czego trzeba zacząć to zmienień...
Proponuję zapomnieć o sbi i cbi . To jest dobre w assemblerze ale w C można się na tym przejechać (w zależności od wersji kompilatora). Na stronie # Avr-gcc nie posiada składni bezpośredniego dostępu do bitów zmienna.numer_bitu. Operacje na bitach wykonujemy używając iloczynu i sumy bitowej, np. dla bajtu: zmienna |= _BV(numer_bitu); // ustawienie bitu...
Za mała pojemność zmiennej war. Dla zakresu 65535 wystarczyłoby zmienić int war na uint war. Dla 90000 zmienna musi być 32-bitowa.
Nie znam bascoma, ale zapewne twoja zmienna jest liczbą 8-bitową, zatem musisz przy deklaracji zadeklarować zmienną mogącą pomieścić większą liczbę.
Zaczyna mieć jakiś sens. Wyrzuć ten waitms200 z przerwania. LCD wstaw do głównej pętli. Wyrzuć LCDbus- przecież definiujesz piny do LCD. Time1 as word- przecież timer1 jest 16-bitowy- zmienna nie będzie dłuższa.
Zależy od potrzeby, wygody, szybkości zmian, zdolności percepcyjnych użytkownika. W przypadku sygnalizacji optycznej 1-bitowa zmienna logiczna - 1 diodą LED (świeci/nie świeci). 4 bity możesz przedstawić w postaci cyfry szesnastkowej (0..9, A..F) i transkodować do wyświetlenia na wyświetlaczu 7-segmentowym.
->Sam Sung To ty założyłeś że wskaźnikdo wielobajtowj zmiennej wskazuje na jej najmłodszy bajt a wraz z rosnącymi adresami będą kolejne bajty(coraz starsze) tej zmiennej, to właśnie jest kolejność Little Endian. Aby zgrabnie odczytać to zapisem który zaproponowałeć to właśnie tak musi się odbyć ta konwersja/odczyt, Nie dla każdego "C", a raczej nie...
Jest to błąd w kodzie. Jakaś zmienna jest 16-bitowa i 65W to pewnie jest 65,5W i to jest wartość 65500 w tej zmiennej. Potem tylko jeszcze o jakieś drobne setne części przekracza te 65,5W a dalej się przekręca do 0 i liczy dalej. Bez kodu źródłowego ciężko to poprawić.
Witam Jeśli temp jest zmienną zawierającą temperaturę odczytaną z ds18b20 to jest to zmienna 16 bitowa ze znakiem. W związku z tym proponuję: - odczytać najstarszy bit (znak) i gdzieś go zapamiętać - jeśli liczba jest ujemna (MSB = 1), wykonać bitową negację i dodać 1 W tym momencie wykonanie operacji przesunięcia bitowego o 4 w prawo zwróci wartość...
Witam, Co do instrukcji dodającej 0 w 7 linijce kodu, należałoby sprawdzić rodzaj zmiennej "Temp_1". Jeżeli jest to zmienna 16-bitowa, to operacja +I ma prawdopodobnie za zadanie zmianę liczby 32-bitowej (powstałej po operacji mnożenia) na liczbę 16-bitową (dlatego dodawane jest 0). Fragment opisu funkcji +I z help'a w Step7: The instruction produces...
jesli dostosujesz w jakis sposob swoje dane, to miej swiadomosc, ze stracisz 75% pamieci na 'puste miejsca' miedzy tymi char'ami. napisz lepiej funkcje, ktora bedzie w stanie poskladac z 4 bajtow (dowolnie umieszczonych) jedna 32-bitowa zmienna. analogoicznie dla zmiennych 16-bitowych na poczatku takich funkcji mozesz sprawdzic, czy mozliwy jest odczyt...
Mam bardzo poważny problem... musze uzyskać wynik dzielenia jedynki lub 10, 100, itd przez zmienną zawartą w jakimś rejestrze. Procesor to Atmega8. O ile dzielnie przez stała nie jest zadnym problemem, to ze zmienna nieumiem sobie poradzic, kto ma jakis pomysł jak to zrobić? Zmienna jest 8 bitowa, ale jesli ktos ma pomysl na 16bitowa, to rowniez sie...
Zdecydowanie nie. Flaga to pole bitowe, a nie licznik, zmienna itd.
Witam, Nie znam składni VBA, ale z tego co widzę zadeklarowałeś zmienną LREAL w PLC, a to zmienna 64 bitowa. W VBA odczytujesz chyba zmienną 32bit. Spróbuj LREAL zamienić na REAL (32bit).
Nie sprawdzilem dokladnie calego kodu, ale w oczy rzucilo mi sie to dziwne cos :) : char licznik=3200; ?????????? Nie mozesz do zmiennej typu char zaladowac wartosc 3200 bo jest to liczba 16-to bitowa! A zmienna char jest tylko 8 bitowa ( maks 256) . Poza tym jesli jest ona ze znakiem ( bez unsigned) to od -127 do 128. Powinienes zapisac unsigned int=3200;...
Można, w niektórych procesorach są pewne obszary (dostęp jak do RAMU/FLASHA) które mapują słowa w pamięci na odpowiadający im bit w tym regionie. Region ten może wskazywać na bit w pamięci albo w peryferiach. Tak więc można wybrać sobie jakiś bit z peryferium (dowolnego z rdzenia) i nim machać jak się podoba, albo czytać. LED = 1; To samo można robić...
Nie podoba mi się podany sposób kasowania wybranego bitu w zapisie zmienna &= !(1<<3); O ile mi wiadomo zgodnie ze specyfikacją C (i C++) ! (wykrzyknik) jest negatorem logicznym (a nie bitowym jakiego potrzebujemy) i odnosi się do zmiennych logicznych (przyjmujących wartości true i flase) Jeśli twój kompilator działa zgodnie ze standardem...
Nie znam BASCOM'a Ilu bitowa jest zmienna typu integer? Czy przypadkiem nie 16 (bo tyle ma zwyczajowo przy implementacji na uC 8 bitowe, a takim jest włąsnie '51)? To jeżeli ma 16 bitów to jak chcesz do niej wpisać 131071? Jak chcesz mieć program zajmujący mało miejsca w pamięci to go napisz w asemblerze, w ostateczności w C.
Bazując na twoim drugim przykładzie. Jeżeli minuty to zmienna 8 bitowa to mnożenie zajmuje 2 cykle procesora oraz dodawanie 1 cykl czyli w sumie coś koło 3-4 cykli. Nawet jeżeli będzie to liczba 16bitowa to mówimy tu o max 10-15 cyklach. Pętla będzie wykonywać się dużo dłużej. W kolejności szacunkowo: odejmowanie 1, dodawanie (tu będzie kilka cykli...
Atom, ok, jesli to PlasmaColors to adres tablicy to wporzadku, z tym, ze po co stosowac tyle rzutowan, skoro mozna potraktowac calosc jako tablice? uint8_t Plasma_colors[256]; *Wsk=Plasma_colors[127+sinf(Plasma_shift... Takie wielokrotne rzutowania to nic dobrego, co jesli wykorzystasz to w systemie w ktorym adres nie jest 32-bitowy?
Tak, to wiem, ale funkcja będzie pobierać dane wg swojej deklaracji czy wg deklaracji tablicy? Według swojej deklaracji. Jeżeli przekażesz do funkcji tablice: [syntax=c] uint8_t tab[] = {0x14, 0x2A, 0x56, 0xDF}; [/syntax] to w funkcji odczytasz przez wskaźnik na zmienna 16 bitowa (zakładając ze procek jest little endian): [syntax=c] font[0] - 0x2A14;...
Witam Skoro szczytujesz po jednym bicie to po szczytaniu 8 bitów zapisz je w pamięcie, i odczytując je po koleji możesz odtpowrzyć z powrotem. Pozdrawiam Witam. Tylko mnie się wydaje że kol. przemo.t niewie jak z bitów zrobić bajt,choć może się myle :) Moja propozycja brzmi: $map Dim Twojbit As Bit , Wynik(16) As Byte , I As Byte , J As Byte '... For...
Prawda READ. A co do tej konwersji to już kiedyś napisałem jak to zrobić, zaraz znajdę post. Znalazłem. Jeśli temp jest zmienną zawierającą temperaturę odczytaną z ds18b20 to jest to zmienna 16 bitowa ze znakiem. W związku z tym proponuję: - odczytać najstarszy bit (znak) i gdzieś go zapamiętać - jeśli liczba jest ujemna (MSB = 1), wykonać bitową negację...
Char to tylko typ zmiennej, a hex forma zapisu. Jeżeli funkcja przyjmuje wartości char(8bit) to nie jest ważne czy ty to podasz binarnie, dziesiętnie czy w hexach- ważne jest żeby liczba ta mieściła się w zakresie char. Jeżeli SPI działa w trybie 8bitowy, i funkcja wysyłająca znaki przyjmuje wartości char, a ty chcesz wysłać większą zmienną, to musisz...
10 bitowa czesc to zmienna dla kazdej transmisji. Starczy ze jeden bit z 72 sie nie zgadza i alarm. Jak wszystko by bylo zmienne to bateria by musial byc 17Ah. pozdrr
Witam po dłuższej przerwie. Problem polega na tym że uruchomiłem ADC z DMA na płytce STM32F469DISCO (wg różnych filmów z youtube - problem taki że u wszystkich działa a u mnie nie :D ), wynik wysyłam po USB CDC i zamiast ADC 12 bitowego otrzymuje 8 bitowy. Jest tak że kręcąc potencjometrem wartość po przekroczeniu 255 wraca do 0 i rośnie ( i tak kilka...
ramka bitowa pamięć bitowa chkdsk bitowa
koszt wymiany agregatu nokia trybie offline bateria kondensatorów pomiary
ładowanie lifepo4 plazma protect
Jak podłączyć kuchnię elektryczną do prądu? Czy numer VIN jest wpisywany do BSM w Peugeocie 308?