Portc i Portc.4 zamień odpowiednio na Pinc i Pinc.4.
Podobno działa to przerwanie a problem był w zwarciu na PC. Dziwne że w symulatorze nie działało. Cuda i dziwy hehe. Pozdrawiam
Czy port od przetwornika masz skonfigurowany jako wejście?
Witam, Na przykład: if (PINB==34) .... .... Pozdrowienia
Porty (takze B) nie jest typu otwarty kolektor, jest to pelny port wyjsciowy (wystawia pelne 0 lub 1). Wiec zadnych opornikow podciagajacych nie trzeba dawac. Przy konfiguracji jako wejscie, port moze byc 'w powietrzu' lub mozna wlaczyc programowo wewnetrzne oporniki podciagajace do +. Dlatego w wiekszosci projektow klawisze dopiete sa do masy (po puszczeniu...
Najzwyklejsza dioda np : 1n4148. Podpinasz to pod np wejście INT0 w procku :)
Jak już Kolega nabierze wprawy z przerwaniami i timerami to można osiągnąć zamierzony cel w następujący sposób: Dajemy sygnał (którego długość trwania chcemy mierzyć) na wejście INT0 oraz INT1 jednocześnie, przy czym pierwsze ustawiamy na zbocze rosnące a drugie na spadające, w przerwaniu INT0 startujemy timer1 a w przerwaniu INT1 zatrzymujemy go,...
Pin RESET jako zwykły I/O ma o wiele mniejszą wydajność w stosunku do pozostałych linii. Zobacz na stronie 5, 266, 267 datasheeta.
Ehh, mity i mityczne rady. Procesory AVR są "przystosowane" niejako do "podłączania przycisków" tak, aby zwierały do masy. Procesor ma wewnętrzne rezystory podciągające, które aktywujemy konfigurując dany pin jako wejście (Config PinX.N = Input) oraz potem wpisując 1 do odpowiedniego bitu rejestru wyjściowego (PortX.N = 1). Poza tym, błagam, używajcie...
Posiadam aparaturę zdalnego sterowania, w której podczas maksymalnych wychyleń drążka w lewo i prawo na nadajniku, na odbiorniku na wyjściu sygnałowym napięcia przykładowo 0.26-0.42V. Chciałbym podłączyć ten sygnał do wejścia uC. Czy można programowo odróżnić te wartości napięcia, aby w skrajnych przypadkach podawać napięcie na różne wyjścia uC? Można...
Skoro puściłeś przez ULN2803A to za pewne zapomniałeś o pull-up dlatego "wisi". Jeśli chodzi o rezystor to ok 10k.
Czy jeżeli mierze napięcie na kanale ADC0 to muszę ustawić ten pin jako wejście?
witam najłatwiejszym sposobem jest danie na wejście atmegi stabilizator to jest naj pewniejsze
tak i skonfigurować ją jako wejście napisz w jakim języku programujesz
W ATMega/ATTiny nie, natomiast w XMEGA jest i pull up i pull down.
A gdzie konfiguracja Portc.5 jako wejście?
Witam, Postanowiłem zwrócić się o pomoc na forum bo niestety nie daję sobie rady z moim problemem. Jakiś czas temu postanowiłem sobie, że zrobię własny komputer pokładowy do samochodu. Poczytałem troszkę forum i znalazłem odpowiedzi na pytanie co i jak należy zliczyć. Poszukałem trochę w necie i znalazłem schemat układu dopasowania dla Atmega8 który...
Wywal linie: PINB |= _BV(1) | _BV(2); Ustaw DDRB tak aby mieć wejście na PB1 i PB2
http://www.electronics-tutorials.ws/opam... zamiast R1 + R2 daj potencjometr R3=R4, V2 do plusa zasilania V1-wejście Vout do ADC µC
u mnie ładnie działa :) pamiętaj że wejście Atmega8 nie może wisieć w powietrzu bo krzaki się robią diodach :) Ps : wciśnij pomógł :D
Zacznij od podstaw: http://mikrokontrolery.blogspot.com/p/sp... Jak będziesz miał konkretny problem wstaw swój program, pokaż schemat, a na pewno pomożemy.
Zależy jakiej dokładności oczekujesz, ATMEGA8 nie ma w przetworniku wejść różnicowych, można zastosować większe Atmegi które mają takie wejście, ale dokładność będze nieduża. Najlepiej zastosować specjalizowane wzmacniacze różnicowe np. INA114
Nic nie trzeba zmieniać, to ten sam procesor. W obudowie TQFP ma nawet wyprowadzone dwa wejścia ADC więcej.
Zastosuj wejście prądowe, zabezpiecz je przed przepięciami i będzie działać :)
Port C ustawiłeś jako wejście. W miejsce zer wpisz jedynki, następnie Portc=&B00000000
Witam. Fakt z procesorem mój błąd. Jednak tak jak wyżej napisałem pojawił się nowy problem, którego wcześniej nie potrafiłem wychwycić. Wejścia stają się nieaktywne w momencie gdy diody się zapalają i świecą. Dopiero gdy wszystko gaśnie znów można wysterować któreś wejście.
Na trójce to jest zwykle podłączana katodą dioda LED (a dalej przez 470Ω do +5V) sygnalizująca programowanie (gdy RESET=0). Może być może nie być ale pokazuje czy komputer coś wysyła do programowanego procesora.
Witam. Czy blok licznika (wejście T0) w atmega8 jest niezależny od zegara procesora? Jeżeli tak, jaką maksymalną częstotliwość mogę podać na wejście licznika? Pozdrawiam.
sygnał podany na wejście PD2.
Dodatkowo jak już mulipleksujesz wyświetlacze to diody można potraktować jak "2 dodatkowe segmenty wyświetlacza"
Po pierwsze port powinien być wskaźnikiem na zasób sprzętowy, masz to w FAQ dokładnie opisane. Po drugie wartość zmiennych lokalnych jest tracona pomiędzy kolejnymi wywołaniami funkcji, chyba, że są to lokalne zmienne statyczne.
Witam. Dziwne rzeczy piszecie. Rezystor i dioda zenera 4.7V do odbioru i MOSFET do nadawania. Pozdrawiam.
Podciągnij wejście do plusa wewnętrznym rezystorem. Wejście T1 to PD5. [syntax=basic4gl]PORTD.5 = 1[/syntax]
tylko że do PC.4 nie możesz. Musi być pod PD.4. Bo to jest wejście impulsów zewnętrznych dla Timer0
Można zrobić SPI w trybie master - slave, gdzie na przykład uC "C" będzie jako master, pozostałe jako slave i uC master będzie wybierał z którym uC będzie się komunikował. Można też zastosować topologię pętli, wyjście uC "A" łączys zz wejściem "B", a wyjście "B" z wejściem "C", natomiast wyjście "C" z wejściem "A". Tylko znów jeden układ musisz ustalić...
Witam Dlaczego sygnał z czujnika(cyfrowy) jest podpięty na wejście analogowe?
Jeśli kod ma być zapamiętany po wciśnięciu przycisku, to najpierw trzeba skonfigurować port: np. Config Pinb.0 = Output Portb.0 = 1 readeeprom rozkaz, 0 w istniejącej pętli do...loop wpisać: if pinb.0 = 0 then writeeeprom rozkaz, 0 Jeżeli chcesz sprawdzać stan za pomocą PINX to port musi być jako wejście...
Jeśli jest to wejście, to nie.
Chcesz wpakować program w EEPROM ??? [syntax=bash]-U eeprom[/syntax] Nie wejdzie!!! http://www.ladyada.net/learn/avr/avrdude...
Hej. Jest tak jak piszesz ale: Jeśli port masz ustawiony jako wyjście DDRx = 0xFF; a do rejestru PORTx wpiszesz PORTx = 0x00; na wyjściach masz masę natomiast gdy wpiszesz PORTx = 0xFF; na wyjściach masz +5v (podciągnięcie"pull-up" ) Jeśli port masz ustawiony jako wejście DDRx = 0x00; a do rejestru PORTx wpiszesz PORTx = 0x00; piny będą reagowały gdy...
żadnego nie kupuj... Nie jest potrzebny. Dzielnik o rezystancji rzędu 100 k i kondensator 100 nF na wejściu ADC załatwią wszystko.
Zastosować dzielnik
Problemem może być napięcie referencyjne, jeśli nie jest odpowiednio podłączone może pływać, np. zmienić się pod obciążeniem jeśli zasilasz z niego układ czy coś tam jeszcze. Stąd różnice w pomiarach. Użyj może wewnętrznego 2,54 V , ale musisz też dzielnik zmienić, mam nadzieje że o kondensatorach jak najbliżej ATmegi nie zapomniałeś? 2) podłączenie...
Set Pind.7 ??? Było już tysiące razy, że do procka wchodzi się przez rejestr PINx.y, a wychodzi przez rejestr PORTx.y. W rejestrze DDRx.y zapisuje się kierunek pracy portu - 0 - wejście, a 1 - wyjście. Poczytaj o portach.
Na każdym z fotorezystorów robisz dzielnik napięcia... Z niego podajesz napięcie na wejście ADC... Mierzysz napięcie z każdego dzielnika i porównujesz...
Jeżeli upierasz się przy układzie 4053, nie zapomnij że należy wstępnie poprzez rezystor co najmniej 100k połączyć wejścia sterujące ABC, do masy i dopiero poprzez wyłącznik podciągać do VCC. http://obrazki.elektroda.pl/8902039000_1... Na temat wejścia SS Atmega8 (i nie tylko), możesz poczytać w jego nocie katalogowej, lub w dostępnej...
Witam, pytanie niby proste, ale jestem jakiś zagubiony :) Czy mogę czujnik Halla podłączyć bezpośrednio do wejścia ATMEGA8, czy muszę kombinować z tranzystorami itp? Wejście jest podłączone do masy przez rezystor 10k (Pulldown). Czujnik Halla zasilany 5V tak jak ATMEGA8.
Przycisk nie reaguje w przerwaniu. Dodano po 9 A czy jeżeli PB1 jest wyjściem można stan pinu odczytać przez (PINB & (1<<PB1)) i z zależności od jego stanu wykonać warunek bądź nie? Czy rejestr PINx ma zastosowanie tylko dla wejść?
Możesz podłączyć, programator okupuje te linie tylko w stanie resetu procka, kiedy jest programowany. ...Aczkolwiek, dmuchając na zimne, to jak już to na tych pinach daję wejścia, jakieś przyciski itp.
Ściągnij rezystorem np 100k wejście przetwornika ADC do GND. To normalne zjawisko jak wejście ADC wisi w powietrzu (jest nie podłączone).
Gniazdo PRG ma służyć do programowania i jako wejście obrotomierza.
Witam, ustawienie rejestru DDR i PORT na 0 daje wejścia pływające (ATmega8 nie ma rezystorów ściągających do masy, tylko podciągające do plusa). Tak jak jest teraz łapiesz kolego zakłócenia. Należałoby albo dodać zewnętrzne rezystory między przyciskami a masą lub zmienić położenie przycisków (między pinem a masą) i włączyć wbudowane rezystory. O volatile...
Witam ! Ostatnio bawiłem się urządzeniem do pomiaru obrotów, i łączyłem foto tranzystory ( dwa kanały ) inaczej: Programowo podciągałem wejście ATtiny2313 do +5V, emiter foto tranzystora (NPNa) do masy, a kolektor na wejście ATTiny2313. Pozdrawiam. Stefan
Zerpo - dziekuje za wyjasnienie. Nie mam zamiaru kombinowac z programatorami rownoleglymi. Zapytalem bo braklo mi wyjsc I/O w tym procku i pomyslalem ze można by ten pin wykozystac, ale widzie ze w tym konkrektym projekcie nie warto az tak eksperymentowac. Dziekuje i pozdrawiam wszystkich.
W przypadku problemów z termometrem należy dołożyć rezystor 10K pomiędzy wejście termometru, a +5,6V.
Witam Was !!! Od paru dni zajmuję się budową oscyloskopu.Przedstawiam to co udało mi się już zrobić.Na razie podaję sygnał około 2 Hz z atmega8 na wejście przetwornika A/D drugiego atmega8 i z niego na port LPT laptopa.Odczyt danych i wyświetlanie na ekranie zrealizowane jest przez program napisany w Borland Pascal-u 7.0 .Poniżej fotki . http://obrazki.elektroda.pl/3711611200_1...
środek na wejście procesora na wejście ADC, oczywiście?
Aby sprawdzić stan wejścia czyta sie PIND, a nie PORTD.
Dlaczego kiedy nie podaję nic na przetwornik, utrzymuje się tam wartośc (w zależności chyba od humoru avr) od 300 do 800? bo to wejście wtedy wisi w powietrzu. Jak dasz rezystor do masy to napięcie spadnie do zera i też takie będą wskazania przetwornika ADC. Proponuję ci także dodać kondensator np 100n na wejściu przetwornika , sprawdź czy wyniki się...
Porty są domyślnie ustawione jako wejścia i nie trzeba ich konfigurować na początku. Ustawiłeś odpowiedni procesor? Podawaj zawsze treść błędu.
Czyli ja to rozumiem tak i popraw mnie jesli źle napiszę. Ustawiam coś na PORTB.1 np wartośc H. robię odczyt i=PINB oraz k=PIND Połączone mam tak że PORTB.1 połączony jest z pozostałą częścią portu B i całością D, wszystko oprócz B.1 na wejście. Czy wszedzie jest to opóźnienie? na każdym z tych wejść?
Czy ustawiłeś ten pin jako wejście bez pull-up'a?
To może spróbuj na koniec przełączyć dany PORT jako wejście bez podciągania.
ja wiem jedno. jak chcę mieć coś na wyjściu to wpisuje to na PINx, a jak chcę zczytać coś z wejścia to odczytuje PORTx. A symulator nie kłamie w tym przypadku i TRZEBA ustawić DDRx na odpowiednie stany wejście/wyjście
Witaj :) Da się coś zrobić , musisz dać miedzy wejście przetwornika ADC a masę rezystor powiedzmy tak 10 kΩ i powinno być dobrze . Pozdrawiam i powodzenia Bartek :)
Ostatnio projektowałem układ, który mierzył czas pracy układu (a raczej jego zasilania). Zamiast korzystać z komparatora skorzystaj z ADC. W zupełności wystarczy wewnętrzne źródło odniesienia napięcia dla ADC. Wynosi ono ok.2,56V z dość sporym marginesem błędu ale w zupełności wystarczy. Wystarczy prosty dzielnik napięcia (na rezystorach o dużych wartościach)...
Mam prośbę.Próbuję uruchomić woltomierz do pomiaru napięcia akumulatora i wyświetla mi na LCD same zera. prawdopodobne coś mam źle w kodzie. [syntax=c] #include <stdio.h> #define VREF_VCC (1<<REFS0) //Napięcie odniesienia #define ADCIN PC0 //Aktywne wejście dla pomiaru napięcia(ADC0) uint32_t wynik; uint16_t pm; uint8_t cz_d,cz_u; int main(void)...
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)...
No faktycznie. Nie zwróciłem na to uwagi. Jeżeli elementem fontu jest kod, to nic z tego. W pliku font nie ma kodu - są tylko dane. Kod jej wyświetlania jest w bibliotece. Co zresztą napisałem wcześniej. Naddatkiem w pliku font są 4 początkowe bajty: 0 : ilość bajtów na linię czcionki (X) 1 : wysokość czcionki w liniach (Y) 2 : rozmiar definicji jednego...
Poszukaj w EdW i EP były o tym artykuły - nie ma z tym żadnych trudności, tak na prawdę wystarczyły 2 czy 3 rezystory i wejście Wideo (nie antenowe) w TV :) Jedyny problem to limity czasu w "ramce"...
Nie, bo zwarcie wejścia do masy spowoduje zwarcie masy z 5V. Włączając pull-up, podłączasz wejście do masy przez wyłącznik, puszczony - stan 1, wciśnięty stan 0.
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.
1 Brak napięcia CONTRAST na wyświetlaczu. 2 Brak kondensatora na wejściu RESET. 3 Zły układ styków; wewnętrzne rezystory podciągają do + więc styki powinny być podłączone do GND, lub zewnętrzne rezystory na wejściach do GND.
Może nie bo więcej nie wiem :D EDIT. Ok, już wiem. Trymer ma być po stronie wejścia.
Od biedy mogą być i setki kOhm, pod warunkiem, że na wejściu ADC powiesisz kondensator 10..100 nF.
A nie wystarczy zadeklarować inny procesor i wejścia?
.... problem wynika z tego, że pin powinieneś podciągać do vcc, inaczej cały czas masz stany nieustalone czyli dodaj do inicjalizacji: DDRD &= ~(1<<PD3);//pin jako wejście PORTD |= (1<<PD3);//podciąganie wewnętrzne
Zwarłeś wejście bezpośrednio do nogi procesora AGND? I jeszcze jedno - jeśli napięcie referencyjne wynosi 2.5V to wartość 1 na ADC to tylko 0,0025V !!!!
To są linie RxD, TxD od portu szeregowego. Jeżeli port szeregowy jest włączony, to nie ma możliwości korzystania z tych linii jak ze zwykłych we-wy.
Przede wszystkim zastosuj bramkę z wejściem Shmidta - np. 74132. Tu prawdopodobnie tkwi problem w pojawianiu się oscylacji przy sygnale sinusoidalnym. AK
Witam. A port PC0 ustawiłeś jako wejście a nie wyjście.
BA6218 ma wejścia działające w formacie TTL. Nie musisz używać żadnych rezystorów.
Nie masz podciągnięcia pod zasilanie. Podłącz na próbę rezystor 1k między wejście portu a zasilanie i wtedy sprawdz czy jest ok. Inna przyczyna to być może pomyliłeś rejestry PIN i PORT - częsty błąd.
http://mikrokontrolery.blogspot.com/2011... http://mikrokontrolery.blogspot.com/2011... http://mikrokontrolery.blogspot.com/2011... Dysponujesz miernikiem, żeby zmierzyć jakie napięcie w rzeczywistości trafia na wejście ADC?
Po tym jak ustalisz wejście musisz dać kilka uS czasu na ustalenie się napięcia na wejściu ADC zanim wywołasz konwersję. Generalnie DS zaleca nawet odrzucenie pierwszego pomiaru po zmianie kanału.
stabilizator potrzebuje oprócz 100n jeszcze większych kondensatorów rzędu 10-100uF (zależnie od obciążenia, najlepiej zobacz w przykład z dokumentacji) Pomiędzy wszystkie pary pinów vcc/gnd wszystkich układów scalonych powinieneś wsadzić kondensator 100nF. Dotyczy to procka, L298, max232 itd. Oczywiście przy L298 przyda się też jakiś większy elektrolit...
To żaden problem. Potencjometr wpinasz jako dzielnik rezystorowy a ślizgacz łącysz z wejściem multipleksera ADC. Parę linii kodu i działa.
Witam. Mam problem ze zrozumieniem działania przechwytywania wartości licznika Timer1 do ICR1 w momencie wystąpienia określonego zbocza na wejściu ICP mikrokontrolera ATmega8 w odniesieniu do dekodowania kodu RC5 (lub innych kodów). Ujmując w skrócie, nie wiem jak ma wyglądać procedura dekodowania RC5 z wykorzystaniem wejścia ICP, a na tym mi zależy....
Możliwe. Tylko wyjaśnij po co Ci przetwornik ADC skoro wykorzystujesz tylko wejście INT0 oraz komparator.
Jeżeli ustawisz 0 to skonfigurowałeś jako wejście a tam gdzie masz 1 to jest wyjście. to co zapisałeś to portb.2 będzie wejściem reszta wyjściami Co do wejść pływających jeżeli zadeklarujesz np porta.1 jako wejście a nie będzie ono nie podciągnięte do plusa zasilania to będzie ono pływające. Odsyłam do helpa polskiego bascoma
Rejestr PORTx to niejako rejestr "wyjściowy" dla portu... Tzn. do PORTx zapisuje wartość którą na port wystawiamy... Jeżeli chesz odczytać wartość "na porcie"/odczytać stan wejść to do tego służy rejestr PINx... "x" to oczywiście litera odapowiadająca portowi, A,B itd... Równocześnie z tutorialem powinieneś się zapoznawać z dokumentacją do uC...
Zmniejszą ryzyko uszkodzenia portu LPT w komputerze w wyniku pomyłki przy podłączaniu lub jakiejś wady w mikrokontrolerze (np. zwarcie wejść).
[syntax=pseudokod] while(key1 and !key2) { while(key1 and key2) { zadanie; //ciezko powiedziec co masz na mysli mowiac operacja, tu moze byc np. petla for, wtedy ponizszego ifa musisz do niej przeniesc if(!key1 or !key2) goto etykieta; } } etykieta: [/syntax] jak się brzydzisz instrukcją goto możesz pomyśleć nad zmienną bool pamiętającą wejście do drugiej...
Źle zrozumiałeś. Nie napisałem, że ma ustawiać jako wejście tylko zaprzeczyłem, że musi być wyjściem (jak napisałeś). Nie napisałem także, że preferowane jest wejście z wewnętrznym rezystorem pull-up zamiast wyjścia, tylko że jeśli jest wejściem , to preferowane jest użycie wewnętrznego rezystorta pull-up. Projektant ma więc do wyboru co najmniej 4...
Można bez problemu zmieniać konfiguracje portów w trakcie programu aby mogły pracować jako wejścia lub wyjścia lub pełnić funkcje specjalne, trzeba poprostu zapisywać odpowiednie wartości bitów w odpowiednich rejestrach konfiguracyjnych i być świadomym tego co sie robi. Zwłaszcza asembler daje pełną kontrole nad mikrokontrolerem a z bascomem różnie...
Witam. Oczywiście ale jeśli brakło by wejść można zastosować jakiś expander np: pcf8574 .
Jeśli nie podciągniesz wejścia do Vcc, to przy rozwartym klawiszu wejście nie będzie miało stabilnego potencjału - do niczego nie jest podłączone. Przy jego olbrzymiej impedancji potencjał będzie oscylował pomiędzy 0 i 1. Czyli otrzymasz śmieci.
Sprawdziłem jeszcze raz i PB0 oraz PB1 nie są dostępne dla Atmega808 w obudowie 32 pin. A no tak, zapomniałem. Bo ja mam ATmega4809. Skorzystam z pinów PC0 i PC1 - UART, PA1 i PA2 - pierwszy PWM, PA3 i PA4 drugi PWM. Mam rację? Tak. Skorzystam z pinów PC0 i PC1 - UART, Zgadza się. Jest to USART1 czyli w kodzie wystarczy zmienić wszędzie z USART3.xxx...
A czy dobrym pomysłem w takim przypadku jak to opisujesz, byłoby użycie na przykład bramki NAND żeby wykluczyć możliwość pojawienia się stanów wysokich na wszystkich wejściach ?
Rejestry DDR mają domyślną wartość 0x00, taką tez mają po resecie czyli porty ustawione są na wyjścia Chyba chciałeś napisać wejścia?
atmega8 wejście wejście analogowy atmega8 wejście analogowe atmega8
sprężyna siłownika krups sprawność grzejnika odzyskiwanie klucza windows
obciążalność prądowa przewodów obciążalność prądowa przewodów
Rozkodowanie radia w Alfa Romeo 159 bez numeru seryjnego Połączenia głowicy magnetofonu MDS 432: kable z punktów 216-219