witam, właściwie rozpoczynam przygodę z AVR'ami i językiem avr-gcc i muszę przyznać, że kompletnie zgłupiałem poniżej zamieszczam kod (jako wycinek większej całości), który moim zdaniem nie działa prawidłowo używam AVRStudio 4 ustawienia projektu: 1. ATmega8 2. fcpu 1000000 3. optymalizacja -O0 (wyłączona) oto kod : [syntax=c] #include <stdint.h>...
Dzieki wielkie, ustawilem przesunięcie bitowe tak jak powiedziales i zadziałało :)
"a >> b" jest przesunięciem "a" o "b" bitów w prawo. "&" to nie porównanie tylko maskowanie (iloczyn logiczny) bitów. Wyrażenie "var>>(3*4)" przesunie zmienną o 12 bitów w prawo, czyli zwróci czwarty nibble (trzeci licząc od zera - stąd trójka, nibble ma 4 bity, stąd czwórka). "(var>>(2*4))&0xf" przesunie zmienną o 8 bitów w prawo i zamaskuje 4 najniższe...
Twój LM75 jest na I2C, zakładam więc że umiesz odczytać z niego te dwa bajty z wartością temperatury. Sprawdzasz najstarszy bit, starszego bajtu w odczytanym z czujnika wyniku. jeśli jest równy 0, to znaczy że temperatura jest dodatnia i wynik liczysz poprzez: 1. przesunięcie otrzymanego z czujnika wyniku o 5 bitów w prawo 2. pomnożenie rezultatu tej...
1. Eliminacja niepotrzebnych skoków tu i tam. Da się to zrobić inaczej - patrz CPSE, SBIC, SBIS. 2. Brak podstawy czasu - impulsy nie będą zawsze równe w czasie. Użycie licznika bardzo wskazane. 3. Brak synchronizacji zmiany stanów na portach - możliwe przesunięcia fazowe. 4. Skąpe komentarze. Za dwa dni nie będziesz wiedział co, jak i dlaczego tak.
Vitling , przeczytaj ten artykuł [url=http://mikrokontrolery.blogspot.com... i zerowanie bitów, powinien Ci pomóc w zrozumieniu przesunięć bitowych. Zerknij też na [url=http://mikrokontrolery.blogspot.com... mikrokontrolerow...
A może inaczej panowei... Jaki to uC...?.?.? Pytanie dość istotne bo może być problem z głowy... W AVR przy konfiguracji ADC jest rejestr który za to odpowiada... I tak np w ATmega8 rejestr pod tytułem ADLAR ustawiony na 1 powoduje przesunięcie wszystkih bitów w lewo... Większość czyli 8 bitów zostaje w ADCH i tylko ten rejestr czytamy a dwa najmniej...
poczytaj o przesunięciu bitowym... zamiast wpisywać do tablicy możesz zadeklarować jakiegoś integera przesuwać o 1 bit i dodawać kolejne odczytane bity, w ten sposób będziesz miał liczbę całkowitą reprezentującą odebrany kod a zamiast wielu if możesz użyć case trochę to uprości.
Nie wiem też po co to dzielenie przez 16 w kodzie, przecież wystarczy przesunąć zmienną o 4 bity w prawo, a kod zmaleje w oczach :) Jeśli chodzi o C to przesunięcie bitowe liczby ujemnej jest niezdefiniowane w standardzie. Albert
XOR to nie jest odejmowanie. negacja z dodaniem jedynki a pozniej OR to jest odejmowanie. Żebyś lepiej zrozumiał, xor nie daje ci przesunięcia, w związku z tym jeśli przesuniecie w działaniu powinno nastąpić to xor nie zadziała jak odejmowanie. przykład: 12 - 8 = 4 i 12 xor 8 = 8, to tak jak byś w systemie dziesiętnym próbował odjąć od 2 liczbę 8. Jeśli...
Kłopot w tym, że ja wcale nie rozumiem tego fragmentu kodu: [syntax=c] if ((przechowuje = ((przechowuje << 1) & 0x0F) | ostatnia) == 1) { keypin_pressed = 1; } [/syntax] operator "&" - bitowa koniunkcja (AND), << przesunięcie bitowe. Wartość zapisana w przechowuje musi być możliwa do zapisania w formie zero jedynkowej, aby można...
Nie wiem o czym jest ta dyskusja, już w 5 poście napisałem, że rozwiązaniem są pola bitowe, umożliwiające praktycznie stworzenie definicji takich jak użytre w programie (z bardzo niewielkimi, możliwymi do automatycznego przeprowadzenia zmianami). To wy tu dywagujecie o operacjach przesunięć bitowych i magicznych makrach...
Witaj, Zacznij od lektury dot. zmiennej wartości delay: http://mikrokontrolery.blogspot.com/2011... Co ma robić ten fragment: Słabo rozumiem zagadnienie maski, wydaje mi się, że tu może być błąd. Proszę bardzo - poćwicz tutaj: http://mikrokontrolery.blogspot.com/2011... Poza...
TCCR0 = _BV(x<<CS00); Źle użyłeś makra _BV. _BV(x) jest równoznaczne z ( 1 << x ), czyli w Twoim przypadku próbujesz wykonać podwójnie przesunięcie bitowe. Jeżeli x = 3 (CS00=0): _BV(3<<CS00) = _BV(3) = (1<<3) = 0b00001000 czyli TCCR0 będzie równe 0b00001000 . Innymi słowy, próbujesz ustawić bit tylko do odczytu, zamiast...
Tak. Gdybyś chciał wprowadzić przesunięcie o p.cz. to trzeba byłoby wstawić Czestotliwosc = Czestotliwosc +/- Pcz W tym programie Timer1 (16 bitowy) zlicza czas 1s. w jednym przebiegu dla zwiększenia dokładności pomiaru. Impulsy liczone są przez Counter0.
co każda z nich oznacza? Oczywiście, chętnie wyjaśnię znaczenie każdej z tych instrukcji dla mikrokontrolera Atmega8: 1. Instrukcje arytmetyczne i logiczne: - ADD (dodawanie): Dodaje wartości z dwóch rejestrów i zapisuje wynik w jednym z nich. - ADC (dodawanie z przeniesieniem): Dodaje wartości z dwóch rejestrów oraz bieżącą wartość przeniesienia (carry)...
Jeżeli masz kwarc 4MHz i baud (czyli prędkość transmisji) 9600, to do UBRR musisz wpisać liczbę dziesiętną 25 (UBRRH = 0; UBRRL = 25;). czyli dla kwarcu 8MHz (bo taki mam załozony aktualnie) UBRRH =0 i UBBRL = 51 ..... czyli rozumiem, że zamiast tego kawałku kodu: UBRRH = (unsigned char)(baud>>8); UBRRL = (unsigned char)baud;...
Tak eliminacja wpływu niestałości długoterminowej (dryftu) to zaleta takiego pomiaru, podobnie w metodzie mostkowej eliminuje się wpływ zmian napięcia zasilania na wynik. Czytanie pojedynczych rejestrów jest możliwe, lepiej jednak od razu czytać cały rejestr. Kompilator zadba o odpowiednią kolejność i zoptymalizuje kod. Można porównać jak to wygląda...
Trochę przekształciłem mój kod, wg wskazówek tu był kod Nadal nie działa. Może mój zamysł w ogóle jest zły. po otrzymaniu impulsu uC ma odczekać 0,45ms i jeżeli nadal na wejściu jest stan wysoki ma rozpocząć się próbkowanie, w tym celu timer ma odmierzać czas dokładnie 1,788ms czyli tyle ile trwa jeden jeden bit rozkazu, Wywołanie przerwania ma następować...
1. Kod można skrócić o połowę. 2. Stosuj sobie przesuniecie bitowe zamiast liczb szesnastkowych bo można się pogubić. 3. To nie C++ tylko C.
Dziękuję bardzo za odpowiedź chodź przyznam, że nadal nie jest to dla mnie do końca jasne. Nie pasuje mi to matematycznie. Skoro dzielenie przez 16 to przesunięcie w prawo o 4 pozycje więc wypada jakby 4 na jedną pozycję. Więc dlaczego przy przesunięciu w lewo wartość jest aż tak znacząco różna ? Przesunięcie (shift) o jedną pozycję ozacza pomnożenie...
Jak rozumiem zgodnie z teorią języka C dla AVR Prawie dobrze, ale zamiast 00010000 otrzymasz 00100000, choć końcowy wynik będzie dokładnie taki jak Twój czyli 0xF0, ale to przypadek. A teraz drugi przypadek, gdzie zamiast przesuwać jedynkę o 5 miejsc w lewo, przesuwasz w lewo liczbę 0x10 szesnastkowo (czyli liczbę 16 dziesiętnie lub 0x00010000 dwójkowo)...
Zazwyczaj przed podaniem dyrektywy w asemblerze .db podajesz jeszcze .org 0x0000, która do umieszcza dane pod tym adresem (0x0000). Innymi słowy, wszystkie dane, które zostały zamieszczone po .org 0x0000, są dostępne od adresu 0x0000. Zauważ, że jeśli korzystasz z pamięci flash w uC np. Atmega8 masz tam organizację pamięci 2 bajtową (WORD), a wszystko...
OOPS już wiem. Przesunięcie bitowe to przesunięcie wszystkich bitów a nie tylko jednego. #define HC_TX_OFF HC_TX_DDR |= (1<<HC_TX);HC_TX_PORT &=~ (1<<HC_TX); zamiast #define HC_TX_OFF HC_TX_DDR |= (1<<HC_TX);HC_TX_PORT &= (0<<HC_TX); i już jest OK. To nie USART wyłączał wentylator tylko odczyt_odległości, który był uruchamiany...
kolega xury podał ci dodatkowo nazwy poleceń do przesunięć bitowych, które można wykorzystać , chociaż można byłoby je samemu spokojnie poszukać. Teraz wystarczy też tylko zajrzeć do helpa Bascoma żeby zobaczyć jak można się nimi posługiwać. W helpie masz prawie gotowca.
Tez mi się wydaje dziwne ze nie mozna tak zrobic ale niestety tak jest.Zrozumielem dokladnie o co ci chodzilo jako ze kiedys sam lamalem sobie glowe nad asmem ale w razie jakby chciec to zrobic w ten sposob lepiej jest dac przesuniecie bitowe bo bedzie ono efektywniejsze. Hmmm... a jeśli nawet to mikrokontroler miałby nawet obliczyć sobie to raz po...
Czołem! trochę odgrzewam kotleta, jednak walcze teraz z tym samym czujnikiem w wersji SPI i mam problemy z ogarnieciem konwersji danych. Zgodnie z notą AN3785 Freescale pobieram i usadawiam współczynniki w zmiennych int16_t (justowanie do lewej). Staram się ogarnąć umysłem kolejne kroki przeliczeniowe i mam wrażenie, że w 1 kroku jest błąd. Mianowicie...
Dzielenie przez 10 możemy zastąpić przez przesunięcia bitowe w prawo. Od kiedy? Jak juz koniecznie dzielic przez 10 stosujac przesuniacia 2 prawo to może tak? Oczywiscie zakladając wymagana dokładnośc X=a/8-a/32+a/128-a/512+............
Troszkę nieprecyzyjnie się wyraziłem. Chodziło mi o to jak będą wyglądały operacje po rozbiciu tego złożonego wyrażenia i chyba sam sobie odpowiedziałem :-) Otóż: - bajt high będzie rzutowany na wartość 16 bitowa i przesunięty o osiem bitów - bajt low będzie rzutowany na wartość 16 bitową - oba operandy zostaną poddane operacji sumy logicznej - wynik...
1) Po ustawieniu WS_1 chce by na porcie PD1 była ustawiona wartość 1 logicznej, a po wykonaniu WS_0 wystawienie 0 logicznego na PD1 - według mnie odpowiada to ustawieniu kanału lewego bądź prawego na wyjściu TDA1343a 2) 1<<PD1 to przesunięcie bitowe w lewo co zmieni wartość pinu PD1 na wartość po lewej w PD7 zależało by to od wartości wcześniej...
żeby po samym naciśnięciu switcha Co Masz na myśli ? By zmienić kolejność przesuwania bitów Musisz albo nacisnąć drugi raz ten sam przycisk, lub też nacisnąć inny, ewentualnie jeśli skończy się przesuwanie w lewo, nastąpi przesuwanie w prawo. Jeśli ma być to ten sam przycisk to Musisz dodać informację, która będzie widoczna dla podprogramu, który z...
Obawiam się, że nie rozumiem pierwszej części pytania. Jeżeli natomiast chodzi moment zapisu, to powiedzmy, że to się odbywa zaraz po uruchomieniu uC. Jeżeli, w momencie zapisu, do adresu komórki dodam przesunięcie bitowe w prawo, to wszystko pięknie się zapisuje i odczytuje. Zapis: [syntax=C] i2c_start(Dev24C256+I2C_WRITE); 2c_write(0x02); i2c_write(0x02...
Witam, od niedawna interesuje się programowaniem mikrokontrolerów Kupiłem programator USBasp, podłączyłem wszystko, z kursów przetestowałem kilka przykładów, napisałem jakieś proste miganie diodami. A teraz opiszę w czym problem: Mam 3 diody LED i przycisk Zielony LED - PORTB0 Czerwony LED - PORTB1 Żółty LED - PORTB2 Przycisk - PORTC0 Diody ustawiłem...
Wszystko zależy od tego ile masz wolnego czasu i pamięci mikrokontrolera. Ja np. często wysyłam napięcia w postaci szesnastkowej, bo to nie kosztuje praktycznie nic po stronie uC, a program odbierający na PC odczyta je łatwiej niż z postaci dziesiętnej. Samo dzielenie przez 10, potrzebne do konwersji na postać dziesiętną, zajmuje grube dziesiątki instrukcji...
Witam. Mam problem z wyświetlaczem 2x8 na Atmedze88. PD0 jest podłączony do RS, PD1 jest podłączony do E, PD2 procesora jest podłączony do DB4, PD3 jest podłączony do DB5, PD4 jest podłączony do DB6, PD5 jest podłączony do DB7. Na ekranie pojawiają się tylko czarne pola. Przetestowałem różne programatory oraz kable. Wgrywa wszystko na układ żadnych...
masz źle zrobione rzutowania, przesunięcia i dzielenia, to na pierwszy rzut oka: float temp=0.0; temp = (float)(((uint16_t... | (((uint16_t)temp2)&l... chcesz zmienne 8 bitowe przysuwać o 8 bitów to musisz je rzutować na typ 16 bit - inaczej tracisz cały bajt. Ponadto durgą zmienną...
1. wytłumacz mi to: UBRRH = (unsigned char)(ubrr>>8); UBRRL = (unsigned char)ubrr; UCSRB = (1<<RXEN)|(1<<TX... UCSRC = (1<<URSEL)|(3<<U... 2. Jak działa szczegółowo to połączenie bluetooth jeśli chodzi o algorytm? 1. To jest fragment kodu, który konfiguruje UART...
Witam serdecznie, potrzebuje pomocy w napisaniu programu dla atmega8. Chodzi mi o pomoc w jego napisaniu. Z programowania nie jestem najlepszy. Problem polega na:Sczytaniu wartości z przetwornika (http://www.wobit.com.pl/download/pdf/pr... konwersji z kodu Gray`a na kod binarny oraz przesłaniu za pomocą rs232 na PC. Wszystko to na...
Witam Czy mógłbym prosić o wyjaśnienie w jaki sposób działa funkcja SendSpi ? Co to jest za wartość przekazywana w parametrze ? Jak realizowane jest przesyłanie danych do 74hc595 ?I czy kod jest w miarę optymalny ( chciałbym zbudować matrycę na atmega8 )? Próbuję uruchomić własną matrycę led 11x10 ale ciągle napotykam problemy których nie potrafię...
I radze nie uzywac (1<<...) tylko makra _BV(), bo potem cos nie dziala i nie wiadomo czemu;);) Witam, muszę się wtrącić :)) Nie masz racji sugerując, by nie używać operacji (1<<....). Jest to wyrażenie jak najbardziej poprawne w języku C. W każdym kompilatorze. Zaś _BV() to jak sam napisałeś to tylko makro w avrgcc. W dodatku makro sprowadza...
Mógłbyś opisać to dokładniej Typowy 8 bitowy rejestr ma 1 szeregowe wejście (czyli pin na który podajesz albo 0, albo 1). 1 pin na "zegar" gdzie (często) zbocze narastające inicjuje przesunięcie zawartości rejestru o 1 (i aktualny stan wejścia D wskakuje do rejestru). 2 szeregowe wyjścia (jedno zanegowane - do łączenia kilku urządzeń), jeden pin strobe/latch...
Po co tak kombinować...?.?.? Jeżeli piszesz w WinAVR (nie wiem jak w innych) to możesz nizależnie od tego jak masz ustawione przesunięcie w rejestrach ADCL i ADCH możesz pobrać wartość 10-bitową w jednej operacji (chodzi mi tylko o zapis a nie o kod wynikowy) czyli np... volatile unsigned int adc; ... int main(void) { for(;;) {...
:cry: Nie ma szans aby działało bo jak się robi takie błędy sorrki ale uczę się #include <avr/io.h> #include <util/delay.h> #define F_CPU 1000000L #define CLK_1 PORTD|=_BV(4) //bit CLK=1 #define CLK_0 PORTD&=~_BV(4) //bit CLK=0 #define STB_1 PORTD|=_BV(5) //bit STB=1 #define STB_0 PORTD&=~_BV(5) //bit...
Witam Zmontowałem sobie prosty układ do ćwiczeń na kodzie wraz z najważniejszymi informacjami. Taki można powiedzieć sandbox do zabawy z operacjami na bitach. http://obrazki.elektroda.pl/5931791900_1... (pewnie dostane mały opie...rz za 1 rezystor na 8 diod - nie posiadam więcej!) Przejdę do sedna sprawy, zastanawia mnie sposób zapisu...
Witaj. Temat związany z naszą dyskusją: http://mikrokontrolery.blogspot.com/2011... 1. Błąd, który nie pozwoli na skompilowanie kodu - brakuje znaku | : przesunięć bitowych : CManiaku skompilować poniższy program: [syntax=c]//Wymagane do symulacji definicji i rejestrów ATmega8:...
Z LCD jest podobne a do tego musisz za palac i gasic segment z odpowiednią częstotliwością. A ten drugi sposób (szeregowo). Do jednego układu podpinasz wszystkie segmenty Na jedną noge podajesz czy dany segment ma sie palić czy nie. Jak juz ustalisz czy ma sie świecic czy nie to podajesz sygnał na CLK i lecisz z kolejnym segmenem, i tak az do ostatniego....
ok, zdaje się, że jestem z tych opornych :D, więc kilka pytań extra: #include <avr/io.h> #ifdef SINGLE_OW #define bp (1<<PD6) #define bm ~(1<<PD6) #define owhi DDRD&=bm #define owlo DDRD|=bp #define owget PIND&bp #else //MULTI_OW unsigned char *port,*ddr,*pin,bp,bm; #define owhi *ddr&=bm #define owlo *ddr|=bp...
Możesz wysyłać jako 16-bitowe SPI. Musisz tylko pamiętać, że kilka ostatnich bitów będzie ignorowane i odpowiednio przesunąć dane
http://obrazki.elektroda.pl/9824916400_1... Witam, Korzystając z ostatnich wolnych dni przed studiami chciałbym zaprezentować moją ostatnią konstrukcję. Jest to mały przenośny barometr. Konstrukcja powstała na potrzeby osoby wrażliwej na zmiany ciśnienia oraz spełnia jej wymagania tzn. mały rozmiar( 20x40x9mm) oraz co się z tym wiąże...
Witam, napisałem własny program do obsługi wyświetlacza LCD, inicjacja przebiega poprawnie, ponieważ kursor miga. Nie udaje mi się natomiast wysłać jakiegokolwiek znaku, chodzi mi o wpisanie np litery A na pierwsze miejsce bez żadnych przesunięć. Oto kod: [syntax=basic4gl] #include <avr/io.h> #include <util/delay.h> /* ########################################...
Zmieniłem troszkę podłączenia wyświetlacza LED do atmegi. Teraz z mam tak: PORTD.4 = segment A PORTD.5 = segment B PORTD.6 = segment C PORTD.7 = segment D PORTC.2 = segment E PORTC.3 = segment F PORTC.4 = segment G PORTC.5 = segment DP Do portów XTAL1 i XTAL2 mam podłączony rezonator 32kHZ. Układ prawidłowo wyświetla temperaturę i przekazuje na UART...
no właśnie, -O1 ma wg mnie sens, jeśli chcesz sobie ładnie móc debuggować a nie chcesz potem pod koniec musieć pamiętać o tym, żeby zmieniać na -03. Jeśli twój uC się ze wszystkim czasowo wyrabia dla -O1, a nie musisz np. minimalizowac poboru energii (bo wtedy oczywiście zależy ci na tym, żeby wszystko co trzeba wykonać jak najszybciej i pójść spać),...
... co wynika z tego, że gdybyś używał nazw pinów (a nie numerów) oraz przesunięć bitowych, to błędu byś nie popełnił: [syntax=c]#define E (1<<PB1)[/syntax] Nie definiuj F_CPU w kodzie z tych powodów: http://mikrokontrolery.blogspot.com/2011...
Nie zmienia, bo masz błąd w innym miejscu. Dokładnie to miałem na myśli-że błąd jest gdzieś indziej. Zastanów się, co oznacza nazwa trybu CTC (?) – w ang. jest to ‘Clear Timer on Compare’ (pol. - wyzeruj zawartość licznika/timera, gdy jego zawartość jest równa wyznaczonej z góry i ustalonej, bądź to wyliczonej jakiejś wartości w zmiennej...
Na mój gust to tam jest byk bo na rysunku nr 2 jest jak wół 1 bajt komendy, 1 bajt danych więc z tym oscylogramem coś nie halo. A jesli ma być zwrócone słowo 11,12,13 ect bitowe to trzeba nieznacząe bity zignorować i np. przesunąć w w prawo o tyle ile bitów będzie brakowało do slowa 16 bitowego.
http://obrazki.elektroda.pl/8267947700_1... Ponad 20 lat temu jako amator hobbysta budowałem proste układy elektroniczne. Studia i styczność z informatyką spowodowały, że porzuciłem hobby pod nazwą "składanie elektroniki" na rzecz "składanie programów komputerowych". W bieżącym roku (2011) dzięki uprzejmości kolegi Jacka.M, który okazał...
Witamy na forum, a miejsce na swój temat znalazłeś właściwe :) 1. Zignorowałeś warning: Warning2#warning "F_CPU not defined for <util/delay.h>" ... a to często prowadzi do problemów: http://mikrokontrolery.blogspot.com/2011... a w tym przypadku chodzi o to, by nie definiować F_CPU w kodzie programu z tych powodów:...
Rozumiem. Zagłębiając się w temat znalazłem funkcję liczącą CRC w bibliotece na arduino do tego czujnika. Dowiedziałem się też, że jest biblioteka o nazwie crc16.h w katalogu util . Pierwotnie chciałem z niej korzystać, ale wymaga argumentów 8-bitowych, a z tego, co zrozumiałem z datasheet'a czujnika i patrząc na funkcję z biblioteki arduino muszę zlepić...
Faktycznie działa tak samo, ale problem pozostał. Nadal 1. kolumna jest przesunięta na koniec. Dodano po 34 Problem rozwiązany, wystarczyło dodać delay po zmianie stanu na porcie B. Niby 1 us ale wpływa na działanie programu. Najwidoczniej bez opóźnienia nim stan się ustabilizował to pętla przeszła już do następnej iteracji. Niby drobnostka, a zabrała...
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...
Od dłuższego czasu napisałem sobie specjalne makra pod AVR definiujące wszystkie porty, aby np. zamiast pisać: #define BTN1_DDR DDRC #define BTN1_PORT PORTC #define BTN1_PIN PINC #define BTN1_P PC0 #define BTN2_DDR DDRB #define BTN2_PORT PORTB #define BTN2_PIN PINB #define BTN2_P PB1 #define BTN3_DDR DDRD #define BTN3_PORT PORTD #define BTN3_PIN PIND...
Witam. Zaczynam przygodę z programowaniem AVR w języku C. Trochę wiedzy już przyswoiłem i postanowiłem popełnić pewien projekt. Mianowicie matrycę LED 8x8 sterowaną przez Atmega8a, dwa rejestry 74HC595 i przerwaniem od timera. Płytkę pod LEDy wytrawilem sam. Reszta układu polutowana na płytce uniwersalnej. Kod napisałem sam i jestem pewien że jest ok....
Wystarczy zajrzeć do datasheeta PCFa. Musisz odczytać jeszcze rejestr 6. W nim 3 najstarsze bity to binarna cyfra w zakresie 0 - 6 (teoretycznie to BCD, ale na jednym półbajcie nie ma to znaczenia), oczywiście przesunięciem bitowym wyciągniesz te bity. Musisz założyć, który dzień jest początkiem tygodnia, np. 0 - poniedziałek, następnie switchem wyciągać...
(at)serum Jesli chodzi o linie WS to sterowalem nia programowo. Z SPI wykorzystalem sygnaly SCK i MOSI. Nie bardzo rozumiem o co Ci chodzi z tym przesunieciem sygnalu WS o 1 bit?? Jezeli chodzi o kod to pisze w C, ale nie mam go przy sobie :(. Napisz czym u Ciebie objawiala sie proba przeslania probki 16 bitowej, bo jak rozumiem wystepowaly jakies bledy....
Witam ponownie ;)! Dzieki waszym podwiedzia napisalem fukcje przesuawania wskaznika pamieci DD RAM i okazalo sie ze zeczywiscie moge wyswietlac znak gdzie tylko chce :P. Ale napotkalem jeszcze jeden problem z ktorym nie moge sobie poradzic :(... Otoz bez problemu wyswietlam 8 pierwsyzch bitow w lini ale jak chce wyslac kolejne 8 bitow po wczesnieszym...
Kiedys tez zrobilem dzialający LCD na PORTB, gdzie DB4-7 polaczone bylo z PORTB.4-7. Sadzac po Twoim sterowaniu masz podlaczony tak samo jak ja mialem wtedy. Teraz niestety plytka jest wytrawiona i musze jakosc wysterowac na mlodszych bitach portu B;/ Programu wykonawczegno nie zmienilem ale sadze ze cos sknocone jest z operatorami przesuniecia bitów...
Czyli wyczyszczenie magistrali następuje w pierwszej linijce tej funkcji, tak? Mam cały program i coś jest nie tak. Temperaturę z MCP9700 odczytuje prawidłowo, a z dallasa mam ciągle "cisza". Poza tym wszystko działa bardzo wolno i jak wyjmę kondensator filtrujący spomiędzy pinów MCP9700 to nie reaguje na zmianę napięcia. Procesor to ATmega8 i jest...
przesunięcie bitowe portach przesunięcie bitowe dzielenie przesuniecie bitowe
montaż zmywarka siemens zasilać lampa solarny makro zapisujące arkusz
Przestrojenie CB President Johnny z piątek na zera – wymiana kwarcu 10,245 MHz na 10,240 MHz Daewoo Lanos – schemat podłączenia przewodów podciśnieniowych kolektora ssącego