Nie DDRD tylko PORTD. DDRD ustawia funkcję portu czyli wejście bądź wyjście. PORTD ustawia stan portu. czyli: PORTD=0x02; // Stan wysoki na wyjściu portu D1 PORTD=0x00;// stan niski na wyjściach portu D
Witam Jesli ustawiasz port jako wejście, to właczasz podciągnięcie. Chodzi o to zeby był stabilny stan na pinie, co polepsza odkłucanie portu. Jeśli pojawi sie zero logiczne to procesor to wykryje i wykona jakś część programu. Pozdrawiam
GPIOB->MODER = (GPIOB->MODER & ~GPIO_MODER_MODE8) | (~GPIO_MODER_MODE8); // input mode To jest na pewno źle, choć przypadkiem robi to czego oczekujesz (ustawia pin PB8 jako wejście) + coś czego nie oczekujesz (ustawia wszystkie pozostałe piny portu B jako wejście analogowe). Na niepodłączonym pinie wejściowym może być generalnie dowolny stan, równie...
Czyli po prostu ustawić dany pin jako wejście i dać mu stan wysoki Tak. PORT służy do ustawiania stanu wysokiego/niskiego na portach. Doprecyzowując. Tak, jeśli to wyjście. Włączanie podciągania jeśli wejście.
Witam. Zaczynam zabawę z uC (w jęz. C), ale nie mogę znaleźć nigdzie opisu ustawiania portów(wejście , wyjście), chodzi mi o komendy: DDRB = 0xFF; DDRD = 0xFC; PORTB = 0xFF; PORTD = 0xF7; Czy mógłby mi ktoś wytłumaczyć to "łopatologicznie"? Pozdrawiam.
Najlepiej poczytaj note katalogową tam masz wszystko opisane włącznie ze schematami portów.
A o który pin IO ci chodzi? Bo to co robisz cztery piny portu ustawia jako wyjście (3-6), pozostałe jako wejście. Potem odczytujesz stan portu, ale twoje maskowanie andi wycina tylko pin 1. W efekcie twój warunek jest spełniony jeśli wszystkie piny z wyjątkiem pinu nr 1 (którego stan jest bez znaczenia) są równe zero. Ponieważ inne piny też są wejściami...
Tak jak pisze kolega wyżej musimy wiedzieć co włączasz. Do przerwań trzeba włączyć AFIO bo funkcja GPIO_EXTILineConfig() prawdopodobnie grzebie w rejestrach AFIO->EXTICR bo tam się ustawia, który port ma być wejściem dla danego przerwania EXTI. I to by wyjaśniało wszystko bo domyślnie ustawiony jest port A.
Witam... To co się rzuca w oczy to np... Dwa razy ustawiasz port B jako wejście więc nie wiem po co jeszcze ustawiasz cały w stan niski... Po czym w obsłudze przerwania w stan wysoki...?.!.? To B ma być jako wyjście czy wejście...?.?.? Pozatym dwa razy grzebież w rejestrze TCCR1B także to co ustawiłeś za pierwszym razem zostaje wyzerowane za drugim...
#define speaker_pinA_DDR DDRC co oznacza (chyba) ustawienie portu jako wyjście Nie! To tylko zwiększenie czytelności i elastyczności programu. Ta linijka nie ustawia kierunku portu. Każdy port ma swoje trzy rejestry: PINx (do odczytu), PORTx (do zapisu) i DDRx (do ustawienia kierunku). X to literka oznaczająca dany port (np. A). W rejestrze DDRx każdy...
DDRC - to jedynie ustawianie portu jako wejście lub wyjście tymczasem musisz ustawić jakąś na porcie (1 lub zero lub stan hi-Z) Ty tego nie robisz. Moja rada: porównaj jak to robią inni. Dołączam plik z przykładową implementacją poszczególnych funkcji w C. Bardzo ważną sprawą w tym protokole jest timing. Pozdrawiam p.s. po krótkim zastanowieniu ustawianie...
W stanie resetu wszystkie porty są ustawiane jako wejścia Hi-Z, jeśli reset nic nie daje to mikrokontroler nie może być sprawny.
Ustawiam linie portu jako wejście (DDRD tej linii 1) Jasne... ja bym ustawil 0... Poza tym tak dobrze myślisz:)
Proponuję zastanowić się czy mikrokontroler będzie tylko i wyłącznie czekał na przyciśnięcie przycisku czy robił coś jeszcze poza tym. Jeżeli tylko i wyłącznie będzie oczekiwał na przycisk to porty ustawiasz jako wejścia i sczytujesz stany. Natomiast jeżeli zajmiesz go czymś to proponuje wykorzystać przerwania. Nowsze mikrokontrolery (potomki Atmega8...
Mam problem z portami a Attiny26 mianowicie ustawiam: Ustawiam piny portu b jako wejście ustawiam na nich stan wysoki nawet na wszelki wypadek zeruje bit MCUCR.6 żeby było wszystko zgodnie z tabelką z dokumentacji tak aby były włączone pull-up. Gdy pisze prosty program to wejścia zachowują sie jakby nie były podciągnięte wewnętrznymi rezystorami, jak...
Było już na ten temat nie raz ale co tam... Są trzy rejestry odpowiadające za porty... DDRx - ustawienie portu jako wejście lub wyjście (rejestr kierunku)... PORTx - odpowiada za ustawienie stanu portu (stan wysoki/niski na poszczególnych pinach lub całym porcie) "wystawienie" wartości na port... PINx - odczyt wartości z portu lub stanu pojedynczych...
DDRA &= ~(1<<PA0); /* ustawienie portu A na wyjście */ Uważam iż ten zapis ustawia port na wejście. Tu na wyjście. DDRA |= (1<<PA0); //ustawienie pinu na wyjście
ustawianie stanów logicznych na pinie odbywa się w przypadku 1-wire nieco inaczej niż pokazałeś. Ty ustawiasz kierunek i wymuszasz stan, a to troche nie tak. Ustalać powinieneś jedynie kierunek transmisji. Domyślnie w rejestrze PORTx są same zera, więc nie musisz się nim w ogóle przejmować. Dla np resetu powinno być tak: ustawiasz port jako wyjście,...
Tak jak pisałem wcześniej - jeżeli masz już uruchomiony DMZ, na routerze II uruchamiasz zarządzanie zdalne i pozostaje tylko kwestia wyboru portu. Gdy jest dostępna funkcja wyboru niezależnego portu dla zarządzania z zewnątrz, to ustawiasz sobie jakiś inny nr portu niż 80 i po tym porcie będziesz mógł wejść z internetu, a z LAN-u pozostanie normalnie....
Z noty katalogowej uC AVR wynika, że początkowa wartość rejestrów sterujących portami to 0, czyli ustawiają port jako wejście. Skoro tak to możesz podciągnąć wyprowadzenie do masy i uzyskać zamierzony rezultat.
Czyli jeśli dobrze rozumiem aby celowo ustawić stan nieokreślony muszę za każdym razem ustawiać określoną końcówkę portu jako wejście?
Czy możesz wskazać, pod jakim tytułem szukać? Bo coś nie mogę trafić. Np. WS2801 lub podobne. Jeden układ ma 3 wyjścia do sterowania LED, można je wykorzystać do innych celów. Niestety nie ma wejść w takiej wersji. Bootloader i programowanie przez usb, jako część chytrego planu, żeby po złożeniu klocków przekazać je "użytkownikowi końcowemu" wraz z...
Jeśli w konfiguracji laptopa widzimy, że nośnik jest odłączony to znaczy, że ma problem z negocjacją szybkości portu. I wtedy ustawianie adresu statycznego nie pomoże nic. Możesz jeszcze sprawdzić czy w tym czasie na routerze i laptopie właczają się lampki na porcie (jeśli są takowe). Wejdź w konfigurację karty sieciowej i spróbuj na sztywno ustawić...
Witaj. Porty ustawiasz jako wejścia, bez podciągania - to bardzo źle (upływność jest losowa i zależna np od zbliżanej ręki) i sprzeczne z komentarzem w kodzie :) Porównaj z moim przykładem dla ATmega8A dla zasilania 4,85V uzyskałem 0,8µA : http://mikrokontrolery.blogspot.com/2011...
Rozumiem że te porty ustawiasz jako wejścia (czyli DDRB = 0XFF), Drobna pomyłka bo powinno być DDRB = 0x00, czyli DDRB = 0b00000000. Niby drobiazg, ale początkującemu może namieszać. W procesorach AVR każda końcówka I/O powiązana jest z trzema rejestrami, które to decydują o przeznaczeniu tej końcówki. Te rejestry to: DDR - rejestr kierunku, ustala...
W układzie jest tylko jedna dioda czy pod każdym klawiszem? Dorzuć schemat podłączenia do procesora. [syntax=c] WIE^=0b11111111; KOL^=0b11111111; [/syntax] Defakto robisz coś takiego. [syntax=c] DDRD^=0b11111111; PORTD^=0b11111111; [/syntax] Możesz wytłumaczyć tą kombinację, po co zmieniasz ustawiania portu? Raz cała brama jest wejściem drugi raz cąła...
Po pierwsze, jak chcesz sprawdzać tylko wartość przed przecinkiem to po co mnożysz to przez 10? ;) tzn możesz ale po co ? Po drugie - gdzieś ty umieścił to przypisanie temperatura = coś tam ???? Toż to trzeba zrobić w warunku, który dokonuje pomiaru bo po drodze masz badane dwa razy różne temperatury i zmienna cel raz przybiera w pętli głównej wartość...
na porcie nie masz stanu wysokiego dlatego że twój " program " ustawia port jako wejście i podciąga je do logicznej jedynki a potem ustawia port jako wyjście poprawna kolejność to : DDRB = 0xFF; // cały port b jako wyjście PORTB = 0xFF; // wszystkie piny w stanie wysokim
Udało się zejść do wartości <2µA ! Okazało się że pływał pin MOSI, mimo że cały port był ustawiany jako wejście i podciągnięty do "1". Robię teraz tak że najpierw cały port ustawiam jako wejście, podciągam, a na koniec ten jeden pin ustawiam na wyjście i wystawiam stan wysoki. Doszedłem do tego w ten sposób, że wziąłem kawałek przewodu który...
Faktycznie. Sprawdzone i działa. Sam pull-up wystarcza - fototranzystor się nasyca dając 0 na końcówce portu. Oczywiście końcówkę portu ustawiamy jako wejście i ustawiamy na nim stan "0". Dla dokończenia tematu po drugiej stronie transoptora jest: +Vcc (9V) | fotodioda (transoptora PC847) | rezystor 470 Ohm | sprzycisk (microswitch) | masa
W drugim przykładzie ustawiasz jednocześnie PD6 i PD7, w pierwszym przykładzie tylko PD6, być może masz włączone przerwanie od komparatora AIN0/AIN1, wklej cały schemat, być może stan linii PD6 i PD7 wpływa na wejścia PD2 i PD3.
No więc cały port B ustawiasz jako wyścia, oraz cały port D jako wejścia tzn że na na samym początku programu powinno być: DDRB = 0xFF; DDRD = 0; I całą tą funkcję można zbudować dużo prościej. Po wcisnieciu przycisku np 2 będą zapalane diody D1 i D2 czyli PORTB = PIND - 1; (bo wiadomo że na pinie PD2 pojawi się 1, czyli wczytamy liczbę 4, a musimy...
Te filmiki już oglądałem i trochę się z nich dowiedziałem na temat podłączania pod programator i ustawianie portów jako wejść/ wyjść, a chodzi mi bardziej o sam język programowania.
Cześć, Mógłby mi ktoś wyjaśnić dlaczego jak ustawie rejestr DDRA=0xFF (wyjście) PORTA=0xFF lub PORTA=0x00 i na nóżkę PA0 podepnę switch to dalej mogę odczytywać wejście?? TZN mimo że ustawiam port na wyjcie to dalej mogę odczytywać stan portu jakby to było wejście
Lini ow nie ustawia się pullupem tylko rezystorem który jest podciągnięty do 5 V ! Dzięki przeładowaniu linii "jedynką" z portu można uzyskać magistralę kilkuset metrową. Nawet przy slocie odczytu ow pomagam podciągnąć linię jedynką z portu przez us i dopiero ustawiam port na wejście.
Sprawdź czy w programie nie ustawiasz po raz drugi portów jak wejście czy wyjście. Skoro działało na porcie A to podłącz jeszcze raz pod ten port i sprawdź dokładnie w jakiej konfiguracji działa.
By setować porty należy ustawić rejestry DDRn na wejście lub wyjście. Masz ustawione DDRn na wejście i setujesz pullupem(podciągasz pin portu do VCC).
co do wejścia z pullup: kasujesz odpowiedni bit w DDR (ustawiasz jako wejście), a odpowiedni bit w PORT ustawiasz. co do kodu: losowo? może to być spowodowane przez 2 rzeczy: po pierwsze nie masz żadnego eliminowania drgania styków (jeśli takowe mogło by się pojawić), po drugie sprawdzasz nie przejście 1->0 tylko sprawdzasz, czy przycisk jest naciśnięty...
Nie ma nic prostszego, niż połączenie każdego końca przewodu do innej linii portu uC. Minimalistyczne testowanie wiązki polega na tym, że ustawiasz wszystkie linie poza jedną jako wejścia podciągnięte do plusa, jedną jako wyjście w stanie 0 i sprawdzasz, czy masz dokładnie jedno wejście w stanie 0. I tak dla każdej linii. Jeśli brakuje Ci linii portów...
Przyciski muszą załączać przekaźnik nawet jak kontroler będzie wyłączony, to konieczność w moim przypadku stąd takie kombinacje. Na razie zrobię podciąganie wewnętrzne i zobaczymy jak będzie sobie radziło w dośc trudnym środowisku. Czyli generalnie zewnętrzne podciąganie jest pewniejsze? A jak wtedy ustawiać port, też go podciągać czy ustawiać jako...
Hi, Po pierwsze ustawiasz kierunek portu dla PC1, a gdzie ustawienie dla PC4? Nawet jeżeli po resecie jest ustawiony jako wejście to dobrym zwyczajem jest go ustawić tak jak należy. Po drugie w najprostszym wypadku to co chcesz zrobić: [syntax=c]if( !(PINC & KEY) ){ /*jezeli stan niski to...*/ PORTC |= RELAY; _delay_ms(10000); _delay_ms(10000); PORTC...
Posiadana przez Ciebie karta zaprojektowana została najwyraźniej do pracy ciągłej, bez wyłączania komputera sterującego. Sterowanie przekaźnikami odbywa się BEZPOŚREDNIO przez ustawianie poszczególnych wejść (bitów) portu LPT w stan niski lub wysoki – i to właśnie jest Twój problem. Podczas uruchamiania komputera PC (dotyczy to każdego komputera!)...
ano widzisz - teraz lepiej, po pierwsze mała uwaga - po co te kondensatory C8 i C9 na wejściach INT0 i INT1 ?????? odłącz je rozumiem, że kwarc oraz kondensatorki 33pF dałeś maksymalnie blisko nóżek procka - teoretycznie ścieżki do nóżek kwarca nie powinny być dłuższe niż 3cm i mam nadzieję, że dałeś już teraz kondensator 100n oraz ze 47uF przy samych...
Nie wiem czy to zamierzone, ale w tym fragmencie kodu nie masz bit_is_clear: if(PIND,PD0) { PORTB &= ~0x84; } Będzie to zapewne powodować ciągłe wysyłanie danych na port B. Ustaw też jawnie port D jako wejście - DDRD = 0x00 przed włączeniem rezystorów podciągających. Wiem że jest domyśle ustawianie portów na starcie jako wejście, ale...
Pozostałe piny nie są podłączone do niczego. Tu może być problem. W DS tam gdzie są podane prądy zasilania, wyraźnie jest podany warunek podłączenia nieużywanych wejść GPIO do masy lub Vdd. Jeśli co najmniej ustawiłeś port A do współpracy z ledami to pozostałe piny tego portu (jeśli ich nie konkretnie nie ustawiałeś) są wejściami (wartość po resecie...
Witam, Mamy sygnal pwm 3.3v-5v 49hz 50% wypełnienia i w tym czasie stycznik ma być wyłączony a w zakresie 50.1hz-153hz wlaczony. Czy jest możliwość wykonania takiego układu w oparciu o stycznik bądź triak? Rozumiem, że masz jakieś źródło impulsów PWM. Zatem dobrze byłoby tu użyć procesora. Jeden z portów ustawiasz jako wejście i podłączasz do tego źródła....
Nie, zapisy PORTB.DIR|=PIN0_bm; i PORTB.DIRSET=PIN0_bm; z grubsza robią to samo - z grubsza, bo drugi to robi w sposób atomowy, a pierwszy nie, w efekcie końcowy efekt nie zawsze będzie taki sam. Z kolei zapis PORTB.DIR=(1<<PIN_bp); zmienia dany pin na wyjście, ale jednocześnie wszystkie inne zmienia na wejścia.
Witam No też to zauważyłem i śmiga wszystko bardzo ładnie i ślicznie z ADC w oparciu o PWM i potencjometr logarytmiczny. Super sprawa. A powiedz mi jedną rzecz Jak zrobić pomiar temperatury bo mam termometr LM35 i nie mam pojęcia co dalej zrobić tzn podłączam wyjście termometru TEMP pod wejście na ADC ( które w medze128 jest na porcie F ) więc ustawiam...
W tym przykładzie po komendzie: [syntax=c] LCD_DATA_READ() [/syntax] (która ustawia port jako wejście) faktycznie są wywoływane komendy: [syntax=c] LCD_RD_CLR(); LCD_CS_CLR(); LCD_CS_SET(); [/syntax] ale one się odnoszą do innego portu a makra do odczytywania wartości z portu to np: [syntax=c] #define LCD_DATA_GET(x) x = PIND [/syntax]
Zapis typu: PORTB |=_BV(0); powoduje wystawienie stanu wysokiego na końcówkę 0 Portu B. Zaś zapis typu: PORTB &=~_BV(0); powoduje wystawienie stanu niskiego na końcówkę 0 Portu B. Czyli zapis typu |=_BV(x); powoduje ustawienie danego bitu zaś zapis &=~_BV(x); powoduje zresetowanie danego bitu. Odnośnie DDRX to 1 oznacza ustawianie jako...
Nastepnie ustawilem sobie pin jako INPUT, ustawilem na nim stan LOW, Ustawiasz jako wejście, natępnie ustawiasz niski i oczekujesz, że port zacznie pracować jako wyjściowy? Takie działanie, spowoduje tylko wyłączenie podciągania na porcie. Faktycznie brakuje ci podstaw.
DDRD = 0xF0; PORTD = 0x00; (...) if(bit_is_clear(PINC,PC0)... (...) przycisk zwiera do masy PC0 Na samym początku ustawiasz port jako wejście, a potem wyłączasz pull-upy, czyli pin ma wysoką impedancję wejściową i sobie "pływa" na jakimśtam potencjale, niewiadomo jakim. Napis pojawia się sam bo widocznie powolutku ten potencjał zmierza...
Przepraszam, nie przyczytałem dokładnie pierwszej wiadomości. Jak rozumiem, masz wyjście w stanie niskim, a chcesz, żeby zrobiło się z tego wejście z pull-up. Jeżeli z zewnątrz nie jest podłączone żadne napięcie (a nie jest, bo inaczej wyjście stanie niskim zostałoby zabite), to po prostu zmieniasz DDRB na wejście. Nastęnie ustawiasz pull-up (lub nie,...
A więc tak. 1. ATmega8 nie posiada linii PC7. 2. Linia PC6 jest wykorzystywana jako reset. Żeby użyć jej jako linii IO należy przestawić odpowiedni fusebit. Jednak wtedy tracisz możliwość programowania ISP - wtedy pozostaje tylko programator równoległy. Być może wiesz o tym, ale skoro już piszę to warto było wspomnieć. 3. PORTC = 0xff; Ustawiając port...
Co do switchy to rozumujesz prawidłowo, są zwierane parami. Co do sterowania - wiesz jak się steruje multipleksowo wyświetlaczami? No więc klawiaturą się steruje tak samo. Port sterujący np. kolumnami ustawiasz jako wyjście, podt do którego masz podłączone rzędy ustawiasz jako wejście. Teraz wybierasz kolumnę i patrzysz który rząd zareagował, co jednoznacznie...
Nie analizowałem wszystkich przykładów podanych, ale np michalko ustawia cały port jako wejście. I pewnie znowu mamy tu do czynienia z tym o czym mówił tmf: pojemności pasożytnicze itp...
Jeżeli pytasz o logikę współpracującą z mikrokontrolerem - może być problem, bo podczas resetu wszystkie porty są ustawiane asynchronicznie na wejścia (czyli stan wysokiej impedancji). Przez np. TTLe jest to interpretowane jako stan wysoki. Poradzić na to mogą rezystory ściągające do masy o odpowiednio dobranej wartości. Jeżeli potrzebujesz metody ustawiania...
W Menedżer Urządzeń jest opcja ustawianie wejść USB
czy chodzi Ci o pewnego rodzaju translator czy o przesył danych w tym formacie? Jeśli translator to sprawa jest prosta, jeden z portów ustawiasz jako wejście logiczne wykorzystując 4 piny. Jeśli to port B to sprawdzasz sobie wartość PINB np. używając instrukcji switch switch(PINB) { case 00000001: {} case 00000010: {} i tak dalej aż do 10 ewentualnie...
Lepiej nie przyzwyczajaj się do takich akrobacji tylko podłącz porządnie z rezystorami. Programowe może i by było (nigdy tak nie robiłem to nie jestem pewien) ale musiałbyś liczyć się z tym, że czasem mogłoby "coś nie zaskoczyć". Ja trzymam się zasady, że trzeba korzystać z każdej możliwości, która odciąży procesor (tu by miał dodatkowe zadanie bo podciągałby...
Witam. Co do sprawdzania pinu jako wejścia to spróbuj: bit_is_set(PORTx.IN,y) gdzie x to interesujący Cię port a y to interesujący Cię pin. Ustawianie wyjść to albo przez rejestr OUT (tzn PORTx.OUT) albo przez konkretny PORTx.OUTSET, PORTx.OUTCLR lubPORTx.OUTTGL
Nie wiem, w jaki sposób podłączasz ten gramofon. Nie możesz używać USB do połączenia z wieżą - to nie będzie działało. Wg specyfikacji ma on wbudowany wzmacniacz. Do połączenia z wieżą możesz użyć wspomniane "Music port". W rzeczywistości jest to wejście stereo audio typu minijack 3.5 mm. Także, o ile nie masz, musisz zaopatrzyć się w przejściówkę ->...
A jak wygląda sprawa z rezystorami podciągającymi? Jak rozumiem, skoro masz GPIO jako Open Drain to są zewnętrzne. W nocie aplikacyjnej (w moim przypadku Ziloga) jest napisane że n ie trzeba już wprost ustawiać portów jako wejścia czy wyjścia. W jaki sposób chcesz wymusić stan niski na linii nie zmieniając GPIO na wyjście?
Cytat: Czy ustawiam porty jako wejścia czy wyjścia to nie ma znaczenia:( Daleki jestem od twierdzeń, że kierunek portów nie ma znaczenia. Chodziło mi o to, że jak port ustawie jako wejście czy wyjście to i tak program nie działa:) Co do Bitu TWINT to wiem, zę jest on wystawiany dopiero wtedy gdy transmisja TWI zostanie zakończona. Pytanie jest...
Na stronie 16 datasheet jest opis, uproszczony przykład odczytu (żadne błędy nie są sprawdzane): [syntax=basic4gl]' przykładowa konfiguracja dla sprzętowego TWI Atmega 2561 $lib "i2c_twi.lbx" ' biblioteka obsługująca hardwarowe TWI Config Scl = Portd.0 ' konfiguracja SCL i SDA Config Sda = Portd.1 Config Twi = 100000 ' 100KHz 'Config Twi = 40000 ' 40KHz...
Prosty program zmieniający z częstotliwością 0,5Hz stan końcówki PXY raz jako zwarcie z masą (logiczne zero) wmuszone stanem rejestru PORTX.Y, a po sekundzie wystawiający na końcówkę PXY wysoką impedancję. Fakt, jedynką ustawiasz masę, a zerem ustawiasz wysoką impedancję. Z tym chyba sobie poradzisz. [syntax=basic4gl]PORTX.Y = 0 'Wartość rejestru PORTX.Y...
3. Czy ustawiasz typ pinu w danym porcie (wejście/wyjście) ? w procesorach rodziny '51 niema czegoś takiego jak "kierunek" portu. On zawsze jest pull-up. jedynie musisz pamiętać aby to portu wpisać "1" jak chcesz z niego czytać dane, bo inaczej zawsze będziesz czytać "0".
hyhyhy dobre pytanie - ale gdybyś gdziekolwiek sobie doczytał - bo to najbardziej podstawowe z podstawowych informacji - to byś zobaczył , że trzeba chyba poszczególne piny procka ustawić tak żeby były albo wejściem albo wyjściem ;) .... przecież żeby wysterować diodę LED musisz podać jakiś sygnał na wyjście prawda ? to chyba dla ciebie jasne? .......
No to opowiedz własnymi słowami: sbi DDRB, 0- ustawiamy port B jako wejście- oB 00000000 sbi DDRB, 1- ustawiamy port B.0 jako wyjście- oB0000001 sbi PORTB, 0 - ustawiamy stan niski na PORTB.0 cbi PORTB, 1 - kasujemy stan wysoki na PORTB.1- czyli wpisujemy stan niski. Czyli wszędzie stan niski- 0. Ponieważ nie jestem dobry w asm to opowiedz co chcesz...
Witam. Wszystkie Pind.5, w warunkach, zmień na Portd.5. Rejestr PIN służy do odczytywania stanu danej końcówki a rejestr PORT do jej ustawiania lub zerowania. P.s. Aby ustawić pojedynczą końcówkę jako wejście lub wyjście używa się składni Config Pinx.y = tryb. Czyli zamiast Config Portb.1 = 1 powinno być Config Pinb.1 = 1 (chociaż Bascom łyka jedno...
A właśnie sterowanie "0" jest bardzo dobre. Często jedynka logiczna jest przez pull-upa i nie jest zbyt dobrą jedynką. A z tego co pamiętam to procek po uruchomieniu domyślnie ustawia porty w stan wejść, więc ... rozumiesz?
Witam. Mam problem, z którym męczę się już dłuższy czas. Pod NodeMCU mam podpięte 4 moduły i2c PCF8574. 2 z nich używam jako wyjście, kolejne 2 jako wejście. Wszystko działa jak należy, gdy układ podłączam do USB z przyciskami nie wciśniętymi. Problem pojawia się gdy podczas włączenia zasilania - podpięcia pod port USB - jeden z przycisków podpiętych...
A jak chciałbym podłączyć kilka przycisków do jakiegoś portu? Mam taki klasyczne przyciski, one mają 4 nóżki. Rozumiem, że port ustawiam jako wejście. Czy może być to zrealizowane tak, że: Od VCC, przez rezystor 22k do masy (tylko, że to ciągły pobór prądu) i dalej, po wciśnięciu przycisku (przed masą) zwieram to VCC przez rezystor do nóżki procesora?...
Rozwiązanie z multiplexerami 74HC151. http://hyper.sunjapan.com.cn/~hz/PIC/vid... Linie portu C ustawiasz PC0 - wyjście - adres komparatora w grupie PC1 - wyjście - adres komparatora w grupie PC2 - wyjście - adres komparatora w grupie PC4 - wejście - stan komparatorów 1-8 PC5 - wejście - stan komparatorów 9-16...
Czas uporządkować wszystkie odpowiedzi. Z każdym portem AVR'a związane są trzy rejestry Portx, Pinx i DDRx (x to interesujący nas port A, B, C, D a czasami nawet E) Rejestr Portx - w nim przechowywane są dane wyjściowe, które przenoszone są na końcówki uC jeżeli są ustawione one jako wejście. Rejestr Pinx jest rejestrem odzwierciedlajacym stan końcówek....
#define SET_1wire DDRD &=~ _BV(WE) #define CLEAR_1wire DDRD |= _BV(WE) Ustawiają Port D raz jako wejście a raz jako wyjscie
Tak z ciekawości zapytam, przeglądam notę techniczną do ATtiny412 i ona ma własne RTC. Nie zadowala Cię to? Musi być inne rozwiązanie? Analizowałem kod, niezbyt biegły jestem, ale; testujesz wciśnięcie przycisku, a po jego wciśnięciu robisz pull up portu? Ja w starych ATtiny ustawiam dany port jako wejście i podciągam pull up, na stałe. Dalej w programie...
Huawei ma wejście WAN a nie LAN Tryb pracy portu ustawiasz w menu. W takich urządzeniach defaultowym interfejsem do WAN, jest interfejs LTE. Port Ethernetowy działa defaultowo jako LAN, żebyś sobie mógł tam komputer, switcha czy coś innego przyłączyć. No chyba że coś nagrzebałeś w konfigu lub kombinowałeś z firmware.
No, całkiem fajnie zakręcone. 1.Jeżeli na dane wyjście dam 0 w programie to fizycznie płynie tam prąd np PORTA=0xFF daje mi prąd na cały port A.(w kursie z którego korzystam jest normalnie 1-prąd , 0 - brak ) Co jest tego powodem? Hmm. Jeśli na wyjście (rejestr PORT x) podasz 1 to na końcówce pojawia się napięcie równe mniej więcej napięciu zasilania....
Nie wiem jak inicjujesz te porty. Atmega ma 3 rejestry. Jeden określa czy port jest wyjściem czy wejściem, drugi czy domyślnie jest stan wysoki czy niski, a trzeci o którym mało kto pamięta używa się do komunikacji i obsługi klawiatury. Ustawiasz port jako wejście lub wyjście i włączasz wbudowane oporniki podciągające i ten stan jest utrzymywany przez...
Witam tak mi teraz wpadło do głowy po przejrzeniu tego: 1. brak rezystora podciągającego na linii 1wire 2. #define CLEAR_1Wire DDRD |=_BV(WE) #define SET_1Wire DDRD &=~(_BV(WE)) tak patrząc na te definicje i ich użycie to całkiem dziwnie to robisz, ustawiasz kierunek portu (wy/we) a nie stan na porcie. CLEAR_1Wire powinno wyglądało tak: #define...
Config Portb = &B00001111 Portb = &B01110000 Oznacza to tyle ze Config Portb = &B00001111 ustawia cześć portów jako wejścia a cześć jako wyjścia równie dobrze mogłem użyć Komedy "input" ale nie wszystkie porty maja być takie A to drugie Portb = &B01110000 ustawia stan początkowy portów wiec w konfiguracji portów jest wszystko dobrze. Aha _Robak_ no...
Kod na tym IC to AB1837HER525-82. Nie jestem nic w stanie znaleźć na jego temat. Faktycznie nie idzie nic znaleźć, mam podobny moduł, ale teraz sobie przypomniałem że moduł który można było normalnie skomunikować z mikrokontrolerem po UART-cie to był DFPlayer mini i on był na innym scalaku, tam była dostępna jakaś dokumentacja. Aby móc sterować tym...
Wiem że któraś linia ustawia dany port jako wyjście lub wejście albo linia jest podciągnięta do zasilania tylko nie wiem jaka to linia?
No nie do końca... Końcówki nr 3 tych przełączników powinny być podłączone do masy, anie do VCC. W uC ustawiasz port jako wejście, włączasz pullupy i teraz jak żaden przycisk nei jest włączony to odczytujesz jedynki (dla uproszczenia będę pisał tylko o portach PB0 i PB1), jak wciśniesz przycisk podłączony do danego portu to na tym porcie odczytasz zero....
Ad.1 Generalnie wygląda to dobrze, ale nie wiem czy do końca wiesz co robisz. Port A to unsigned char, więc zmienna 8 bitowa reprezentująca 8 wejść (lub mniej, różnie to wygląda dla różnych portów). Zapis DDRA=0 powoduje, że wszystkie piny na porcie A zamieniają się w wejścia.. to samo dotyczy PORTA - ustawiasz wszystkie piny portu. Dlatego przy czymś...
Na pierwszy rzut oka w Twoim kodzie, jak i u autora, nie ma żadnej manipulacji trybem wyjścia portu - pinu. Taka funkcja: [syntax=c] //funkcja odbierajıca pojedynczy bit od termometru uint16_t DS18B20_ReadBit(void) { uint16_t bit=0; GPIO_ResetBits(GPIOB, GPIO_Pin_0); delay_us(5); GPIO_SetBits(GPIOB, GPIO_Pin_0); delay_us(5); if(GPIO_ReadInputDataBit(GPIOB,...
$regfile - informuje kompiler jaki zestaw rejestrów posiada mikrokontroler czyli co pod jakim adresem się znajduje. Prawdopodobnie tego Ci brakowało w programie $crystal - określa częstotliwość rezonatora kwarcowego Ddrb - rejestr specjalny (data direction register dla portu B), określa, który pin portu ma działać jako wejście a który jako wyjście (1-wyjście,...
Ale jak w programie wydam komendę za pomocą funkcji delay i cyklicznie Sobie przełączam segmenty to wszystko jest ok. Dopiero problem zaczyna się z przerwaniem. Wiec wydaje mi się ze tranzystory nie mają nic do rzeczy a ustawianie wejść na porcie wyjściowym jest nie właściwe.
Sub Write_rtl8019as(regaddr , Regdata) Incr A Databus_ddr = &HFF 'ustawiam port danych jako wyjście Addrbus_ddr = &HFF 'ustawiam port adresowy jako wyjście Addrbus = Regaddr 'wystawiam adres pod który chcę zapisać dane Databus = Regdata 'wystawiam dane do zapisu Print A ; " Zapisywany bajt: " ; Hex(databus) ; " pod adres: " ; Hex(addrbus) nop Reset...
Jak podciągniesz wszystkie wejścia do '+' to masz dla nich jedynkę. Nie napisałeś żadnego warunku, co się stanie jak jest "1", więc nic się nie zmienia: If Pind.0 = 0 Then Portb.0 = 0 ;tutaj dla "zera" If Pind.1 = 0 Then Portb.0 = 1 ;tutaj tez dla "zera" Ponieważ piny są podciągnięte do "1", żaden z tych warunków się nie wykona, czyli nadal będzie "0"....
Naprowadź mnie na dobrą ścieżkę. Step podłączyłeś do wejścia przerywania INT1 (Portd.3). Czyli w Bascomie było by coś takiego: Enable Interrupts 'włącza przerywania globalne Enable Int1 'włącza int1 Config Int1 = Rising 'int1 będzie reagował na zbocze narastające On Int1 Krok 'na przerywanie idź do sub Krok Dir bez większego znaczenia do portu który...
Znam tylko asembler i odczyt u mnie wygląda tak : ;=======================================... odczytcalliic_start movlw0A0 ; adres urzadzenia+zapis calliic_write movfwmem_loc ; pozycja w pamieci calliic_write ;-------------------------------------- calliic_start ; restart do odczytu movlw0A1 ; adres urzadzenia+odczyt calliic_write calliic_read ; mem_data...
Witam, Panowie posiadam CalAmp http://www.calamp.com/products/fleet-tra... Potrzebuje wejść w ustawiania do konfiguracji. Urządzenie nie posiada żadnego portu komunikacji ma tylko kabeki i wejście na kartę sim. http://obrazki.elektroda.pl/2332482500_1... http://obrazki.elektroda.pl/6369349900_1...
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...
Nie bardzo wiem co w Twoim programie się dzieje w tym miejscu. Jeśli wykonujesz tam operację związaną z ustawianiem, która końcówka portu ma być wejściem/wyjściem to taka konstrukcja jest poprawna - choć dość dziwna. Przydał by się program i plik OBJ+HEX generowany przez kompilator, aby to sprawdzić.
Wiem, że temat był już poruszany niejednokrotnie i liczę się z "niemiłymi" odpowiedziami... No to pierwsza "niemiła" odpowiedź: Zajrzyj do dokumentacji AVR-ka i sprawdź DOKŁADNIE co należy wpisać do rejestru DDRx , by port był wejściem lub wyjściem. //... static inline void owire_wy(void) { DDR(OWIRE_PORT) &= ~(1<<OWIRE_PIN);...
stty ospeed 57600 powinno być. ... to już Ty powinieneś wiedzieć najlepiej ;) Masz te predkości niesymetryczne w obu kierunkach? Ustawienie prędkości działa ale te dwie powyższe komendy już nie. mea culpa... Jedna spacja za dużo, powinno być: 0< /dev/ttyS0 1> /dev/ttyS0 albo < /dev/ttyS0 > /dev/ttyS0 Jak daję cat /dev/ttyS0 to też mi nic...
Aby mieć pewność, że problem nie leży w zależnościach czasowych pomiędzy wysłaniem na port adresu do multipleksera a odczytem stanu bitu, wstaw pomiędzy ustawianie portu i warunek IF opóźnienie np. 1ms: PORTB = PORTB | 0b00000001; waitms(1); if ( Pozdrawiam Mariusz Dodano po 9 Dodano: 74151 ma wyjścia 2 wyjscia komplementarne, więc dobrze by było opisać...
Wydaje mi się że adres dla odczytu/zapisu powinien mieć wartość &HF1. Jeżeli korzystasz z hardwarowego TWI (np. w Atmega 32 pin PC.0 i PC.1) to masz zamienione SDA z SCL. [syntax=basic4gl]$regfile = "m32def.dat" $crystal = 16000000 $hwstack = 40 $swstack = 32 $framesize = 32 ' konfiguracja hardwarowego TWI dla ATmega 32 $lib "i2c_twi.lbx" ' biblioteka...
otwarcie portu mapowanie portu galletto portu
odłączenie przewodu świecy service brother bezpiecznik zasilacza komputera
odpowietrzenie solaru mikrokomputer cobra1
Skuter inwalidzki VICTORY XL 130 - 8 mignięć diody Czym skleić pękniętą szybę wewnętrzną piekarnika elektrycznego?