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ą...
Witam. Proszę Kolegów o podpowiedź jak z impulsatora sterować wyjściami : jeśli kręcę w prawo załączony np. portc.1 a w lewo portc.2. Port powinien być w stanie załączenia tylko w momencie kręcenia w danym kierunku , po zaniku ruchu wyjście ma być wyłączone. Oto część kodu wyzwalana przerwaniem: Impulsator: If Pind.4 = 1 Then Incr Enkoder Gosub...
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...
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...
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]
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...
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...
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????
bascom podciąganie wejścia podciąganie pinów bascom bascom ds18b20 portów
lodówki bosch opinie volvo silnika odgłos słychać
2000w inverter instrukcja programowania beninca
Czy opona 215/65/R16 pasuje do Golf Plus 2009? Rezystancja anody lampy KT88: wartości i zastosowanie