Jedna rzecz w tym projekcie nie daje mi spokoju. Wciśnięcie dowolnego przycisku podaje +5V na dane wejście mikrokontrolera. Ze wzgledu na to, że port ustawiony jest jako wyjscie w stanie niskim, powoduje to wewnętrzne zwarcie w obwodzie wejściowym mikrokontrolera do masy w trakcie wciskania przycisku. Spowoduje to prędzej, czy później spalenie obwodów...
przykład : Config Debounce = 30 Config Portd.1 = Output 'tx do vfd Config Portd.6 = Input 'enkoder Config Portd.7 = Input Set Portd.6 Set Portd.7 Config Portd.0 = Input 'przyciski po koleji : -v , +v , +/-a , wyświetlacz Config Portd.2 = Input Config Portd.3 = Input Config Portd.4 = Input Set Portd.0 Set Portd.2 Set Portd.3 Set Portd.4
e ale tu mamy blad taki : Config Portc.5 = Input Config Portc.4 = Output Config Portb.0 = Output co jest zle! dobrze : Config Pinc.5 = input Config Pinc.4 = output Config Pind.0 = output
...Coś nie tak jest z programem: wykonywana jest cały czas pętla rc51, chociaż nie zwieram nic do masy. Gdybyś zamiast ... Config Portd.2 = Input Config Portd.3 = Input Config Portd.4 = Input Config Portd.5 = Input Config Portb.3 = Output Dim Togbit As Byte , Command As Byte , Adress As Byte S1 Alias Portd.2 S2 Alias Portd.3 S3 Alias Portd.4 S4 Alias...
czegoś nierozumie właściwie to dwuch rzeczy dlaczego dwa razy konfigurowany jest jeden port Ddrb = &B00001111 i Config Pinb.0 = Output Config Pinb.1 = Output Config Pinb.2 = Output Config Pinb.3 = Output Config Pinb.4 = Input Config Pinb.5 = Input Config Pinb.6 = Input i z tego co pamiętam to przy output ma być port a nie pin Config Portb.0 = Output...
'Config Portc = Input ' Portc = &B0000000 ' Tow Alias Portc.4 'Q4 Alias Portc.0 ' Q3 Alias Portc.1 ' Q2 Alias Portc.2 'Q1 Alias Portc.3 zrób tak: Config Pinc.4 = Input Tow Alias Pinc.4 Config Pinc.0 = Input Q4 Alias Pinc.0 Config Pinc.1 = Input Q3 Alias Pinc.1 Config Pinc.2 = Input Q2 Alias Pinc.2 Config Pinc.3 = Input Q1 Alias Pinc.3 Eee.. a co to...
aha. Bo ja mialem taki bajer ze przy jednym obrocie zwiekszal liczbe o 2 (jak dobrze pamietam moze wiecej) a jak w trakcie jednego obrotu bardzo bardzo lekko przekrecilem w druga strone to juz wszystko wariowalo. wlasnie zauwazylem blad A poza tym ludzie nauczcie sie zagladac do helpa!!!!!!!!!!!!!!!!!!!!!!!! '** przyciski ** Config Pina.4 = Input Config...
Zasymulowałem Twoje środowisko i wprowadziłem kilka poprawek. Działa zgodnie z założeniami. Debouncingu nie dodawałem, choć przydałby się. [syntax=vbnet]$regfile = "m8def.dat" $crystal = 1000000 Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portb.2 , Rs = Portb.1 Config Lcd = 20 * 4 Cls Cursor Off noblink...
Input nie zawiśnie jeśli ustawisz poprawnie "Config Input = Cr", bo standardowo Input "czeka" na CRLF. A odczytać musi, bo przejście do podprogramu nastąpi tylko w przypadku nadejścia znaku entera (13). Więc z góry wiadomo, że Input je odbierze. Bufor jest czyszczony przez ten Input właśnie. Sorry pomyłka - standardowo Input czeka tylko na CR więc jeśli...
Powinno działać tak jak chcesz: Est Alias Pind.4 Dim Zmienna As Byte , Licznik As Byte Cursor Off Config Portd.5 = Input Config Portd.6 = Input Config Portd.7 = Input Config Portb.0 = Input Config Portd.4 = Input Portd.5 = 1 Portd.6 = 1 Portd.7 = 1 Portb.0 = 1 Portd.4 = 1 Cls Do Bitwait Est , Set Zmienna.0 = Pinb.0 Zmienna.1 = Pind.7 Zmienna.2 = Pind.6...
Witaj :) Bez problemu możesz je ustawić jak wyjścia lub wejścia. Np. cały port b jako wyjście / wejście Config portb = output / input Albo pojedynczo poszczególne wyprowadzenia Config portb.5 = output Config portb.6 = output Config portb.7 = input itd... Pozdrawiam
Ma się dobrze jeśli ma odbierać dane z bufora. Jeśli Twoje Print Komenda ; Chr(13); zmieniłbyś na Print Komenda To z powodzeniem mógłbyś odbierać w przerwaniu Pozostało by ci tylko ustawić: Config Input = Crlf , Echo = Crlf Config Serialin = Buffered , Size = 80 , Bytematch = 13 a przy odbieraniu: Input Odczyt Noecho
Są dwie metody tworzenia urządzenia. Jezeli to jest tak prosty schemat jak Twój , zaprojektuj płytkę na gotowo z wszystkimi mozliwymi dodatkami a program będziesz zapisywał sukcesywnie w miarę jak będziesz ulepszał kod programu . Taki układ testowy na gotowo. Druga metoda polega na budowie urządzenia testowego na jakiejś płycie testowej na której mozesz...
Do autora - przyjrzyj się [syntax=vbnet]Config Portd.5 = Output : Dc_wlacz Alias Portd.5 Config Portd.1 = Input : S12_wolniej Alias Portd.1 Config Portd.2 = Input : S11_szybc Alias Portd.2 Config Pina.0 = Output : Kier_lewo Alias Pina.0 Config Pina.1 = Output : Kier_prawo Alias Pina.1 Config Pina.4 = Input : S10_start Alias Pina.4 Config Pina.5 = Input...
Witam. Mam problem z uruchomieniem Proszę o pomoc co mam dalej robić . Czy problem jest z programem czy z schematem? Problem jest w dalszym ciągu z programem... Widzę że naniosłeś poprawki w programie "hurtem" zamiast analizowac każdą linię konfiguracji pojedynczo(!)... Ta uwaga z poprzedniego postu dotyczyła tylko konfiguracji wejśc Wyjścia , zarówno...
[syntax=vbnet] $regfile = "m16adef.dat" 'mikrokontroler $crystal = 8000000 'częstotliwości oscylatora taktującego mikrokontroler Poziom Alias Pina.7 : Config Poziom = Input : Set Poziom 'wew podciągnięcie do VCC Obudowa Alias Pinc.5 : Config Obudowa = Input : Set Obudowa 'wew podciągnięcie do VCC Led_p Alias Portc.4 : Config Led_p = Output 'po starcie...
program zrobiłbym inaczej to moja propozycja : $crystal = 8000000 $regfile = "attiny2313.dat" Config Portd.4 = Output 'jak 0 do gory Config Portd.5 = Output 'jak 0 na dol Config Pinb.0 = Input 'czunjik gorny Config Pind.6 = Input 'czujnik dolny Config Pinb.7 = Input Portd.4 = 1 Portd.5 = 1 Declare Sub Gora Declare Sub Dol Do If Pinb.7 = 0...
... zwracam honor kolego zumek , niestety nie wiedziałem, że w bascomie set portb włącza tylko pull'upa ;) ale z drugiej strony skoro nie ma wyraźnej deklaracji w programie na początku, że port ma być wejściowy to bascom sam tak ustawia niezdefiniowane porty? Standardowo po power-up reset , bity w rejestrach portów(DDRx ,PORTx) są wyzerowane.Dla pewności...
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...
Witam A u kolegi bascom nie wywala błędów? Port składa się z 8 pinów czyli 8bitów albo bajtu.(portd- portd.0;portd.1;.....do portd.7 czyli 8pinów Więc taki zapis portd.4=255 jest błędny bo jednemu bitowi nie możemy nadać wartości 255 możemy albo 0 albo 1.(a prawidłowo portd.4=1 albo0 ) Taki zapis jest poprawny portc=255 co jest równoważne z 11111111...
Witam. Zamiast Config Portb = Input Wstaw Config Pinb.6=Input To w zasadzie jest bez znaczenia wystarczy otworzyć skompilowanego hex'a np: w AvrStudio i zobaczysz coś takiego: +00000011: E080 LDI R24,0x00 Load immediate +00000012: BB87 OUT 0x17,R24 Out to I/O location +00000013: EF8F SER R24 Set Register +00000014: BB8A OUT 0x1A,R24...
_-kod-_ w bascomie avr $sim $regfile = "ATtiny13.dat" $crystal = 4000000 Dim Licz As Iram Byte Config Portb.4 = Input Config Portb.3 = Input Config Portb.1 = Output Set Portb.4 Set Portb.3 Do If Pinb.4 = 0 Then Waitms 25 If Pinb.4 = 0 Then Incr Licz End If End If If Licz = 30 Then Do Set Portb.1 nop Waitms 20 Loop Until Pinb.3 = 0 Licz = 0...
po kolei... po pierwsze jak już ktoś też wspominał wyrzuć te rezystory 47R na liniach D0-D4 oraz RS i EN po drugie odłącz to podświetlanie od tego pinu WYS (zrób przez tranzystor - też ktoś już podpowiedział tranzystor zwykły npn) po trzecie ja na twoim miejcu tak bym konfigurował porty: Config PORTA = &B01111000 zamiast Ddra = &B01111000 albo jeszcze...
Witam. 1./ konfiguracja Timera1 musi być w jednej linii jako całość np. Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Disconnect Po za tym masz nie pozamykane prawidłowo warunki IF. Poniżej przykład całości: $regfile = "m8def.dat" $crystal = 8000000 Config Pinb.4 = Input Config Pinb.2 = Input Config Pinb.1...
Kolegom wyżej polecam RTFM! config pinc.4 = input 'wejscia config pinc.5 = input set portc.4 'pull-up set portc.5 Dim Predkosc As Byte If Pinc.4 = 0 then waitms 100 if pinc.4=0 then Predkosc = 60 end if end if If Pinc.5 = 0 then if pinc.5 =0 then Predkosc = 30 end if end if Tak czy siak lepsze rozwiązanie to debounce.
Spróbuj wgrać ten kod.[syntax=basic4gl] $prog &H00 , &H00 , &H00 , &H00 $regfile = "m32def.dat" $crystal = 8000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , E = Pinb.4 , Rs = Pinc.7 , Db7 = Pinb.3 , Db6 = Pinb.2 , Db5 = Pinb.1 , Db4 = Pinb.0 Config Pinc.2 = Input 'tego chuba nie używasz? Config Pind.1 = Input Przycisk Alias Pinb.7 'tego chuba nie używasz?...
CONFIG PIND.0 = INPUT ;ustawienie jako wyjście PORTD.0 = 1 ;podciągnięcie do plusa
Nie co Ci pomogę , poprawiłem deklaracje portów oraz cześć programu ,wystarczy napisac wlasne procedury ;) Config Portb.0 = Output 'Konfiguracja portów Config Portb.1 = Output Config Portb.2 = Output Config Pinb.3 = Input Config Pinb.4 = Input Wzmacniacz Alias Portb.0 Mixery Alias Portb.1 Swiatlo Alias Portb.2 Declare Sub Wlacz Declare Sub Wylacz Sw_on...
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...
Mniej więcej tak: $regfile "Attiny2313.dat" $crystal = 4000000 Config Pind.3 = Output Config Pind.0 = Input Config Pind.1 = Input Config Pinb.3 = Output Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Disconnect , Prescale = 8 Dim I As Byte S1 Alias Pind.0 S2 Alias Pind.1 Set Pind.1 Set Pind.0 Pwm1a = 0 Do If I...
Proszę, gotowy przyklad rozwiązania. Napisałem przy kawie i potestowałem w symulatorku czy się nie pomyliłem gdzieś ;) [syntax=basic4gl]$regfile = "m8def.dat" '$sim 'dla symulatora Config Portd.5 = Input : Set Portd.5 : Czuj_1 Alias Pind.5 Config Portd.6 = Input : Set Portd.6 : Czuj_2 Alias Pind.6 Config Portd.7 = Input : Set Portd.7 : Czuj_3 Alias...
Cóż, podpowiem jeszcze raz: 1. Sprawdź w necie jak odczytać stan przycisku ---- EDIT: w necie też piszą różnorakie bzdury o tym zatem może napiszę jak być powinno: Zwykle przyciski podłączamy tak, aby zwierały pin do masy. Aby odczytać stan danego pinu musimy: 1. skonfigurować go jako wejście instrukcją (np. - istnieje wiele odmian konfiguracji, ale...
Diodę gaś tak jak ją zapalasz. [syntax=basic4gl]$regfile = "m8def.dat" $crystal = 1000000 Config Portb.0 = Input Config Portb.1 = Input Config Portd.5 = Output Przycisk1 Alias Pinb.0 Dioda Alias Portd.5 Przycisk2 Alias Pinb.1 PORTB.0 = 1' to jest podciąganie do Vdd - działaj w tym celu na rejestrze 'PORTX lub PORTX.Y PORTB.1 = 1 Reset Dioda Do If Przycisk1...
Proponuję przy aliasach przycisków wpisać nie port a pin, bo to są wejścia. No i faktycznie aby stany na wejściach nie szalały podciągnąć wejścia do plusa. Moze być np. tak: regfile = "m8def.dat" $crystal = 1000000 Config Portd = Output Portd = &B00000000 Config Pinb.0 = Input Config Pinb.1 = Input Led1 Alias Portd.1 Led2 Alias Portd.2 S1...
Działa bez problemu : Config Porta = Input Config Portb = Output Config Lcdpin = Pin , Db4 = Portb.1 , Db5 = Portb.2 , Db6 = Portb.3 , Db7 = Portb.4 , E = Portb.5 , Rs = Portb.6 Config Lcd = 20 * 4 Deflcdchar 0 , 31 , 31 , 31 , 31 , 31 , 31 , 31 , 31 Deflcdchar 1 , 31 , 17 , 17 , 17 , 17 , 17 , 17 , 31 Do Locate 4 , 3 If Pina.0 = 0 Then Lcd Chr(0);...
No masz moją wersje rozwiązania tego problemu. W symulatorze działa. Na uP nie testowałem. [syntax=basic4gl][/syntax] $regfile = "attiny13.dat" $crystal = 1000000 Dim Fp1 As Bit Dim Fp2 As Bit Config Pinb.3 = Input Config Pinb.4 = Input Config Pinb.1 = Output Config Pinb.2 = Output Set Portb.3 'podciagniecie do +5V Set Portb.4 Do If Pinb.3 = 0 And Fp1...
Zobacz czy to Ci działa... jeśli nie to przypatrz się jak zrobiłeś hardware do tego. $regfile = "M8def.dat" $crystal = 8000000 'wstaw swoj kwarc Config Portb.1 = Input Config Portb.2 = Output Portb.1=1 Portb.2=0 Do If Pinb.1 = 0 Then Portb.2 = 1 Wait 10 Portb.2 = 0 End If Loop
napisz config pind.1 = input config pind.0 = input do debounce pind.0,0,klawisz1,sub debounce pind.1,0,klawisz2,sub loop klawisz1: jakas akcja1 /np set pin.c=1/ return klawisz2: jakas akcja2 /np set pin.c=0/ return A zasilanie i mase musisz podpiąć też do tych 2 pinów co pisałeś. Tylko podłącz tak jak jest w programia albo zmień porty Aha mogą...
Zmieniłem program na ATmega8 ( bo ATmega16 nie posiadam ) [syntax=basic4gl] '$regfile = "m16def.dat" $regfile = "m8def.DAT" $crystal = 8000000 Config Pind.7 = Input Config Pinc.0 = Output Set Portc.0 Set Portd.7 Do If Pind.7 = 0 Then Portc.0 = 0 Else Portc.0 = 1 End If Loop End [/syntax] wgrałem, program działa dobrze. Bascom DEMO 2.0.7.1
Takie "na kolanie" ale powinno działać [syntax=basic4gl]$regfile = "m8def.dat" $crystal = 8000000 Config Pinb.3 = Input : Set Portb.3 : S1 Alias Pinb.3 Config Pinb.2 = Input : Set Portb.2 : S2 Alias Pinb.2 Config Pinb.1 = Output Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 64 Dim I As Byte I =...
, 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...
Konfiguracja całego portu B jako wyjście lub wejście: Config Portb = Output ' cały port B jako wyjście Config Portb = Input ' cały port B jako wejście Lub to samo na każdym pinie osobno: Config Pinb.0 = Output ' pin PB0 portu B wyjściem Config Pinb.1 = Output Config Pinb.2 = Output Config Pinb.3 = Output a komenda: pinb.0 = 1 'wysoki stan logiczny pinu...
seja4321 Napisałem kilka linii kodu ,jest to jedno z możliwych rozwiązań twojego problemu z przyciskiem . program przetestowałem. Moja rada to testuj program na kilku kilkunastu sekundach. powodzenia. Dodano po 46 Nie rozumiem dlaczego seja4321 został skarcony przez LordBlick, przecież pisze w dziale początkujący? Co do kodu, to jest dziwny, Piszesz...
sorry nie rozumiem - o co ci chodzi Dokładnie to na każdej linii wysłania i odbioru najlepiej dać znacznik enter czyli dokładnie to ma wyglać tak print "100" CR tzn - tłumaczysz to sobie czy mi? jest to zdanie oznajmujące czy pytające? ;) może być CR ale równie dobrze może być CRLF problem w tym, że jak robisz w Bascomie polecenie PRINT - to ono zawsze...
[syntax=basic4gl]$regfile = "m8def.dat" $crystal = 8000000 Config Pinb.5 = Input Config Pinb.4 = Input Config Pinb.1 = Output Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Disconnect , Prescale = 64 Dim I As Byte Centr1 Alias Pinb.5 Centr Alias Pinb.4 Set Portb.4 Set Portb.5 Pwm1a = 0 Do If pwm1a = 0 then 'dodatkowy warunek...
$regfile = "attiny2313.dat" $crystal = 4000000 Config Portb = Input Portb.0 = 1 Config Portd = Output Portd = &B11111111 Dim Temp As Byte Temp = 1 Do Temp = Temp * 2 If Temp > 80 Then Temp = 1 Portd = Temp Toggle Portd If Pinb.0 = 0 Then Bitwait Pinb.0 , Set End If Waitms 500 Loop End Dodałem znaczniki
Ja używam takiego kodu - odbiornika. Config LCD dostosuj do swoich potrzeb. Działa na każdym pilocie RC5. Instrukcję Lowerline wyrzuć. [syntax=basic4gl] 'Atmega8 Wyświetlanie z pamięcią i napisem Odczyt RC-5 $regfile = "m8def.dat" $crystal = 8000000 Dim Adress As Byte , Command As Byte , Togglebit As Bit Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4...
To chyba powinno wyglądać tak: $regfile = "m8def.dat" Config Portb = Output Portb = &B00000000 Config Portd = Input Portd = &B11111111 Do If Pind.5 = 0 Then Portb.4 = 1 Loop End Oczywiście można i tak, ale mi działa tak jak ja napisałem. I autor tematu musi zbudowac programator STK200/300(pod LTP) lub STK500 pod USB.
Tabelki są zrobione wg schematu - przykładowo jak zwarty jest przycisk czerwony, to jak na A podasz 1-kę (na B-0), to na Y dostaniesz 1-kę (bo A-Y sa zwarte), a na X będzie 0 (bo między A-X jest przerwa) , natomiast jak na B podasz jedynkę, to X i Y będą 0 (bo czerwony nie styka B do żadnego pinu). A mi się wydaje, że będzie stan nieustalony.;) Ja...
Można trochę bajtów zaoszczędzić :) Dodaj bibliotekę obsługującą hardwarowe TWI: [syntax=basic4gl]$lib "I2C_TWI.LBX" ...... I2cinit Config Twi = 100000[/syntax] Odczyt danych z EEPROMU, zamiast: [syntax=basic4gl] Dim Mz1 As Byte Dim Gz1 As Byte Dim Mz2 As Byte Dim Gz2 As Byte Dim Mz3 As Byte Dim Gz3 As Byte Dim Mw1 As Byte Dim Gw1 As Byte Dim Mw2 As...
bascom config input oscam config config admin
ricoh reset bębna philips zielonego moment dokręcić honda
electronia 17mb82s electronia 17mb82s
Audi 80 B4 ABT 90KM – zamiana licznika z zegarem na licznik z obrotomierzem, VDO/UN4, montaż, piny Dlaczego katoda jonizuje gaz w rurze wyładowczej?