tez mialem klopoty z wewnetrznymi pull up glowny problem to wyniknie z szybkosci transmisji , tak dodatkowo to szybkosc 100khz mozna bez problemu uzyskac przy dlugosci 9m-testowane(mozliwe ze wiecej) jesli uzyc skretki ale osobna para dla scl i osobna dla sda tyle , ze do + tez trzeba podpiac drugi przewod -kazdej pary pesylajacej sda i scl.
Pokaż program, może zamiast ustawić stan wysoki ustawiasz pullup-y
Wszystko zależy od rodzaju czujnika. Zdecydowana większość ma wyjście typu otwarty kolektor więc musisz wejście podciągnąć do +5V "pullup". Zerknij np. http://starter-kit.nettigo.pl/2010/12/ha...
Myślałem że chcesz usunąć pullup'y. Na 5V będzie ok.
Żeby działała transmisja od komputera do kontrolera przy tak zbudowanym konwerterze, to wejście RxD w uK musi być wejściem z podciągniem (uaktywniony pullup), albo trzeba dołożyć rezystor na zewnątrz. Podepnij się z oscyloskopem/miernikiem/ledem z rezystorem do linii RxD, ustraw transmisję na 300 bodów i zobacz jak wygląda przebieg.
DDRB to kto sobie ustawi ? Na razie ten program tylko przełącza między portem w HIZ, a pullup. dopisz sobie ddrb.1 = 1
One wire wymaga pullupa na linii. Na bazę tranzystora dodaj rezystor 1k. Kontrast do masy jest kiepskim pomysłem. Przy rysowaniu schematów używa się znaczka GND a nie ciągnie linie przez wszystkie elementy. Podobnie z vcc.
Najprawdopodobniej kondesatory 100n ładują się przez wew pullup-y i wtedy jest na porcie logiczna "1". Jeżeli możesz, daj przyciski do masy a porty podciągnij rezystorami do +. Kondesatory raczej nie są potrzebne. Pozdrawiam. P.S. Nie przeglądałem programu.
wszystkie AVR'y mają wewnętrzne pullupy. załącza sie je programowo poprzaez ustawieniu pinu jako wejście i wpisanie 1 do rejestru wyjściowego czyli ddrx=0 portx=&hFF zmienna=pinx 'czytamy cały port pozdrawiam
Przecież jest połączenie master - slave i pośrodku tego połączenia jest pullup. Jak odetniesz mastera, to zostaje slave z rezystorem...
Domyślny stan 0 pomnożony przez 1 nadal daje 0. Wydaje mi się że to nie pierwszy kod był błędny, tylko drugi "prawidłowy" uruchamiał rezystory pullup dla wejść PD2 i PD3 i dlatego przerwania przestały się wywoływać. W całym kodzie brakowało po prostu linii w której wpisujesz 1 do PD2 i PD3, przed włączeniem przerwań.
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.
Czy port C w Atmega8 można ustawić jako WY z rezystorami pullUp ??? Czy też trzeba osobno podciągać do + ? Tam będzie LCD. Nigdzie tego nie znalazłem. Znalazłem tylko, że porty B i D w pełni obsługują wewnętrzne pullupy ale jednak mam wątpliwości czy PD6 i PD7 [komparator] mają rezystory. Mógłby ktoś sprawdzić na swojej płytce testowej jak ma pod ręką?...
Witam! Ja zwykle robię od razu tak: [syntax=basic4gl]Config portd = &b00001111 Portd = &b11110000[/syntax] W ten sposób łączę konfig i ustawienie pullup . W języku BASIC nie zaleca się oddzielania instrukcji dwukropkiem, zamiast: [syntax=basic4gl]If Pg = 0 Then Kier = 0 : Gosub Ruch_key End If[/syntax] Lepiej zapisać tak: [syntax=basic4gl]If Pg = 0...
Z grubsza jest ok. Dodałbym kondensator ok. 10nF od pinu reset do masy. Do mikroswitcha port ma włączony pullup? Kwarcu zewnętrznego nie ma, więc uważaj przy programowaniu Fuse bit.
1. Do których linii i w jaki sposób są podłączone przycisk i dioda? Schemat! 2. Masz dwa proste błędy - w ATmega rezystory podciągające wejścia włącza się poprzez ustawienie linii portu jako wejścia ORAZ zapis jedynki do rejestru PORTx, czyli: DDRB=0x00; PORTB=0xFF; No i sprawdzanie wciśnięcia przycisku: pojedynczy & zamiast podwójnego! 3. Nieprawdziwych...
a jaki powinien byc stan na tej nóżce po podlaczeniu wewnetrznego pullup?? Wysoki , 1 , ~VCC , czy jak kto woli to nazwać.Wiszący pin "robi za antenę" i trudno przewidzieć jego stan. Piotrek
Jeśli pin ustawisz jako wejście i go nie podciągniesz to pin jest w stanie wysokiej impedancji. Jeśli nic z nim nie robisz (wisi, tak jak w twoim wypadku gdy nie jest wysterowany) to mega nie wie do końca jaki ma stan i waha się między stanem 1 i 0, dlatego dioda ci lekko świeci (po prostu bardzo szybko mruga. Gdy zrobisz pullup to mega nie ma kłopotu...
to dobrze, milosniku Candlemass <: co do tych pullupow - jaka to mniej wiecej wartosc? bo od ich wartosci zalezy predkosc I2C. moze przy wlaczeniu I2C te pullupy staja sie nieaktywne? ja bym na twoim miejscu sprobowal ze standardowymi pullupami 4.7k, bez tych wewnetrznych. 0x41 0x56 0x45!!
1. Trzeba uważać na funkcje delayms i delayus, ponieważ mają one ograniczenia - tzn. nie można tam wstawić dowolnie duże liczby. Szczegóły w delay.h 2. U mnie ciekawy problem się pojawił w czasie konwersji temperatury - ponieważ układ był zasilany pasożytniczo. Nieważne jak kombinowałem z pullupami - zawsze to samo. W końcu po wystawieniu "1" na nóżce...
if(bit_is_clear(PINC,PC0)) wykonaj cos tam pod warunkiem ze masz pullupa rozwiniecie bit_is_clear znajdziesz w ktorymś pliku .h - nie pamiętam już którym
Pullup lepiej dać bo te wewnętrzne są słabe. A ja znalazlem cos co w ogóle przeczy słowom w dokumetacji.
C2 musi mieć małą pojemność. Ale bez przesady. Daj 10uF. I musi być zwarty rezystorem o małej wartości aby szubko sie rozładowywał. Z 1k...330R. Tak samo przydał by się rezystor rozładowujący na wejściu stabilizatora a jeszcze lepiej było by ten czujnik zaniku zasilania podłączyć do szyny 12V. Choć oczywiście nie bezpośrednio tylko przez jakieś diody,...
Wprawdzie nie zadales w swoim poscie zadnego pytania, ale przypuszczam, ze chcesz sie upewnic, czy taki uklad zadziala. Stosuje identyczny od wielu lat i dziala poprawnie. Co najwyzej mozesz dodac jakis pullup w kolektorze tranzystora, by pewniej podawal biezacy stan logiczny. Pullup powinien byc rzedu kilku kiloomow. n.p 4k7. Pozdrawiam, yego
Przyjrzyj się temu _1_WIRE_DIR &= ~_BV(_1_WIRE); //--- ustawienie magistrali w trybie receive a teraz temu: The bus master then releases the bus and goes into receive mode (RX). When the bus is released, the 5kΩ pullup resistor pulls the 1-Wire bus high.
Proponuję zamiast INPUT użyć INPUT_PULLUP.
Jeśli dobrze rozszyfrowałem te zdjęcie, to masz switch podłączony między GND a pin 15 AtMegi? Musisz dodać rezystor pullup od tego pinu do +5V lub włączyć wewnętrzny pullup ATMegi.
Problem to jednak jest. Bo w 1-wire 1 jest wymuszany przez pullup, ok. 4k7, więc prąd ładowania tego kondensatora będzie mniejszy niż 1mA, co nie wystarczy do zasilenia ATMega8. Trzeba zapewnić strong pull up, być możne na poziomie większym niż wydajność pinów IO procesora, a więc dodatkowy MOSFET włączany na czas bezczynności. Swoją drogą nie prościej...
Jeżeli chodzi o drganie przycisków to mam opożnienie _delay_ms(200) i załatwia sprawę 100%. Odłączyłem na test przyciski i problem ustąpił, Atmega z 20*C ,LM7805 ok 30*C, Czyli ustawić porty na wejścia, zrobić pullup rezystorem 4K7 do napiecia i czekac na rozwarcie, które mikrokontroler bez problemu łyknie jako GND?
Ja mam tylko dwa czujniki. Początkowo zasilałem z zewnętrznego źródła, ale chciałem mieć cieńszy kabelek do przeciśnięcia przez okno:). Zastosowałem czujniki DS18S20P, które działają tylko w trybie parasite. Odczyt jest z dokładnością do 1 stopnia więc wersja z S nadaje się idealnie i łatwiej się oblicza temperaturę. Na koniec podzielę się ciekawą obserwacją....
Rezystory R3 i R4 mają ciut za dużą rezystancję, standardowo daje się 4k7, albo wewnętrzne pullupy. Pozdrawiam Post raportowany. Autorowi tego postu, chodziło zapewne o rezystory R2 i R3 (pull-up na magistrali i2c).
W AVR od każdego portu wejścia/wyjścia masz dostępne 3 rejestry. Rejestr DDR, PORT i rejestr PIN, na przykładzie portu C jest to rejestr PORTC i rejestr PINC i DDRC. Rejestr DDR Określa tryb pracy wyprowadzenia jako wejście lub wyjście, zapisujac odpowiedni bit jako 1 ustawiasz go jako wyjscie a 0 jako wejscie. W trybie pracy jako wejscie jest podłaczone...
W kwestii podciągania to tak: 1. Linie SCK/MISO/MOSI - ogólnie nie potrzebują żadnych dodatków poza włączeniem pull-up w kontrolerze. Pracowało to z Atxmega256A3BU i Atxmega128A1U bez żadnych problemów. 2. Linia !CS/DAT3 - After power up, this line is input with 50Kohm(+/-20Kohm) pull-up (can be used for card detection or SPI mode selection). The pull-up...
Od końca: jeżeli wypisane stany masz na myśli fizyczne stany logiczne na pinach procesora (napięcia), to jeżeli skonfigurujesz port jako wejścia to z rejestru PINB odczytasz dokładnie jak napisałeś, czyli 0x03. pullupy to sa rezystory podciągające do VCC, w przypadku AVRów można je włączyć (wtedy jeżeli końcówkę uC masz w "powietrzu" to z rejestru PINx.y...
Ja to robię tak: // Odczyt STATUS-u LCD u08 READYLCD (void) {char temp = TLCD; cbi (PLCDSTER,RS); sbi (PLCDSTER,R_W); PLCDD = 0; //port jako IN PLCDOUT = 255; //port Pullup while (--temp) sbi (PLCDSTER,E); temp = PLCDIN; cbi (PLCDSTER,E); return temp; } i działa bez problemowo
Witaj, w transmisji one_wire są trzy stany - strong pullup (generowane przez mikrokontroler) - weak pullup (generowane przez rezystor podwieszający) - low level (generowane przez układy DS) To oznacza jedno że nie powinieneś generować sygnału zera logicznego to ma robić dołączony układ. Proponuję abyś na początek odłączył całkowicie układ DS i na drugim...
po pierwsze, z jakiego ty helpa wziąłeś kod do testowania? chyba z helpa z kosmosu - bo na pewno nie wygląda to na kod z helpa Bascoma Getrc5(address , Command) If Address = 0 Then 'clear the toggle bit 'the toggle bit toggles on each new received command 'toggle bit is bit 7. Extended RC5 bit is in bit 6 Command = Command And &B01111111 Print...
jj -> A co do Twojej zagadki to wydaje mi sie że sygnał zarówno przy 1 jak i 0 biegnie w poziomej lini prostej do Data Bus. I na tym schemacie są tylko logiczne zależności dotyczące portu i nie zobaczymy tu tranzystorów ściągających napięcie pinu do VCC lub GND. Dokładnie o to mi chodziło. Ten schemat nie pokazuje budowy bufora wyjściowego, więc do...
Oczywiście użytkownicy Bascom-a najczęściej są nieprzyzwyczajeni do przejmowania się pdf-kami, co skutkuje wypisywaniem bzdur... Co do consensusu - wszystkie parametry transmisji (BAUDRATE, STOPBITS, BITS od DATA & PARITY) są w obu µC jednakowe ? Chcialbym zauwazyc, ze CI co proponowali ustawienie pullup'ow progrmuja raczej w C, (ja jako uzytkownik...
Witam. Temat klawiatury (przycisków) obslugiwanej przez przerwania to nie jest taki rewelacyjny sposób. Generalnie w pierwszych projektach wszyscy tak robią. Z czasem jednak dochodzi się do wniosku ze to nie jest dobre rozwiazanie. Problem zaczyna się jak chcemy obsłużyć wiecej przycisków niż mamy przerwań. Wtedy jedyna prawidłowa metoda to pooling...
A jednak problem był w timingach. Tu poprawione procedury - sprawdzone zarówno na DS1820 jak i na DS18B20: void write_onewire(u08 bit) { // set Data line to output cli(); PORTC &= ~(1<<OWI); DDRC |= 1<<OWI; if (bit == 0) { delay(29); // hold low for at least 60us DDRC &= ~(1<<OWI);...
Witam Was. Mam taki problemik i nie mogę sobie z nim poradzić. Chciałem zrobić czujnik ruchu wykorzystując diodę led, ale niestety nie chce zaskoczyć :/. Kod opierałem o teorię z #include <avr/io.h> #include <delay_x.h> #include <inttypes.h> #define Led1on PORTD = 0x0E; #define ledsw1 PORTD = 0x03; #define ledsw2 PORTD = 0x05; #define...
Co do FE, to jest to bajt który jedynie może być odczytany, po odebraniu lewej ramki jest ustawiony, ale nie ma wpływu na działanie uarta, nie jest ono zatrzymywane, a bit jest zerowany po odebraniu poprawnej ramki. Sprawdź czy portd.0 jest ustawiony czy wyzerowany, bo o ile kierunek jest pomijany jeżeli jest włączony Rx, o tyle portd.0 ma wpływ na...
Oj, a tu sie bym troche nie zgodzil z elmo3000. Latwiej jest wykrywac 1 po wcisnieciu, owszem. Trudniej za to, jest taka jedynke wyzerowac - objawia sie to stanem wysokim na wyjsciu tak dlugo, az nie zostanie rozladowana pojemnosc wejscia. O ile dobrze kojarze Atmela (jestem dosc wierny PIC), to nie maja one mozliwosci realizacji wewnetrznego podciagania...
Zależy jak skonfigurujesz pin wyjściowy. Jak dasz wewnętrzne pullup, to nie musisz dawać rezystorów. Jak chcesz bez wewnętrznego podciągania, to musisz dać rezystor (np100k) do zasilania. 5V Powinno spokojnie otworzyć dowolnego mosa.
Zrobiłem coś takiego. Jest to program z innego forum, ale nie działa. Tu timer1 działa w trybie CTC, jak to ustawić żeby dioda zmieniała stan co 1s? Albo ewentualnie częściej? void main () { lcd_init(); write_command(0x01); TIMSK = (1 << OCIE1A); OCR1AH = 0x01; OCR1AL = 0x01; TCCR1B = (1 << CS11)|(1...
Witam, Zgłaszam się do was z prawdopodobnie prostym problemem, który mnie mocno przyblokował i pewnie sam sobie z nim nie poradzę. Zaznaczę, że przeszukałem połowę internetu i nie znalazłem odpowiedzi... Układ stanowi Atmega8 taktowana wewnętrznym zegarem 1MHz. Atmega jest podłączona do DS18B20 przewodem z rezystorem pullup ~4,4kohm [syntax=c]#include...
Hyperterminal działa według strony kodowej DOS czyli 852. Może sprawdź to? Dopóki wchodzą w grę tylko podstawowe znaki alfabetu łacińskiego oraz znaki interpunkcyjne i cyfry, to strona kodowa nie ma znaczenia. Gdy połącze moduł BT z uC(kablem szeregowym) to teoretycznie program powinien też działać, ale nie działa. Póki co i tak nic nie wysyłasz do...
ok, jako, że nie wiedziałem gdzie dopisać usart transmit, skorzystałem dla sprawdzenia z gotowego kodu, efektem tego było wysyłanie znaczków, które trudno nawet jest nazwać , może mi ktoś wytłumaczyć dlaczego tak się dzieje ?? źródło kodu: http://forbot.pl/blog/port-szeregowy-int... [syntax=cpp] #include <avr/io.h> #include <avr/interrupt.h>...
Rezystory pull-up podciągają Ci linię wejściową do stanu wysokiego. Gdybyś nie miał pull-up ani pull-down, to wejście reagowało by na najmniejsze anomalie, takie jak zbliżenie dłoni do procka albo inne rzeczy, byłby na wejściu stan nieustalony. Podciągając przez rezystor do +5V zapewniasz, że do momentu kiedy nie podejmiesz jakiegoś działania (nie przywrzesz...
twój program wymaga abyś przyciski wcisnął w odpowiedniej kolejności ORAZ w odpowiednim czasie (natychmiast po zakończeniu delaya z poprzedniego razu). To nie ma prawa działać poprawnie. Pozatym jest napisane bezsensownie - ta seria ustawień portów w 3 liniach? Nie da się w jednej? DDRB &=~ (1<<0); DDRB &=~ (1<<1); DDRB &=~ (1<<2);...
Niestety, dalej to samo :| Dopisz (wyłaczenie przerywań i ponowne włączenie pozostaw): Config Debounce = 250 Dodatkowo warto podłączyć równolegle do styku kondensator 100nF. Inna opcja to stary, ale wciąż produkowany układ MC14490, odciąża całkowicie mikroprocesor od "zabaw" typu sprawdzanie po określonym czasie stanu wejścia. Układ posiada sześć wejść,...
nie, nie mozna, bo twoj kod wymaga podlaczenia w ktorym przycisk wcisniety to 1, a puszczony to 0. w tym temacie (jak i zreszta w wiekszosci przypadkow AVRowych ze wzgledu na pullupy wewnetrzne) jest dokladnie odwrotnie. z tego wzgledu potrzebne jest odwrocenie stanu portu (~) PRZED operacja AND. pozatym - krotko i zwiezle, a za tydzien nie bedziesz...
Podepnę się pod najświeższy temat o podłączaniu C35 do uP :) Zestawiłem połączenie z ATMega16, podpinając 5V bezpośrednio pod gniazdo baterii a linie TX i RX procesora bezpośrednio pod gniazdo komórki. Naczytałem się setki postów o podłączaniu linii TX/RX przez pullupy, zenery, maxy.. Ja podłączyłem bezpośrednio i wszystko działa już 3 dzień non stop....
Nie potrzebne są podciągające rezystory R14-R16, pullupy sa w procesorze (port=1 ddr=0). Niewykorzystane wyprowadzenia ustaw w rejestrze ddr na wyjściowe (1). Co do "szczegułów", to na wyjściu stabilizatora napięcia brakuje kondensatora (cewka w tym miejscu wprowadzając rezystancję obniży jakość stabilizacji napięcia, więc jeśli ma >0.5Ω to bym...
2. Gdy ustawisz na pinie stan niski a następnie przyciskiem zwierasz do plusa to powstanie zwarcie. Masz takie możliwości: 1. Robisz tak jak prawie wszyscy czyli włączasz wewnętrzny rezystor pullup w atmedze i przyciskiem zwierasz do masy. 2. Dodajesz zewnętrzny rezystor pulldown (ponieważ atmegi nie maja wewnętrznego) i przyciskiem zwierasz do plusa....
Dodaj jeszcze przynajmniej po jeszcze jednym rzędzie goldpinów do wyprowadzeń procesora - wierz mi przydają się :) (sam robiłem sobie płytki pod m32 i m8 i się cieszyłem, że miałem po 2-3 rzędy goldpinów/gniazd goldpin/gniazd tulipanowych-precyzyjnych ) Dodaj pullup'y do przycisków tak ze 10k :) . Goldpiny z Vcc i GND ustaw tak żeby pomiędzy nimi był...
Zamiast doszukiwać się niestworzonych historii na temat RESET'u napisz może w czym w ogóle piszesz program, pokaż ew fragment jak on startuje i może pokaż schemat. Bo na 99% sądzę że masz babole albo z połączeniami, albo z masami albo w kodzie programu. Poza tym Pullupy na niewykorzystanych pinach nigdy nie są potrzebne wystarczy ustawić podciągnięcia...
Po pierwsze data sheet www.alldatasheet.com tam na pewno znajdziesz Po drugie tak możesz programować EEPROM I2C w układzie , ale lepiej zdejmij rezystory pullup to do +5V lub czasowo odłączaj magistralę o uPc niewiadomo czy nie zwarjuje lub nie popalisz portu wyjściowego. Zawsze jeszcze możesz dorobić UART na Maxie i pisać do EEPROMU wykorzystując port...
Witam Napisałem program do obsługi sprzętowego i2c ... i zauważyłem że procesor w ogóle nic nie wysyła może koś wie w czym tkwi problem. A co z pozostałymi rejestrami tego interfejsu :?: Pullup-y są :?: TWSR nie gryzie i warto do niego zajrzeć :D Piotrek
okej więc tak: mam płyteczke olimexa z takim prockiem... po pierwsze na schemacie jest źle bo układ dallasa niby ma być podpinany pod pin p0.15 co jest delikatnie mówiąc "ściemą" pozatym tak jak i buttony... może to info się komuś przydać... w kazdym razie 1-wire jest na pinie p0.10, problem mam z czujnikiem ds18s20... nie chodzi tutaj o procedurę,...
Domyślnie porty mają stan 0 i są ustawione jako wyjścia, więc nic nie pływa. Możliwe że faktycznie wina jest po stronie softu, dołóż procedurkę, że przekaźnik może zmienić swój stan tylko gdy crc będzie zgodne. Takie podciąganie rezystorem do masy kompletnie nie ma sensu, bo jak dajesz stan niski na port to... masz podciągnięte do masy :) , a R11 zamiast...
Dla mnie "podciąganie do masy" w samej nazwie już jest podejrzanie w elektronice cyfrowej. Ja stosuję podciąganie przez rezystor do zasilania (dokładnie takie samo jak w schemacie rezystor R3 - pullup dla !CS) ze względu na ograniczoną wydajność prądową portów uC oraz ze względu na pojemność linii transmisyjnej (długie kable). Przeglądałem pobieżnie...
Ten kod to chyba trochę stary jest. Kompiluje się z błędem: In file included from ../Tds18b20.cpp:2:0: /usr/lib/avr/include/util/delay.h: In member function ‘uint8_t Tds18b20::ReadBit()̵... /usr/lib/avr/include/util/delay.h:24... error: __builtin_avr_delay_cycles expects a compile time...
Witam mam problem z komunikacja atmega8 8Mhz -> PC. Złożyłem sobie układ według tego schematu, lecz zamiast max232 mam ICL232: http://obrazki.elektroda.pl/5614178400_1... Program do uC: [syntax=c]#include <avr/io.h> #include <avr/interrupt.h> //pomocnicze stałe #define USART_BAUDRATE 9600 #define BAUD_PRESCALE (((8000000...
Witam, Problem jest następujący: chcę skonstruować moduł - kartę przekaźników: 8 wyjść przekaźnikowych oraz 8 wejść/wyjść cyfrowych lub wejść analogowych. Całość będzie komunikowała się po USART, lecz pytanie czy takie rozwiązanie będzie dobre. Chcę aby jeden port (8 pinów) było uniwersalnych - tzn. aby każdy z nich można było skonfigurować jako wejście,...
A ja miałem - i co teraz zrobisz ? Jest to jakoś uzasadnione, że nie miał ? :) Normalnie stan wysoki na lini DQ ładuje wewnętrzny kondensator "pasożytniczy", który zasila termometr (gdy stan na DQ jest niski). Niektóre czynności wykonywane przez ten termometr, zjadają dość dużo energii (chociażby konwersja) i mogą kondziola za szybko rozładować co spowoduje...
Można wyświetlać temperaturę w podmenu "wybór_Ds" ale trzeba zmienić cały program. Chyba nie jest tak trudno zapisać sobie cztery ID czujników i wiedzieć później który gdzie przypisać. Najlepiej osobno podłączać każdy czujnik i na naklejce na kablu przy czujniki zapisać jego ID. Wiedząc gdzie jakie jest ID czujnika można już mu w podmenu przypisać odpowiednią...
super, a czy do podstawowej komunikacji ( odbiór "dzwonka" z uprawnionego telefonu nadawcy, wysyłanie komunikatów sms do nadawcy, odczyt wartości pozycji książki sim) linie Tx i Rx wystarczają ? I czy wymagane jest podciąganie pullupami tych linii ?
Tak na szybko to kod komunikacji 1w wygląda w miarę poprawnie, podejrzany dla mnie jest dtostrf(), czy to prawidłowo formatuje float na string? Sprawdziłbym czy cTemperatureL oraz cTemperatureH zawierają bajt <> 0 przed wywołaniem funkcji formatującej. Trwałe zwracanie 0 przy odczycie danych na prawidłowo zaimplementowanej magistrali 1W (zawierającej...
http://obrazki.elektroda.net/85_12656115... Projekt powstał z czystej ciekawości… co można zrobić na Attiny13? Otóż można, i to dużo. W tym przypadku ten malec zmierzy nam napięcie, prąd, temperaturę, przeliczy, a wyniki w przystępny sposób pokaże na wyświetlaczu alfanumerycznym (typu HD44780). Jak by tego było mało, program został napisany...
1. Rezystory szeregowo z enkoderem są niepotrzebne. Jeśli już to powinny być jako pullupy (wewnętrzne mają koło 50 k i czasai to za dużo), 2. Nie masz kondensatorów przy kwarcu - niby można je włączyć programowo, ale lepiej dać zewnętrzne dla świętego spokoju, 3. Rezystor 5,1 k z resetu do Vcc to za mało, niektóre programatory mogą mieć z tym problem,...
#define LED_OF DDRB&=~(1<<PB1);PORTB&... Pozdrawiam, Grzesiek Przedobrzyłeś :wink: Powyższe ustawi bit PB1 portu PORTB jako wejście bez pullup-a , a chodzi zapewne o ustawienie niskiego stanu na tym pinie tzn. #define LED_OF DDRB|=(1<<PB1);PORTB&=... w oryginale wygląda...
Czy do układu DS18B20 masz podłączone zasilanie +5V, czy pracuje on w konfiguracji dwupinowej? W karcie katalogowej jest wzmianka "If the DS18B20 is powered by an external supply, the master can issue read time slots after the Convert T command and the DS18B20 will respond by transmitting a 0 while the temperature conversion is in progress and a 1 when...
:arrow: m_wojcik Otóż to :) Masz pełną rację. Co do pomocy to kolega co prawda sobie już poradził - ale uwagi co do sposobów rozwiązań mogą się komuś jeszcze przydać. O ile je znajdzie w gąszczu naszej akademickiej dyskusji ;) Nie ma co się kłócić - miło, że układ chodzi a przedstawione rozwiązanie na tr i na max są ok. Miło, że ktoś podał linka na...
Witam cię miałem podobny problem. programuje w bascomie ale postaram się podpowiedzieć ci w czym tkwi problem przy zapisie pamięci. Jeżeli umiesz odczytać zawartość pamięci to w zapisie jest tak że po rozkazie cch ,55h czyli kopiujesz do notesu podajesz ta1 ta2 e/s wtedy dajesz czekaj 5ms potem tablice do w w pisania do eepromu powinno zadziałać od...
Wklejam ten kod [url=http://bascom-forum.de/showthread.p... właściwego postu . [syntax=basic4gl]'----------------------... ' Dateiname : TEA5767-TP.bas ' Revision : 1.0 19.08.2012 ' Controller : AVR ATmega8 ' Autor : Thomas Palluthe (www.tp-homesoft.de)...
To mój pierwszy raz z DS18B20. Mam problem z odczytem temperatury z DS18b20. Pierwszy odczyt z układu daje warość 0x0550 czyli defaultowa wartosc po resecie. Jednak nastepne odczyty dają wartość 0x07FF. WTF? Poniżej listing. Procek taktowany 16MHz z zewnętrznego oscylatora. (F_CPU zdefiniowane na 16000000) int main () { uint8_t a=0; uint8_t...
Dalsza cześć zmagań z moim zegarkiem :> Chcę z ATMegi8L skomunikować się z czujnikiem DS18B20. Zasilanie czujnika zewnętrzne, 5V, na lini podciągnięcie przez pięć rezystorów 1k. Próbowałem już chyba ze 3 biblioteki i nic. Aktualnie korzystam z biblioteki znalezionej gdzieś na elektrodzie. Fragment kodu programu: [syntax=c] char bufor[]=" "; char...
Witam. Mam taki problem. Zbudowałem bardzo prosty układ w którym kluczową rolę pełni komparator analogowy w atmedze8. Do tego komparatora podpięty jest czujnik ultradźwiekowy który drga przy odbiorze dźwięku, powoduje to bardzo małe (nie mogę zmierzyć) fale i komparator zmienia stan. Układ wygląda tak jak na załączonym obrazku: http://obrazki.elektroda.net/2_128517990...
Czy mogłbyś w kilku słowach objaśnić mi działanie tejże magistrali ;|, bo już coraz mniej rozumiem. W kilku słowach , nie umiem :( Zaczynając od funkcji RESET ... Skąd wytrzasnąłeś te milisekundy :?: Master na 480us ustawia 0 na magistrali,zwalnia magistralę (magistrala "leci" na 1),odczekuje ~90us, odczytuje i zapamiętuje stan magistrali, czeka 390...
ja próbowałem zrobić na tych transoptorach wg czyjegoś schematu konwerter RS232 na RS485 - więc ledwo się wyrabiał z tymi transoptorami na prędkości 9600 a o wyższej można było tylko pomarzyć ... ale mówisz o aż sekundowym opóźnieniu??? albo jeszcze większym? - nie będę się sprzeczał - ale to chyba nie możliwe, żeby bez podciągania zewnętrznego była...
A gdzie te +5V na schemacie? Bo jeśli nigdzie nie podpięte to chyba przez pullup resetu ta atmega się zasila.
Od dłuższego czasu napisałem sobie specjalne makra pod AVR definiujące wszystkie porty, aby np. zamiast pisać: #define BTN1_DDR DDRC #define BTN1_PORT PORTC #define BTN1_PIN PINC #define BTN1_P PC0 #define BTN2_DDR DDRB #define BTN2_PORT PORTB #define BTN2_PIN PINB #define BTN2_P PB1 #define BTN3_DDR DDRD #define BTN3_PORT PORTD #define BTN3_PIN PIND...
S1 i S2 są bez rezystorów podciagających, o ile S2 podłączony jest do portu C ( ponoć tam jest rezystor podciągający) to S1 nie ma żadnego. Nie masz żadnych dziwnych zachowań ? Kę? A o wew. pullUpach kolego nie słyszeliśmy? Ł.
Zapal_LED Delay_ms(10000) Zgaś_LED Zrobiłem takie coś za pomocą _delay_ms() z #include <avr/delay.h> cd_init(); lcd_goto(1,1); write_text("*"); for(i=0; i<40; i++) _delay_ms(250); // 10 000 ms = 10s write_text("<*>")... i wykonyje się to w około 1 - 2 s bity CKSEL mam...
Jsli pin ustawiony jest jako wyjscie i ustawiony na nim jest stan wysoki to po przycisnieciu przycisku, ktory jest podlaczony do GND, bedzie na czas przycisniecia stan niski, po puszczeniu przycisku stan wroci na wysoki, wystarczy sprawdzac jaki jest stan pinu, jesli zas ustawimy pin jako wejscie to po przycisnieciu stan ustawi sie na niski i bedzie...
Przerobiłem wszystko tak jak napisałeś , i teraz nic nawet nie rusza , wydaje mi się , że przerwania nie działają. [syntax=c] #include <avr/io.h> #include <stdio.h> #include <stdlib.h> #include <avr/interrupt.h> #include <util/delay.h> ////////////////////////////////////////...
ISP trzeba koniecznie odłączyć. Mi podczas programowania Atmegi przez ISP na at45db161d bardzo często pierwsza strona dataflasha wypełnia się kompletymi bzdurami...(czasem też inne strony), więc dopóki masz ISP to się nie dziw, że będziesz miał nagle bzdury w pamięci. To akurat rozwiazuje sie dajac pullupa na CS po stronie AT45. Dodano po 2 ISP trzeba...
ad1. Jezeli wykorzystujesz je wylacznie do programowania to nic z nimi nie rob. Co najwyzej mozesz ustawic je jako wejscia z pullupem. ad2. Obowiazkowo z pullupem. Mase prcesor rozpozna a jakby mial rozpoznac stan wysoki?? Na wiszacym pinie w powietrzu generuja sie zaklocenia i rezultat odczytu jest nieprzewidywalny. ad3. Nie ma sensu ad4. Ja ustawiam...
Od strony sprzętowej nie jest ok. Bo bez rezystora podciągającego na kolektorze tranzystora nie ma prawa to działać. W kodzie jest Niby fajnie, tyle, że pullup w ATMega ma 20-50k, co może być zbyt dużą wartością przy zadanej częstotliwości. W nocie jest jako obciążenie rezystor 1k.
Witam. Chce odkuryć temat. Mianowicie mam podobny problem. TSOF1736, ATmega8, standardowe taktowanie 1MHz, rezystor 3k pullup, int0. Zmienilem prescaler w tym programie z 8->1, oraz poprawilem wlaczanie przerwania od przepelnienia, wiec czasy powinny sie teraz zgadzac. Moj makefile: PRG= led OBJ= led.o MCU_TARGET = atmega8 OPTIMIZE = -O2 DEFS = LIBS...
Witam Mam od dłuższego czasu problem z DS18B20. Stosując różne kody, różne przedziały czasowe (biorę przykłady z innych aplikacji) ciągle są inne wyniki. Wynik jest wyświetlany na wyświetlaczu 7-seg, proszę nie zwracać uwagi na nieprawidłowe multipleksowanie (pojedyncze cyfry na moje wskazanie wyświetla prawidłowo). DS18B20 odpowiada na reset pulse,...
[syntax=avrasm]#include <LiquidCrystal.h> #include <EEPROM.h> #include <Button.h> /*EEPROM ADRES (1) - pre (5) - przerwa (9) - impuls (13)- pauza */ Button menu = Button(10, PULLUP); Button plus=Button(11,PULLUP); Button minus=Button(9,PULLUP); Button start=Button(12,PULLUP); LiquidCrystal lcd(8, 7, 3, 2, 1, 0); long pre=0; //czas...
Witam robie stacje lutowniczą z atmegą8 napisałem taki kod w bascomie, czy bardziej doświadczeni koledzy mogli by na nieo zerknąć i wytknąć mi poważne błędy jakie popełniłem. Temperatura z termopary jest brana za pomoca mac6675 i spi, uśpienie powinno się włączyć po minucie leżenia kolby nieruszanej i zmniejszyć ustawiona temp do 160 stopni, po podniesieniu...
Witajcie! Chcę oprogramować przerwanie Int0 w ATMedze88 tak, aby przy wykryciu braku zasilania głównego - zmianie stanu PD2 z niskiego na wysoki procesor przechodził w tryb PowerDown natomiast gdy na PD2 pojawi się stan niski procesor wybudzał się. Wykrywanie obecności zasilania zrobiłem następująco: http://obrazki.elektroda.pl/6269322100_1...
mm nie widzę deklaracji DDR - kierunków działania portów. Domyślnie są one ustawiane jako wejścia, a ustawianie ich za pomocą PORTB = 1 i PORTB = 0 to włączanie i wyłączanie Pullupa (który już de facto masz na magistrali). Poza tym nie wiem jak chciałbyś w ten sposób zapisać 0 :) Niżej masz wycinki mojego programu: (ATMEGA8) #define OW_IN DDRB &=...
Patrzysz pod kątem swoich aplikacji. A ja patrzę pod kątem szerokim Nie sądzę że jest to kwestia aplikacji. Urządzenie, które zostało zaprojektowane prawidłowo, nawiązując do pozyskanych z dokumentacji zachowań mikrokontrolera, nigdy nie wykarze nieprawidłowych zachowań, by design. To w kwestii dewelopera jest znać i przewidzieć, co będzie działo się...
Witam napisałem sobie program migający diodami który odpalam przyciskiem [syntax=c]/* Migajace diodki :) */ #include <avr/io.h> #include <util/delay.h> #define LED_PIN0 (1<<PD0) // LED 4 #define LED_PIN1 (1<<PD1) // LED 3 #define LED_PIN2 (1<<PD2) // LED 2 #define LED_PIN3 (1<<PD3) // LED 1 #define S1 (1<<PC5)...
Poproszę o sprawdzenie kodu. W gruncie rzeczy działa, tak jak powinien: jeden z przycisków diodę zapala (czy też "zaświeca"), ale po zwolnieniu go ona gaśnie. Naciśnięcie drugiego zapala inną diodę, którą wyłącza ponowne naciśnięcie tego samego przycisku. Chodzi mi głównie o wytknięcie ewentualnych mankamentów, możliwości, kiedy ten kod się mógłby nie...
rs232 pullup ds18b20 pullup rezystor pullup
zasilanie zestaw głośników zanik napiecia sieciowego migomat przepala blachę
schematic diagram prosty wzmacniacz audio schemat
Passat B5 1.9 TDI 90KM kombi – szarpanie przy odpalaniu po wymianie rozrusznika Zakłócenia TVP1 – pikseloza i załamywanie obrazu na MUX-3 DVB-T, anteny Telmor, Dipol, LTE/5G