Debouncery mam już zastosowane. A co ma piernik do wiatraka :?: Błąd masz w programie , a nie w sprzęcie :D Nie wnikając w szczegóły , dopisz jedną linię w kodzie: Do I2csend &H4E , &B00000111 I2creceive &H4F , Keys Keys = Keys Xor &B00000111 'negacja 3 najmłodszych bitów If Keys <> 0 Then Call Flashled(keys) Wait 2 Loop...
Nie masz wyjścia, jak zacząć bawić się AVRStudio ... :D Bascom potrzebuje SRAM-u, którego ten procek nie posiada... A kodzik, proszę bardzo, ale za jego kompatybilność z Bas-monster nie odpowiadam ;) : #include "m8515def.inc" ; Prohibits use of non-implemented instructions (ATmega8515) .cseg ;—————R...
wejscie =not b wejscie=wejscie and pinb
Troche się pogubilem... W takim razie PORTC |= _BV(0) ustawi jedynki na wszystkich, z wyjatkiem najmlodszego bitu, tak? W żadnym razie :!: Ustawi (zapisze 1) do najmłodszego bitu PORTC. Myslalem, ze jest inaczej... Byłeś(jesteś) w błędzie :D A jak ustawic pojedyncze bity PORTC |= 0x01; // ustaw najmłodszy bit PORTC &=~0x01 // wyzeruje najmłodszy...
użyj popularnego komponentu do RS232 czyli ComPort tam będziesz to mógł zrobić spokojnie ;)
Witam Jak odczytać stan na wyjściu DS2405? Jeden sposób dział Reset Wyślij->0x55 Wyślij->Adres 8-bajtow Czytaj->1(bajt) i w tym bajcie mam informacje o stanie na wyjściu.. tylko jest jedna wada komendy (0x55) Odczytując stan na wyjściu zmieniamy wyjście na przeciwne. Są komendy 0xF0 i 0xEC ale czytając datasheet robie jakiś błąd i nie wiem dlaczego...
Nie ma w tym nic dziwnego, po prostu standardowa klawiatura matrycowa. W tym układzie klawiatury port P0 pracuje jako wyjście, a porty P1 i P2 i P3.7 jako wejścia. Zasada odczytu jest następująca: - Ustaw "0" na linii P0.0, pozostałe linie P0 na "1"; - Odczytaj stan portów P1 i P2 i P3.7. "0" na linii portu oznacza naciśnięty przycisk (odpowiednio 64-71,...
witam problem banalny ,lecz niemogę znaleśc błedu Config Sda = Portd.5 Config Scl = Portd.4 dim value as byte I2cstart I2cwbyte 112 I2cwbyte 255 I2cstop Do I2cstart I2cwbyte 113 I2crbyte value , Nack I2cstop lcd value waitms 100 Loop End pulapy są ,układ ma adres 112 (sprawdzając szyne i2c programem : For Adres = 100 To 150 Step 2 'przeszukaj 50 adresów...
Od końca: jeżeli wypisane stany masz na myśli fizyczne stany logiczne na pinach procesora (napięcia), to jeżeli skonfigurujesz port jako wejścia to z rejestru PINB odczytasz dokładnie jak napisałeś, czyli 0x03. pullupy to sa rezystory podciągające do VCC, w przypadku AVRów można je włączyć (wtedy jeżeli końcówkę uC masz w "powietrzu" to z rejestru PINx.y...
Mam kłopot z odczytem portu D w 2313. Podłoczyłem do tego portu klawiature 5 przyciskową nzciskając przycisk wymuszam stan niski na odpowiednim wyprowadzeniu. Rejestry skonfigurowane odpowiednio: DDRD=0x00; PORTD=0xFF; Odczytuje za pomocą następującej instrukcji: liczba=PIND; pisze w AVR studio w "c"; Wystawianie odpowiednich liczb na ten port działa...
PINC & _BV(4) zwraca 0B00010000 lub 0B00000000, ponieważ _BV(4) to 0B00010000 PC0 to jest pierwszy bit więc oddaje 2^0 PC1 to jest 2bit więc oddaje 2^1 PC2 to jest 3bit więc oddaje 2^2 ... PC7 to jest 8bit więc oddaje 2^8 Taka jest zasada liczb binarnych. Jeśli chcesz z PC4 zrobić wynik 4 to musisz zrobić [syntax=c] uint8_t = 0; if( PINC & _BV(0) )...
while (1) { IOSET0 = 0x00004000; //ustawienie jedynki na pierwszej linii klawisz= IOPIN0; //odczytanie stanu portu switch (klawisz &= 0x001e0000) //sprawdzenie na którym pinie jest stan wysoki { case 0x00020000: {LCDText("1");bre... case 0x00040000: {LCDText("4");bre...
Rejestr PORTx to niejako rejestr "wyjściowy" dla portu... Tzn. do PORTx zapisuje wartość którą na port wystawiamy... Jeżeli chesz odczytać wartość "na porcie"/odczytać stan wejść to do tego służy rejestr PINx... "x" to oczywiście litera odapowiadająca portowi, A,B itd... Równocześnie z tutorialem powinieneś się zapoznawać z dokumentacją do uC...
DDRn gdzie n oznacza nazwę literową portu służy do ustalenia czy port ma byc wejsciem czy wyjsciem. PORTX wystwia konkretny stan na port (0 lub 1) PINx słuzy do odczytania aktualnego stanu z portu. Proponuję poczytanie datasheetu tam znajdziesz wszelkie informacje na ten temat.
Po prostu zrób sobie funkcję, która będzie kopiowała tylko pół bajtu: void DataOut(uint8_t data){ //skopiuj na port bity 7..4 z data. PORTx = (PORTx & 0x0F) | (data & 0xF0); } Musisz tylko pamiętać, że ta funkcja potrzebuje wpierw odczytać stan portu, potem go modyfikuje i na koniec zapisuje zmodyfikowaną wartość. Nie...
Zapisz dane w EEPROMIE a potem je z niego odczytaj ;)
Myślę, że zdążysz. Wystarczy że wszystkie 4 piny podłączysz pod jeden port. Np. PORTB : PB0, PB1, PB2, PB3. Wtedy wystarczy że w przerwaniu odczytasz tylko stan całego portu B (PINB), zaś w programie głównym zbadasz który z wentylatorów wygenerował przerwanie.
Da sie wykorzystac. Do dyspozycji masz 4 linie wejsciowe: -CTS pin 8 -bit 4 -DSR p.6 - bit 5 -DCD p.1 - bit 7 -RI p.9 - bit 6 oraz 3 wyjsciowe: -Tx p. 3 - bit 6 -RTS p.7 - bit 1 -DTR p.4 - bit 0 Masa jest na pinie 5 Nie wiem jak dobrac sie do Rx Adresy portów: Wszystkie wejsciowe znajduja sie pod adresem: glowny adr. portu +6 RTS, DTR -glowny adr. portu...
MOV P1,#255; MOV A,P1; i w A masz odczytany stan portu P1. Żeby w '51 odczytać stan portu musisz mieć ustawione najpierw na nim jedynki.
Witam Mam podłączony przez coma odbiornik podczerwieni, schemat na tej stroniehttp://www.cesko.host.sk/girderpl... Zauważyłem ze dane z odbiornika idą przez rs232 przez pin DSR i chciałbym się dowiedzieć jak mam odczytać zmiany stanu tego portu. Najlepiej w języku c++ i pod kompilator Dev-C++. Za wszelką pomoc dziekuje :) Ablo jakie biblioteki...
(...) ale na pewno możliwe jest odczytanie jego stanu logicznego w danym momencie Na pewno takiej możliwości nie ma. Port USB sterowany jest przez kontroler na płycie głównej. Procesor ma wyłącznie dostęp do kontrolera, fizyczne linie porty nie są mapowane ani na pamięć, ani na obszar I/O, ani nawet kontroler nie umożliwia operacji odczytu ich stanu.
Cześć. Próbuję odczytać do zmiennej stan portów w funkcji obsługi przerwania W ten sposób, podglądając w debugerze wartości ENC_A i ENC_B zmianiają się w zależności od stanu portu GPIOA - jak odczytuję cały port [syntax=c]void EXTI9_5_IRQHandler(void){ uint16_t ENC_A = GPIOA->IDR; uint16_t ENC_B = GPIOA->IDR; EXTI->PR = EXTI_PR_PR8; //kasujemy przerwanie...
Sam ostatnio z tym się bujałem z tym, że używam FLTK... Generalnie tryb OVERLAPPED jest upierdliwy i mi to do d... to działało... Trzeba pamiętać o tym, że funkcje odczytu/zapisu wracają natychmiast niezależnie czy odczytały cokolwiek czy nie potem to już zabawa z flagami, events itp, itd... Do odczytu, jeżeli już faktycznie coś zostało odebrane, używasz...
Spróbuj odczytać stan portu przy wyłaczonym taktowaniu PIO. Nie uda się, chociaż zapis działa.
szelus i BlueDarco odnośnie tego żeby najpierw odczytać stan portu a potem zmodyfikować te bity które chcę i potem zapisać cały port z powrotem. Ale jak za pomocą operatorów logicznych jednocześnie wpisać 0 i 1 tam gdzie chcę bez zmiany pozostałych pinów?
Dodatkowo podaję schemacik dla pojedyńczego pin'u portu P1 (u mnie), przy którym wszystko ślicznie zadziałało. Oporniczek 20k nie jest za duży a w dodatku świetnie ogranicza prąd.
Jak w temacie. Chodzi mi o to żeby odczytać stan tych portów, następnie przetworzyć i przesłać światłowodem do drugiego urządzenia i odczytać ponownie stan tych portów (po przeslaniu, w drugim urządzeniu)
Mam pytanie jak przypisać do zmiennej stan całego portu? Chodzi mi o to żeby przypisać które piny są włączone a które nie do zmiennej i wysłać to przez uart. czy istnieje takie polecenie?
Możliwość zawsze jest, nie wiadomo tylko jak chciałbyś to robić. O ile ustawienie stanów portu można zrealizować przez formularz lub zmienne w linku, na przykład www.x.y/?port=888;data=255, to odczytanie stanu portu można zrealizować na kilka sposobów - na przykład obrazek, tekst, czy HTML z zestawem radiobuttonów jako formularz.
Myślę, że da się to zrobić w sposób najprostszy. Odczytaj stan portu i zmień odpowiedni przycisk. Samo podłączenie to już inna sprawa i powinieneś chyba pokazać do chcesz dokładnie podłączyć (podać schemat, instrukcja, model urządzenia).
a skad wziales to (PINB,x)?? bo ja to pierwszy raz sie z czyms takim spotykam... np: !(PIND & _BV(4))... obczaj co i kiedy zwroci i bedziesz w domu ;)... aaa... _BV(X) to to samo co (1<<X)
Bo normalny PLC daje możliwość dostępu do grupy portów jednym poleceniem traktując np 16 portów jak słowo gdzie kolejne porty są bitami tego słowa. Spróbuj odczytać rejestr IW0 i porównaj z stanami wejść IX0.0 - IX0.F
Poza tym stosowanie operacji przypisania gdy chcesz ustawić tylko jeden bit portu nie jest dobrym rozwiązaniem. Do tego portu mógłbyś mieć podpięte inne urządzenia a stosowanie tej operacji może spowodować zmianę stanu pozostałych linii. Powinieneś odczytać stan portu, ustawić bit (lub skasować) i zapisać do portu.
Odczytaj stan całego portu i zrzutuj na maskę (operator AND)
Skoro dopiero się zaczynasz uczyć, to ciężkiego kalibru używasz (mam na myśli assemblera) a ja uważam, że to najlepszy pomysł - zaczynać od poznania asemblera. Pomimo, że początki są trudne to poznanie podstaw przynajmniej asemblera daje już dużą wiedzę co i jak można robić z prockami. A do większych później projektów czy nawet małych można spokojnie...
W Bascomi'e: na porcie D ustawiam adres urządzenia z którego później sczytuję dane portami A i C. Jeżeli nie wstawię Waitms1 pomiędzy ustawienie adresu a odczytanie stanu portów, to czytają się złe wyniki. Czemu trzeba kazać uC poczekać przed odczytem?
ok .porta podałem jako przykładowy tylko dla avr , rozumiem ze jesli zrobię config PortX.Y = Input bede mógł odczytać stan portu (0,1) oraz ustawic port (0,1) niemam teraz zadnego avr aby to sprawdzic ,czekam zatem do poniedziałku z testami :(
Więc jak najlepiej rozwiązać tą sytuację?? Podałem: No to najpierw trzeba odczytać stan portów za pomocą PORTC i PORTD do zmiennych tempC i tempD, i dopiero na nich zerować bity i dodawać stan tych ze zmiennej, a na końcu wysłać do portów.
Odczytałeś stan portu. To dobrze - przyda się. Nie wiem po co dalej robisz or 1010000b, bo w ten sposób ustawiasz napięcie na D7 i D5. Jeśli chcesz dla D1 robisz : or 00000010 - po tym odpala się dioda. Zeby ją wyłączyc : and 11111101 ( czyli and (not 00000010)) Ocztwiście or i and robisz w wcześniej odczytaną wartością z portu. W ten sposób zmieniesz...
Jako że źródła chyba nie doszły , mam zapytanie . Czy aby odczytać stan pinu np. D0 muszę w adresie bazowym 378 wpisać na tej pozycji bitu '1' i odczytać stan portu ? Jeżeli tak to jaki jest prąd płynący przez wejście ( wyjście ) w stanie niskim ?? A może coś pomieszałem :-) Znalazłęm odpowiedź na nurtujące mnie pytanie : http://www.easy-soft.tsnet.pl/artykuly/l...
Człowieku, ile razy Ci tłumaczyłem, że już same założenia masz źle zrobione bo nie można odczytać stanu portu jeżeli do niego wcześniej wpisałeś 0. Z uporem maniaka twierdzisz, że Ci to działa i że tak to ma być... A co do potrzeby forum to wydaje Ci się, że tu Ci wszystko na łopacie podadzą bo tylko i wyłącznie dlatego, że nic Ci się nie chce?
Jeśli w gre wchodzi tylko pascal to niewarto męczyć sie w assemblerze... mimo że są to tylko 3 linijki.. jeśli są prostrze metody typu port[adres]:=dana; to niema co sie męczyć i wywarzać otwarte drzwi.. w Delphi zabawa ma sie inaczej.. tam niema predefiniowanej tablicy 'port' i trzeba używać wstawek..
Więc jak to jest, że mimo przerwań ( generowanych przez TWI ) spokojnie i bez problemów działa kilkadziesiąt układów na tej samej magistrali? Do tego przerwania z kilku UARTów, liczniki, timery, ADC itd..? Czy uC komunikujac się z timerem, usartem używam magistrali szeregowej czy równoległej? Po co te wywody o Od tego są dedykowane rozwiązania SPRZĘTOWE,...
Masz racje Kaldachar jest tak jak piszesz!!! Marek81 nie trzeba najpierw wpisywac jedynki na port, aby z niego odczytać stan (bezpośrednio po resecie wszystkie porty ustawione sa w stan wysoki)!!
Sprawdzam czy przycisk zostal puszczony i dopiero wtedy kończę przerwanie. Czy tak trzeba robić ?? niekoniecznie, oczekiwanie na puszczenie klawisza można zrobić w progu glównym, lub spróbuj wogóle to pominąć, teoretycznie powinno dzialać bezblędnie z opóźnieniem na drgania styków. Nie skasujesz INTF oraz RBIF, bez odczytania stanu portu, a bez tego...
Cały czas otrzymuję w RX 00... dałby ktoś jakąś podpowiedź? Interesuje mnie już tylko odczytanie stanów z portów GPA0-GPA7.
Posiedziałem, doczytałem i naprawiłem. Tak naprawdę to problemu nie było. Opiszę co się stało to może komuś to pomoże. Okazało się że stan 0 na linii INT nie jest wymuszony przez jakieś tajemnicze czynniki, tylko sam układ MCP to robi, bo zaraz po włączeniu (z jakiegoś powodu) występuje przerwanie. Nie wiem czemu zakładałem, że przerwanie w tym MCP...
Projekt jest praktyczny, bo zabawa z portami procesora lubi się skończyć nieprzyjemnie ;). Moje R-Pi nie ma buforowania i muszę się stresować, jak podpinam coś nowego :). Wg mnie używanie tego komputera do sterowania LED lub przekaźników poza jakimiś tam walorami edukacyjnymi jest totalnie bezsensu (marnotrawstwo zasobów sprzętowych i innych). Jak widzę...
Wcale nie. Jeżeli chce się znać rzeczywisty stan portu, to należy odczytać PINB. Oczywiście będzie to rzeczywisty stan portu a nie przekaźników, bo jeszcze coś pomiędzy portem a przekaźnikami może nawalić a tego już nie sprawdzimy.
Jeżeli nie masz włączonych pull-up-ów na porcie i port "wisi w powietrzu" to, z uwagi na wysoką imedancję wejściową, port "łapie" śmieci i przy odczycie masz przypadkowe wartości. Szansa, że odczytasz same zera i dioda zgaśnie jest raczej nikła. Jeżeli włączysz pull-up-y, to oczywiście wymusisz stan wysoki.
Dla pasma 1MHz to będzie bardzo ciekawe ;) Jak już kolega diag zaznaczył z próbkami to nie problem ale zabawa będzie przy odczycie z ADC. Przy częstotliwości kwarcu 20 MHz czas potrzebny na odczytanie stanu portu (2 cykle zegarowe) wpisanie zawartości do odpowiednich rejestrów (optymistycznie - 1 cykl) kolejne operacje związanie z dalszym wykonywaniem...
PINA to tylko symbol definiujący pozycję bitu odpoowiadającego pinowi 0 rejestru A. Żeby odczytać stan tego bitu musisz zrobić if(PINA & _BV(PINA0))
ulala ... nie wiem czy dobrze zrozumiałem. Jeśli nie chcesz nic odczytywać z wyświetlacza (flaga zajętości, wyświetlane dane) to możesz ustawić wszystkie porty jako wyjściowe np. PORTB który możesz podłączyć pod DB0-DB7 wyświetlacza i trzy piny portu D np PD0-PD2 podłączone do pinów RS, R/W, E wyświetlacza. Jeśli jednak będziesz chciał odczytać np....
No to przykład masz w FAQ, temat wyżej, po co zakładasz nowy wątek? Oczywiście zanim napisałem, przeczytałem FAQ. Jednak, tam jest przykład który nie działa poprawnie. Kompiluje się bez błędu, jednak nic nie wysyła (powinien wysłać 1). Cały czas na LPT mam same zera (pod Windowsem działa, więc port jest ok). Prółbowałem też z bibliotek do których linki...
W trybie jednokierunkowym odczyt rejestru danych zawsze będzie dawał 0. W trybie dwukierunkowym zapis do rejestru danych powoduje zatrzaśnięcie wysłanej wartości. Oczyt z rejestru pokazuje stan logiczny na wyjściu. Ponieważ zatrzask pamięta wartości z ostatniego zapisu odczyt rejestru odczyt zwraca dane uprzednio zapisane. Port w trybie dwukierunkowym...
Jak już napisałem, można kombinować różnie. W tym przypadku po prostu po 62 przerwaniach zapalasz diodę, a po 124 gasisz (lub odwrotnie). W tym przypadku czas zapalenia (62 przerwania) i czas zgaszenia (124 - 62 = 62 przerwania) są równe, ale nie muszą być. Poza tym w takim rozwiązaniu znasz stan sterowanego pinu, kiedy jest w stanie niskim (pierwsze...
Zapisz to jako np. sterownik_lpt.cpp i skompiluj: po przeanalizowaniu kodu źródłowego wywnioskowałem że polecenie np: printf -get 1 podaje stan portu 1 polecienia:[syntax=cpp]printf("-get - zwraca stan portu\n"); printf("-set 0-255 - ustawia stan na porcie i dodatkowo zwraca odczytany stan\n");[/syntax]to jest taka pomoc do programu jeżeli uruchomisz...
Na porcie szeregowym odczytasz max 20KHz. Zrób w programie wątek który w pętli sprawdza stan portu COM oraz zlicza liczbę zmian stanów. Lepszy od kontaktrona byłby halotron (ew opto). Możesz ustawić poziom wysoki (+12) na jednym z wyjść portu. Oraz połączyć kontaktronem na któreś z wejść. Wejście połącz rezystorem 10K na wyjście na którym ustawisz stan...
Jestem początkujący więc proszę o wyrozumiałość. Mam pytanie: czy w Bascomie można odczytać, lub zmienić wartość pojedynczego bitu zmiennej, tak jak w przypadku np rejestrów I/O?. Przykład: W przypadku portów I/O np. w procku można odczytać stan pojedynczej końcówki portu za pomocą zapisu. Portd.3, Portb.6 itp. Czy w przypadku zmiennej można odczytać...
Deklarować owszem nie trzeba, ale żeby uC '51 coś odczytał z końcówki portu to trzeba końcówkę tego portu ustawić w stan wysoki. Tak jak w przykładzie który podałem. W dodatku musisz ustawić wszystkie końcówki które są podłączone do linii danych wyświetlacza LCD czyli D4 - D7. Co do E=1 podczas odczytu to tak, tak ma właśnie być. I ta flaga naprawdę...
Tak jak napisałeś :) Metodą zapytań i odpowiedzi. Utwórz swój protokół wymiany danych, np: KOMENDA - PARAMETR(Y) -> ODPOWIEDŹ uC . Wysyłasz do uC np: PA co uC interpretuje jako: P - odczytaj stan portu A - port A (lub 1, nie wiem jakiego uC używasz) W odpowiedzi uC wysyła bajt danych, który program PC rozbija na poszczególne bity i wyświetla, czy to...
Jak wysłać i odczytać stany na tym porcie? Poco się go otwiera? Czym różni się od LPT, myślałem że to działa na tej samej zasadzie tylko ma mniej wyprowadzeń!
Nie napisałeś nic o tym, ile będzie trwał stan wysoki (czas minimalny jeśli dany pin jest podciągany pod VCC), czy są jakieś czasy krytyczne. Co ile może pojawić się zbocze ? Generalnie ja to widzę tak: potrzebujesz zmienną. Jej wartość odpowiada wartości danego pinu, na którym masz wykrywać zbocze. Załóżmy wartość początkową 0. Gdy zmienna=0 i odczytany...
DDRB, PORTB i inne są rejestrami, ale co znaczące można uzyskać ich adres. Utwórz sobie strukturę, w której będziesz przechowywał wskaźniki na rejestry oraz jakąś maskę bitu nad którym chcesz operować. [syntax=C]#include <avr/io.h> #include <macro.h> #include <stdint.h> struct ow_pin { volatile uint8_t* pin; volatile uint8_t* port;...
Tak jak podasz na linię stan niski to z powodzeniem bedziesz mógł to odczytać w PINB. Może toche się powtarzam ale generalnie podsumowując jest tak że: DDRB=0 PORTB=0 to masz port jako wejscie bez podciagania wyjscie wisi w powietrzu DDRB=0 PORTB=1 to masz port jako wejscie i ty jest podciagniety do plusa (na wyjsciu jest 1) DDRB=1 PORTB=0 to masz wyjscie...
Jedyne co uC potrafi zrobić jednocześnie to wystawić kombinację zer i jedynek na jeden ze swoich portów ustawiony jako wyjście lub odczytać stan jednego portu ustawionego jako wejście. Tak więc jeśli jeden silnik krokowy posiada 4 końcówki do sterowania to podpinając dwa takie silniki do 8 bitowego portu dostaną one sygnał sterujący jednocześnie. Wystarczy...
Jeśli na wiersz podajesz stan niski, a potem po naciśnięciu klawisza próbujesz odczytać stan na linii z kolumn - to nigdy na porcie (np. p1.0) nie pojawi się stan niski. Diody to uniemożliwiają.
W ten sposob to odczytasz raczej bufor lpt-a a nie faktyczny stan jaki znajduje się na jego pinach Nie, w ten sposób zostanie odczytany stan na pinach portu. :) Dlaczego uważasz, że bufor sobie, piny sobie? A specyfikację LPT Waść czytał?
Witam. Jaka komenda w środowisku Arduino pozwala odczytać, sprawdzić stan pinu w monitorze portu szeregowego? Oczywiście po deklaracji Serial.begin(). Pozdrawiam.
Witam Jest jedna ATmega16 pracująca jako master i wystawiająca daną 8 bitową na dany port. Chcę tą daną wysłać jednocześnie do kilku ATmega8 podłączają bezpośrednio pod określony ten sam port we wszystkich ATmega8, czyli taka równoległa magistrala z masterem i kilkoma slave'ami. Ciekawi mnie ile sztuk ATmega8 mogę podłączyć aby pojemności wejściowe...
Chciałam dołączytć do rozmowy, proponuję przeczytać dobry artykuł www.lpt.strona.pl - omawia dwa tryby pracy - directional (typowy dla drukarek) oraz bidirectional (czytanie portu) do artykułu dodaję własny programik testujący, który działa ze sterownikiem inpout32.dll. Chciałem dodać, iż na klawiszu masz aktualny tryb pracy portu, zmiana następuje...
Trudność polega tylko na włączeniu tylko jednego przekaźnika, nawet jak nacisnę inny guzik układ nie może przełączyć, dopiero po skasowaniu (wyłączeniu danego przekaźnika) można włączyć inny przekaźnik. Wybierasz adres I2C odpowiedniego expandera i ustawiasz stan odpowiedniego portu w tym ekspanderze w celu załączenia odpowiedniego przekaźnika. Resztę...
No prosta sprawa :P Skoro stan '0' zapala diodę, to musisz zanegować odczytane wartości. Przykład na przykład: Wklepujesz 1+1 -> na porcie dla wklepanej jedynki masz stan taki: 11111110, po dodaniu takich dwóch liczb otrzymujesz wynik: 11111100, a więc zapalają się dwie ostatnie diody i udają, że wynikiem jest trzy :P A teraz negujemy: ~11111110 + ~11111110...
DAC0808 - nie ma kompletnie żadnej filozofii. POdłączasz go do jakiegokolwiek ośmiobitowego portu, ustawiasz kierunek (DDRx = 0xff;) i zapiszujesz wartość (PORTx = wartosc;). PCF8591 - http://elportal.pl/index.php?module=Cont... część szósta, pobierz listingi. ADC0820 - podobnie jak DAC0808 podłączasz do portu ośmiobitowego....
CTS zawiera sie w MSR - przemieszczenie 06h. stan tej linii to bit 4 a bit 0 to stwierdzenie zmiany poziomu sygnału. pozdr.
Witam Nie jestem zbyt dobry jeśli chodzi o programowanie. Ale zależy mi na programie w pascalu który by sterował stanami na porcie LPT. Nie mam pojęcia jakiej komendy użyć do wykrycia portu, odczytania jego stanu, oraz jego zmiany. Załóżmy że do portu będzie podłączony przekaźnik i rezystor. Chciałbym się dowiedzieć jak mogę go włączyć i jak sprawdzić...
witam Mam taki podstawowy problem z odczytem stanów pinów portów bo moj kompilator nie instrukcje typu: sbi(DDRX,PXY) itd. nie kompiluje. Chce odczytać stany pojedyńczych pinów portów np. DDRB=0x0; //ustawiam portB jako wejście int a,b; w=stan pinu PB.0 // chce zczytać stan pinu PB.0 -jaką instrukcją to zrobić? b=stan portu B //chce zczytać aktualny...
Tak, tylko bezpośrednie wykorzystanie dwóch rejestrów w Bascom jest nieco kłopotliwe - nie wiadomo jak będą wykorzystane w danej chwili. Ale jak twierdzi petione nie interesuje go co będzie przed i po, zatem kod asm musiałby być bardziej rozbudowany. Wrzucenie rejestrów na stos, odczytanie stanu rejestru portu do rejestrów procesora, operacja logiczna...
W Com RS232 podałem Ci błędnie TXD a ma być RXD (Receive Data), sorry. Oprócz tego na tym comie masz jeszcze wejścia CD (Carrier Detect), DSR (Data Set Read), CTS (Clear to Send) oraz RI (Ring Indicator). Stany wejść portów zwarcie "0" rozwarcie "1" możesz odczytać z odpowiednich rejestrów. Dostępne są jeszcze 4 wejścia na LPT i dodatkowo na Gameport/joystick/MIDI...
Witam mam pytanie czy dużo pracy jest z napisaniem "OS'a" a dokładniej programu (uruchamianego na czystej maszynie np. z dyskietki) który wyświetli coś na monitorze i będzie umiał odczytać stany pinów jakiegoś portu np. LPT czy COM, i w jakim języku pisze się coś takiego ?
Witam! Mam pytanie czy możliwe jest odczytanie stanu przewodów Data+ i Data- portu USB? Jeśli tak to w jaki sposób najłatwiej tego dokonać?
Analiza cudzego programu to koszmar :) Kilka uwag: - zmienne "leweprzod" i pozostałe daj typu WORD, ponieważ ADC zwraca wartość 0-1023, więc po co tam pakować Integer - zmienna A spokojnie jako BYTE - spróbuj użyć aliasów zamiast "reset portb.0" dajesz "reset lewyprzod", możesz wówczas zrezygnować ze zmiennych bitowych np. LP, bo to sobie odczytasz...
Witam Problem dotyczy monitoringu kilkudziesieciu urządzeń poprzez komputer, tak aby było wiadomo czy dane urządzenie jest włączone czy nie, no i najlepiej możliwość tworzenia jakiś statystyk. Co do softu powiedzmy że mam zapewnioną pomoc, chociaż może istnieje jakaś możliwość wykorzystania jakiegoś gotowego programu ?. Niemam pojęcia z jakiego portu...
Opóźnienie które jest potrzebne do prawidłowego działania portu jako wejścia wynika z jego budowy : aby odczytać istniejący na porcie stan musi on zostać przepisany do wewnętrznego rejestru z którego go odczytujemy .Dzieje sie to podczas tego cyklu zegarowego (nop) . Widać to na schemacie portu przerzutnik zwany u atmela "synchronizer" taktowany sygnałem...
Wspomniane "pomnóż logicznie przez 0xF" znaczy tyle co "wykonaj operację bitowego AND z 0xF". Wartość 0xF to ustawione cztery najmłodsze bity, jej efektem będzie to, że na tych bitach z odczytanej wartości nic się nie zmieni, a pozostałe zawsze będą zerami.
Dokładnie tak jak kolega mankinen napisał. To jest jedna z pułapek przy stosowaniu aliasów. Zazwyczaj z tego powodu nie stosuję aliasów, a jak już to zawsze daję aliasy podwójnie np. [syntax=basic4gl]OPrzycisk alias pinb.0 Zprzycisk alias portb.0 [/syntax] Pierwszy kiedy mam coś odczytać z pinu, a drugi gdy zapisuję jego stan.
Mały przykład, ale bez wykorzystania funkcji Debounce. Przed odczytaniem stanu przycisku, zapamiętywany jest stan portu. Odpowiednie Piny są ustawione jako wejścia, następnie sprawdzane jest czy przyciski są wciśnięte. Stan przycisku jest zapamiętywany w zmiennej Tempkey, zostają przywrócone stare ustawienia portu. [syntax=basic4gl]$regfile = "m8def.dat"...
zmieniajac adres na inny niz 112 ,program pokazuje że pod tym adresem nie ma układu,wiec pozostaje przy adresie 112 i ... napisałem prosty program i stan portów mogę odczytać ,przez podanie przez rezystor 4.7k +5V lub zwierając porty pcf'a do masy ale dalej nie mogę sterować stanem pinów pcf'a :/
w obsludze przycisku ta linijka w kazdym z warunkow: w = 1; jest po prostu bezsensowna - po co ustawiasz zmienna, skoro zaraz za tym wychodzisz z funkcji? dalej - procedura jest bezsensownie rozbudowana. wystarczy sprawdzic JEDNA instrukcja, czy wcisniety jest ktorykolwiek przycisk, poczekac ile tam chcesz, potem sprawdz jeszcze raz czy odczytana wartosc...
Witam Potrzebuje napisać w delphi aplikacje, która odczyta stan pinów portu COM. (stan wysoki niski). Proszę o pomoc i wskazówki. Pozdrawiam Krzysiek
port P2 jest bez PULL UP, wiec może okazac sie koneiczne zewnętrzne podciągniecie portu do +
Ja to zawsze zaczynałem zabawę z I2C w nowej rodzinie procesorów od podłączenia takiego scalaka - PCF8574. To jest po prostu jeden port I/O (expander) ustawiany/odczytywany przez I2C. Można łatwo sprawdzić czy na którymś z jego pinów pojawił się odp. stan logiczny po wysłaniu bajtu przez I2C - i odwrotnie - wymuszając dany stan logiczny na danym pinie...
W sumie jeśli pierwszy bajt wyślesz jako 0b01010101 a program rozpozna, że rozpoczęła się transmisja to dałoby się conajmniej dwukrotnie zmierzyć jaki czas trwa stan wysoki i na podstawie tego można już określić jaką prędkością transmisji nadawca się posługuje. Z tym, że trzeba taki bajt synchronizujący wysłać - a nie zawsze będzie to możliwe. Można...
Przypomniało mi się coś ze studiów , czy przypadkiem opisana metoda generacji rozkładu nie jest liczeniem całki metodą Monte Carlo??????????? Istnieje jeszcze kwestia inicjalizacji takiego generatora, na PC da się to dobrze zrobić ale na mikrokontrolerze czy DSP to mam wątpliwości co do przypadkowości wartości startowej dla generatora rozkładu jednostajnego....
Polecam lekturę: http://elinux.org/RPi_Low-level_peripher... Przykłady zapisu i odczytu portów GPIO na RPi. Wystarczy wybrać swoje ulubione. Polecam bash i metodę z punktu 3.7.1 (do pętli, która odczyta stan GPIO, wykona komendę i zaśnie na 10 minut więcej nie trzeba).
O dzięki Wam dobroczyńcy - pomogło :D Pewnie wcześniej zająłbym się tym JTagiem , ale źle odczytałem stan fusbitów.
avr'y mają programowalne piny wejścia/wyjścia, posiadają tranzystor zwierający do zasilania/masy (port jako wyjście) oraz otwarty kolektor/pull-up (port jako wejście). całość się prezentuje tak: DDRx = 0; PORTx = 0 to pin jest zwierany do masy DDRx = 0; PORTx = 1 to pin jest zwierany do zasilania DDRx = 1; PORTx = 0 to pin jest typu otwarty kolektor...
Zgaduję, że UPS sygnalizuje poprzez zwarcie... ale do portu COM przydałoby się, żeby dawać napięcie + albo - (w zależności od stanu logicznego) 3..12V, więc może będzie potrzebna jakaś elektronika, żeby je uzyskać. COM ma 4 piny, które działają jako sygnały stanu modemu: DSR, CD, CTS, RI; zmiana ostatniego generuje IRQ dla każdego kierunku zmiany, pozostałych...
'51 ma tą zaletę (choć w niektórych przypadkach to jest wada) nad np. AVR, że tam nie trzeba wybierać czy dany pin ma być wyjściem czy wejściem. Dlatego zwarcie pinów, które mają różne stany nie jest wogóle szkodliwe dla uprocesora. Na samym wyjściu w '51 jest opornik do zasilania oraz tranzystor zwierający do masy (gdy tranzystor zwarty to jest '0'...
nieźle kolega nakombinował, ale czy nie lepiej tak nawet dla siebie - bardziej przejżyście to zaprogramować? #define KEY_PIN 0 #define KEY (1<<KEY_PIN) // tu ustalasz sobie do których pinów portu masz // podłączone diody LED - w twoim przypadku 0 i 1 #define LED1_PIN 0 #define LED2_PIN 1 // można sobie zdefiniować dla ułatwienia dalej...
odczytanie stanu portu arduino odczytanie stanu całego portu sprawdzanie stanu portu
kogut lampa rodzaj enkoder einhell młotowiertarka
Opel Meriva - Nierównomierna Siła Hamowania Prawa Strona Jak wyjąć silnik z pralki Amica Navigator?