Polecam Książkę Pana Mirka http://atnel.pl/wydawnictwo Właśnie wczoraj skończyłem czytać o języku C po 2 razie kiedy to przeczytałem już wiele rzeczy mi się rozjaśniło. Polecam poczytać dowiesz się ze można to robić w bardziej jasny sposób stosując operatory logiczne oraz przesunięcia bitowe. Pozdrawiam ;) w szczególności Pana Mirka :D
Zacznij od zrozumienia przesunięć bitowych, potem poczytaj o portach GPIO w STM32 (rejestr MODER działa ciut inaczej niż DDR w AVR). No i jeszcze timery - też całkiem różne od tych w AVR.
Kolego Matt_Ka , << to są x << y mówi przesuń wartość x o y bitów w lewo . Analogicznie >> mówi o tym samym, ale w prawo. Poczytaj o [url=http://pl.wikibooks.org/wiki/C/Oper... bitowe.
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.
Tu masz troszkę prościej, z użyciem operacji przesunięcia bitowego (krótszy kod, łatwiejsza zmiana prędkości linijki led) Dim Led As Byte Dim Kier As Bit Config Portb = Output 'wszystkie porty b jako wyjścia' Portb = &B00000000 'wszystkie porty b w stanie niskim Config Portd = Output 'wszystkie porty d jako wyjscia Portd = &B0000000 'wszystkie porty...
Witamy kolegę. Jak widać na naukę nigdy nie jest za późno. Cyfrowy świat nie jest tylko dla młodych. M. S. 52l. Nie znam narzecza arduino ale zapoznaj się z pętlą for, której przebieg "programuje" się na konkretną ilość razy. Np. [syntax=c]for(x=0;x<X;x++) { } //Rozpocznij od x=0; jeśli x<X ponownie wykonaj pętlę i zwiększ x o 1, w //przeciwnym...
Widzę tam trochę dziwne założenia: W definicjach masz podane, że wykorzystujesz piny D3-D6, co prawda kolejno, ale nie na granicy nibble, natomiast w kodzie: [syntax=c] // Funkcja wysyłająca 4 bity danych do wyświetlacza LCD void Send4BitsLCD(uint8_t data) { PORTD &= 0xF0; // Wyczyszczenie starszych 4 bitów PORTD |= (data & 0x0F); // Ustawienie...
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...
A,B,C w porządku. odp D: C to jest akumulator bitowy i nie ma wpływu na A. mov 1, #ah do komórki o adresie 1 wpisuje liczbę Ahex mov R0, #1h do rejestru R0 wpsiuje 1 mov A, (at)R0 przepisuje wartość danej która znajduje się pod adresem zawartym w rejestrze R0 do akumulatora. Czyli a akumulatorze pod koniec mamy 0x0A. (at) oznacza adresowanie pośrednie....
Dzięki za sugestie. Znalazłem błąd. Błędna była ustawiona kolejność portów. W moim przypadku największym utrudnieniem w programowaniu jestem na tym etapie sam ja. Przesunięcie bitowe, które wskazał Freddie Chopin również było błednie przeze mnie ustawione, zmieniłem i wszystko funkcjonuje jak powinno. Dodano po 3 Błąd w ustawieniach kolejności portów.
Przy włączaniu diod jest po przesunięciu dodany OR po to żeby ustawić logiczną "1" w miejscu "0" które powstało po wcześniejszym przesunięciu jedynki w lewo. Gdy są gaszone diody, to nie ma takiej potrzeby gdyż przesuwana w prawo wartość rejestru jest po prostu z niego wysuwana. Obrazowo: 1. Rejestr PORTD w pierwszym kroku zawiera wartość: PORTD=0b00000000...
Można zastosować: a) przesunięcia bitowe (klasyczne lub oparte na makrze _BV();) b) makra sbi(PORTn,x); (ustawia 1 na Pn.x) oraz cbi(PORTn,x); (ustawia 0 na Pn.x) Polecam przeczytać w internecie jakiś kurs C, nie wie skąd kolega się uczy tego C, ale jakoś chyba niezadobrze tam te kwestie tłumaczą ;-)
A ja powiem tak. Książka + płyta jest świetna Po pierwsze w książce jest wszystko jasno wyjaśnione. Po drugie lekcje które są dodane na płycie DVD również pozwalają w bardzo dobry sposób zrozumieć zaganiania związane z językiem C. Większość osób poleca tę książkę. Naprawdę jest dobra. A ten kurs za darmo w sieci.... http://www.kursc.dioda.com.pl/ Naprawdę...
Musisz zmienić podejście i podzielić sobie program na dwie najważniejsze części. 1. Część abstrakcyjną: - licznik czyli zmienną którą będziesz inkrementował od 0-99 i przy osiągnięciu 100 wpisywał do niej 0. - funkcja dekodująca licznik na pojedyncze cyfry cyfra2=licznik/10; cyfra1=licznik%10; 2. Część sprzętową: -powołać sobie tablicę ze znakami wyświetlacza...
PORTB=0xFF; czyli PORTB= 1111 1111 PINB = 0001 0000 Używając & przycisk PB4 powinien otrzymać wartość 1, czyli, że jest wciśnięty. Dobrze będę stosować przesunięcie bitowe. Niestety, ale kompiluje na razie w Programmer's Notepad, ale fusebity ustawiłem w twoim programie na 12 Mhz i taki oscylator mam wpięty do nóżek XTAL1 i XTAL2 (czyli 1 nóżka kwarcu...
Dziękuję koledze LordBlick, poprosiłem go o odblokowanie tematu, bo wydaje mi się, że mimo pozornej prostoty problemu warto się nad nim chwilę zastanowić. Zanim przejdę do odpowiedzi na post #3, powiem dwa słowa o makrodefinicjach. Wiele osób z nich chętnie korzysta, w pokazanym wyżej przykładzie zdecydowanie lepiej posługiwać się makrami LED_ON i LED_OFF...
Czy można tą funkcje: [syntax=c] void LD_WriteReg(unsigned char address,unsigned char dataout) { unsigned char i = 0; unsigned char command=0x04; // Czemu tu jest 0x04 co to może być ??? SPIS =0; SCS = 0; DELAY_NOP; //write command for (i=0;i < 8; i++) { if ((command & 0x80) == 0x80) SDI = 1; else SDI = 0; DELAY_NOP; SDCK = 0; command = (command...
Hmm... tak już robiłem i to nie pomogło... ale już poradziłem sobie z problemem ;D Wina była zakłóceń, bo po dolutowaniu na wejście pomiarowe ADC8 kondensatora, diody przestały szaleć. Dodatkowo brakowało przesunięcia bitowego (bo na port podawało 8 bitów młodszych z 10). Miałem na celu zrealizowanie sterownie PWM za pomocą ADC (napięcie z potencjometru)....
Witam, czy istnieje możliwość przechowania nazw portów i pinów w tablicy lub podobnej strukturze (coś na kształt tablicy definicji), tak żeby można je wywoływać kolejno w pętli, posługując się tylko indeksami tej tablicy? Zamiast tworzyć coś takiego: -------------------------- #define PORT_OUT1 PORTA #define OUT1 0 #define PORT_OUT2 PORTA #define OUT2...
O widzisz, teraz wszystko zrozumiałem;]. Po przeczytaniu posta do którego dałeś linki myślałem całkiem na odwrót - że ten kod wykonuje się w przerwaniu. Więc zrobiłem całość w przerwaniu. Zmylił mnie Twój komentarz do kodu:). //Ten fragment wykonuje się co16ms x4 z Timer0 Za chwilkę przerobię program, powinno zająć parę minut i zobaczymy. A w odpowiedzi...
if((PINB&(1<<PB0))==0) PINB oznacza pine portu B ale nie pisze jaka tylko ogolnie? PINB oznacza cały port B (bajt) jako wejście (PORTB oznacza ten port jako wyjście). &-wskaznik czyli w tym momencie jak dziala? Tutaj & oznacza bitowy operator 'and'. Może poczytaj trochę o języku C? 1<<PB0 -przesuniecie bitowe o 1 bit w lewo...
witam po czesci rozwiazalem problem, a mianowicie przy konfiguracji portu na 2400 czyili InitUsart(2400) i odpowiedniej konfiguracji terminala na 2400 transmisja odbywa sie prawidlowo. Ale jak trylko zwieksze predkosc na 9600 odbieram calkiem inne znaczki. Czy to wina ze nie mam podpietego zewnetrznego kwarcu ? Czy czegos innego ?
Możesz łatwo rozwidlić OpenBeken i uruchomić go za pomocą kompilacji online Github na swoim rozwidleniu. Nie musisz nawet kompilować na komputerze. To bardzo proste, zapraszamy do pomocy. Obecnie funkcja przesunięcia portu działa na 32-bitowej liczbie całkowitej, więc możemy mieć połączone ze sobą 4 rejestry Mam działający podstawowy sterownik, ale...
Dostałem dwa zadania na wykładzie i nie mam pojęcia, jaka odpowiedź może być prawidłowa. Pytania dotyczą mikrokontrolerów AVR. Będę niezmiernie wdzięczny, jeśli ktoś zaproponuje jakąś odpowiedź do poniższych pytań: 1 Na czym polega najwydajniejsze dzielenie przez 256 i czy da się zrealizować w uC? (2 punkty), Jedyne, co mi przychodziło do głowy, to...
Thunderracer - zamiast krytykować to zrób lepsze. Masz szansę się wykazać - napisz program w ASM do tego projektu z efektem knight rider z płynnym zapalaniem/gaszeniem ledów. Nie chcesz? Nie umiesz? Nie masz czasu? Nie...(tu wstaw inną wymówkę)? To nie komentuj czyjejś pracy skoro nie potrafisz pokazać swojej. Jaglarz - jeśli to ma świecić małymi diodkami...
Sprawa wygląda tak, wysyłam tablicę o wiekości 3072 bajtów poprzez pin portu i robię to tak z tablicy biorę jeden bajt (wskaźnik) porównanie 7 bitu jeżeli jest zero to wyślijzero(); jeżeli jest jeden to wyślijjeden(); następnie przesunięcie bitowe w lewo i wysyłam następny bajt i to działa tak jak trzeba. Pytanie jest następujące czy da się zrobić lepiej...
(...)idę na pieszo (...) Transmisja 16-bitowa chociaż rozważałem użycie 8-bitowej i wykorzystanie wtedy po 6 bitów z każdego koloru. Zrób to - jak masz działające (no, prawie) 16 bit, to przejście na 8 bit to zmiana chyba tylko jednego bajtu w konfiguracji wyświetlacza i później zamiast 16 bitowego słowa wysyłasz 3 bajty RGB. Na dolną połówkę portu...
#define PORTD2 2 Po co ta definicja, jeżeli później jej i tak nie wykorzystujesz. Tym bardziej, że wg. mnie jest błędnie zapisana. TCCR0 |= (1<<=CS01) |1<<(CS00); //preskaler 64 Przesunięcie bitowe powinno wyglądać tak: TCCR0 |= (1<<CS01) | (1<<CS00); + brak ustawienia odpowiedniego trybu przerwań, w tym przypadku pewnie musiałby...
Potrzebuję informacji, jak adresować z poziomu assemblera. (Pracuję na wstawce assemblerowej w Delphi) Chcę wysłać komędą "OUT" 8 bitów np.:FF na podane niżej adresy we/wy. C0070h lub C0072h C0074h C0076h Nie mam problemów z adresowaniem 12 bitowych, ale tu przy 20 bitach nie mogę sobie poradzić. Coś mi świta, że chodzi tu o jakieś przesunięcia, ale...
ż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...
Przesunięcie bitowe jedynki w lewo o PD1 miejsc. A PD1 = 1 czyli : 0 0 0 0 0 0 0 1 << 1 = 0 0 0 0 0 0 1 0 Tylko dlaczego do ustawiania PORT C używać P D ? Taki zapis w zasadzie obywa się bez komentarza, ob jest przejrzysty, ale ilość cykli maszynowych potrzebnych do niego jest spora. Mogą później wyniknąć jeszcze inne problemy, także trzeba być...
Mirekk36, Twój program już na pierwszy rzut oka bedzie działał, bo pobierasz dane z tablicy. Chciałem na początek poćwiczyć z tymi przesunięciami bitowymi... No żeby używać przesunięć to żaden problem ale najpierw warto gdzieś poczytać dokładnie o co chodzi z tymi przesunięciami. Widziałem w sieci taką makrodefinicję: Taaaak jest to powszechnie znana...
IRQ tester https://obrazki.elektroda.pl/3243423400_... IRQ Tester to proste narzędzie, głównie do testowania czasu odpowiedzi na impulsy, lub czasów międzyzboczowych dostarczonego sygnału. Program został napsiany na ukontroler AVR Atmega168, a jego głównym zadaniem jest funkcja multiwibratora monostabilnego, którego działanie polega...
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...
(at)kris8888 Nie... Znacznie coś większego... W telegraficznym skrócie: 32-bitowy procesor obsługujący około 150 różnych instrukcji stałoprzecinkowych, posiadający sześć trybów adresowania, dwa oddzielne stosy: użytkownika i nadzorcy, osiem rejestrów uniwersalnych, osiem rejestrów adresowych, cztery rejestry segmentowe. Trzy tryby obsługi pamięci RAM...
O żesz.. :oops: Teraz powinienem się zapaść pod ziemię.. Tak jak przeczuwałem, powodem zadawania takich pytań jest pośpiech lub głupota.. W moim przypadku to chyba tylko głupota. Przez czas jak pisałeś te dwa posty już ze 4x przejrzałbyś CAŁĄ listę przerwań, bo nie wiem skąd założenie, że koniecznie muszą być po kolei. No właśnie mam taką robotkę w...
Jestem kolejnym (nie)szczęśliwcem, próbującym uruchomić wspomniany wyświetlacz na atmedze. Dysponuję takim modelem: http://artronic.pl/o_produkcie.php?id=66... Podłączyłem go zgodnie z opisem: 1 GND 2 +3V 3 GND 4-11 PORTD kontrolera, wg numeracji 12 PB7 13 PB6 14 PB5 15 PB4 16 PB0 17,18 - podświetlenie (to działa;)) Kombinowałem podobnie jak Daniel_T,...
Od pewnego czasu śledzę prace osób, które zajmowały się, bądź też są w trakcie budowy ploterów na bazie silników krokowych. Sam postanowiłem wykonać sobie ploter kreślący. Może określiłem zbyt ambitne parametry, ale z tego co widzę rzecz jest wykonalna. Ple rysunkowe mojego plotera ma wynosić 1400x900 mm (mieści arkusz A0),. Posiadam 4 siniczki krokowe,...
Zrobiłem wersję mniej czytelną ale taką co nie miałeś uwag, czyli nie dałem przesunięć bitowych Dlaczego ustawiasz mode input dla czegoś co ma pracować a AF? Jak mówiłem ustawiaj piny osobno. Bo tak staje się to nieczytelne. Mówiłem o zrobieniu makr? Naprawdę warto. Wszystkie porty oprócz A można konfigurować wprost bez stosowania ORów i ANDów.
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...
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...
Operacja iloczynu logicznego oraz przesunięcia w prawo np. interesuje Cię bit 4 a jakimś rejestrze X i zapisać go na 2 bicie portu D push X //odłóż na stos and X,b00001000 //interesujacy nas bit 4 ror X,2 //ror - rotacja w prawo z wpisywaniem 0 na początek X=000000Z0 (Z - czwary bit odczytany z rejestru X na 2 bicie) z 4 miejsca na 2 wiec 2...
Dziękuję Ci zumek za pomoc wcześniej napisałem do twórcy tego kodu i on też powiedział mi o przesunięciu bitowym przy odbieraniu bajtu. Możliwe że podczas przepisywania pomyliłem się w trakcie pisania ale i również możliwe że została zmieniona zawartość pliku pdf na ten który jest teraz ale tak czy inaczej kod już działa. Gdyby ktoś chciał to w załączniku...
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...
Pliss mam wysłać na pin 1 portu B bajt danych. Mam w rejestrze R1 dana, np 00110011 i jak to teraz wysłać na 1 pin portu B? Aha i w jakim programie. Zrobiłem to w ten sposób ze wysyłam bit po bicie w pętli komendą out, ale coś słabo to działą (napisane w avrstudio 4). Ma ktoś coś takiego, i w jakim programie napisane?. Btw chodzi o uzyskanie połączenia...
Ale chyba sygnaly E i CS8255 powinny byc na niezaleznych pinach procka? Dokładnie, sygnały uaktywniające poszczególne urządzenia powinny uaktywniać tylko 1 na raz oraz przydatna jest możliwość, aby żadne urządzenie nie było wybrane, np. przy włączaniu zasilania, stan zapamiętania. Przykład : łączenie wielu kostek RAM połączonych wspólnymi magistralami...
Witam muszę nauczyć tworzyć rejestry n bitowe z przerzutników typu D i T z funkcjami przesunięcia w lewo lub w prawo, zapis, i np suma. Wszyto ma być w zapisie VHDL walczę już z tym od 2 tygodni mam problem z odwzorowaniem wszystkich sygnałów dla przykładu rejestr 5 bitowy na przerzutniku D z funkcjami zapis , xor, przesunięcie w lewo przyjąłem y1(SW7)...
Cześć jakiś czas temu spotkałem się z takim zapisem mapowania rejestrów: C gives no guarantee of the ordering of fields within machine words , więc może być problem z portowaniem. Nie mam zamiaru "wynajdywać koła na nowo" tak pytam się z ciekawości o wasze opinie. Ewentualnie tak myślę że dałoby rade to zrobić też w C++ z template w taki sposób żeby...
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...
Czytaj ze zrozumieniem Kombinacja klawiszy 258 powoduje reset opisanego punktu 1 z XV tej instrukcji. Kombinacja ta nie powoduje przywrócenia ustawień fabrycznych. Sorry, ale jak to w takim razie ma się do instrukcji i rozdziału XV oraz XVI [syntax=text]XV. KASOWANIE USTAWIEŃ PAMIĘCI PANELI I MODUŁÓW 1.- przywracanie ustawień fabrycznych panelu W razie...
[syntax=8051asm] nop %- nic nie rób (bez sensu w tym miejscu, chyba, że to jakiś przykład " na zrozumienie tematu" i wykrycie "usterek") LJMP ETYK %-skok do programu głównego (wektor RESET) %tu zaczyna się obsługa przerwania INT0 SETB 10H %- ustaw bit o adresie 22H.0 (w specjalnym obszarze pamięci) RETI %powrót z przerwania ETYK: MOV 0A8H, #81H %załaduj...
Chyba ogarnąłem jak to ustawić : 1.W pierwszym kroku: [syntax=c] GPIOA->MODER = (GPIOA->MODER & ~GPIO_MODER_MODE0) | GPIO_MODER_MODE0_1); //Alternate Function [/syntax] W drugim ustawiam w zgodzie z tabelką w datasheet czyli pierwszy kanał timera2(TIM2_CH1) mam na pinie PA0 w kolumnie AF2 [syntax=c] GPIOA->AFR[0] = (GPIOA->AFR[0] &...
witam, dzięki za zainteresowanie ------------ -- generator - entity gener is Port ( clk: in std_logic; e: out std_logic_vector(1 to 8)); attribute loc: string; attribute loc of clk: signal is "P5"; attribute loc of e: signal is "P9,P11,P12,P13,P14,P18,P19,P20"; end gener; architecture arch1 of gener is signal sig_e: std_logic_vector(1 to 8):= "00000000";...
Witaj c4r0 ! jeden napęd jest na pewno taki sam ...hehe twoja jest trochę bardziej trójwymiarowa:) Nie zastanawiałem się specjalnie nad położeniem prowadnic ale nie jest źle...kilogram utrzymuje bez problemu :) . platforma nie działa z prawdziwymi programami CNC. Każdy z silników wykorzystuje 4 bity z 8 bitowego portu LPT. gdy chcę przesunąć silnik...
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...
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...
Polecam zamiast algorytmów sekwencyjnych (tablice) użyć do sterowania "płomieniem" generatora pseudolosowego. Można go prosto zrobić na rejestrze, który jest przesuwany w lewo, a na najniższy bit (po przesunięciu zerowy) podawać exor z kilku wybranych bitów tego rejestru. Przy nieparzystej liczbie exorowanych bitów generator wystartuje sam z sekwencji...
Chodzi mi o to, że mam układ hardware, gdzie segmenty wyświetlacza podłączone są część do portu D, część do Portu B. W necie Jest wiele opisów programów ale wszystkie pokazują jak działa program kiedy wszystkie segmenty wyświetlacza są podłączone do jednego portu. Zaprezentuje kawałki kodu i proszę o modyfikację aby to działało chodzi o idee dla dwóch...
W końcu się udało . Obydwie pastylki działają jak należy (tzn odpowiadają sygnałem obecności). Za wszystkie rady dziękuję. Wstawiam działający na obydwu pastylkach kod. Temat cały czas otwarty. Zabieram się za próbę odczytania 64-bitowych kluczy. Błąd był w źle napisanych przesunięcia bitowych (powinno być 1<<7 zamiast 1<7). [syntax=c] // czytnik...
1. Czy jest jakaś różnica miedzy używaniem sbi(),cbi() a DDR,PORT i która opcje lepiej stosować ? to nie ma za wiele wspólnego ze sobą, bo sbi() cbi() służą do ustawiania, kasowania wybranych bitów natomiast nazwy DDRx, PORTx oraz PINx to są nazwy rejestrów dzięki którym dokonujemy komunikacji z procesorem. DDRx - służy do ustawiania kierunku pinów...
Dzięki za odp. Z grubsza już działa, oczywiście okazało się, że "plusy" trzeba było podłączyć do "/D" w sterowniku, analogicznie "minusy" do "D". Pomogły testy na RS-232 gdzie był tylko TX i RX;) Druga rzecz to w XP-Builderze przy wyborze sterownika trzeba było zaznaczyć "Master" co mnie początkowo zmyliło, bo przecież to HMI w tym połączeniu ma być...
Czemu nie wysterowałeś pinu Tx jako pinu wyjściowego? Chyba domyślnie po resecie uC wszystkie piny są jako wyjście Zajrzyj do noty PDF, po resecie praktycznie wszystkie rejestry mają wartość = 0, a na pewno rejestry pinów, portów i kierunków. Czyli DDRx także jest = 0 a zatem domyślnie wszystkie piny procka po resecie są WEJŚIAMI. Ale wcale nie trzeba...
A czytałeś może noty katalogowe :?: Bo wygląda na to że w wyświetlaczu w ogóle nie ustawiasz trybu 4 bitowego. Na początek proponuje sterować linią RW i RS a nie podpinać RW do masy :idea: Po drugie w czasie inicjacji (w miejscu zmiany trybu z 8 na 4 bitowy) brakuje ci pętelki która powinna wysłać do wyświetlacza 3 razy ustawienia trybu 8 bitowego i...
hm, no mam nadzieję, że jednak ktoś mnie jeszcze wesprze i nie będę polemizował sam ze sobą .... ;) kontynuując (w bascom AVR z Atmegą8515) Mam 4 linie pochodzące z myszy: 1-GND 2-Vcc 3-Clock 4-Data Ok. Po podłączeniu zasilania widzę, że mysz świeci. Robię śmieszny zabieg i podłączam CLOCK myszy i Data myszy zarówno do uP i do PC, tak żeby być pewnym...
gratuluję, fajny DIY... powiedz mi na jakiej zasadzie sterujesz diodami, multiplekser? O ile dobrze rozumiem zasadę działania poo samym schemacie... którego właściwie już brak, ale są elementy myślę że sygnały z procesora są wpisywane do rejestrów szeregowo równoległych i w ten sposób odbywa się sterowanie. Czyli wpisujemy szeregowo do rejestrów ciąg...
Ach... czym więcej wiem, tym mniej wiem :/ Przede wszystkim dzięki za pomoc. Moją intencją było sprawdzanie stanu na pinie 7 portu B i w zależności od tego późniejsze postępowanie. Dokładnie miało być tak, że przesuwam jedynkę "po porcie" B w lewo. Na początku ustawiam 1 na B0 i w miarę przyciskania przycisku jedynka jest przesuwana na B1, B2.. aż do...
Witam! Staram się napisać na razie dość prosty program, który ma wyświetlić cyfrę, która została wciśnięta na klawiaturze matrycowej 3x4. Program działa prawie poprawnie, jedynie jedną kolumnę dziwnie odczytuje, mianowicie "podnosi ją do góry". 1 2 3 4 5 6 7 8 9 A 0 B Tzn tam gdzie powinno być 1 jest 4, tam gdzie 4 jest 7 itd. Reszta klawiatury działa...
[syntax=text]Witam książkowy program trochę przerobiony do swoich potrzeb i wyskakują takie błędy jak w temacie. Proszę o jakieś wskazówki. Bo właśnie się poddałem (brakuje mi pomysłu brak wiedz z c), szukałem i w google ale nic nie znalazłem. Zaczyna przygodę z c i się uczę dobra kod programu[/syntax] [code][syntax=c] plik LED4_Plex.c #include <avr/io.h>...
Robiłem na AVR generator 2 kanałowy z regulacją przesunięcia fazowego 1st. do 5kHz. Generalnie jest to do zrobienia... rozwiązania mogą być różne... Gotowych układów raczej nie spotkałem... na jednym układzie jest to możliwe... jakiś szybki procesor np. ARM lub FPGA, bardziej korzystnym rozwiązaniem byłoby jednak zamiast PWM przetwornik C/A, a jeśli...
No ok, chyba zrozumiałem wasze przesłanie panowie :D, spróbuje coś sklecić na tej podstawie. Dzięki za zainteresowanie <Edit> Skróciłem procedurę przerwania do maksymalnego minimum ;p Napisałem wszystko od początku i zanim sprawdzę czy działa, proszę by ktoś, kto się zna na rzeczy (jam jest początkujący ;p) sprawdził czy to jest poprawne: http://obrazki.elektroda.pl/1723493900_1...
Cześć! Programuję AT90CAN128 (ale tu nie o model mikrokontrolera chodzi) i natrafiłem na problem z kolejnością wykonywania operacji. Nie mam tak dużej wiedzy żeby stwierdzić, że to błąd kompilatora, ale sprawa jest dla mnie dziwna. W programie mam fragment kodu:[syntax=c]tmp = ((~PINB) >> 4);[/syntax]Niby nic skomplikowanego, ale nie wykonuje się zgodnie...
Wreszcie coś na czym mogę się oprzeć mam zakaz używania 7755 ze względu na małe wykorzystanie procka...mam to zbudować tak aby to procek wszystko wykonywał a nie jakiś układ.... Co do przetwornika nie wiem jakimi kryteriami kierować się przy wyborze...chodzi o fprobkowania. Czytałem wszelaka literaturę ale nigdzie o tym nic nie pisze. Mam 50 Hz i wydaje...
Witaj. 1. laki_17 już wspomniał, a ja tylko wskażę źródła wiedzy - maksymalne prądy pinów, portów i uC: http://mikrokontrolery.blogspot.com/2011... - diody wymagają rezystorów: http://mikrokontrolery.blogspot.com/2011... stąd mogłeś już uszkodzić mikrokontroler. 2. Nie definiuj...
no właśnie na podstawie tego drugiego kursu udało mi się napisać tyle ile widzisz... Jasne rzucę okiem na to raz jeszcze, ale tu chodzi o to, że z gościem mieliśmy tylko 3 zajęcia w ciągu semestru a on wymaga od nas nie wiadomo czego... Dlatego proszę żebyście chociaż tyle byli w stanie zrobić za mnie. Już ponad tydzień się z tym morduje :P Dodano po...
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...
Dla 'lpt' dostępne są jeszcze dwa dodatkowe ośmiobitowe rejestry pod adresami 'BASEPORT + 1' i 'BASEPORT + 2'. Odczytujesz je tak samo( możesz również pisać na sygnały wyjściowe) jak 'BASEPORT' czyli wynik_1 = inb(BASEPORT + 1); wynik_2 = inb(BASEPORT + 2); znaczenie bitów rejestrów: !przy pinach z '~' stan napięcia na pinie jest negacją...
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...
http://obrazki.elektroda.pl/4926270100_1... Diagnozer joysticków (np. do Pegasusa) na Atmega 8 Projekt Przyszedł wreszcie czas naprawić posiadane przeze mnie joysticki do Pegasusa. Zwykle uszkodzeniu (urwaniu) uległ kabel lub taki niesprawdzony/niesprawny joystick został zakupiony bez znajomości jego przeszłości. Jeśli kable się urwały,...
https://obrazki.elektroda.pl/3563451200_... Intro Zawsze fascynowała mnie możliwość konwersji sygnału czasowego na dane w dziedzinie częstotliwości. Pamiętam jak w wieku około 16 lat dopytywałem mojego ówczesnego nauczyciela matematyki, jak działa transformata Fouriera. Dowiedziałem się wtedy tylko że jest to całka, niestety nic więcej...
https://obrazki.elektroda.pl/1533250900_... BK7231T/BK7231N to popularny SoC WiFi i Bluetooth, szeroko stosowany w produktach Tuya Smart. BK7231 można znaleźć w inteligentnych gniazdach, inteligentnych żarówkach LED, inteligentnych przełącznikach itp. BK7231 zwykle występuje w postaci modułów, które są pin-to-pin kompatybilne z modułami...
raport z mema [syntax=text]Podsumowanie Komputer: System operacyjny Windows 7 Ultimate Professional Dodatek service pack systemu operacyjnego Service Pack 1 DirectX 4.09.00.0904 (DirectX 9.0c) Nazwa komputera SAJMON-KOMPUTER Nazwa użytkownika Sajmon Płyta główna: Typ procesora Unknown, 1800 MHz Nazwa płyty głównej Nieznane Mikroukład płyty głównej Nieznane...
https://obrazki.elektroda.pl/7592930000_... Przedstawię tu jak można zrobić własny bezprzewodowy gamepad w oparciu o Arduino R4 WiFi i Joystick shield. Nasz kontroler będzie łączył się z naszą siecią WiFi i wysyłał na nasz serwer dane o wciśniętych klawiszach poprzez protokół bezpołączeniowy UDP, co zapewni nam szybką reakcję na wciskane...
http://obrazki.elektroda.net/7_123635472... Prawie rok temu, zainspirowany konstrukcją pana Kamila Przychodzenia http://obrazki.elektroda.net/18_12363549... http://obrazki.elektroda.net/82_12363551... Płytka sterownika oraz płytka organizacji połączeń http://obrazki.elektroda.net/62_12363543... http://obrazki.elektroda.net/80_12363591...
Mam do was prośbę pomożecie mi naprawić ten kod tak aby działał na PIC16F84.Ma to być częstotliwościomierz 20 Hz - 100kHz. Męczę się już od tygodnia i napotykam to nowe problemy. #include "int16CXX.h" #pragma origin 4 #define lcd_rs 0 //definicja bitu portu dla lini RS #define lcd_e 1 //definicja bitu portu dla lini E #define CR 0x0a #define...
Witam, mam problem z termometrem DS 18B20. Termometr zasilany jest pasożytniczo tylko przez środkową nogę napięciem 3,3V i podłączony do portu PB15. Pozostałe nogi do masy. Poniżej podaje funkcje napisane do termometru. [syntax=c] #include "systick.h" #define portW1 GPIOB #define wire1 GPIO_Pin_15 uint16_t RESET_PULSE(void) { uint16_t PRESENCE=0; GPIO_ResetBits(portW1,...
https://obrazki.elektroda.pl/5009750700_... Witajcie moi drodzy Oto druga część mojego praktycznego tutoriala dla ośmiobitowego mikrokontrolera PIC18F2550 od Microchipa i programatora SDCC . W tym temacie omówię podstawowe operacje cyfrowego IO na prostych przykładach. Spis części (osobnych tematów) tutoriala Tutorial podzielony jest...
Niestety problem jest dalej. Program wyświetla w pierwszej linii zawartość bufora, ale nie wiem jak tę zmienną wykorzystać dalej - chciałbym mieć możliwość jej sprawdzenia - tzn. sygnalizacji, że odczytana zawartość bufora jest zgodna z zapisanym wcześniej numerem - chodzi mi o porównanie z inną zmienną #include <stdlib.h> #include <lcd.c>...
Zmodyfikowałem nieco swój program i dodałem komentarze (może okazać się, że jestem jakimś trollem mikrokontrolerowym więc dopisałem co chciałem zrobić, w której linii, żeby ułatwić ew. wyłapanie tych błędów. Teraz wszystko ładnie się wyświetla, ale ... nie tak jak powinno. Zamiast alfabetu widzę zera, strzałki i inne krzaczki. Proszę o pomoc ;] #include...
Pobawiłem się i oddaje znowu do analizy [syntax=asm] ;Przed wyzerowaniem podaje zera na wszystkie użytkowane porty ; wyzerowanie lcd setb D0 ; podanie 1 na D0 setb E ; odwrócenie E clr E : lcall opoznienie ;podprogram z opóźnieniem clr D0 ; podanie 0 na D0 żeby nie koligowało z dalszą inicjacją ; kursor na pozycje home setb D1 ; podanie 1 na D1 setb...
atom1477 dzięki za informacje, czasu nie miałem na odpowiedź bo mi się w zeszłym tygodniu szkrab 2 urodził, dwoje dzieci ogarnąć to już masakra. Mam pytanie do moich wywodów na temat przesunięć bitowych. Z pomocą dokumentacji uruchomiłem tamten kod bez użycia bibliotek z czego jestem zadowolony bardzo. Mam pytanie GPIOC->AFR da się to mądrzej napisać?...
Wywaliłem generator 1MHz i tak jak Ty napędzam zegar sida z mikrokontrolera (DS ma funkcję clock out na timerze 2, w przeciwieństwie do 8051, można to wykorzystać jako dodatkowy kanał do dźwięku, jednak tylko z falą prostokątną, już kiedyś tak kombinowałem). Dzięki za radę, zawsze prostszy układ. Muszę tylko podłączyć 2 piny ze sobą by na wolnym porcie...
Program źle napisany ale działa. Temat do zamknięcia. #define F_CPU16000000UL//16MHz zegar procesora #include <avr/io.h> #include <util/delay.h> #include <string.h> #include <stdlib.h> #include <avr\interrupt.h> /***************************************... //*Definicje makr zmieniająćych stany bitów w rejestrach*//...
Witam wszystkich Elektrodowiczów! Muszę podłączyć wyświetlacz alfanumeryczny LCD 2x20 na sterowniku HD44780 do mikrokontrolera LPC1769 w trybie 4-bitowej transmisji danych. Wyświetlacz mam podłączony przez konwerter napięć KAMAMI Development Boards Logic Converter ST2378E. Stronę Vl (napięcie logiczne) prowadzę z płytki LPCXpresso LPC1769 (+3,3 V),...
Witam ponownie. Dzięki koledze Markowi, udało sie rozwiązać problem. Wcześniejszy kod był wzorowany na przykładzie z AtmelStudio, niestety nie chciało to współpracować. Kod z przykładu który otrzymałem wraz z LCD, napisany był w Arduino. Kompilacja przykładu, wgranie do uP, sprawiało, że układ działał. Postanowiłem, przepisać ten kod w AtmelStudio....
http://obrazki.elektroda.net/78_12829238... Potrzebuje pomocy nie działa mi dźwięk wyżej widać zrzut z everesta Win Xp jak cos dodac to pisac proszę o pomoc i linki !! + dodaje zdjecie http://obrazki.elektroda.net/56_12829253... co jeszcze pokazac? nie pokazuje mi w tym programie jaką mam kartę.??!! wieć skad mam wiedzieć + dluugi...
Witam Szanownych Kolegów. Chciałbym zaprezentować moją konstrukcję stroboskopu opartego o mikroprocesor ATmega16 i układ detekcji zera sinusoidy sieciowej. Mikroprocesor steruje impulsem wyzwalającym powstającym od trafo wysokonapięciowego. Docelowo powinien realizować obsługę przycisków sterujących częstotliwością i jasnością świecenia ksenonowej lampy...
https://obrazki.elektroda.pl/3928983600_... Opiszę naprawę dość rzadkiej konsoli, polegającą na odtworzeniu schematu pierwowzoru, zaprojektowaniu i wykonaniu płyty głównej i dalszych krokach niezbędnych do przywrócenia jej życia i funkcjonalności, w których zastosowałem swoją nowatorską metodę. Będzie więc coś dla miłośników retro,...
Witam Zmagam się z akcelerometrem ADXL345 + STM32F103. Połączenie po SPI. Otrzymuję na wyjściu wartość przyśpieszenia w kodzie U2. Zapisana jest na 13 bitach, w dwóch rejestrach 8 bitowych. Po odebraniu najbardziej znaczące przesuwam << 8 i łączę z mniej znaczącymi. Problem polega na tym, że wciąż otrzymuję wartość dodatnią, mimo że na najbardziej...
Mr. rumapark pojawiłeś się w naszym dziale na forum z prośbą pomocy a raczej zrobienia za ciebie czego kol wiek co powinieneś sam zrobić otwierając obojętnie jaką książkę związaną z grupą języków HDL. Nie zadałeś sobie nawet minimum pracy tylko wkleiłeś dwa zdjęcia i prosisz o pomoc. Jak nie wiesz to nie pisz Dziwne stwierdzenie bo Mr. Tymon_X podał...
https://obrazki.elektroda.pl/8663544600_... We współpracy z TME testujemy i uruchamiamy nowe Integracja Pico2 z Arduino jest bardzo prosta, otwieramy File > Preferences -> Additional Boards Manager URLs i dodajemy url https://github.com/earlephilhower/arduin... https://obrazki.elektroda.pl/1149548700_...
przesunięcie bitowe dzielenie przesunięcie bitowe atmega8 przesuniecie bitowe
skrzynia biegów galant emulator android muzyk pendrive
Kod 9E OIL w Chrysler Voyager - przyczyny i rozwiązania Radio Dynora - problem z potencjometrem głośności