Oto, co pisze na ten temat avr-libc-user-manual: This may be especially important when clearing a bit: var &= ~mask; /* wrong way! */ The bitwise "not" operator (~) will also promote the value in mask to an int. To keep it an 8-bit value, typecast before the "not" operator: var &= (unsigned char)~mask; Użycie operatora ~ powoduje, że wartość 0x80 zostaje...
To nie jest problem, bo zawsze możesz wyzwalać układ stanem niskim wymuszonym programowo (normalnie na porcie ustawiasz 1 a impulsujesz stanem 0). Tu jest odwracacz: http://obrazki.elektroda.net/9_123404303... Dioda przesuwa punkt włączenia (wyłączenia) tranzystora w okolice 1.4V by nie było problemów jakimiś cudami z napięciami dla poziomu 0 logicznego....
ALBO NIE WYCHODZI ZE STANU RESET, JAK MI COŚ NIE CHCE RUSZYC, TO DPISUJE W "KLUCZOWE" MIEJSCA NEGACJE PORTU I PODŁACZAM TAM DIODE LED. W TEDY WIDAC CZY PROGRAM TAM DOCHODZI CZY TEŻ NIE. NALEŻY JEDNAK TAK ZROBIC ABY TA DIODA MIGAŁA W SENSOWNEJ CZESTOTLIWOŚCI
Tak najprościej to możesz sobie powielić te dwie linijki w programie z kilka razy wpisując za każdym razem inne _delay i inną wartość na PORT. Możesz też użyć instrukcji PORTD=~PORTD; oznacza ona negację portu D. Każdy pin może być sterowany indywidualnie tzn może być wejściem lub wyjściem może być "0" lub "1".
Sprawdze to przy chwili czasu. W każdym razie napisalem program w asemblerze był mi potrzebny na obrone i chodził bez problemu. Z bascomem dałem sobie spokój. W każdym razie próbowałem też w pętli czytać za pomocą getad i efekt też był taki że powodował zawieszenie. Wstawaiłem negacje portu co jakiś czas w pętli i też się nie wykonywała. Wersji powyższegoo...
powyższa procedurka nie działa. np. Tab: 0b00000010 PortB: 0b10101101 1. negacja portu - 01010010 2. maska na port 11110000 - czyli 10010001 3. porownanie z tablicą nie jest ta samą wartoscią Problem dalej pozostaje Dzieki za zainteresowanie i czekam na dalsze pomysły Pozdrawiam Dodano po 54 Dobra dzieki za pomoc. Sam się pomyliłem. Zamiast robić sumę...
_delay_us(1); to zatrzymanie na 1us. if (!(bit_is_clear(PINB,4))) to "jeśli bit 4 portu B nie jest clear) to rób coś tam.... Wykrzyknik to negacja. Bit is clear to chyba samo mówi za siebie.
Po przekrosowaniu nóżek i negacji jednego z portów dzielnika podeszła by tam MC145106 (taki czip siedzi w Jackson, Alan 87 itp.)
Mam jedno sprostowanie bo niedoczytałem dokładnie zadania nr 1. Ta moja propozycja przenosi tylko 4 starsze bity z portu A z negacja na 4 młodsze bity portu B, bez zmiany pozostałych bitów PBDR7..4. Przepraszam za niepotrzebne zamieszanie. Rozwiązanie do nr 2 działa bo sprawdziłem teraz na symulatorze.
W nowszych atmegach np. m644, m48, m88 możemy wykorzystywać zapis "1" do negacji stanu portu. 14.2.2 Toggling the pin Writing a logic one to PINxn toggles the value of PORTxn, independent on the value of DDRxn. Note that the SBI instruction can be used to toggle one single bit in a port.
Tak wiem, że trzeba użyć iloczynu. Pisałem po prostu w pośpiechu, przepraszam. No niby masz racje z tą negacją portu ale instrukcja znajduje się na samym początku przed pętlą, a przy starcie mikrokontroler domyślnie ma wyzerowane wszystkie porty. A wracając do programu: Niestety nie działa. Dioda cały czas się pali zamiast mrugać. Wygląda na to że mikrokontroler...
Sam procesorek w zupełności wystarcza do prostej transmisji 30 różnych sygnałów (nawiasem mówiąc najprostszy Atmelek serii AT90S2313 z pamięcią 1k słów potrafi wyczyniać znacznie bardziej skomplikowane cuda, a co dopiero 4 lub 8kB!). Nawet używając Bascoma free z limitem objętości kodu (do 1kB) bez problemu zmieścisz cię w około 0.5 kB. To do procesorków....
Witam Mam pytanko, czy ktoś z Państwa ma 100% sposób na sterowanie np. diodą LED ale stanem niskim. Na forum spotkałem się z kilkoma przykładami ale tranzystorów MOSFET-N przykładowo BS170 czy BUZ11 których zaletą jest to że mogę je podpiąć bezpośrednio do mikrokontrolera bez dodatkowych rezystorów. Obecnie szukam podobnego rozwiązania ale potrzebna...
jednak nie potrafię zrozumieć tego zapisu Jak przesuniesz jedynkę o 3 pola w lewo to masz wartość 8 (innymi słowy to jest *2^n). | to suma logiczna (OR) - czyli zapis (1<<3|1<<5) oznacza ustawienie jako 1 bitów 3 i 5 licząc 0:7. czyli sprawdzać czy jest wciśnięty Negacja logiczna.
Witam. Proszę o sprawdzenie poprawności kodu.Chciałem zastosować zewnętrzne przerwanie INT0.Po podaniu niskiego poziomu na INT0 chciałbym uzyskać negacje bitów portu C0 i C1, przy czym zawsze mają one mieć wartości przeciwne. ISR(INT0_vect) { if( !(PINC & 0x02))//negacja PC0 i PC1 { PORTC |= _BV(PC1); PORTC...
Witam. Router podpięty do neostrady, w sieci LAN jest kilkanaście komputerów. Założenia: 1 komputer ma nieograniczony dostęp do netu, dwa inne mogą się łączyć tylko z określonego portu (VNC server). Czy jest możliwe uzyskanie takiej konfiguracji za pomocą firewalla wbudowanego w router ? Byłoby to proste, gdyby firewall umożliwiał negację adresów IP...
! to negacja logiczna, a nie bitowa i jeżeli zrobisz taką negację na zmienną różną od zera to dostaniesz w wyniku wartośc logiczną fałsz... Jka wyżej kolega napisał, negacja bitowa to ~, przy czym enkoder BCD jest zapewnei czterobitowy, więc przy odczycie jego stanu warto zastosować maskę, np. jeżeli enkoder jest podłączony do starszej połowy portu...
Wejścia w porcie LPT komputera PC to końcówki nr: 10,11,12,13 i 15. Analogicznie. Wejście inwertera 74LS04 z negacją, niski stan - wyjście wysoki, co zapala diodę z katodą na masie w transoptorze oświetlając fototranzystor, który spolaryzowany zwiera sygnał do masy wymuszając niski stan na wejściu LPT.Odwrotny efekt to odmienny stan na wejściu inwertera.wysoki...
UART dla "1" daje 5V a dla "0" 0V i tak daje napiecia moja przejsciowka. Natomist od biedy do komunikacji z portem na rs232 wystarczy negacja czyli aby dla "0" bylo 5V a dla "1" bylo 0V. O takie sterowniki mi chodzi.
Echo na ESP poprzez środowisko arduino i obserwujemy przez monitor portu szeregowego co się dzieje na ESP, na UNO program z wysyłką danych uwzględniającą negację przez tranzystor.
programator biprog: http://ruckl.wz.cz/biprog_en/biprog_en.p... ew. avrdoper z dorobioną negacją na linii resetu
Związek pomiędzy negacją a exor jest zasadniczy tj. a------b------y 0------0------0 1------0------1_______czyli bez negacji 0------1------1 1------1------0_______a tu mamy negacje jeśli za "a" przyjemiemy poprzedni stan portu a za "b" to czy będziemy wykonywac negacje to wynik znajdziemy w Y Dla funkcji gdzie moze występować hazard są informacje przy...
Wywala błędy, bo próbujesz operować na rejestrach, których nie ma. ATtiny2313 nie posiada portu C, a rejestr sterujący licznikiem nazywa sie trochę inaczej (i jest ich więcej). Popraw rejestry, albo zmień mikrokontroler. PORTC = ~led++; oznacza, że należy do lciznika przepełnień dodać 1, oraz wysłać jego negację na port C (kolejności nie kojarzę jaka...
Jak wyslac dana na port z poziomu TurboPascala juz sam wiesz. Nie ma tu zadnego pinu zegarowego. Musisz sam o to zadbac programowo. Oprocz rejestru bazowego np. $378 ktory jest rejestrem odpowiedzialnym za nozki D0-D7 w trybie NORMAL sa jeszcze dwa rejestry odpowiedzialne za reszte nozek. Jesli chcesz uzyskac sygnal "Strobe" czyli informujacy ze jest...
Obawiam się, że... to niemożliwe. Użyj negacji stanu, albo niech Twój program ustawi jakąś sekwencję na porcie, oznaczającą, że system wstał i program jest gotowy do pracy, bo jak mniemam robisz jakiś układ sterowany z portu LPT.
No właśnie nie o to mi chodziło. Potrzebował bym poprostu bufor (nie negator) z wyjściem o otwartym kolektorze. Tak by możliwe było podłączenie przekaźnika do masy przez układ a załączany on był stanem niskim podanym na wejście buforka. Tak jak to powinno normalnie wyglądać. Bo jeśli takiego układu nie ma to jedynym rozwiązaniem jest podłączyć dowolny...
Nie jestem specjalistą od rodziny 80C51, ale jedna rzecz mnie w tym programie zastanawia: napisałeś 17 cykli po 27us i rzeczywiście ładujesz akumulator liczbą 17. Ale jeśli instrukcja cpl oznacza negację poprzedniego stanu bitu na porcie (jak się domyślam), to jaki jest właściwie całkowity okres wykonania sekwencji ON-OFF czyli pełnego okresu przełączania...
Opierałbym się na twoich schematach, nie na filmie. Opierając się na schemacie interfejs można zrobić, podstawą jest zakup transoptorów np: [url=http://www.seguro.pl/sklep/?zobacz=... albo taki: [url=http://www.seguro.pl/sklep/?zobacz=... lub inne, oraz tak jak pisałem wtyczki DB9 do RS-232 komputera oraz przewody,...
Układ ten adresowanie bitowe posiada tylko na porcie PC, pozostałe musisz ustawiac albo kasować na zasadach sumy logicznej maski albo iloczynu negacji maski.
Multipleks wyzwalany jest stanem niskim. No nieee :P Teraz to sobie sam kombinuj z negacją bitową, albo zadaj pełne, konkretne pytanie
pubus, wkleiłem Twój przykład i program się skompilował, a więc sukces. Ale niestety tu nastąpił koniec radości. Jak wspomniałem chcę uruchomić timer, który przy przepełnieniu wywoła obsługę przerwania. Aby było najprościej jak się da niech jedyną instrukcją w tej obsłudze będzie zmiana stanu całego portu C czyli: PORTC != PORTC; Do któregoś tam pinu...
Nie możesz sobie podpiąć jednej diody przez rezystor do plusa a drugiej przez rezystor do masy przy stanie niskim na wyjściu będzie świeciła ta podpięta do plusa a przy wysokim ta podpięta do masy . Poza tym możesz sobie w obsłudze przerwania od comp1a ustawić dowolny stan na dowolnym porcie , metod jest co najmniej dużo wystarczy pomyśleć .
Ponieważ sterowanie jest masą, wystawiam portC jako wejście z pociągnięciem do VCC. W takim razie warunek funkcji IF ma być spełniony gdy pc0 będzie zerem, bo domyślnie jest jedynką. :) gdyby nie było znaki negacji to ten warunek byłby spełniony bez naciskania przycisku.
Trzy lub cztery możliwości: - XOR na rejestrze FIOPIN - odczyt FIOPIN i w zależności od odczytanej wartości warunkowy zapis do FIOCLR albo FIOSET. - odczyt FIOPIN, maskowanie bitu, zapis tego co wyszło do FIOCLR, negacja bitu, zapis do FIOSET - bitbanding (nie wiem, czy dostępny dla portów)
Dla przykładu kompiluje taki program jak poniżej i wyskakuje ten sam komunikat: /***************************************... Ćwiczenie 4 Program zwiększa zawartość portu P1 w takt naciskania przycisku Button (P3.2). kompilacja: compile s cwi4 ****************************************...
Białe kropki bądź kółka zależy kto bo woli oznaczają negacje sygnału. A te strzałki bądź trójkąty oznaczają GND czyli masa.
Witam, pracuję na atmedze16A i wewnętrznym clocku 4Mhz. Próbuję wygenerować przerwanie z częstotliwością 80kHz, które spowoduje negacje jednego z bitów portu B(PORTB 0). Rozumiem, że dzięki takiej operacji wygeneruję sygnał o częstotliwości 40kHz, który pozwoli mi generować ultradźwięki w nadajniku. Napisałem taka obsługę przerwania, ale coś mi nie...
A tak w ogóle to jednak C jest dla mnie trochę dziwne. Zapis PORTD|= 1<<PD0 ; jest informacją, że na porcie D, pinie 0 wystąpi 0, lub 1 (zależnie od negacji) Nie łapię. Na PD0 będzie 1.
no tak jak działa to ja wiem ale jak sie tym Timerem posluzyc w C ?? no jak chce to 14us to musze zaladowac do timera warotsc 65522 czyli 0x0FFF2 i dac start ale jak to napisac w C ?? tak ze po odliczeniu zmienia mi stan portu na 0 a potem znowu odlicza i daje negacje czyli 1 itd....
Prawie dobrze ale '!' jest negacją logiczną. Tobie potrzebna jest '~'. Zatem wpis do CODR powinien wyglądać CODR = (~val) & 0x0000000F; Maskować musisz zerami na wszystkich pozostałych pozycjach! Why? Bo tak ;) Dodano po 9 A przepraszam, pominąłem to że 16 pinów. W takim razie ma być tak: CODR = (~val) & 0x0000FFFF; Tobie nie działa ze względu na rodzaj...
Dzięki za precyzyjne objaśnienie tej kwestii. Rozumiem, że obecny emulator zawiera rozpoznanie każdej instrukcji Z-80, ale dla instrukcji OUT(PORT),A brak mu podprogramu, który wykona jakąś czynność (np. przesłania jakiś danych do karty dźwiękowej), więc powraca do dalszej analizy kodu programu jedynie po obiegu pętli zawierającej warunki IF i standardowo...
Krotka wskazówka: Ustawianie konkretnego bitu zawsze operacja |= bez negacji przed BV Zerowanie konkretnego bitu zawsze operacja &= z negacja przed BV A dlaczego w twoim przypadku cały port ustawiany jest na 1?? czarna magia, sprawdź bez optymalizacji i połączenia.
Mysle, ze jak zabierasz sie za to znacz c++ i umiesz kompilowac :) program: W linuxie tak: #include <unistd.h> #include <sys/io.h> #include <iostream> using namespace std; const int LPT = 0x378; int main() { ioperm(LPT, 3, 1); unsigned short int byte = 7; outw(byte, LPT); ioperm(LPT,3,0); return 0; } W dos/win95/win98 c++ bedzie wygladalo...
Faktycznie język C jest tragiczny, dlatego niestety nie będę potrafił podac konkretnej odpowiedzi. Jeśli przy (jak to nazwałeś) kontroli piszesz do portu Bazowy+2 (linie strobe i initialize) a czytasz z Bazowy+1 to powodem może być niewłaściwe przypisanie bitów do linii (niestety przeanalizowanie źródełka w C zajęłoby mi za dużo czasu). Najlepiej włącz...
void main(void) { //tu mozesz dac ustawienia swego procka ,porty ,timery i itp... //XOR w C++ to ^ //bitowy iloczyn logiczny to & //bitowa suma logiczna to | //negacja bitow to ~ } pozdrawiam
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...
http://obrazki.elektroda.pl/9226682200_1... Rezystor przyjąłem taki jak na poprzednim podanym przeze mnie schemacie. Teraz jest pewne, że jest 1 lub 0 na wejściu L293. Pozostałe transoptory tak samo. Pisałem już wcześniej ale teraz przypomnę - taki układ wprowadza negację sygnału co być może musisz uwzględnić w programie.
Ma gasić diodę na porcie PD3. Skompiluj poniższy program w CManiaku: http://mikrokontrolery.blogspot.com/p/cm... i zastanów się dlaczego działa inaczej niż oczekujesz. Chciałem się spytać czy funkcja Sonar_pobierz_pomiar w funkcji głównej ma prawidłowe zmienne? Otrzymujesz przecież ostrzeżenie: ../Proba_10.c:50: warning:...
Doczepię się to makr: [syntax=c]#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit)) //ustawienie bitu (set bit) #define cbi(port, bit) ((port) &= ~(1 << (bit))) //kasowanie bitu (clear bit) #define tbi(port,bit) (port ^= _BV(bit)); //negacja bitu #define bis(port, bit) ( port & (1 << (bit))) //makro zwracajace wartosc 1 lub 0 zależnie...
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...
No podączyłem jeden enkoder i ma być tak phase A-ct0 phase B -ct1 phase C- ct2 negacji się nie wpina zostają "w powietrzu" Pytanie teraz jak włączyć drugi enkoder tak aby oba pracowały ?
Najpierw należy wziąść jakiś stary magnetofon (nawet szpulowy). Następnie robimy tak: sprawdzamy czy ma on: -głowicę kasującą (nie może być magnetyczna, musi być cewka) -głowicę zapisującą -głowicę czytającą -sprawną machanikę Teraz to twoja inwencja twórcza. Musisz znać się na działaniu portu LPT i znać jakiś język programowania np. Turbo Pascal. To...
Podciąganie wewnętrzne starcza w zupełności. Problem rozwiązałem.Tak dla innych użytkowników gdyby też mieli podobny problem z M128. Zastosowałem jako bufory wyjściowe podwójną negację układów 7406. Myślę że ten brak współpracy między M8 a M128 wynika z innych wydajności prądowych poszczególnych portów każdej z Atmeg
Komparator dziala caly czas, tylko za pierwszym razem ustawia 0xFD na porcie, pozniej tego nie zmieniasz(!!), a jak przychodzi kolejne przerwanie to znowu ustawia 0xFD - czyli de facto nic sie nie zmienia. Proponuje w obsludze przerwania wstawic negacje pinu z dioda led. Nie wiem czy ja sie napewno zrozumiale wyrazilem. Wlaczasz zasilanie - PortD =...
Napisalem programik i jako poczatkujacy programista mecze sie juz 2 dni #include "8051.h" int i,t; int word, a; void main (void){ P1=0xF7; for(t=0;t<100;t++); a=P1; word=!a; word >>= 4; for(i=0;i<word;i++){ for(t=0;t<20000;t++); P3_0=!P3_0; } } Program ma za zadanie mignac tyle razy dioda podlaczona do P3_0 ile jest to ustawione na nastawniku...
Niezły mi porządek. Teraz możesz włączyć pull-up i do tego ustawić port, jako wyjściowy ze stanem 0, czyli procek sam z siebie będzie się obciążał. To jest ten Twój porządek? Standard. Programować trzeba z głową. To, że czegoś nie rozumiesz to nie znaczy, że jest to głupie. Za chwilę dorobią PD i będzie komplet i logicznie a w starej nomenklaturze...
Mysle, ze moje rozwiazanie jest prostsze bo nie wymaga dodatkowego tranzystora a ewentualna negacje mozna zalatwic programowo. LED naprawde nie musi byc podlaczony przez tranzystor, port atmegi moze dac znacznie wiecej pradu niz temu ledowi potrzeba.
Przed ULN wcale byś nie uciekł bo chcesz mieć duże wyświetlacze. AT z samymi opornikami nadaje się tylko do małych wyświetlaczy zasilanych 5V. Wszystkie większe konstrukcje mają więc jakieś wzmacniacze. Rzeczywiście powinno zaświecić się E -- Pulsowanie cyfr spowodowane jest tym, że przyciski masz podłączone do wyjść sterujących wyświetlaczami. To taka...
Jeśli mówisz, że masz opóźnienie to je wstaw. A w komentarzach ci napiszę co się z czym je. .nolist .include "m8515def.inc" .list .listmac .cseg // doczytaj o tym .org 0x00 rjmp start .org 0x30 start: ldi r16, 0xFF out DDRB, r16 // ustaw wszystkie piny portu B jako wyjścia Main: com r16 //negacja bitowa out PORTB, r16 //diody zapala...
Witam! LJMP START ORG 100H START: CLR P1.0 SETB P1.1 LOO: LJMP LOO No fajny program szkoda tylko, że to asembler 51 a attiny26 to avr, to zupelnie inne asemblery. w tiny26 nie ma portu 1 jest portb i porta Dodano po 1 Dodatkowo w avr musisz ustawic dla kazdego portu 2 rejestry ddr i port, a jesli chcesz uzywac jako wejscia to czytasz z rejestru pin...
Zgadza się tylko jeśli program czeka to raczej nie ma nic ważnego do roboty i może sobie ten port czytać do bólu. Natomiast w aplikacjach krytycznych czasowo rzeczywiście twoje rozwiązanie ma większy sens jesli program czeka, to w istocie nie ma znaczeni czas, ale dwa odczyty z portu, dwie operacje AND, ewentualna negacja logiczna x 2, polaczenie tego...
Jeżeli układ będzie pracował z Atmelkiem a nie z PC to daj spokój z tym MAX232. Na początek przeprowadź próby bez radia. Podaj na jeden moduł zanegowane dane z procesora (bramką lub tranzystorem) , połącz moduły ze sobą i z wyjście danych drugiego połącz z COM w PC (większość portów zaakceptuje poziomy TTL). Komunikacja o między procesorami nie będzie...
proszę bardzo - oto programik tak wygląda sterownik_v3.exe http://img12.exs.cx/img12/1982/obraz12vh... pozdrawiam ------------ zapomniałem jeszcze o coś zapytać a mianowicie jak wiemy jedyną "chyba" wadą tego sterownika jest to, że po odłączeniu zasilania od sterownika i ponowne jego załączenie powoduje załączenie wszystkich wyjść i tu pytanie czy...
Bardzo przepraszam, że się czepiam ale to jest generalnie bez sensu. Dlaczego bezsensowne ma być zabezpieczenie przed zakłóceniami? Bezsensowne jest samo sformułowanie zabezpieczające przed debouncingiem bo to jest podwójna negacja, chyba chciałeś napisać zabezpieczenie przed bouncingiem albo układ z debouncingiem styków .
Program, który podałeś jest żywcem skopiowany z książki wydawnicta AVT. Jeżeli w takiej formie chcesz go zaprezentować w szkole, to musisz miec bardzo tolerancyjnego nauczyciela, który będzie udawał, że wierzy w to, że połowa klasy była tak samo inteligentna i napisała identyczny program , a nawet zmienne tak samo nazwali. Żeby skompilować musisz zadeklarować...
1. Zauważ, że jeśli ustawisz generowanie przerwania od opadającego zbocza to po pojawieniu się stanu niskiego przerwanie zostanie wygenerowane tylko jeden raz. 2 i 3. Może do ustawiania portów to ma sens choć i tak lepsze będzie ldi r16,(1<<pb7)|(1<<pb6), ale na pewno nie do rejestru gimsk. Od razu dam przykład jak nie zmienić bitów które...
Witam Uczelnia wymusza na mnie naukę Assemblera dla procesorów serii C51. Zorganizowałem płytkę przystosowaną głównie pod Atmegę i zamontowałem w niej w adapterze AT89C2051. Sam program próbuję napisać w edytorze: MCU 8051 IDE v1.4.7 firmy Moravia Microsystems. Napisałem wstępnie coś co miesza rejestrami: [syntax=asm] org 0 ;OZNACZENIE ADRESU POCZATKU...
Żeby odwołać się do portu w sposób bitowy, adres tego portu mi być podzielny przez 8 (chyba). W twoim przypadku powinieneś użyć: 1. do negacji xrl P6,#16 2. do zerowania anl.... 3. do ustaqwiania orl..... Jedyny problem wynika z tego, że są to rozkazy typu "odczyt-modyfikacja-zapis" i jeśli masz na porcie wyjście, które jest zwierane przez zewnętrzny...
Schemat na razie jest na kartce , za nim zacznę klepać chce mieć wszystko pewne co i jak :) OK więc jeśli trzymać się pierwszej ideii , to kazda anoda wiersza byłaby połączona przez rezystor do jednego wyprowadzenia uC i wybierany znak byłby tworzony przez negacje ( w sensie jesli nogę od litery A symbolizuje 11111111 , to zapalenie wszystkich diod...
na oscyloskopie udało mi się zauważyć że po resecie uC przez bardo krótki czas(ledwie zauważalny) pojawia się sygnał prostokątny[tak mi sie przynajmniej wydaje](czyli jakieś dane z uC wychodzą), tylko dlaczego tak krótko i tylko jednorazowo edit: zauważyłem też że pomyliłem linię data z clk(względem programu bascom wg którego podłączałem) zamieniłem...
DDRx - kierunek portu (1 wy, 0 we) PORTx - stan portu (1 - wysoki, 0 - niski) DDRB = 0xFF; czyli przypisanie binarnie 1111 1111, wszystkie piny na wyjście PORTB &= 0x7F to wykonanie operacji logicznej AND (służy do zerowania bitów): xxxx xxxx & 0111 111 = 0xxx xxx (gdzie x to aktualna wartość danego pinu) masz jeszcze funkcję | (OR, czyli lub, służy...
Piszę program do sterowania wyświetlaczem LCD cyfrowym i muszę ustawić 0 i 1 bezpośrednio na rejestrach. Mikrokontroler jest taktowany z 1MHz żeby obniżyć pobór energii i ustawiając poszczególne bity w bibliotece HAL poleceniem: [syntax=c]HAL_GPIO_WritePin (A1_GPIO_Port, A1_Pin, GPIO_PIN_SET);[/syntax] powoduje to takie opóźnienie że zamiast prostokąta...
Chyba "config" ma tam nie byc, config konfiguruje port jako wejsciowy lub wyjsciowy, a tobie chyba chodzi o stan wysoki na porci i stan niski?? portb = not portb to jest negacja czyli na porcieb ustawiasz bity odwrotnosci bitow portub ;) a dziala to wogole? bo nie mam przy sobie kompilatora zeby spr. Dodano po 2 $regfile "m8def.dat" $crystal...
Układ będzie załączany '1'. Jeśli układ ma być sterowany z mikrokontrolera, to być może negacja sygnału sterującego nie będzie problemem. Jeśli jednak układ musi być sterowany zerem to na wejściu tego układu można dodać jeszcze jeden tranzystor npn. Tranzystor ten powinien być podłączony emiterem do masy, natomiast kolektor szeregowo z rezystorem 4,7k...
Jakiego mikrokonrolera kolega używa? Szczerze powiedziawszy to trochę dziwna sytuacja.Porty w mikrokontrolerach po resecie (podniesieniu się zasilania)zazwyczaj -nie spotkałem się by było inaczej- domyślnie ustawiane są jako wejścia. Więc może wina leży w programie albo coś się koledze indukuje na tych ścieżkach. Czy jest kolega pewien, że obecna sytuacja...
Jeżeli po zwarciu 9 i 10 pinu z MAXa miałeś poprawne echo w terminalu a program załadowany od SKYNET_2 jest poprawny to problem leży między pinem 9, 10 a prockiem (może jakieś podciąganie do Vcc się robi ). Wiem też, że są problemy z rezonatorami wewnętrznymi (ich stabilność ma spory wpływ na transmisje). Zakładam że fuse bits'y są ustawione OK, choćby...
Nie zapomnij jeszcze o jednej rzeczy. MAX będzie odwracał sygnały tzn. 12V -> 0V i -12V na 5V.. Hmm...faktycznie logika ujemna wyleciało mi z głowy.Ale czy ona nie odnosi sie tylko do lini danych portu?W tym momencie sprawa całkowicie arbitrlalna ktore linie jak podlacze do maxa..musze troche poczytac..:) Nie wiem czy pony prog ma możliwość wyboru...
Do tej pory zakładałem, że sprawa jest prosta i jest to tylko kwestia negacji, bo przecież napisałeś, że zmodyfikowałeś odpowiednio schemat, tranzystory NPN zastąpiłeś PNP łącząc je odpowiednio (czyli emitery do Vcc, jak rozumiem), więc wszystko powinno działać, ale teraz zajrzałem na podaną przez Ciebie stronę z oryginalnym projektem i zauważyłem pewien...
Co to jest "//Prikazi drgo stevilko" albo to "//prepreci premocno gorjenje druge"? Ogólnie rzecz ujmując kod jest napisany źle - na zdjęciu widać że gościowi prześwitują te liczby (coś w stylu smurzenia w lcd). Mam tablicę - w niej kody dla cyfr, i mam numer w zmiennej. Gdy używam zmiennej jako indeksu tablicy to pod tym indeksem mam kod dla tego numeru...
Acha, zamiast odejmowania, użyj operacji bitowej: f:= ((daneByte[xyz+1] and 127) shl 7) + daneBYTE[xyz+2]; Zwróć uwagę na wartość 127 (nie 128!) - to jest negacja 128, czyli 0x7F. Po prostu zerujesz najstarszy bit przed przesunięciem. Dodano po 1 hmm... pod warunkiem, że zmienna będzie typu BYTE, oczywiście, inaczej...
Na wstępie widzę, że popełniłem straszną gafę. Zczytywałem stan portu przez PORT zamiast PIN:) Napisałem dwie kolejne wersje. ISR(TIMER0_OVF_vect)// { TCNT0=39; //1.728ms if (bit_is_set(PORTD,IR)) {IR_CMD[i]=1;} else {IR_CMD[i]=0;} i--; if (i==0) {TCCR0=0x00; i=13; _delay_ms(1000);...
Tak jak napisałem... adres mam publiczny. W APN vpn. Przepraszam, ale napisałem to już wcześniej. Tak, mogę wystawić rejestrator do DMZ i to mi działa, ale w późniejszym czasie mam jeszcze zamiar korzystać z innych konfiguracji, do których potrzebny mi jest NAT Ok, spojrzałem na ten opis 10..., a to była negacja. Sprzęt jest leciwy (jeżeli już to dla...
Myslalem, ze to kwestia konfiguracji: [syntax=c] #include <avr/io.h> #include <util/delay.h> #include "LCD/lcd44780.h" #include <stdlib.h> // konwersja z int na char, funkcja itoa #include <avr/interrupt.h> #define CLK (1<<PD5)//wyjscie PWM //########### I/O ########### DDRD |= (1<<CLK_LED) ; PORTD |= (1<<CLK_LED);...
Generalnie zapis do fifo powinien miec priorytet fifo sluzy do sprzegania modulow o roznych zegarach, w tym rowniez asynchronicznych, nie ma problemu priorytetu zapisu czy odczytu; z twojego, uzytkownika punktu widzenia, adresowanie pamieci na ktorej zrobiono fifo to nie twoj problem, jest ukryte; opcją byłby zapis na narastającym zboczu zegara i odczyt...
Witam czy mógłby ktoś sprawdzić poprawność kodu Assembler '51? Czy składnia jest ok? WDTCN DATA 0FFH ; WATCHDOG TIMER CONTROL AMX0CF DATA 0BAH ; ADC 0 MUX CONFIGURATION AMX0SL DATA 0BBH ; ADC 0 MUX CHANNEL SELECTION ADC0CN DATA 0E8H ; ADC 0 CONTROL ADC0H DATA 0BFH ; ADC 0 DATA - HIGH BYTE REF0CN DATA 0D1H ; VOLTAGE REFERENCE 0 CONTROL ADC0CF DATA 0BCH...
Witam Chciałbym się spytać czy możliwe jest podłączenie odbiornika IR, np. popularny TSOP1736 do komputera (przez por lpt albo inny). Chce sterować programem, początkowo miałem zastosować przyciski (czy schemat poniżej jest poprawny do podłączenia do portu przycisku?) http://obrazki.elektroda.net/25_12378406... Zamysł działania w stylu pokazanego...
Witam. Mam za zadanie wyprowadzić 2 porty uC na goldpiny. Oczywiście z 5V przy małym prądzie nie ma problemu, wyprowadza się je bezpośrednio. Ale co z wyższymi prądami? Jest jakiś wzmacniacz mogący dać "mocne" (do 0,5A) 5V na wyjściu, bez użycia dużej ilości tranzystorów (wykorzystuje tak 16 linii uC, więc trochę by ich było)? Do tego chciałem mieć...
DDRA=0xff; //port A jest portem wejściowym wg. mnie wyjściowym. volatile unsigned char i; // flaga określająca poprzedni stan diody nie korzystasz z przerwań więc po co volatile? Po za tym po co sprawdzasz poprzedni stan diody skoro stosujesz negacje? Wydaje mi się że tego typu warunek w zupełności wystarczy: if (bit_is_clear(PINB, 2))...
troche przesadzona... po co ta zmienna STAN, skoro w zasadzie nic z nia nie robisz? jak zwykle pochwale sie swoim podejsciem do sprawy, ktore uwazam za dosyc minimalistyczne: int debounce(void) { int stan; stan=PORT&MASKA_WSZYSTKICH_PRZYCISKO... delay(); if(stan!=PORT&MASKA_WSZYSTKICH_P... stan=0; return stan;...
Witam i pozdrawiam Mam taki problem mianowiscie Atmega 128 programuje sie bez problemu, ale cos jej sie stalo ze nic nie dziala, tak jakby problemy z portami, przy czystej pamięci diody sie zapalają a raczej nie powiiny bo zapala sie tylko jak port będzie wyjściem i ustawi sie tam stan 0 Czy ktos spotkał sie z takim uszkodzeniem procesorka, czy to wogóle...
Chyba się zagubiłem... Poprawcie mnie jesli się myle... - do pinów 1-8 podpinam odpowiednie wyjścia z portu lpt - do pinu 9 podpinam masę (np. zasilacza komputerowego lub lpt) - do pinu 10 podpinam 12V (np. zasilacza komputerowego) (i teraz trudniejsza część zadania) na początku myślałem, że napięcie z pinów lpt przenoszone są na piny 11-18, ale po...
Witam Mam problem z sterownikiem do lampek choinkowych, układ powstał w oparciu o kit AVT2770. Jest sterowany uKontrolerem AT89C2051. Problem w tym. że P1.0 uKontrolera powinien sterować optotriakiem (podawać stan niski) jednak nie steruje. Przy wyciągnietym uK z podstawki i zwarciu końcówki P1.0 do masy lampki się zapalają. Program napisany w Bacomie...
Tu masz najprostszy przykładowy program w C, który powoduje mruganiem diody LED: /***************************************... led.c (mruganie diody LED) Program powoduje mruganie diody LED dołączonej do P3_2. ****************************************... #include "51xD2.h" // zbiór definiujący rejestry procesora...
W tym projekcie ukladu do wyswietlania temperatury: (1) zaklada sie, ze mozna zasilac uklad z portu drukarki - a tam nie ma +5V; (2) do sie wyswietlac (majac zasilanie) tylko 2 cyfry (no, może 3...). Port drukarki ma (według opisu IBM) takie sygnały: (1o) -strobe (2-9o) data0-7 (10i) -ack (11i) +busy (12i) +pe (13i) +select (14o) auto feed (15i) -error...
Cześć. Jestem w trakcie budowania interfejsu diagnostycznego obsługującego protokół KWP1281. Wykorzystuję mikrokontroler ESP32. Jakiś czas temu zrobiłem sobie prototyp na płytce stykowej wykorzystując tylko tranzystory i rezystory. Zastanawiam się (i tutaj pytanie do Was) czy moje ogólne podejście jest dobre. Wiadomo, że linia K to pojedynczy przewód...
Wystarczy zaprzeczyc UART zeby byl zgodny z wiekszoscia urzadzen na interfejsie RS232..... Nie wystarczy. Na portach UART w zależności od wykonania występują poziomy 0-5V lub 0-3,3V, a na RS232 występują napięcia dodatnie i ujemne o wartości nawet ponad 10V! Połączenie obu standardów, niezależnie z negacją czy bez, źle się skończy dla UARTa. W szczególnych...
Dla wejścia rezystor, zenerka i jakiś przełącznik najlepiej chwilowy zwierający zenerkę do masy. Dla wyjścia tranzystor nawet BC547 z pinu przez rezystor na bazę emiter na masę a kolektor do +12V przez jakiś rezystorek lub pozostawić wyjście OC. Tyle że w programie trzebaby zastosować negację sygnału wyjściowego lub drugi tranzystor celem odwrócenia...
drobna poprawka Zamiast "trwa świecenie" będziemy tworzyli nową zmienną kontroli stanu na porcie ? Nie bo ta informacja jest zapisana, tylko gdzie? ... w przerzutniku portu C ponieważ właśnie powyżej stan portuC zmieniliśmy na przeciwny. Niestety nie wiemy czy na 1 czy na 0? Ale wystarczy teraz ten bit odczytać z portu i sprawdzić czy jest 1 Dodano...
Tak, jeśli włączysz negację (INVEN) to będzie ona dotyczyła zarówno wejścia, jak i wyjścia. Z kolei stan pinu zawsze można odwrócić programowo (tylko wyjścia) przez rejestr TGL. Sler rate limiter ma na stałe ustawione czasy, o ile mnie pamięć nie myli to jest mniej więcej 50% wydłużenie czasów narastania/opadania. Dobre dla I2C, czy innych wolnych interfejsów....
mam problem z uruchomieniem przetwornika AC w atmedze, po polaczeniu ukladu zgodnie z tym schematem http://www.voytek.tkdami.net/programy/ad... wszystkie ledy na ktorych ma byc wyswietlany wynik caly czas sie swieca mimo ze w programie jest ustawiony stan wysoki w konf. portow (diody sa prawidlowo polaczone). do przetwornika...
negacja mosfet negacja wejście negacja sygnału
philips 55pfl7008 volvo silnika sterowanie dwoma obwodami
pomiary oscyloskopem okiem praktyka klimatyzacja galanz
Dlaczego cewka elektromagnetyczna ma cylindryczny kształt? Światła drogowe nie działają w Mercedes W210 kombi 1997 - przyczyny i rozwiązania