Mogą to np być filtry drgań zestyków albo jakieś "usprawniacze" albo np podciąganie pinów do VCC (AVR mają wewnętrzne pullup'y). Schemat który pokazałeś to najprostszy schemat klawiatury 4x4.
Do cewki łączysz diodę prostowniczą na wysokie napięcie opornik ograniczający i to wchodzi na transoptor (anoda diody transoptora) a tranzystor emiterem do masy procka a kolektor do nogi AVR-ka. Nie zapomnij włączyć podciągania na tym pinie procka. Chyba jest to jsne ?
ustalam w ten sposób podciąganie pinu do stanów wysokich i niskiego(**) . Zakładałem, że po to jest alias (zawiera nazwę pinu), który sprawę rozwiąże. Co gorsza przyznam się, że taka była moja praktyka więc nie wiem jakim cudem błędy wyszły dopiero teraz. Podsumowując, właściwe jest podciąganie do VCC i GND poprzez SET i RESET a nie jak ja to zrobiłem....
Zazwyczaj podciągam reset jakimś rezystorkiem 10k do zasilania i kondensatorek 100nF do masy. Może tego mu brakuje. Pin 31 z atmegi podłączył bym mimo wszystko do GND.
Dzięki za zainteresowanie. Niby to w miarę proste a jednak ... portb=&B00000000 - wcale nie oznacza stanu spoczynkowego "0" dla pinów tego portu. Oznacza to, że piny tego portu są w stanie wysokiej impedancji ( HiZ), możesz to traktowac tak jakby były nie okreśone i bedą reagowc na przypadkowe sygnały pojawiające sie na wejściu, również te powodowane...
Nie, rozwiązanie już zostało podane. Te diody i rezystory wywal. To co masz zmienić to przełączanie kolumn, nie wystawiasz stanów 0 i 1, tylko np. 0 i słabe 1 poprzez rezystor podciągający - albo zewnętrzny, albo wewnętrzny (ustawiasz pin jako wejście z podciąganiem). Lepiej to można rozwiązać w XMEGA bo robisz konfigurację wired-AND i po kłopocie....
Witam! Gdzieś na jakimś blogu o mikrokontrolerach AVR przeczytałem ,że podciąganie pinów nie jest opłacalne jeżeli urządzenie jest zasilane z baterii ale na innej stronie przeczytałem ,że stan HiZ ,który występuje jeżeli nie będzie podciągania pinów powoduje zwiększony pobór prądu.
, przetłumacz poniższy kod z BASCOM AVR na Arduino Uno: $regfile = "attiny2313.dat" $crystal = 8000000 Dim A As Byte a=0 Config Pind.6 = Output led Alias Portd.6 led= 0 Config Pind.0 = Input Portd.0 = 1 Sw Alias Pind.0 do if a >1 then a=0 if sw=0 then bitwait sw, set incr a End If if a=1 then toggle led waitms 100 else led=0 end if loop end Przekształcanie...
(at)elektryku5 To już jest także w XMEGA oraz nowych ATMega. Generalnie jest to częściowe rozwiązanie problemu autora, bo w ten sposób można ustawiać/zerować lub zmieniać wybrane piny, ale nie można w ramach jednej operacji łączyć tych działań. ilka nóg mikrokontrolera (np 3, albo 4,5) ustawione w wyjście, i traktowane jako jedno "słowo". Ale nie 8....
Ustaw pin jako wejscie bez podciągania, to jest jedyna metoda. Oczywiscie nie można przekraczac na tym pinie napiecia zasilania lub masy +/- 0,5V. Pozdr. N.
Pin ustawiasz jako wejście, a nie wyjście. Podciągasz wewnętrznie do VCC albo do GND i stanem przeciwnym aktywujesz.
:arrow: alexiel Przeanalizowałem kod programu i stwierdzam, że on właśnie będzie się tak zachowywał jak napisałeś, tzn. będzie kopiował stan pinu PB0 na pin PB1 a stan pinu PB2 nie będzie wpływał na stan PB1. Domyślam się, że chodziło Ci o coś innego ale nie wiem o co. Poza tym w tej postaci w programie jest sporo zbędnych instrukcji a efekt jest uzyskany...
Wiem, że można użyć scalaków - ale chciałem to załatwić bez nich :P Stan 3,3V będzie wykryty, chodzi mi tylko o to, że wejście USARTA (PIN RX) jest wewnętrznie podciągane do zasilania (5V) czy więc podpinając pin TX urządzenia nieodpornego na 5V nie spalę go?
Skrót myślowy. Pin Tx w procku, który nie nadaje ma być ustawiony na wejściowy i wyłączony nadajnik UART - to gwarantuje, że będzie w stan HiZ. Oczywiście można dać diodę i podciąganie. To wszystko zadziała przy RS232-TTL. Myślałem, że nie chcesz jednak ingerować w te układy. Jeśli sam je budujesz to z AVR wykorzystaj XMEGA - tam można wyjście TxD (podobnie...
Jak dotąd nie spotkałem ATMEGI ze stanem wysokiej impedancji Jak masz na pinie ustawione wejście bez podciągania to masz stan wysokiej impedancji.
Najprościej dzielnik napięcia. Najpewniej optoizolacja (enkoder przez rezystor dajesz na diodę, a tranzystorem "podpinasz" pin procka do masy. W ATMega ustawiasz, że pin ma włączone podciąganie do VCC).
To może tak- ustaw port jako wyjście- podaj stan wysoki i odczytaj stan PIN. Raczej z podciąganiem. Ale to tylko pomysł- nie sprawdzałem.
Pobieżnie przeglądając nasuwają się dwa wnioski (w sumie trzy ale od razu zakładam, że koleżanka do portu PA7 nie podłączyła diody LED). 1. Wcale nie musi to być 99 albo 96. Do wyniku być może dodać jeszcze 128. 2. Z uporem maniaka włącza koleżanka podciąganie na pinie, do którego podpięty jest czujnik temperatury. Nie wiem co prawda czy jest możliwe...
Robi się to po to, żeby spoczynkowo na wejściu procesora panował stan wysoki, który zmieni się na niski po wciśnięciu klawisza, który zwiera pin MCU do masy. Jest to układ zwyczajowy, gdyż większośc mikrokontrolerów posiada możliwość programowego włączenia rezystora podciągającego do Vcc - w takim układzie na zewnątrz potrzebny jest tylko klawisz do...
10K w resecie trochę za dużo. 4,7K lub 2,2K Niekoniecznie. Pin RESET w AVR ma wewnętrzne podciąganie i zewnętrzny rezystor zwykle jest niepotrzebny. Nawet jeśli go damy, to będzie układ dwóch równolegle połączonych rezystorów (wewnętrzny i zewnętrzny) o wypadkowej rezystancji niższej, jak to w tym typie połączenia. Warto też pamiętać, że w nowszych...
Cóż, podpowiem jeszcze raz: 1. Sprawdź w necie jak odczytać stan przycisku ---- EDIT: w necie też piszą różnorakie bzdury o tym zatem może napiszę jak być powinno: Zwykle przyciski podłączamy tak, aby zwierały pin do masy. Aby odczytać stan danego pinu musimy: 1. skonfigurować go jako wejście instrukcją (np. - istnieje wiele odmian konfiguracji, ale...
Kolego, układy AVR mają nogę podłączoną do kilku rejestów. Pisząc słowo PIN konfigurujemy rejestry wejściowe, a słowo PORT rejestry wyjściowe. Chodzi tu o składnie języka Bascom. Ta informacja jest oczywiście niedokładna , a sama interpretacja błędna (!). Pisząc 'config ...' w efekcie edytujesz rejestr DDRx odpowiedniego portu x. Nie jest ważne czy...
Podłączałem bezpośrednio Nokię 5110 do ATMEGA 8 i nie było żadnych problemów z odbiorem po RXD (pin RXD ustawiony jako wejście,bez podciągania do '1' -czyli wejście wysokoimpedancyjne).
Jest kilka modeli AVR które nie mają własnego rezystora podciągającego do plusa więc lepiej dać te 10k i spokój. N.
Wyłapałem że wcześniej deklarowałeś $regfile = "m16def.dat" zamiast $regfile = "m16adef.dat" (mimo że procesory różnią się jedynie poborem prądu i rezystancją podciągania pinu RESET to warto było sprawdzić ten trop), jeśli dioda LED podłączona jest poprawnie do PORTA.0 to niestety nic więcej (poza samym komputerem) nie przychodzi mi do głowy... Ostatni...
Czego nie rozumiem? Czy chodzi o to, ze sam zawieszony w powietrzu stan wysoki na wejsciu nic nie znaczy? Ze obwod trzeba domknac, aby ten stan wysoki zostal odczytany? . Nie sądzę aby arduino zrozumiasł co chcesz powiedziec tu: pinMode(pind, INPUT); Nie jest to poprawna forma konfiguracji indywidualnego dowolnego pinu jako INPUT. Ta forma nie byłaby...
≈0,3mA na dzielniku R10+R43 to święta racja, ponieważ tu nie są potrzebne żadne prądy, a tylko dzielnik napięcia dla ADC więc zwiększę opory, Inne spojrzenie na dzielnik. http://obrazki.elektroda.pl/3298128800_1... Pin portu ustawisz tuż przed pomiarem na zero ( dokładasz parę omów ) , po czym wracasz do jedynki bez podciągania...
W czym najlepiej takie pliki mam przekonwertować bo może program jakim to robię jest do D... .Program to 4Music bitrate conwerter. Pisałem ci na pierwszej stronie że da się to zrobić w Winampie . Też kiedyś się męczyłem z różnymi programami ale Winamp okazał się najlepszy . http://obrazki.elektroda.net/34_12636806... No chodzi o to że sprzętowy...
mógłbyś mi to wyjaśnić? Bo nie bardzo rozumiem co się dzieje jeśli mamy podciągnięcie ... znaczy że na pinie jest +, jeśli zrobimy "zwarcie" z GND to w rejestrze PINx właściwy bit będzie 1, jeśli nie będzie "zwarcia" to będzie 0? Mówiąc łopatologicznie: jeśli masz podciąganie, to jeśli nic nie wymusza stanu, to na pinie będzie panować napięcie bliskie...
Microswitch jak najbardziej się nadaje. Rezystor może być, ale nie musi, lepiej jak będzie. AVR ma wbudowany, albo bardzo słaby (słabe podciąganie, bo duża rezystancja) i w niektórych sytuacjach pin może być podatny na zakłócenia z zewnątrz. Z rezystancja bym nie przesadzał, ten wbudowany ma chyba 130 kΩ (tak mi się wydaje, dawno temu sprawdzałem),...
Ładuje do r16 na bit o wartosci Px1 wartość 1 wypycha na rejestr kierunku neguje wypycha na rejestr podciągania (wszystko poza tym pinem). Dodano po 2 Podczas testowania programu w AVR Studio czy stany w rejestrze PINB odzwierciedlaja stany panujace na pinach Attiny ? Tak.
PORTB = 0x07; Więc pin, który testujesz, pozostaje w stanie wysokiej impedancji i pływając daje nieokreślony wynik. Albo zewnętrzny rezystor podciągający/sciągający, albo włączyć wewnętrzne podciąganie ustawiając w PORTB bit 0x04.
Stan 'trzeci' to stan wysokiej impedancji. uP jest na takiej linii ustawiony w wejście. Ostateczne napięcie jest w decydującym stopniu determinowane przez to co tam jest przypięte. Ok, dzięki za wyjaśnienie JacekCz :) Usiłuję wydedukować z Twojej odpowiedzi, czy mogę wykorzystać pin w konfiguracji jako wejście tak, aby rozróżniał 3 stany - Vcc, GND,...
config pinb.0 as input <<<<------ to nie jest błąd w składni ? do Reset Portb.0 <<<<-------- po co to robisz ? If Pinb.0 = 1 Then disp1 = 8 'wyswietl 8 na LED else disp1 = 0 'wyswietl 0 na LED end if loop <<<<----- w tej pętli cokolwiek by się działo i tak resetujesz pinb.0 na początku jak chcesz używać pinu b.0 jako...
Jeżeli to konieczne, zakładam możliwość sterowania napięciem na rezystorze podciągającym. Nie ma potrzeby. Wszystko co potrzebujesz avr zawiera. Dla uproszczenia będę sterował pinem B0 (PORT B) DDRB=1 //pin jako wyjście PORTB=1 //pin w stanie wysokim (wyjście) DDRB=0 //pin jako wejście, podciąganie włączone (z powodu poprzedniej instrukcji)...
Odkrywasz tu chyba koło na nowo. Diody nie są potrzebne. Klawiaturę podłączasz do jednego portu po kolei czyli tutaj 1-8 to będzie w porcie 0-7. Piny 0-3 ustawiasz jako wejścia z podciąganiem a 4-7 jako wyjścia. Bierzesz zmienną szesnastobitową i ustawiasz w niej 0. Ustawiasz masę na jednym z 4-7 a na reszcie plus i czytasz cały port z maską 0000_1111....
Pajczi - jakbyś zrobił tak jak ci radziłem na początku to już dawno miałbyś dobrze i sprawnie działający układ bez żadnego czasami załączania się przekaźnika czy to przy włączaniu czy to przy wyłączaniu układu. Daj sobie tylko spokój z tranzystorem NPN oraz rezystorem podciągającym do GND - bo to właśnie przez to masz te "efekty specjalne" czy na prawdę...
Witam, Zajmuję się aktualnie ATTINY13. Mam pytanie odnośnie pinu RESET. Jako, że w przypadku MEGA8 lub MEGA32 zawsze podciągam pin RESET przez rezystor do +5V - dzięki temu zabezpieczam układ przed przypadkowym resetowaniem się układu - takie są wymagania. A jak to wygląda w przypadku TINY13 - czy mogę ten pin zaprogramować jako OUT (pomimo tego, że...
estuj stan wejścia cyfrowego przy włączonym podciąganiu do plusa, a następnie przy włączonym ściąganiu do masy. Jeśli dwa sprawdzenia dadzą różne wyniki - wejście wisi w powietrzu. Tylko jest mały problem - ATMega, a o takiej mowa ma tylko programowe podciąganie do Vcc, nie ma do GND (to ma tylko XMEGA z AVR). Czyli rozwiązanie zaproponowane przez...
Jak ustawię porty jako wyjścia to nie muszę ustawiać tego wyjścia jako 1 lub 0. Natomiast jak porty ustawię jako wejścia to wtedy powinienem nadać im stały potencjał czyli włączam wewnętrzny rezystor w uC i stosuje tak zwane podciągnięcie do VCC i mam na wejściu stan 1. Jeśli ustawisz pin jako wyjście, to on zawsze musi mieć 0 albo 1, bo przecież do...
Już to poprawiłem tylko zapomniałem napisać . ............. Jeden kumputer w rodzinie i inni też chcą kożystać. ,,,. Na taką poprawkę to jest tylko jedno określenie: „<<GROCH z KAPUSTĄ>>” Jeżeli deklarujesz/konfigurujesz jakikolwiek pin jako wejście (INPUT) to musisz mu w ‘jakiś’ (*) sposób określić stan spoczynkowy....
Zgadza się. Dobrze kolega mówi. Ja tylko mogę skromnie dodać, że dla przycisku wystarczy _delay_ms(20); a jeśli chodzi o przyciski to cóż nawet bez zewnętrznego podciągania portu do Vcc powinno zadziałać i działa wiem o tym :). Port na port wejściowy ,włączyć podciąganie wewnętrzne portu do "1" (ponieważ uC ma już w sobie rezystorki podciągające do...
Mam taki układzik a do tego poniższy kod. Czy może mi ktoś powiedzieć dlaczego nie działa? https://obrazki.elektroda.pl/6762187600_... Jezeli to jest cały code, to pin 8 jest wejściem z załaczonym podciąganiem przez rezystor do VCC, a pin 9 jest tez wejściem gdzie podciaganie jest właczane i wyłaczane co 1 msec. Do wysterowania czegokolwiek...
W ATMega nie ma takiej opcji - włączenie USART powoduje przejęcie kontroli nad pinem IO i ustawienia rejestrów portu dotyczące tego pinu nie mają znaczenia. Poza tym dla TxD nie miałoby to sensu, skoro jest to wyjście push-pull. Takie numery można zrobić na AVR XMEGA, gdzie wyjście z USART przechodzi przez bufor pinu, w efekcie konfiguracja pinu wpływa...
Witam W AVR ATMega domyślnie porty były ustawione jako wyjście. Przeglądając dokumentację AN4899 uC STM32 znalazłem zalecenie by podłączać niewykorzystane piny do Vdd/Vss albo podciągać PU/PD w celu zmniejszenia poboru prądu. Natomiast nie widziałem informacji w jakim stanie znajdują się piny gdy nie zostało to określone (wejście/wyjście/Hi-Z). Wpis...
Witam Kiedy chce korzystać z pinu np PC0(ADC) jako przetwornika analogowo cyfrowego jak należy skonfigurować pin? Ma być wejściem? Ma być wewnętrznie podciągany do masy czy zasilania? Zauważyłem że ma to wpływ na pomiar ADC ale żadne rozwiązaie nie daje idealnych wyników. Dla napięć równych 0V uzyskuje wynik 60mV a napięcia około 1,2V są już dokładne
Nie wiedziałem, że używasz AVR, podejrzewałem '51 (jakoś tak bez uzasadnienia :D). Rezystor podciągający podłączasz tak jak powiedziałeś. Kod programu pokazuje jednak, że silne podciąganie na czas konwersji robisz programowo (w AVR można) - rezystor podciągający w tym jakoś szczególnie nie uczestniczy i jego wartość nie jest krytyczna, najlepiej zastosuj...
Witam Czy ktoś pomógł by mi z programowaniem attiny13 Potrzebuje kodu który: Sygnał stan 1 wchodzi na 1 nóżkę Sygnał stan 0 wchodzi na 2 nóżkę Sygnał stan 1 wchodzi na 3 nóżkę To na wyjściu np 5 nóżka pojawia się na 4min Stan 1 Staraj się konfigurować porty tak aby stan spoczynkowy (oczekiwanie na sygnał) by stanem wysokim '1' (port/pin podciągnięty...
1. Jeśli pin jest ustawiony jako INPUT DDRnx=0 oraz jest wyłączone podciąganie PORTnx=0 to wtedy pin jest ustawiony w stan wysokiej impedancji - czyli jakby wisi w powietrzu - inaczej jest prawie niewidoczny dla innych urządzeń, ale jeśli linia do której jest podpięty nie ma podciągania/stanów push-pull to będą na nim odczytywane losowo 0 i 1. 2. Drugiego...
Skoro da się tak zrobić w AVR, to tym bardziej w ARM, w to nie wątpię. Nie wiem, jak w konfiguracji przypisać do jednego pinu parametry wejściowe, a do innego wyjściowe, na tym samym porcie. Chyba, że całą sekwencję: [syntax=c] RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIO... ENABLE); // Włączasz zegar dla GPIOC GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13 |...
Portb.3 = 1 Jak już to pin. Po za tym mam nadzieję że masz zew. rezystory podciągające bo avr-y pull-down nie mają. IMHO to 3 pętle na taki program to o wiele za dużo. Proponuję skorzystać z opcji "compile" żeby zobaczyć czy program jest poprawny.
Proszę wytłumaczyć mój błąd w rozumowaniu. Ustawiam pin jako wyjście i potem instrukcją cbi wymuszam na nim stan niski, i dalej podaję pętle o określonym przez Maxim'a czasie i po powrocie z pętli zwalniam pin (ustwaiajac jako wejście port cbi DDRD,6), żeby znowu był podciągany do 1 przez zewnętrzny rezystor. Wydaje mi że że jak ustawiam powiedzmy 0...
http://obrazki.elektroda.pl/1643572400_1... Wstęp Układ Attiny43U wyróżnia się spośród innych mikrokontrolerów AVR posiadaniem wbudowanej w układ przetwornicy Step-Up. Umożliwia to zasilanie z jednego ogniwa 1,2/1,5V lub nawet mniej. Przetwornica dostarcza napięcia ok. 3V, a jej wydajność prądowa to ok. 30mA. Można więc zasilić z jej...
Ehh, przycisk zwiera Ci do zasilania (logiczne 1), natomiast jeśli jest puszczony to na pinie panuje stan nieustalony (oczekujesz, że wtedy będzie tam zero woltów -> logiczne 0 - tak nie jest co możesz zweryfikować mierząc napięcie na tym pinie względem GND i VCC - paradoksalnie za każdym razem przy puszczonym przycisku otrzymasz pomiar zbliżony do...
Popatrz np. na aplikację ds2490 (dokumentacja, strona 37). Dwie diody Schotky'ego i ds9503. W przypadku AVR a sam ds9503 powinien wystarczyć jako zabezpieczenie (diody są na każdym pinie), ale jak chcesz też możesz wstawić. Co do separacji galwanicznej to jest trochę ciężko ponieważ magistrala 1-wire realizuje montażowe AND. Swoją drogą wszędzie polecają...
Najpierw włączasz sobie wewnętrzny rezystor podciągający na pinie 3 portu A: [syntax=c] PORTA = 0x08; [/syntax] a później wyłączasz: [syntax=c] ... if ((char)polecenie[j] == '1') { PORTA = 0x01; // bit 3 portu A jest równy 0 // czyli rezystor podciągający jest wyłączony } ... [/syntax] Jeśli nie masz zewnętrznego rezystora podciągającego, to na pin...
Czy inne uC mają możliwość podciągania wejść analogowych i mogą robić pomiary tak, jak to opisałem czy ja źle wydedukowałem zasadę działania tego wejścia? W AVR też możesz włączyć pull up dla wejścia analogowego. To są oddzielne funkcje. To co obserwujesz może być efektem tego, że na tej nóżce "3V" wcale nie jest stale 3V. Jeśli ktoś sobie zadał trud,...
Jeżeli wyjście w stanie wysokim potraktujesz masą to AVR powinien to przeżyć (sam ograniczy prąd, lecz wydzieli się w nim ciepło). Jeżeli wyjście w stanie niskim podłączysz do zasilania "na sztywno" to ogień na dachu i w najlepszym przypadku stracisz 1 końcówkę portu. UC odbierze dane wejściowe do rejestru PIN a stan wejścia zostanie ustawiony w rejestrze...
Brak kondensatorów odsprzegajacych 100nF na stabilizatorze oraz wejściach zasilających AVR. Dodatkowo brak rezystora podciągającego(pull-up) rzędu 4K7 - 20K Ohm na pinie reset . Pozdrawiam :)
Jeśli chodzi o cmd_timeout to chodzi o to, że wejscie RX kiedy pin używany jest przez USART nie jest niczym podciągane. Kiedy jest podłączony do drugiego urządzenia np. procesora lub MAX485 to problemu nie ma bo pin jest podciągany wyjściem TX tego uC lub MAX485. Kiedy jednak odłączysz to na pinie stan jest nieustalony i wpadają na USART śmieci. Ten...
w każdym uC można zastosować rezystor podciągający , w AVR z powodu dużej rozbieżności wewnętrznych rezystorów jest to zalecane szczególnie jeżeli pin / port pracuje jako wejście MirekCz ma rację nawet nie zauważyłem tego config portx odnosi się dla całego portux , natomiast config pinx.y dla konkretnego pinu portu zastosuj lepiej taki sposób konfiguracji...
Proszę zwrócić uwagę, że kolega poleceniem DDRA = 255; 1. ustawia kierunek portu A na wyjściowy 2. potem próbuje wczytać jego zawartość poleceniem PB.bajt = PORTA do zmiennej 3. jeśli kolega do portu A który jest wyjściem i ma ustawiony stan niski na swoich pinach będzie przykładał stan wysoki za pomocą switch'a to niechybnie w końcu nastąpi przykre...
Co oznacza podciągam? Zwierasz wewnętrznie poprzez wbudowany rezystor odpowiedni pin portu z Vcc (pull-up) wymuszając na nim stan wysoki. Dopisałem set plus i set minus i nic sie nie zmieniło Nie dziwi mnie że nie działa bo aliasy masz przypisane do rejestru PIN_x a pull-up włącza się ustawiając odpowiednio bity w rejestrze PORT_x. Szczegóły w DS.
Niektóre avr-y nie mają wewnętrznego rezystora podciągającego na pinie resetu. oloam miał fuksa i procek pracuje, następnie zmieni procesor i będzie pytał co się stało. Pzdr. N.
Złącze ISP standardowe, programator znajdź sam, wartości elementów dobierasz zależnie od potrzeb. Tranzystory w wersji SMD zastąp większymi, zależnie od silników. Rezystor podciągający reset do plusa ~10K, rezystory ściągające do masy ja dalem 47K, rezystory baza - pin u mnie są 1K, kondensator dowolny.
Nie masz włączonego podciągania,tak wiec jeśli wykrywasz załączenie switcha: stanem wysokim to dajesz reset portx.x lub portx.x=0 stanem niskim to dajesz set portx.x lub portx.x=1 (dane polecenia w pętli lub przed instrukcą sprawdzania stanu na pinie) Porty mikrokontrolera sa na tyle czułe ze sciągaja cały syf z otoczenia ,dlatego można dać na zewnątrz...
(at)osctest1 Bardzo ciekawe! Piszesz o prądach maksymalnych a nie typowych. Dane z pierwszej strony datasheet. https://obrazki.elektroda.pl/7185665500_... https://obrazki.elektroda.pl/2076446000_... Gdyby było inaczej to jakim cudem podzielniki ciepła wiszą na grzejnikach po 10 lat. W przypadku podzielnika kiedy bateria...
Ale jak rozumiem to wejście CS może zostać tam gdzie jest (pin SS uC), lecz muszę dorzucić rezystor podciągający do Vcc, tak ?
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...
1. Skoro wyjście szeregowe, to przydałby sie sygnał zegara transmisjii szeregowej, skąd urzadzenie zewnętrzne ma wiedzieć, że stan na wyprowadzeniu jest już ustalony, czy jeszcze nie ? 2. Są takie śliczne instrukcje sbi , cbi , sbic / sbis ... 3. Jak już pisać to uniwersalne procedurki, w których np. zmieniamy coś w jednej linijce, a działa na innym...
Teraz odkopałem znowu ten układ po przerwie i zauważyłem, że działa dopiero wtedy, jak dotykam palcem pinów do których są podłączane przyciski. Wtedy przy wciskaniu przycisków wysyła komunikaty, diody mrugają i wieża je odczytuje. Dlaczego tak się dzieje, chyba piny są przecież podciągane przez wewnętrzne rezystory? Podmieniłem kod w pierwszym poście,...
Potrzebuję zbudować sterownik 11 serwomechanizmów na dwóch układach Attiny2313 z kwarcami 16Mhz. Mam wątpliwości dotyczące tego czy jeden uc Attiny 2313 będzie w stanie obsługiwać do 6 serw jednocześnie (bo przecież ma tylko 2 timery)? Do tej pory programowałem ten procesor jedynie w płytce testowej z zestawu AVT Piotra Góreckiego. Teraz z użyciem programatora...
o to chodzi, że chcesz sterować rejestrem PIN, a więc wytłumaczę: Każdemu portowi w procesorach serii AVR8 są przyporządkowane 3 rejestry: 1. DDRn (np. DDRB) odpowiedzialny za określenie kierunku wyjście/wejście (w BASCOM ustawiasz to automatycznie za pomocą Config) 2. PORTn (np. PORTB) odpowiedzialny za stan pinu (w przypadku konfiguracji jako wyjście...
Witam, mam pytanie dotyczące obsługi przycisków oraz trochę większy problem z obsługą USARTa na uC STM32F107 :P Co do przycisków - mam je sprzętowo podciągane do Vcc, na AVR zawsze ustawiałem piny przycisków na wejścia i ustawiałem jeszcze wewnętrzny pull-up, a tu widzę, że jest trochę inaczej ;) Otóż wszystko ładnie mi działa dopóki nie ustawię jakiejkolwiek...
Witam, żeby nie zakładać nowego tematu, odkopię ten. Tamta przejściówka nie działała, także dałem sobie z nią spokój. Pomyślałem że lepiej będzie zrobić taką: http://obrazki.elektroda.pl/6307932600_1... Zrobiłem ją starannie, aby mieć na długi czas i problemy z przesyłaniem programu się skończyły, ale niestety program winavr zwraca błąd:...
Jaką funkcję spełni rezystor na tym pinie? Reset pin w AVR jest aktywowany stanem niskim i spełnia dwie funkcje. Podłączając Reset pin do GND powoduje reset wszystkich rejestrów do 0 oraz ustawia Program Counter na zero oraz przełącza wszyskie linie wejściowe i wyjściowe w stan HiZ . Drugą funkcją jest przełączenie processora w tryb programowania....
Witam Prosiłbym kolegów o pomoc w doborze układu który pozwoliłby na "wyłapanie" ramek pewnej transmisji. Jest to stary intelowski protokół BITBUS oparty na sieci RS485 o szybkości ~300kbit/s. Udało mi się rozszyfrować ramkę z użyciem STM32 z zegarem 72Mhz lecz pojawił się problem z zakłóceniami. Niestety magistrala w warunkach przemysłowych jest strasznie...
Witam, Chciałem obsłużyć 1-wire na atmega8 z czujnikiem ds18b20, napisałem program i zaczęło wszystko działać dobrze. Ale jak zwiększyłem taktowanie uc powyżej 1MHz to już komunikacja z termometrem nie działa i nie mam już pomysłów dlaczego? Do DS18B20 jest podpięty GND, VCC i rezystor 4,7k między VVC - DQ. Diody podpięte do PC0, PC4, PC5 sygnalizują...
No właśnie nie. Nigdy nie podciągałem i było ok. AVR ma wbudowany układ obsługi pinu reset. Jednak po podciągnięciu faktycznie objaw zaniknął. Dzięki i pozdrawiam ! PL
Mam problem z zaprogramowaniem ATmega8535. Używam programatora na kabelku z LPT zbudowanego w oparciu o schemat z HELPa, czyli: DB25 pin ->ATmega8535 2 przez R=330om->MOSI, pin 6 4 przez R=330om->RESET, pin 9 5 przez R=330om->SCK, pin 8 11 -> MISO, pin 7 18-25,GND ->GROUND, pin 11 Do uC miałem podłączony jedynie DS1820 w konfiguracji z „osobnym...
Panowie powinienem wspomnieć to chyba na wstępie. Nie jestem elektronikiem, a automatykiem, układ ten jest moim pierwszym urządzeniem elektronicznym robionym dla kogoś i rzeczywiście jak kolega wspomniał jest to produkcja "garażowa" 20 sztuk rocznie. Zdecydowałem się na THT na początku ze względu na słabe doświadczenie w zakresie projektowania elektroniki,...
Witam ponownie, Bardzo dziękuję za rady oraz uwagi, lecz Pana odpowiedź minęła się z moim problemem. Mianowicie, system przerwań uruchamianych przyciskiem nie działa w żaden możliwy sposób. Mianowicie, nie działa najprostszy kod typu : bit_is_clear działa z przyciskiem bez problemu, ale ona mnie nie zadowala. Dodatkowo chciałbym zaznaczyć, że bouncing...
Program jest jak sądzę najprostszy z możliwych [syntax=c]#include<avr/io.h> #include<util/delay.h> int main(void) { DDRC = 0x3f ; // cały port B jako wyjścia PORTC = 0x3f ; // cały port B z podciąganiem while(1) // pętla główna programu { PORTC = 0x3e ; _delay_us(0.1); PORTC = 0x3f ; _delay_us(0.1); } }[/syntax] Głównie chodziło mi o sygnł...
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...
Cześć, Razu pewnego, mając zlecenie w terenie gdzie długie dnie spędzałem w ciszy kupiłem głośnik BT z wbudowanym radiem na alledrogo za ok 200zł. Od początku wnerwiało mnie to, że włączając go głównym włącznikiem zasialnia zawsze uruchamiał się w trybie BT na 2/3 głośności (czytaj, bardzo głośno) a do tego jeszcze takim wrednym, krzykliwym "titu titu"...
Wykombinowałem, że zrobię mechanizm, który lekko uniesie słuchawkę i zewrze przycisk od szlabanu. Uruchamiany zdalnie przez gniazdko smart. Do tego celu zastosowałem mikrokontroler Attiny13A i mostek L293NE do sterowania silnikiem. Program jest prosty, przewidziałem wprawdzie na zapas przycisk do inicjowania, ale na razie program działa wyłącznie samoczynnie...
[syntax=c] #include <avr/io.h> #include <util/delay.h> // definicje dla preprocesora // dioda LED #define LED_PIN (1<<PC5) // definicja pinu do którego podłączona jest dioda #define LED_TOG PORTC ^= LED_PIN// makrodefinicja – zmiana stanu diody // klawisz K1 #define KEY_PIN (1<<PB1) // ****************************************...
Ostatnie czasy na Elce coraz więcej nie działających procesorów/Programatorów/za szybko wykonywujących się opóźnień... W związku z tym może warto by było zrobić coś w stylu "Kompedium" co zrobić, jeśli nie działa...Jeśli macie jakieś z życia przykłady piszcie, będę uzupełniał:) Nie działa procesor: 1) sprawdź czy jest zasilanie na WSZYSTKICH Nóżkach...
Witam. Ja również staram się dokonać konwersji sygnałów 5V -> 3V (transmisja jednokierunkowa). Układ to atmega8(2.9V)+LCD(2.9V)+max232(5V). Chcę układ wykorzystać, wysyłając komendy z komputera po rs232, sterować LCD. Zależy mi tylko na komunikacji PC->atmega. I teraz po kolei: *max232 -> atmega na 5V | wszystko działa *max232 -> dzielnik napięcia ->...
Witam, zaczynam zabawę z programowaniem AVR. Chcę zrobić prosty program, w którym dioda będzie świecić po sygnale z krańcówki, i przestawać po wciśnięciu przycisku. Napisałem taki program: #define krancowka 8 #define guzik 9 #define led 10 boolean listy=false; void setup() { pinMode(krancowka,INPUT); pinMode(guzik,INPUT);...
Witam. Istnieją dwie szkoły. Jedna prawi, że wejścia cyfrowe (w tym piny nie używane) w mikrokontrolerach należy zawsze podciągać rezystorami do VCC). Rodzina AVR pozwala, niezależnie dla każdego pojedynczego pinu I/O załączyć zintegrowanego w uC pull-up-a, dlatego druga szkoła mówi, że realizacja zewnętrznych pull-up-ów jest przerostem formy nad treścią....
Drgania styków tutaj nie mają nic do rzeczy. . Oczywiście że mają zasadnicze znaczenie! Tylko dla warunku 3 (patrz pierwszy post autora), jest bez znaczenia, ile razy zarejestrowano naciśnięcie przycisku; wyjściem jego funkcji jest arbitralna i jednoznaczna, niczym warunkowana obsługa wyjśc - wyłączyc wszystko! Natomiast dla punktu 1 i 2 gdzie autor...
Kod z 1 posta z odrobiną poprawek w formatowaniu: [syntax=c]#include <avr/io.h> #include <avr/interrupt.h > #include <avr/pgmspace.h > #define LED1 (1<<PC0) // zwykła dioda LED #define LED2 (1<<PC1) // podświetlenie LCD #define LED1_ON PORTC &= ~LED1 #define LED1_OFF PORTC |= LED1 #define LED1_TOG PORTC ^= LED1 #define...
Pull-up którym dysponują mikrokontrolery, to przeważnie śmiech, nie pull-up ;] A juz w szczególności jeśli to dotyczy resetu. Sprawdź co śmiesznego będzie robił mikrokontroler (i wyświetlacz zresztą też), gdy układ znajdzie się w pobliżu czegos, co mocno sieje, tj. wiekszy silnik, stycznik, przekaźnik z cewką AC... Reset powinno się porządnie podciągnąć...
Odpowiem, ale na przyszłość zastosuj się do rad kolegów i używaj przycisku szukaj. W ten sposób naprawdę można znaleźć odpowiedź na prawie każde pytanie odnośnie AVR-ów. Kolega Tdv się zdenerwował i wcale mu się nie dziwię (przy okazji i mnie może się oberwać... :please: proszę mnie nie bić). Ja bym to zrobił tak: http://obrazki.elektroda.net/61_11671676...
Ogólnie aby zadziałało dodaj rezystor zewnętrzny na wejście np 10k, albo użyj wewnętrznego przez wpisanie jedynki na PIN czyli PIND|= KEY. Po pierwsze nie PIND tylko PORTD, po drugie autor już to zrobił, czyli włączył wewnętrzny rezystor pull-up: Teraz tylko ciekawi mnie jak wewnętrznie podciągać linię do VCC. Bo te sposoby z neta mimo wszystko wymagają...
Używam PWM do generowania różnych współ. wypełnienia dla diody RGB. Jeden przycisk jest odpowiedzialny za zmienianie trybów, jest on podłączony do INT0 (pin pracuje jako wej. z podciąganiem do plusa, a przycisk podpięty do masy). W skrócie, gdy zostaje naciśniety przycisk program wchodzi do obsługi przerwania, inkrementuje zmienna m. Gdy wychodzi z...
U mnie działało to dobrze, choć pamiętam, że ktoś kiedyś na forum twierdził, że przy RS485 kolizji na wykryjesz, bo lokalnie i tak transceiver wymusi swój stan. No właśnie, z w/w powodów niekoniecznie to musi działać. Ogólnie przyjmuje się, że na RS485 nie da się wykryć kolizji na "drucie", trzeba to oprogramować w wyższych warstwach OSI. Kiedyś się...
Wszystkim bardzo dziękuję za szybką pomoc. Wysuwa się jeden wniosek - należy dodać podciąganie poprzez rezystor 10k. Interesuje mnie jednak pomysł dodania kondensatora 100 nF od reseta do masy. Do zresetowania procesora potrzebny jest bardzo krótki impuls (chyba 2µs). Taki kondensator powinien być więc konieczny. Rzadko jednak widzę go na schematach...
Nie spotkałem w bascomie funkcji do konfiguracji Pin change innterrupt ani przerwania od watchdoga, ale oczywiście można to zrobić na rejestrach. W bascomie nie znam zawartości pliku ATtiny44.dat Czy oprócz nazw rejestrów są jeszcze bity? [syntax=basic4gl]$regfile = "ATtiny44.dat" Dim Praca as Bit Praca = 0 Config PINA.5 = Input PORTA.5 = 1 'włącz wewnętrzne...
podciąganie pinów podciąganie pinów bascom atmega podciąganie
700ma prąd ładowania wymiana turbo router odbiór antena zewnętrzna
Pomiar ciśnienia pompy rotacyjnej w MF 6180 ARPC_configuration.exe legitimacy, malware risk, vendor checks, digital signature verification