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...
Pociąganie realizowane jest poleceniem "Set" - ósma i dziewiąta linijka. To nie jest podciąganie(!) Jest to próba wpisania wartości do rejestru, który z natury jest przeznaczony tylko do odczytu. Nie ma możliwości zmiany stanu rejestru "PIN.x" z poziomu programu. Stan PIN.x możesz zmienić tylko fizycznie z zewnątrz poprzez podanie tam napięcia o odpowiednim...
Moi drodzy, po co kłótnie, Po co wasze swary głupie, Wnet i tak zginiemy w zupie! Może krótko i merytorycznie wyjaśnię Bascom`owe podstawy a zacznę od komend Set i Reset. Otóż potrafią one ustawiać tylko jeden bit na raz. Jeśli numer bitu nie jest wskazany to zawsze będzie to bit numer 0. Dlatego wskazane piny portów PINx, PORTx, DDRx i inne ustawiają...
Pomysł na podciąganie wziąłem z praktyki (atmega128 / 16MHZ). Nie wiem dlaczego ale gdy nie ustawiam portów jako wyjścia lub wejścia to przy naciskaniu klawiatury czasami zdaży mi się iż co innego zostanie wybrane. Po spróbowaniu i skonfigurowaniu portów 4-ech wyjściowych i 4-ech wejściowych niekontrolowane stany zmniejszyły się o 80%. Oczywiście kombinacja...
Jesteś pewien że to LCD ? Czy procesor się nie resetuje lub zawiesza ? (umieść w kodzie polecenie gaszące i zapalające diodę podłączoną do któregoś z portów i sprawdź czy miga po wystąpieniu krzaków na LCD) Dla testu puść sygnał E kabelkiem w ekranie. Podciąganie wejść LCD jak najbardizej. Może kondensator 100nF przy zasilaniu na płytce LCD ?
config portd=&B1111100 Wcześniej wejściami były Pind.1, Pind.2:idea: No ale dobrze. Więc tak: podciąganie wejść przez wewn. MOSFETy działa w ten sposób, że końcówki mają własną logikę z bramką NAND. Jedno jej wejście jest przez negator spięte z rejestrem DDRx,a drugie-bezpośrednio-z PORTx. dzięki temu tranzystor podciagający końcówkę do VCC włącza...
Nie mam ściśle określonej liczby cykli, chce po prostu sprawdzić czujniki jak najszybciej. Zamiast Megi8 użyje AtMegi16 żeby uprościć sprawę wyświetlacza, po prostu podłącze go do dodatkowych portów A. Wyświetlacz LCD bedzie 2x16 ewentualnie 2x8. Spróbuj ten przykład (nie testowany) (!). Na symulatorze wygląda OK..............(?) Popraw/wygładź jeżeli...
Przerobiłem program na ATtiny2313 dodałem jeszcze jeden przycisk i ustawiłem baud dla TX i RX przeliczyłem Compare0a (za pomocą kalkulatora z MkAvrCalculator) nie bawiłem się już w ręczne liczenie :) Zmieniłem też ustawienia portów gdzie wpisałem już w konfigurację portu podciąganie dla D1 teraz wygląda to tak[syntax=vbnet]$regfile = "attiny2313.dat"...
Stan nieokreślony będzie w przypadku ustawienia portu jako wejście bez rezystora podciągającego.
Jeżeli przycisk zwiera wejście do masy to trzeba jeszcze włączyć wewnętrzny rezystor podciągający wpisując do portu 1.
...pozostałe piny są w stanie niskim czyli 0 V. Źle, wejścia te mają wyłączone podciąganie do VCC.
, 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...
Czy włączyłeś podciąganie linii portów, do których są podłączone przyciski? Obsługa przycisków w programie też jest "nie tak". Naciśnięcie przycisku powoduje, że na wejściu będziesz miał 0, nie 1. To, co dalej robisz w programie, też jest średnio sensowne, ale to zauważysz dopiero wtedy, kiedy wykryjesz poprawnie naciśnięcie przycisku.
1. rezystor wywalić - przyciski bezpośrednio do GND 2. diody odwrotnie (obydwie) 3. w kodzie (część konfiguracyjna) uaktywnić wewnętrzne podciąganie do Vcc PIND5 i PIND6 (PORT.X = 1 : DDR.X = 0) 4. no i oczywiście zmienić interpretację przycisków w programie na przeciwny stan Pozdr, Light-I
A dałeś podciąganie na portach?:>
Witam Od dłuższego czasu męczę się z napisaniem prostego programu obsługującego sonar HC-SR04. Nie wiedzieć czemu, na lcd cały czas wyświetla się 0. Wyeliminuj: Bitwait Echo_ , Set ....a także nie ma potrzeby podciągania portu wejściowego PC.0. Jest on stale podłączony do SR04 (Echo Pulse), gdzie zawsze jest określony stan lolgiczny. Również zamiast...
1.Konfiguruje się PORT 2.Podciąganie do plusa włącza się w PORT 3.Przyciski czyta się z PIN Sterować można PORT`em a sprawdza się PIN [syntax=basic4gl] Config PORT.x = Input 'nie podłaczamy driverow - port bedzie wejsciem PORT.x = 1 'sterujemy portem, podłączamy wewnętrzny rezystor Przycisk Alias PIN.x ' PIN PIN PIN PIN! [/syntax]
Witam, w dobrym kierunku idziesz, ale to ci nie zadziała bo jak? skoro na początku programu tylko raz ustawiasz piny klawiszy jako wejścia oraz pin przerwania INT0 też jako wejście. Więc co ma tutaj wymuszać stan niski na wejściu INT0? nic!. Aby ten sposób zadziałał - musisz jeszcze pomyśleć o zmianie kierunków portów wtedy gdy trzeba. Generalnie założenie...
Rocket_93- za dużo wiedzy jak na pierwszy program. A jeszcze nie wiemy czy już działa. W Bascomie kończy program End. I konfiguracja portów jest tak: Cały port: Config portx=output/input. Ale pojedyncza końcówka: Config pinx.y=output/input A jak się da: Config portx.y=output/input to nie wyrzuca błędu ale potrafi działać "dziwnie". A potem podciąganie...
wiem że można to zrobić za pomocą toggle ale czy w takiej postaci ten kod jest poprawny i będzie działał zgodnie z założeniem? .................. Nie. Ten code nie jest porawny(!) Począwszy od configuracji i ustalenia stanów spoczynkowych portów wejściowych masz w konsekwencji cały program wymagający korrecty, albo tworzenia go od nowa... Wejście nie...
Nie działa bo masz nie włączone podciąganie do plusa. Rejestry PIN nie służą do zapisu w tym procesorze (tylko w niektórych modelach zapis 1-dynki do nich powoduje zmianę stanu odpowiadającego bitu w rejestrze PORT). http://www.atmel.com/Images/doc2503.pdf - strona 64 Musisz dać dla każdego przycisku po instrukcji Config ... Input instrukcję Set Portd.x...
O ile dobrze zrozumiałem idee to cyklicznie negujesz wartość poprzednio wpisną do portu. Nie znam AVR ale może to być taki przypadek jak w 51 , Ustawianie portu polega na wpisaniu wartości do rejestru, ale odczyt następuje z pinów procka. Podciągając lub nie pin rezystorem do +Vcc a sterując zerem, to nawet ustawienie pinu na zero przy odczycie zwróci...
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...
A dlaczego nie tak: $sim 'tylko do symulacji $regfile = "m8def.dat" $crystal = 8000000 'kwarc '---------------------------------------... 'Konfiguracja LCD wg wykonanej płytki PCB pod procesor ATmega8 Config Lcdpin = Pin , Db4 = Portb.3 , Db5 = Portb.4 , Db6 = Portb.5 , Db7 = Portc.0 , E = Portb.2 , Rs...
....a co do podlczenia wejsc Pd.0 i Pd.1 to zaro sprawdze ale reakcja na mase tez powinna być :-] Tak , ale chodzi o to że te wewnętrzne rezystory podciągające jakoś nie zawsze funkcjonują tak jak powinny . I dla tego dla pewności stosuje się zewnętrzne . Bez rezystorów cały czas będzie "0" na wejściu . Sprawdzone w praktyce na kilkuset procesorach...
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...
Witam Programowo nie pomogę bo nie znam Bascoma :D ale... być może problem jest typu sprzętowego. Czy po resecie uC wyjścia ustawiają się w prawidłowej konfiguracji ( oczywiście pyt.1 - czy masz opornik podciągający reset )? Pozdr.
4) Przed wejściem w powerdown ustaw piny jako wejścia (wszędzie tam gdzie to możliwe), procesor nie będzie niepotrzebnie "wysyłał" napięcia na zewnątrz Wcale nie. "Wysyłanie" napięcia nie powoduje strat mocy. W końcu to samo napięcie. Z kolei skonfigurowanie wejść jako piny wejściowe (żeby nie "wysyłały" napięcia :D) owszem pobiera prąd. A to z powodu...
To ja sie zapytam czemu podciągasz kilka razy przyciski do +? Przeca raz na początku wystarczy?
Programik żyje własnym życiem bo nie podciągasz wewnętrznie portów do których masz podłączone switche.
To by potwierdzało moje podejrzenia o błędnym sterowaniu portów - kierunek zamiast stanu wyjścia, stale włączony rezystor podciągający.
Jakieś masło maślane. Stan portu jest w rejestrach oznaczanych PINx. Tak więc: Stan_portu_A=PINA Nawet jak port ustawisz jako wejście z podciąganiem i zewrzesz wejścia do masy.
Prosty program zmieniający z częstotliwością 0,5Hz stan końcówki PXY raz jako zwarcie z masą (logiczne zero) wmuszone stanem rejestru PORTX.Y, a po sekundzie wystawiający na końcówkę PXY wysoką impedancję. Fakt, jedynką ustawiasz masę, a zerem ustawiasz wysoką impedancję. Z tym chyba sobie poradzisz. [syntax=basic4gl]PORTX.Y = 0 'Wartość rejestru PORTX.Y...
ło matko ;) po opisie kolegi atom1477 i po tej informacji, że "Bascom coś kombinuje" można by uznać, że napisanie sotu do obsługi 1wire to rzecz prawie niemożliwa dla zwykłego śmiertelnika. Tymczasem to co robi Bascom to absoultnie nie żadna kombinacja tylko normalne zachowanie - ponieważ to podtrzymanie stanu wysokiego na pinie portu jest niejako przygotowaniem...
Witam. Wiem, że ten temat był wielokrotnie omawainy, ale z tamtych wypowiedzi nic nie zrozumiałem. Mam atmegę8 i problem jest taki, że przełączniki podpięte do portów nie chcą działać. Z tego co wiem, to trzeba je podciągnąc do + za pomocą rezystora albo wewnętrznie(?). Próbowałem podciągnąć rezystorem (różnymi rezystorami) i nic z tego. Na porcie mimo...
Witam. Napisałem program do migania diodami i mam trzy pytania: 1.Czy da się ustawić cały port w stan spoczynku (coś w stylu PORTD = 0)? 2.Czy po każdej komendzie IF trzeba pisać END IF, czy da się to jakoś ominąć? 3.Czy poniższy kod jest poprawny, czy będzie działał? 1. Tak, możesz tak pozostawic. Bascom akceptuje kilka form ustawienia poziomu pinów...
1) jeśli używasz przycisków to zawsze podłącz go tak aby przyciśnięcie zwierało nóżkę portu do masy czyli do -. To naprawdę ułatwia sprawę i zawsze działa 2) dobra praktyka - przyciski, jumpery itp podłączaj do pinu procesora przez rezystor np 180 omów. Chodzi o to że kiedyś możesz się pomylić, ustawić pin jako wyjście, dać na nim 1 czyli napięcie +...
≈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...
Witam. Jak należy konfigurować poleceniem w Bascom Config PORTx=&Bxxxxxxxx i PORTx=&Bxxxxxxxx piny używane do np. taktowania procesora-np. xtal, lub piny używanego ADC lub LCD lub np, jakiegoś interfejsu? CZy gdy są wejściami - włączać R podciągające czy niech pin "wisi w powietrzu"?
Witam W zasadzie powinno działać ale :) To mogłoby funkcjonować pod warunkiem że piny 1 i 0 portu D są fizycznie sciągnięte do masy rezystorami (np. 10k). Wpis w programie: Portd.0 = 0 Portd.1 = 0 nie daje nic , bo i tak 'by default' taki stan tam występuje, a nie jest to równoważne z podciąganiem portu. Owszem jest tego radzaju możliowość ale tylko...
Przyciski muszą załączać przekaźnik nawet jak kontroler będzie wyłączony, to konieczność w moim przypadku stąd takie kombinacje. Na razie zrobię podciąganie wewnętrzne i zobaczymy jak będzie sobie radziło w dośc trudnym środowisku. Czyli generalnie zewnętrzne podciąganie jest pewniejsze? A jak wtedy ustawiać port, też go podciągać czy ustawiać jako...
Napisane na szybko nie sprawdzałem ale chyba powinno działać. [syntax=basic4gl] $regfile = "m8def.DAT" 'deklaracja procesora, w tym wypadku Atmega8 $crystal = 1000000 'deklaracja cześtotlwiości pracy (wew oscylator 1MHz w zupełności wystarcza) '*************************************WA... 'Pamiętać o podłączeniu...
Gdy programowałem w bascomie nigdy nie dawałem rezystorów podciągających. W programie dopisywałem linijkę np. Set Porta.1 i to w zupełności wystarczało. Nie miałem nigdy problemów z zakłóceniami.
Rozumiem że te porty ustawiasz jako wejścia (czyli DDRB = 0XFF), Drobna pomyłka bo powinno być DDRB = 0x00, czyli DDRB = 0b00000000. Niby drobiazg, ale początkującemu może namieszać. W procesorach AVR każda końcówka I/O powiązana jest z trzema rejestrami, które to decydują o przeznaczeniu tej końcówki. Te rejestry to: DDR - rejestr kierunku, ustala...
Z tym dotykaniem masy pasowałoby mi niepoprawny układ taktujący (kwarc, kondensatory) może być też brak zewnętrznego podciągania RESETu do plusa i niepołączona masa układu i masa posrtu COM (5 pin w porcie DB9)
Dziś zakończyłem pierwsze testy ale niestety efekt marny :-( Osiągnąłem tylko to że na diodach sygnalizuje error, busy, selected i mogę inicjalizować drukarkę z procesora. Czy powinienem nóżki danych podciągać do masy w przypadku stanu niskiego?? I czy na tym porcie danych powinienem wysyłać kod znaku ascii czy komendę ESC ??
To pytanie na szybko odemnie, czy "config Pinb.0 = input : Portb.0=1" spowoduje ze do portu nie trzeba dodać rezystora aby działał z przyciskiem? Tak. Ustawienie portu w stan wysoki spowoduje podłączenie wewnętrznego rezystora podciągającego. Przycisk w tej sytuacji musi oczywiście zwierać do masy.
Pisałem progam. Najpierw kofiguruje we/wy , podciągam porty na 1, pisze program potem F4 i F7 jak się wgra to układ jak zaprogramowany to tak działa. Zawsze w bascom wybierałem w zakładce chip mój układ który programuje czyli atmega8. Nigdy nie miałem problemu Dodano po 55 m8adef dokładnie tak widnieje w zakładce
Przetestowałem płytkę w taki sposób że wyjąłem ATmege i połączyłem ze sobą wyjście i wejście które podciągałem do procka(atmegi) i układ działa jak echo, wysyłam z portu COM i dostaje to samo. Więc jaki błąd popełniłem dalej jeżeli chodzi o komunikacje maxa i atmegi????
nie dotykam ale wytłumaczę to inaczej . Tak to jest... Jeżeli pin wejściowy reaguje na dotyk palca, to pierwszy powód jest brak podciągania na tym porcie, jeżeli jednak port ten jest podciągnięty do Vcc to przyczyną jest błędna konfiguracja tego portu. Wejścia konfiguruj raczej: config PINB.1 = input ; zamiast: config PORTB.1 = input Bascom tu nie...
W sumie myślałem i nie wiem czemu :| ktoś może mi pomóc w tej kwestii bo w sumie wiem że to nie działa bo właśnie testowałem i pomimo tego że ustawiam te wejścia jako input jeśli użyje komendy set wówczas zmienia się wartość portu więc to pewnie jest jeden z powodów ale całego tego procesu nie za bardzo rozumiem.
teraz jaśniej ????? Nie sądzę aby to było jaśniej. Namąciłeś mu w głowie okropnie!..... O wiele łatwiej jest przeczytać ze zrozumieniem jeden mały paragraf w „BASCOM Manual” odnośnie konfiguracji portów (str.145/146) PortB As General Digital I/O , gdzie w bardzo wyraźny sposób określono różnice co należy rozumieć PORT a co jest PIN. W dalszej...
Zobacz to: $regfile = "m8def.dat" $crystal = 16000000 Config Portb = Output Portb = &B00000000 Config Portd = Input Portd = &B11111111 Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Disconnect , Prescale = 1 Przycisk Alias Pind.1 Dim D As Byte , Czekaj As Integer D = 0 Pwm1a = D Czekaj = 0 Do If Przycisk...
Zacznij od Set PORTD.6 a nie Set Pind.6 Rejestru PIN nie da się ustawiać. Co za tym idzie nie masz podciągania na tym pinie. Jest pewne niezrozumienie tego tematu w Bascom. Jeśli piszesz Config to potem mozesz pisać Pin albo Port, ale przez ten poprzedzający "Config" ustawienie będzie się tyczyło DDR.x Jednak ustawia się potem PORT.x a czyta z PIN.x
zmień sposób wykrywania stanu z wysokiego na niski , podciągając piny portu przyciski do masy .......... Config Pind.0 = Input Config Pind.1 = Input Portd = &B00000011 If Pind.0 = 0 Then Gosub Menu1 End if ...........
Witam forum Jestem początkujący. Zakupiłem sobie mikrokontroler Atmega8. Początkowo bawiłem się w podpinanie tranzystorów NPN i wszystko było okej. Lecz, teraz spróbowałem podłączyć tranzystor PNP i mam problem. Wtedy gdy mam płytkę z Atmegą podpięta pod programator wszystko jest dobrze, tzn. ustawiam 0 na port i tranzystor zaczyna "przewodzić", ale...
Litości. Bez podłączenia do masy ten stan jest niewykrywalny bo go po prostu nie ma. Jak nie podłączysz do masy to tam się dalej utrzyma jedynka. Żeby wykryć zero (brak jedynki ;p) trzeba po prostu zewrzeć pin do masy i tyle. Rezystor ściągający do masy 100k i po sprawie (ale wewnętrzny podciągający do VCC trzeba wyłączyć). Część postu usunąłem - regulamin...
W moim programie brakuje konfiguracji podciągania portu D (ciągle zapominam albo o podciąganiu albo o konfiguracji wejść/wyjść). Po instrukcji Config B = Input należy wstawić PortD = &b00001100 lub na cały port PortD = &HFF. Brak podciągania może powodować niestabilnbą pracę. Można również dołączyć rezystory 10k od +5V bezpośrednio do wyprowadzeń procesora....
Dzięki wielkie za dobre chęci - doszedłem już sam co było powodem , a mianowicie był pęknięty jeden kondensator (27p) przy kwarcu(mimo tego że był nowy) - po jego wymianie zadziałało i działa na wszystkich portach - jest podciąganie - szczerze mówiąc nie wiem czemu , co miał ten kond do podciągania , ale widocznie coś miał bo nie działało. Wielkie dzięki...
Czyli dać włącznik na PINB.5? Skonfigurować go jako wejście i co dalej? Jeżeli właczę rezystor podciągający to po podaniu zera na pinb.5 zamiast zmieniać prgram to będzie mi resetował procesor? No chyba żeby sterować "1" ? Schemat prosty do portów procesora podpięte diody przez rezystory 200 omów, zapalanie diód wysokim stanem z portu.
Być może sie komus przyda w przyszłości. Błąd działanie był spowodowany tą linią set PORTA co miało włączyć rezystory podciągające na całym porcie A skonfigurowanym jako wejściowy. niestety taka komenda (set dla całego portu jest błędna. Komenda set można ustawic co najwyzej jeden bit a cały port (włączyć rezystory podciagające) to mozna tak porta=&HFF
Ale należy również ustalić czy te piny mają być wejściami czy wyjściami dla sygnałów , a tego chyba nie zrobiłeś . $regfile = "m8def.dat" $crystal = 1000000 Config Portb = &B11111111 Portb = &B00000000 Config Portc = &B00111000 Portc = &B00000000 Config Portd = &B11111111 Portd = &B00000000 Pierwsza linijka (portb) określa że port ( piny )...
Najkrótsza podpowiedź jakiej udzieliłem: Brak debouncingu. Program ten jest w całości statyczny (sprawdza tylko stan portu/pinów wejściowych) a output ma również charakter statyczny (nie zlicza impulsów czy też toggle stanu wyjścia) więc debouncing byłby nie konieczny. Inna rzecz to: brak tu kilku słów lub częci programu na temat podciągania do Vcc...
Temat powinien polecieć do kosza ale... :D Na początek musisz wiedzieć że do odczytu danych z końcówek portu służy rejestr PINx czyli w twoim przypadku PINA. Po za tym musisz uruchomić wew. rezystory podciągające (pull-up) czyli piszesz np. PORTA = 255. Na koniec powinno to wyglądać tak : PORTB = PINA . Po więcej informacji sięgaj do helpa tam wszytsko...
W AVR'ach portami zarządzają trzy rejestry PORT, PIN, DDR. PORT przechowuje dane wyjściowe, a w przypadku wejścia załącza rezystory podciągające (tam gdzie 1, 0-stan wysokiej impedancji). PIN odzwierciedla aktualny stan końcówek portu. Dla tego przez ten rejestr badamy co jest na wejściu. DDR zawiera dane o tym które bity portu są wejściami (0), a które...
Takie problemy były już na elektrodzie. Możesz zrobić tak jak napisał przedmówca. Przycisk od portu do masy, poprzez set port podciągasz wejście do "+" i masz cały czas stan wysoki, po wciśnięciu sciąga go do masy i masz stan niski. Jeśli masz przycisk między portem a "+" to musisz go podciągnąć do masy dodatkowym rezystorem, bo nie ma wewnętrznego...
Witam, Wykonałem płytkę, l fakt z przerwaniem od zegara jest problem bo brakuje podciągania. niestety u mnie aby RTC się odblokował muszę podawać ponad 7V na stabilizator a testowo podpinam pod 15V zasilacz i podciąganie do linii 15V (bo tam wygodnie można wlutować rezystor) jest chyba trochę ryzykowne ( czy linia pracująca jako wejście przerwania nie...
Dopóki nie nauczysz się poruszać pomiędzy rejestrami PORT i PIN to ustawiaj jako OUTPUT tylko piny które Cie interesują czyli na przykład pin od diody. Taki zapis: cały port jest wyjściem. Ustawienie teraz na nim stanu wysokiego, niby po to by włączyć rezystory podciągające powoduje że włączasz wyjścia które można obciążać maksymalnie do 20mA. Przyciśnięcie...
Witam, po pierwsze gdzie konfigurujesz końcówkę 0 portu D jako wyjście? Port D ten do którego dołączyłeś przekaźnik skonfigurowałeś jako wejście klawiatury. Do którego pinu w końcu podpięty jest przekaźnik? Wg. schematu gdzie indziej. Sprawdź miernikiem podciąganie do plusa. Co pojawia się bezpośrednio na nodze procesora??
Najpierw wyjaśnij, co to jest "sterowanie plusem". Jeśli sterujesz podając napięcie z wyjścia jakiegoś układu, to nie musisz nic podciągać w żadną stronę. Jeśli sterujesz z wyłącznika (np. przycisku, czujnika stykowego itp.), to ten wyłącznik zwiera wejście do masy albo do plusa, w zależności od tego, jak jest podłączony. Kiedy wyłącznik jest rozwarty...
Mam kłopot z obsługą przerwania INT0 w ATmega32. Chciałem, żeby były generowane zboczem opadającym. Na nogę ITN0 wchodzi sygnał prostokątny 1Hz z wypełnieniem 50%. Jest rezystor podciągający do +5V. Kod jak niżej. Powinno generować sygnały na beeperzerz podłaczonym do portu D ale nic się nie dzieje. Bascom odmawia skompilowania linijki zawierającej...
Magistralę ciągnę dwoma przewodami. Rezystor podciągający 511om bo powyżej nie działa nic tzn tak od 640om zanika na 1k nie ma już nic. Na czas konwersji podciągam DQ do plusa przez tranzystor. Odczyty termometrów są prawidłowe, więc cała magistrala działa na AT32 ale z przełączników działa tylko jeden. Na AT168 działa wszystko cacy więc napewno chodzi...
Przy takim napisaniu programu funkcja debounce nie jest potrzebna bo jest wait 1 i to ona przytrzyma informacje o stanie przycisku. Wyrzuć " Set Porta.2" bo w tym przypadku nie jest potrzebne, jeśli definiujesz porty jako wejścia to będą podciągane do góry wewnątrz procka. Poza tym ducker1 dobrze napisał. W Bascomie aby zobaczyć stan rejestru odpowiadajacego...
1. jak dam LED bezpośrednio na wyjście portu (bez znaczenia czy są rezystory podciągające ,czy nie) Rezystor podciągający to jedno, ale czy dajesz w szeregu z LED-em rezystor ograniczający prąd diody ? Nie możliwe, żeby nie działało. Tutaj przykładowy projekty na 2051, gdzie LED-y sterowane są przez rezystory: [url=http://elportal.pl/index.php?module...
ugh123 kolega miał dobrze zadeklarowane porty, a ty kazałeś mu poprawić na błędny zapis!! dla jasności (ostatnio pisałem to na forum w różnych tematach ze 100 razy): Config PORTn = Input / Output / &Bxxxxxxxx Config PINn.x = Input / Output 'czyli: Config Pinb.3 = Output i dla jasności: rejestr PINn to rejest odczytu rejest PORTn to rejestr zapisu...
Najczęściej robi się to odwrotnie - pin B.1 zwierasz do masy, a komendą SET podciągasz go do plusa zasilania. Wtedy program sprawdza "If portb.1=0 then...". Przy okazji, warto używać aliasów, wówczas program jest czytelniejszy, a ewentualna zmiana pinu to poprawka jednej linijki. Jeśli jednak z jakiś powodów musisz wyzwalać port jedynką, to podajesz...
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...
Normalnie przyciski dołącz się do masy, aktywuje rezystory podciągające wewnątrz uC i chodzi. W twoim przypadku musisz zastosować równolegle do przycisku rezystor (ok. 47k). Procesor ma wejście w wysokiej impedancji i łapie sygnały z otoczenia. Nie ma przy tym wewnątrz uC rezystora "podciągającego do masy". A co da ten rezystor rownolegle do przycisku?...
Witam Analizując http://www.elektroda.pl/rtvforum/viewtop... program w niektórych przypadkach mam problem ze zrozumieniem Trudno zrozumiec, bo akurat wybrałeś jego pierwszą wersję (zupełnie błędną), która uległa kolejnym poprawkom w dalszej dyskusji. Najbliższa do porawnej była umieszczona pod postem #10 (chociaż i ta wymaga...
Bez przesady, promieniowania nie ma :) Chodzi o zakłócenia np. od pioruna czy linii zasilania itp. Miałem raz przypadek, że pobliski piorun (w odległości 100-200m) spowodował przestawienie jednego dosłownie rejestru w AVR. Dokładnie odpiął rezystory podciągające akurat na porcie, na którym były przyciski sterujące. Szczęśliwie, wejście w menu było zabezpieczone...
Pisałem, że wypadało by zapoznać się ze sposobem konfiguracji portów i ze składnią języka. Skoro port B ustawiasz jako wejściowy to jego linie musisz podłączyć do rezystorów podciągających do zasilania. [url=http://bascommaster.blogspot.com/20... masz dokładnie opisany sposób konfiguracji portów....
przez rezystory 4,7k dają prąd na wejścia uC. chyba nie rozumiemy się , jeżeli wszystkie układy zewnętrzne ( czujniki ) będą podłączone ok , chodzi o to aby piny pracujące jako wejścia nie wisiały w powietrzu , przez jaki rezystor chcesz dawać prąd na wejście pewną zasadą przy pracy portu jako wejście jest podciągniecie go programowo do Uzas , sprawdzając...
Witam Mam pytanie w sprawie programowania ATtiny26L a mianowicie jakie bity nalezy ustawic przy programowaniu BASCOM-em gdy chce uzywac wewnetrznego oscylatora (to sa Fuse Bits..moze jeszcze jakies inne????), czy trzeba cos dodawac w kodzie ($crystal ???). Podprogram programowania rozpoznaje ATtiny26L, zczytuje, zapisuje i niby jest weryfikacja OK....
Np. W helpie do Bascoma. Akurat help Bascoma nie precyzuje wyraźnie tego zagadnienia. Natomiat w dośc prosty sposób datasheet określa właściwości rejestrów związanych z portami processora (str.51) "Three I/O memory address locations are allocated for each port, one each for the Data Register - PORTx, Data Direction Register - DDRx, and the Port Input...
Na stronie 16 datasheet jest opis, uproszczony przykład odczytu (żadne błędy nie są sprawdzane): [syntax=basic4gl]' przykładowa konfiguracja dla sprzętowego TWI Atmega 2561 $lib "i2c_twi.lbx" ' biblioteka obsługująca hardwarowe TWI Config Scl = Portd.0 ' konfiguracja SCL i SDA Config Sda = Portd.1 Config Twi = 100000 ' 100KHz 'Config Twi = 40000 ' 40KHz...
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...
Pobieżnie przejrzałem Twój program (właśnie wychodzę do pracy...) i od razu widzę babola przy konfiguracji portów jako we/wy. Masz tam coś takiego: Config Portb.0 = 1 , Portb.1 = 1 , Portb.2 = 1 Portb.0 = 0 : Portb.1 = 0 : Portb.2 = 0 Wg mnie powinno być: Config Pinb.0 = Output Config Pinb.1 = Input itd... Aby to rozjaśnić załączam kawałek helpa...
silniki od wkrętarek, jak najbardziej ale oczywiście te z przekładnią planetarną przy zasilaniu takiej wkrętareczki napięciem 3V mają kopa i spory moment obr. a co do enkoderów to myslę że można by pomyśleć nad tarczą z przesłonkami od myszki i resztą elektroniki tzn.. tylko nadajnik IR i odbiornik IR o ile się nie mylę to jest to zintegrowany odbiornik...
Może takt nie jest "plusowy" Wiesz, że po resecie każdy PORT ma wartość zapisaną która można odczytać w nocie "Default" albo "After reset" To najcześciej oznacza że każdy port ma po Reset wartość 0 (zero). Czyli nie ma żadnego podciągania do plusa. Jednak włączenie portu jako Output przestawia DDR i ze zwykłego Floata (pływający/mogący przybierać różna...
Są pierwsze jeśli używasz sprzętowego I2C masz na schemacie porty mikrokontrolera opisane jako sda i scl (pc4 i pc5) do tych należy podłączyć pamięć bezpośrednio rezystory podciągające 4,7K do +5V na sda i scl. W zasadzie masz eeprom w samej medze ale zakładam że chcesz więcej... Wyprowadzenie reset może wisieć ale można je też podciągnąć do 5V przez...
Buduję czujnik temperatury oparty o Proc Atmega8, i Ds1820 na szynie 1wire. 1. Czy ktoś mógłby udostępnić działający kod z baskoma + schemat bo już trace cierpliwość i pomysły 2. Podłączam 1wire pod końcówkę obsługującą SDA, przebiegi wydają sie być prawidłowe, podłączałem też inne porty 3. Ds 1820 zasilam w różnych konfiguracjach tj. Z rezystorem podciągającym...
Zacznijmy od pierwszych trzech linijek. Nie ma $regfile= Ustawiasz PortB jako wyjście. Ustawiasz dwa najmłodsze piny w stan niski. Ale nie wiadomo co się ustawi bo instrukcje oddzielasz średnikiem(; ) a nie dwukropkiem(: ). Kompilator nie ostrzega tylko robi jakieś bzdury- np. ustawia wszystkie piny w stan niski. Potem tu: W1 Alias Portb.4 W2 Alias...
Mikrokontrolery rodziny AVR, mają wewnętrzne rezystory podciągające które można włączyć. Nie wiem jak to się robi w BASCOM, ale znajdziesz na forum. Musisz jednak wiedzieć, że mają one dużą wartość rezystancji, chyba ponad 30k, a może nawet ponad 50 - nie pamiętam sprawdź w dokumentacji. Jeżeli stosować to chcesz w motorze, to sugeruję jednak zewnętrzne...
No fakt, zrobiłeś wszystko zgodnie z poprzednimi zaleceniami. Jest tylko jedno ale; gdy obsługujesz coś, co jest wejściem, to podciągasz komendą Set PORTX.X, natomiast stan odczytujesz : If PINX.X, a nie portx.x Jeśli dobrze zrozumiałem, to są aliasy: In1 = Portc.2 In2 = Portc.0 zamiast tego wpisz: In1= pinc.2 in2=pinc.0 i poszukaj jeszcze innych takich...
To by musiało być coś takiego: Config portb.3 = input 'końcówki portów domyślnie są wejściami, więc nie jest to konieczne portb.3=1 'podciągamy wejście do plusa, bo przycisk będzie między wejściem i masą config portd.0 = output 'wyjście na diodę '1 wpisana do portx.y to stan wysoki na wyjściu dim tryb as byte 'deklaracja zmiennej do 'obsługa prycisku...
Witam. Uczę się (staram sie) programowania w BASCOM. Orłem nie jestem. Do nauki używam książkę "Marcina Wiązania - Programowanie mikrokontrolerow AVR w jezyku Bascom". Pierwsza lekcja opisuje prosty kod: $SIM 'dyrektywa opuszczenia instrukcji 'opóźnienia $REGFILE = "m8def.dat" 'informuje kompilator o pliku 'dyrektyw mikrokontrolera $CRYSTAL...
Czy ten kod nadał by się do zliczania impulsów z INT0, ewentualnie co trzeba by zmienić ? Nie. Po pierwsze: Nie możesz liczyć na dokładny pomiar czasu stosując Start/Stop Timer przy użyciu prescalera o wartości różnej od jeden. Wartość timera może zostać incrementowana już po jednym ticku zegara albo nawet po 100; 150; 193 itd. tickach zegara taktującego...
Wydaje mi się że adres dla odczytu/zapisu powinien mieć wartość &HF1. Jeżeli korzystasz z hardwarowego TWI (np. w Atmega 32 pin PC.0 i PC.1) to masz zamienione SDA z SCL. [syntax=basic4gl]$regfile = "m32def.dat" $crystal = 16000000 $hwstack = 40 $swstack = 32 $framesize = 32 ' konfiguracja hardwarowego TWI dla ATmega 32 $lib "i2c_twi.lbx" ' biblioteka...
Odświerzam, ale może jakiś pomysł poddam odnośnie obsługi panela dotykowego, chodzi o wykrywanie czy został nacisnięty jakiś klawisz. Można to zrobić np.: podciągamy obydwie strony warstwy X panela do zasilania poprzez uaktywnienie pullup w porcie, łaczymy obydwie strony warstwy Y do masy poprzez podanie stanu L na przez port, wejście przerwania sprzętowego...
To wszystko o czym mówisz Pawle mam zachowane wiem ze porty wejściowe maja być podciągnięte do VDD(zasilania), u mnie w aducu ma byc jeszcze wpisane zero do rejestrów poru. Klawiatura mi działa, ale chodzi mi o to że nie mam tego zabezpieczenia przed przytrzymaniem przycisku przez dłuższy czas. Chciałbym żeby procesor nic nie robił wtedy, bo program...
bascom podciąganie wejścia podciąganie pinów bascom bascom rodzaje portów
grundig chorus bascom inkey zwarcie płycie laptop
delonghi primadonna komisje kwalifikacyjne
Canon MB2350 błąd B203 - zablokowana szyna kartridży Przesunięcie fazowe w zwrotnicach głośnikowych LC