ustalam w ten sposób podciąganie pinu do stanów wysokich i niskiego(**) . Zakładałem, że po to jest alias (zawiera nazwę pinu), który sprawę rozwiąże. Co gorsza przyznam się, że taka była moja praktyka więc nie wiem jakim cudem błędy wyszły dopiero teraz. Podsumowując, właściwe jest podciąganie do VCC i GND poprzez SET i RESET a nie jak ja to zrobiłem....
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...
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...
Po pierwsze w ogóle nie widzę sterowania wyjściami. Po drugie nie zakładasz opcji, że kable są zwarte ze sobą, co może skończyć się podsmażonym procesorem. Ledy źle podłączone Poza tym z tym schematem boli rozdzielczość? Daj coś bardziej wyraźnego, uwzględnij zasilanie, podciąganie resetu. Postaraj się zapomnieć w Bascom o Goto itp. Styl programowania...
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...
Najpierw "mikroswłicz" który po wciśnięciu drga. Czyli przełącza wielokrotnie- a nie wiesz jaki stan procesor bada na wejściu- po są drgania. Najprostsza metoda: If Pinb.3 = 0 Then waitms 20 If Pinb.3 = 0 Then ......... end if end if To oznacza że po wciśnięciu mikroprzełącznika odczekujesz 20ms i jeśli po tym czasie masz taki sam stan to się "uspokoił"...
Standardowy błąd początkującego. Nie włączone wewnętrzne podciąganie (pull-up) na wejściach na których są switche.
Jeżeli przycisk zwiera wejście do masy to trzeba jeszcze włączyć wewnętrzny rezystor podciągający wpisując do portu 1.
, 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...
...pozostałe piny są w stanie niskim czyli 0 V. Źle, wejścia te mają wyłączone podciąganie do VCC.
Tak. Bo w takim stanie przerzutnik portu nie wymusza stanu logicznego z rejestru PORT a jedynie steruje tranzystorem, który służy jako podciąganie wejścia do zasilania (ekwiwalent rezystora ok. 50k). Dlatego do odpowiednich bitów DDRxy i PORTxy należy wpisać zera.
Lini przeznaczonych do podłączenia kwarcu nie ustawiaj ani na we ani na wy. W przypadku zegarka fuse bity ustaw na wew. oscylator. Jeśli chodzi o sygnały zew. to masz 2 opcje: dodać tranzystor który będzie podawał stan niski po wystąpienia stanu wysokiego lub dodać rezystor podciągający daną linie do masy.
Hej! Nic nie zapomniałem :) , tylko poprostu zawsze korzystając z przycisków podciągam wejscie pod plus 5V (Rezystor 10k). Z praktyki przekonałem się że jest to o wiele pewniejsze rozwiązanie niż ustawianie programowo stanu wysokiego. Pozdrawiam
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...
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.
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...
Aby wyprowadzenia PCF8574 były wejściami trzeba wysłać np. 255 (ustawić 1 na wybranym wejściu). Nie jest potrzebne zewnętrzne podciąganie.
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...
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.
Włącz podciąganie na wybranym pinie w trybie wejściowym.
Witam. Ja detekcję robiłem prościej - sieć przez rezystor 47k / 3W podaję na mostek prostowniczy a wyjście mostka na diodę CNY17. Tranzystor transoptora podłączałem kolektorem do wejścia INT1 atmegi, a emiter do masy. Rezystor podciągający kolektor do +5V miał wartość 4,7k lecz uważam że równie dobrze można było go nie stosować. W programie korzystałem...
Jeśli "noga" procesora ustawiona jest jako wejście to stan logiczny na tym wejściu odczytujesz za pomocą PinX.y. Jeśli jako wyjście to stan logiczny na wyjściu ustawiasz za pomocą PortX.y. Dodatkowo, gdy "noga" procesora jest jako wejście to za pomocą PortX.y włączasz lub wyłączasz wewnętrzne podciąganie wejścia poprzez wbudowany rezystor do VCC.
ale nie trzeba podciagac wyjscia do plusa??
Podciągałeś wejścia do zasilania wewnętrznym rezystorem? /edit: zauważyłem, przepraszam
....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...
Po pierwsze to po resecie mikrokontrolera piny są ustawione jako wejścia więc nawet nie trzeba tego robić Po drugie to kierunek ustala się za pomocą rejestru DDRx a nie PORTx (to nie Bascom) Po trzecie to musisz doczytać jeszcze o przesunięciach bitowych bo szybko na tym polegniesz w C. To podstawa. Po czwarte to klawisze (słicze) musisz mieć albo podciągnięte...
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...
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...
Na piny P1.0 i 1.1 musisz podać stan wysoki, żeby wejścia komparatora nie były połączone z masą. Te piny nie mają wewnętrznego podciągania do Vcc, więc będą "wisiały w powietrzu" (i tak ma być :D ). Stan wyjścia komparatora odczytujesz jako pin P3.6 W BASCOMie jaokoś tak (nie pamiętam, dawno nie używałem, ostatnio tylko asm :D ): SET 1.0 SET 1.1 żeby...
Te wejścia są skonfigurowane poprawnie, choć podciąganie jest podwójne (przez mikrokontroler i zewnętrzny rezystor). Któryś zapis powinien się wykonać, w zależności od momentu w którym puścisz przycisk...
Panowie, jeżeli steruje procesor plusem to nogę która jest wejściem muszę podciągnąć rezystorem do masy. Jak jest kiedy steruje minusem? Czy muszę podciągać nóżkę rezystorem do plusa ?
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...
Musisz dać rezystory podciągające do masy (ok. 1-10k) na wejściach, do których masz podłączone przyciski albo ustawić wewnętrzne rezystory podciągające wejścia do plusa zasilania poprzez komendę PORTD=&B11111111, a przyciskami zwierać do masy.
1) Nie potrzebne jest ustawianie stanów spoczynkowych. Jeśli tego nie zrobisz będą miały domyślną wartość czyli chyba 0. Tak samo domyślnie wszystkie piny są ustawione jako wyjścia czyli w (DDRX.Y = 1 <- nazwa rejestru kierunkowego w BASCOMIE nie musisz się tym martwić). 2)Co do drugiej części pytania powiem tak: najbardziej naturalnym rozwiązaniem...
Ponieważ można włączyć wewnętrzne podciąganie pin'a do plusa zatem aby zmienić stan na wejściu wystarczy je dołączać do masy.
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 +...
Czyli ta część kodu jest dobrze napisana?... Dobrze napisana , tylko nie będzie działać tak jak byś chciał(reakcja na zmianę stanów wejść) i to 2 powodów :( Pomyśl dlaczego :!: Piotrek
Wygląda tak jakby ładowała się jakaś pojemność. Upewnij się że wszystkie końcówki mikrokontrolera połączone z modułem są w ustalonym stanie. Jako wyjścia, albo wejścia z włączonym podciąganiem. Mikrokontroler i moduł zasilane są z tego samego źródła? Problem może wystąpić kiedy napięcia na końcówkach I/O nie osiąga pełnej wartości napięcia zasilania....
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"?
Nie mogę skompilować z taką deklaracją PORTD.0=1, używam KontrollerLab pod Linux-a, i nie trawi takiej deklaracji. Chyba że to jest z BASCOM-a? Ale obsługa przycisków jest podobna, na początku podciągam je programowo do plusa, potem ustawiam jako wejścia i dopiero odczytuję.
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...
Najprościej przeczytać dokumentację. Są nawet przetłumaczone wersje.
Config Debounce = 30 ' Wydłużenie czasu na wygaszenie drgań styków do 30ms ' Pin wejściowy musi mieć podciąganie (wewnętrzne lub zewnętrzne) do Ucc 'by gdy przycisk jest wciśniety był wymuszony konkretny stan wejścia Do ' Główna pętla programu debounce p1.1,0,klaw112,sub Loop klaw112: obsługa ret
ł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...
idź na stronę www.picbasic.org jest tam kompilator którego osobiście używam i polecam. Proton-plus może to jednak program ponosi odpowiedzialność za złe zachowanie się procka lub brak podciągania wejść , zły zasilacz, układ resetu. ewentualnie mogę ci przepisać w wolnej chwili soft z AVR na pica pozdrawiam
Hmm.. Może się mylę, ale: -chyba w tej opcji trzeba dołączać zewnętrzne rezystory, bo nie widzę, żeby wejścia były skonfigurowane z podciąganiem. -Czy na końcu pierwszego If'u nie powinno być End If podobnie jak w drugim? Bo samo end chyba kończy program tak? -I chyba nie wziął kolega pod uwagę, że nie mają to być dwa przyciski - włącz i wyłącz tylko...
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 ?
Tak przeglądając sobie datasheet do obydwu układów zauważyłem ze pcf8583 nie ma wejścia reset tylko adres. Natomiast PCF8593 posiada wejście reset i wymaga podciągania tej lini do Vcc. Masz podciągniętą tą linie? Może układ w ogóle nie startuje?
Witam! Po pierwsze to z reguły przyciski powinny zwierać piny wejściowe do masy a nie do zasilania. Wynika to z faktu posiadania przez procesory AVR wewnętrznych rezystorów pull-up podciągających wejścia do +vcc, czyli panuje na nich stale stan wysoki (oczywiście gdy zostaną uaktywnione). Po drugie to akurat sygnał CLK ma się zmieniać, podczas narastającego...
rezystory przy Led to jedno , temat zasilania L293D był wałkowany wielokrotnie końcówkę 8 tego układu zasil bezpośrednio czyli przed stabilizatorem dlaczego było pisane już na forum , kondensatory tylko przy stabilizatorze to mało dodaj jeszcze przy uC i to jak najbliżej końcówek układu , wskazane są również dodatkowe rezystory podciągające dla pinów...
Na początek mam trzy wiadomości. Dwie złe i jedną taką sobie. 1.Nie znam się na sterowaniu telefonów- może ktoś inny pomoże. 2.Znowu fusebity- PORTC jest ustawiony do obsługi JTAG- trzeba to wyłączyć. Wchodzisz w ustawianie fusebitów- tak jak poprzednio. Szukasz Fusebit High H - i ustawiasz na disable. 3.Skoro skonfigurowałeś PORTC jako wejście- to...
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....
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...
Program jest w BASCOM. Rozumiem że można wykonać to: 1. Odłączając PA7 i PB4 od VCC i w programie dodać zapis SET PORTA.7 2. Zastosować rezystory podciągające piny PA7 i PB4 do VCC. I w związku z tym jeszcze dwa pytania. W którym miejscu programu umieścić zapis SET PORTA.7? Pod deklaracją wyjść/wejść? Jakiej wartości powinny być rezystory podciągające?
Jest to dobre. Końcówka jest wejściem i załączony jest rezystor podciągający. Będzie działać. Z tym paleniem portów to sprawa dziwna, bo M8 ma ograniczenie prądowe w stanie wysokim (no chyba że więcej końcówek zostało zwartych do masy jednocześnie)
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...
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...
po pierwsze dodaj podciąganie do linii przycisków podciagniecia czyli ustaw stan wysoki na wejściach np. PORTB.2 = 1 Dzięki, to zadziałało, zmienna już samoczynnie się nie zmienia. po drugie poczytaj nieco o timerach to wyeliminujesz wait'y i program będzie działał jak chcesz :wink: A nie można byłoby tego zrobić na wait'ach i dać spokój timerom (czytałem...
Cze... takie pytano: czy w ten sposób mogę sterować wejściem u-kontrolera bez dodatkowego rezystora podciągającego ? bo z tego co wiem to programowo można to zrobić tylko teras tak do głowy mi przyszło że to tylko da się podciągnąć programowo masę ?? Schemat poniżej Nie chciałem pisać 2 postu wię pytam tu CZY NAPEWNO mogę "dorzucać" masę do układu AVR...
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...
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...
A po co mi w C ?ja C nie znam Przeportować z C na Bascom nie duży problem. A ASM na Bascom tez nie. Z Bascom na C tak. Nie chodzi tu o typowe rozkazy, jak pętle itp, to banał. C jest "blisko" sprzętu, taki bardziej assembler, Jeśli w C jest odwołanie do rejestrów np TWI bez problemu przeniesiesz to na Bascom, coś w rodzaju tłumaczenia np z angielskiego...
Musisz podciągnąć wejścia do Vcc, czyli włączyć wewnętrzne rezystory podciągające. A mówiąc prościej: W kodzie nigdzie nie masz poleceń do konfiguracji pinów, czyli piny są domyślnie wejściami w stanie wysokiej impedancji. A to znaczy, że napięcie na nich "pływa" od zera do Vcc. I kiedy napięcie na pinie jest w okolicy zera polecenie Debounce reaguje...
No więc rozwiązanie okazuje się (jak zwykle) banalne; W dataszicie czytamy : ***************** When switching between tri-state ({DDxn, PORTxn} = 0b00) and output high ({DDxn, PORTxn} = 0b11), an intermediate state with either pull-up enabled ({DDxn, PORTxn} = 0b01) or output low ({DDxn, PORTxn} = 0b10) must occur. Normally, the pull-up enabled state...
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...
proszę kod - umnie się kompiluje i ładnie wchodzi do proca ale podciąganie jest tylko na wyjściu - na wejściu brak $regfile = "m16def.dat" $crystal = 8000000 Config Pind.7 = Input Config Pina.0 = Output Set Porta.0 Set Portd.7 Do If Pind.7 = 0 Then Porta.0 = 0 Else Porta.0 = 1 End If Loop End
Zastanawiam się jeszcze, czy przerwania od INTx nie zastąpić sprawdzaniem pinu. Instrukcja DEBOUNCE w sumie ma eliminować drgania zestyków i jeśli będzie odpowiednio skonfigurowany czas Debounca (CONFIG DEBOUNCE) to DEBOUNCE pinx.y, 0, przerwanie, sub powinno zadziałać chyba dokładnie tak jak On INT1 przerwanie Jedyna wada jest taka, że jeśli procesor...
Tam nie ma nic do liczenia. Dolny rezystor służy do tego, żeby podczas włączania mikrokontrolera ściągnąć bramkę do masy. Może on mieć nawet 5 Mohm, chyba, że mikrokontroler ma domyślnie włączone podciąganie wejść - wtedy musi on mieć rezystnację kilka razy mniejszą od tej podciągającej, dlatego 10k jest dobrą wartością bez zaglądania w dane uC. drugi...
Od kiedy pamiętam to nie skonfigurowane piny są wejściami. A działanie instrukcji portx.x = 1 po resecie włączy rezystor podciągający i też miernik pokaże 5v, a po instrukcji portx.x = 0 może pokazać wartość bliską zeru. Jutro sprawdzę doświadczalnie, a co mi tam :D . P.S. Zajrzałem sobie na stronę kolegi mirekk36 , cytat: "Zapraszamy na kursy programowania...
a jeszcze lepiej przełożyć S1 aby zwierał do masy a nie do VCC. Wtedy nie trzeba będzie rezystora podciągającego , wystarczy włączyć wewnętrzne podciągnięcie - czyli zmienić program na : [syntax=basic4gl]$regfile = "attiny2313.dat" $crystal = 1000000 Config Portb = Input 'Port B jako wejścia Portb = &B11111111 'Stan spoczynkowy Config Portd = Output...
Przy konfiguracji jeśli wejście to pin, ale alias zawsze robię port. Zdarzało się, ze jeśli alias pin, to program nie działał. To szkodliwa porada bo w ogóle nieprawdziwa. Należy rozróżnić dwie rzeczy. Podczas konfigurowania czy pin ma być wejściem czy wyjściem, czyli uzywając "Config" możesz użyć zarówno Pin jak i Port. Czyli możesz napisać "Config...
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 )...
Pomyłka! Nie równolegle do przycisku lecz pomiędzy wejściem a masą czyli Vcc, przycisk, wejście uC, rezystor, masa. W ten sposób rezystor ustali stan niski na wejściu, a przycisk będzie go przełączał na wysoki. Wpisanie w programie Porta.b = 0 powoduje dla a.b jako wejścia odłączene rezystora podciągającego do Vcc i pozostawienie wejścia w stanie wysokiej...
Ty to jesteś krejzolka Aldoro wiesz hahahahaha Podłączył byś wyjście transoptora do wejścia INTx albo ustawił Timer jako Counter a wyzwalanie jako, na przykład Falling, Co sekundę sprawdzał byś ile impulsów nabiło przez sekundę. I to wszystko. Bez obsługi przepelnienia Timera osmiobitowego zmieścił byś 255 impulsów na sekunde. Miłego dnia. Mogłeś wcześniej...
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...
Kolego skompiluj sobie kod poniżej i poczytaj zawarte w nim komentarze. I jeszcze jedno masz spory problem z tak prostym kodem a jednocześnie wartość po $crystal wynosi u ciebie 16MHz rozumiem że poprawne konfigurowanie fuse w tym uC masz opanowane. [syntax=basic4gl]$regfile = "m32def.dat" $crystal = 16000000 'KONFIG WYJSCIA Config Portb.2 = Output...
Jeśli chodzi o cmd_timeout to chodzi o to, że wejscie RX kiedy pin używany jest przez USART nie jest niczym podciągane. Kiedy jest podłączony do drugiego urządzenia np. procesora lub MAX485 to problemu nie ma bo pin jest podciągany wyjściem TX tego uC lub MAX485. Kiedy jednak odłączysz to na pinie stan jest nieustalony i wpadają na USART śmieci. Ten...
Procesor ATTINY (jak każdy inny) można usypiać. Usypianie w przypadku ATTINY jest niezwykle skuteczne - prąd mierzymy w nA. Oczywiście wszystkie linie muszą być podciągane, należy wyłączyć też zbędne układy procesora (zwłaszcza BOD). Ale tak jak jest też może być. Potencjały na liniach wejściowych mogą wychodzić poza zakres napięć zasilania. Jeśli jednak...
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...
Cześć! Napisałem kod do tego sterownika w Baskom'ie . Program obsługuje opcje krańcówek zrealizowanych na kontaktronach, opcję zakładki bramy dwuskrzydłowej i fotokomórki. Wyrzuciłem z softu wyłączenie od prądu min i wszystko uzależniam od krańcówek. Nie wykrywam też ilości skrzdeł, z założenia są dwa. Po uruchomieniu pojawił się pewien problem. Aby...
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...
cracy_physic.....serdeczne dzięki za tą podpowiedź.....gdyby nie ona byłbym przekonany, że pullup-y mam dołączone. Korzystam z płytki ZL2AVR i linie scl i sda z rezystorami podciągającymi są rozdzielone od lini scl i sda z układu PCF.....dopiero po Twojej uwadze to zauważyłem. Wcześniej oczywiście kombinowałem z różnymi adresami. I2C oczywiście ruszyło...
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...
Po pierwsze - dlaczego pętla główna jest na końcu ? I gdzie jest end ? Nie tak się używa podprogramów Po drugie - przydałby się schemat połączeń. Po trzecie - przyciski zwieraj do masy, a wejścia podciągaj wewnętrznie. No.... i po czwarte .... Cls Gosub Menu Cls Menu: Uwielbiam tego typu kod :) Ciekawe gdzie by program poszedł gdyby nie ten Gosub...
zapomnialem dopisac ze rezystorki podciągające są juz od początku :) program wyglada tak (bascom): Dim I As Byte Do For I = 255 Downto 1 P0 = I P3.2 = 0 P3.2 = 1 Waitms 255 Waitms 255 Next I For I = 1 To 255 P0 = I P3.2 = 0 P3.2 = 1 Waitms 255 Waitms 255 Next I Loop Dodano po 2 i dalej nie dziala...nawet jesli zrobie tak: P3.2 = 0 waitms 3 P3.2 = 1...
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...
Zanim przejrzałem ten temat, wymyśliłem coś takiego: 'Pokazuje ilość obrotów na minutę 'Pomiar co sekundę, wejście PB0...1 'Cls : Cursor Off $baud = 19200 Dim Count(2) As Long , Last_state As Byte , Tmp As Byte Config Timer1 = Timer , Prescale = 64 'do odmierzania 1 sek. On Timer1 Co1sek On Pcint Fan_int Portb = 3 'podciąganie wejść kontroli...
Wyświetlacz według tego programu masz na PORTB od 0 do 5 Przyciski chyba też (przynajmniej tak to wygląda w programie) :D Jeśli już będziesz ustawiał piny pod przyciski to pisze się: Config PINx a wewnętrzne rezystory podciągające włączasz w rejestrze PORTx gdzie x to litery portów. Nie ma więc sensu zapis Pinb.1 = 1 albo 0 - to po prostu nie ma sensu...
Witam, udało mi się coś wyskrobać i zrobiłem na razie sam generator częstotliwości, właściwie jakoś tam działa ale chyba napisałem to dookoła , może ktoś spróbował by to jakoś poprawić. Nie dodałem jeszcze generatora PWM, próbowałem ale nie wychodziło mi, chciałem taktować go z wejścia T1 ale nie udało mi się to, nie wiem jak go zmusic do tego żeby...
Ale dlaczego chcesz wykorzystywać końcówkę przerwania zewnętrznego jako wyjście? Przecież logiczne jest, że ma to być wejście, chyba że chcesz generować przerwanie programowo, ręcznie ustawiając stan końcówki, co w praktyce raczej mija się z celem. Końcówkę deklarujesz jako wejście z pull-upem do plusa i wystarczy, końcówka jest wtedy podciągana poprzez...
Oj. Koledzy. Może po raz 10 to wyjaśnię. Do konkretnego fizycznego portu przypisane są trzy rejestry uC Pierwszy rejestr to DDRX (X to oznaczenie portu). W rejestrze tym ustawia się kierunek działania tego portu. Jedynka to wyjście na danej końcówce, zero to wejście. W Basconie ustawia się to instrukcją Config Port X = Input lub Config Pinb.1 = 0 :...
Config Portc = Input Config Pinc.0 = Input Config Pinc.1 = Input Config Pinc.2 = Input Config Pinc.3 = Input Skoro Config Portc = Input to po co Config Pinc.0 = Input Config Pinc.1 = Input Config Pinc.2 = Input Config Pinc.3 = Input Proponuję tak Config Pinc.0 = Input Config Pinc.1 = Input Config Pinc.2 = Input Config Pinc.3 = Input Portc.0 = 1 Portc.1...
Witam, Programik, który wklejam poniżej idealnie funkcjonuje na ATmega8... Wcale w to nie wierzę... Wg schematu, - wielokolorowa dioda jest w wersji ' z WSPÓLNĄ ANODĄ (CA) ', którą to podłączyłeś do GND. Ta dioda nigdy nie zaświeci niezaleznie jaki potencjał będzie na jej pozostałych elektrodach. Odnośnie programu... (najlepszy przykład jak nie nalezy...
Witam. Wiem, że temat był wielokrotnie wałkowany na forum, ale mimo przebrnięcia przez sporą ilość informacji jakoś nadal mam problem z poradzeniem sobie z moim przypadkiem. Buduję 'klawiaturę matrycową' ale nie na przyciskach, ale na przełącznikach, zatem program sterujący nie będzie miał rozpoznać naciśnięcia przełącznika, a stan wszystkich linii......
Witam, dziękuje za zainteresowanie... Kolego arktik1 Piszesz, że mam zadeklarować zmienną, tym samym zlikwidować pętlę FOR...NEXT? Jak zrealizować w takim wypadku wygaszanie płynne za pomocą PWM? zupełnie nie wiem jak to zrobić, pisałem, że dopiero się uczę programować, moje dotychczasowe programy to tzw. składaki. Po prostu patrze jak ma ktoś inny...
Po pierwsze musisz ustawić piny INT0 oraz INT1 jako wejscia (nie masz tego zrobionego) a samo aktywowanie przerwań nie ustawi tych pinów jako wejść czyli PIND.2 = Input PIND.3 = Input druga sprawa - po co włączasz aktywowanie przerwań poziomem niskim (Low level) ??? - wystarczy w zupełności. w takim przypadku, jeśli wyzwalanie przerwań będzie robione...
Witam, buduję czujnik IR i muszę pokombinować z wypełnieniem impulsów, mam programik który generuje 36kHz ale za nic nie wiem jak zmienić szerokość tego sygnału. Proszę o jakieś rady $regfile = "attiny13.dat" 'procesor Attiny13 $crystal = 1200000 'niższe taktowanie, CKDIV=0 'przy zmianie CKDIV = 1 'zmienić wartośc na 9600000 Config Portb.4...
Trochę słabo szukałeś. Spora część ARMów pomimo zasilania 3V toleruje 5V na wejściach cyfrowych. Sorki ale wydaje mi się że mocno szukałem. Tutaj nie chodzi o to że nie tolerują 5V czy też że tolerują 5V. Musiał bym też konwertować 3,3V/5V a nie tylko 5V/3,3V. A do tego o tolerowaniu 5V słyszałem i i tak już z tego trochę skorzystałem. Po za tym mam...
Stworzyłem kod który powinien wyświetlać czas trwania stanu niskiego na lcd. Na wyświetlaczu pojawia się 0.0 ms oraz na przemian 1 lub 2 takt(czyli ile zliczył timer). Proszę o naprowadzenie na właściwy kierunek osiągnięcia zamierzonego celu. kod: [syntax=basic4gl]$regfile = "M8def.dat" $crystal = 4000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4...
bascom podciąganie portów podciąganie pinów bascom wejścia bascom
migomat bester podajnik drutu alpine kostki lambda sonda renault
autosan adblue naprawa erbauer
Problemy z pilotem scyzorykiem w Mercedesie W210 290 TD Migająca dioda w JVC QLED Android TV przez 5 minut - przyczyny i rozwiązania