, 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...
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
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 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...
Zajętość flash`a z 46% na 38% :P Tak bym się nie bawił, ale w Tiny13 to ma znaczenie bo można coś jeszcze upchnąć ahahaha :D [syntax=vbnet]$regfile = "attiny13.dat" $crystal = 9600000 $hwstack=20 $swstack = 8 $framesize = 16 'Declare Sub Zmiana Config Pinb.2 = Input Set Portb.2 Config Portb. 4 = Output Config Servos = 1 , Servo1 = Portb.4 , Reload =...
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...
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...
...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...
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...
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
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...
Witam. Można tak: $regfile = "attiny13.dat" $crystal = 1200000 Config Portb.3 = Output Config Pinb.4 = Input set pinb.4 reset portb.3 do if pinb.4=0 then do Set PORTB.3 Wait 1 Reset PORTB.3 Wait 1 Loop end if Loop W pętli odczytujesz stan przycisku i jak będzie niski zacznie migać.
Proszę. Gotowe bo jak widzę kilka If`ów do tej samej zmiennej zamiast Select Case i tym podobne kwiatki... [syntax=vbnet]$regfile = "m32def.dat" $crystal = 11059200 $hwstack = 64 $swstack = 16 $framesize = 64 Const Timeout_time = 8 'x500ms Config Submode = New ' config LCD 2X16 Config Lcdpin = Pin , Rs = Porta.2 , E = Porta.3 , Db4 = Porta.4 , Db5 =...
Jak to mówią diabeł tkwi w szczegółach... $crystal = 8000000 $regfile = "m16def.dat" Config Portb = Output Config Pina.1 = Input Do If Pina.1 = 1 Then Reset Portb.6 End If If Pina.1 = 0 Then Set Portb.6 End If Loop End
zrob cos takiego: config pind.7= input config pind.6= input set portd.7 set portd.6 i napisz jaki efekt. albo po prostu zastap te twoje Set Pind.6 Set Pind.7 tym set portd.6 set portd.7 (jak teraz nie bedzie dzialac to zmien jezyk, bo bascom denerwuje :P )
Napisałem taki program i sprawdziłem go z ATTiny13 (nie mam ATTiny25): $regfile = "ATtiny13.DAT" $crystal = 1000000 Config Pinb.0 = Input Portb.0 = 1 Przycisk Alias Pinb.0 Config Pinb.1 = Output Portb.1 = 1 Led Alias Portb.1 Do If Przycisk = 0 Then Waitms 100 Bitwait Przycisk , set Gosub Praca End If Loop End Praca: Led = 0 Wait 1 Led...
... 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...
Ja uczyłem sie z pliku pomocy Bascoma, zarówno AVR jak i 51 Co do twojego roblemu to dla AVR miałeś: config P1.0 = input config P2.0 = output to zamień to na: P1.0=1 Jeśli chodzi o P2.0 to w ogóle nic nie pisz. ponadto, nawet i P1.0=1 nie musisz pisać, procesor sam usttawia porty w stan wysoki po zresetowaniu. Tak jest, gdyż porty AVR i 51 różnią sie...
Kod programu: '$tiny $regfile = "attiny13.dat" 'plik z definicjami procesora attiny13 $crystal = 1000000 'częstotliwość taktowania procka 1Mhz Config Portb.0 = Input 'Wejście REM Config Portb.4 = Output 'Przekaźnik GŁOŚNIK Config Portb.3 = Output 'Przekaźnik REM Set Portb.0 Reset Portb.3 Reset Portb.4 Dim Znacznik As Iram Byte Znacznik = 1...
Raczej: CONFIG PORTx = state CONFIG PINx.y = state gdzie state to INPUT lub OUTPUT Pa Alias Portd.2 Pb Alias Portd.3 Pc Alias Portd.4 Pd Alias Portd.5 popraw na Pa Alias Pind.2 Pb Alias Pind.3 Pc Alias Pind.4 Pd Alias Pind.5
Proszę. Nie opisywałem go i tutaj może wyglądać dziwnie, ale u mnie rysuje linie łączące bloki. Wygląda to jak na załączonym obrazku i nie mam potrzeby dla takiego kodziku tego opisywać. http://obrazki.elektroda.pl/9672124500_1... Błąd mógł się wkraść bo to tylko tak z doskoku dla relaksu napisałem w pół godzinki. Życzę owocnego testowania...
Mówisz masz na timerze. $regfile = "m16def.dat" $crystal = 1000000 $hwstack = 32 $swstack = 8 $framesize = 16 Config Timer1 = Timer , Prescale = 1024 Enable Interrupts Enable Timer1 Start Timer1 On Timer1 Odmierz_czas Const T = 6942 Config Portb.1 = Output : Portb.1 = 1 : Led Alias Portb.1 Config Portb.2 = Input : Portb.2 = 1 :...
Po co się męczyć to tylko kilka linijek w bascomie: Kod archaiczny dla słabeuszy: $regfile = "m128def.dat" $crystal = 8000000 Config Spi = Soft , Din = Pinf.2 , Dout = Portf.0 , Ss = None , Clock = Portf.6 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Porta.4 , Db5 = Porta.5 , Db6 = Porta.6 , Db7 = Porta.7 , E = Porta.3 , Rs = Porta.2 Config Pinf.6...
No coś w ten deseń :P Ten reaguje kiedy na końcu pojawi się znak 13 [syntax=vbnet]$regfile = "m644pdef.dat" $crystal = 16000000 $hwstack = 64 $swstack = 100 $framesize = 200 $baud = 38400 $baud1 = 38400 Config Submode = New Open "COM1:" For Binary As #1 Open "COM2:" For Binary As #2 Config Serialin0 = Buffered , Size = 100 , Bytematch = 13 ' from ESP8266...
$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
Witam, Jak byś zobaczył do HELPa Bascoma to byś dużo się dowiedział :) $regfile = "m128def.dat" $crystal = 16000000 $baud = 9600 'set the baud rate for the first hardware UART. $baud1 = 9600 'set the baud rate for the second hardware UART. 'when CONFIG COMx is not used, the default N,8,1 will be used Config Pinb.7 = Output Config Com1 = Dummy...
Nie,ma liczyć litry tak jak dystrybutor . Dodano po 2 Nie wiem w jaki sposób dodawac litry do zmiennej po przekroczeniu okreslonej liczby impulsów z przepływomierza to co znalazłem to liczone wszystkie w czasie a tu chyba chodzi o przepełnienie licznika Czas tu nie ma znaczenia! Użyj dowolny timer w charakterze licznika (Counter), i tak jak sugerowano...
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...
No dobra przed usunięciem widziałem założenia : Atmega8 a piny wszystko jedno gdzie. $crystal = 1000000 $regfile = "m8def.dat" config pind.1 = output ' tu pin diody config pind.0 = input ' tu pin mikroswitcha (klikacza) set portd.0 do if pind.0 = 0 then waitms 25 if pind.0 = 0 then set portd.1 wait 2 reset portd.1 powerdown end if...
W Bascomie wyglada to tak: Config PORTA = Input PORTA = 255 '(lub &hFF lub &b11111111) Spowoduje to ze port A bedzie portem wejsciowym z podciagnietymi wejsciami do + zasilania. Jezeli w drugiej linijce znajdzie sie zero to wtedy port bedzie w stanie "trzecim" czyli tzw. "plywajacym" czyli nie bedzie podciagniety do niczego. Asembler: ldi r16,0x00 out...
No tak to właśnie zrobiłem... No chyba nie bardzo :D Przetestuj ten kodzik :D [syntax=vbnet]$regfile = "m32def.dat" $crystal = 16000000 Config Submode = New Config Lcd = 20 * 4 Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Porta.0 , Db6 = Porta.1 , Db7 = Porta.2 , E = Portb.3 , Rs = Portb.4 Config Pind.2 = Input : Set Portd.2 : Ok Alias Pind.2 Config...
nie wnikam w sens... ale to by było jakoś tak : Config Pind.4 = Output reset Portd.4 Config Pind.2 = Input reset Pind.4 dim a as bit dim b as bit a=0 portd.4=a do if pind.2=1 then <-- sprawdza czy jest nacisniete waitms 100 if pind.2=1 then <-- jeszcze raz sprawdza b=not a <-- zmienia stan zmiennej przypisywanej do wyjscie przekaznikowego na...
a to program Dodano po 11 Mam problem z załącznikiem może teraz.:) Dodano po 6 plik się nie dodaje ?? wyślę tak : $regfile = "m8def.dat" $crystal = 11059200 '$baud = 9600 '$baud = 19200 $baud = 38400 Echo On '******** KONFIGURACJA WYŚWIETLACZA LCD ****************************************... Config Lcd = 20 * 4 ' Deklaracja...
Jednoczesny odczyt zawsze był możliwy, np tak: IF pind.1=1 and pinb.1=1 then reset portc.0 zajmuje 26 cykli? Dziadostwo. Gdybyś się BARDZO śpieszył to możesz zrobić tak: [syntax=asm] $asm sbis pind, 1 rjmp wyjdz sbis pinb, 1 rjmp wyjdz cbi portc, 0 wyjdz: $end asm [/syntax] Szybciej już się chyba nie da.
] Gdybym chciał jednak mierzyć załóżmy do 1kHz to wymaga aby zliczać przepełnienia? Dlatego napisałem..."Nie znaczy to jednak..." w złym obliczeniu 1 sek wartość wynosiła 61630, przy prawidłowym obliczeniu wynosi 34 286 uwzględniając czas 1sek, częstotliwość taktowania 8MHz i prescaler 256. Przecież czas (1 sec.) odmierzasz timerem0, który jest 8-bitowy...
Jeśli chcesz aby program wykonał się raz to po prostu nie umieszczaj kodu w nieskończonej pętli Do Loop. A jeśli już używasz pętli nieskończonej Do Loop to możesz bez problemu z niej wyjść funkcją Exit Do. Aby wyłączyć takie coś : "_" użyj funkcji : Cursor Off Noblink $regfile = "m8def.dat" $crystal = 8000000 Config Lcd = 16 * 2 Config Lcdpin...
Przykładowo można zrobić tak, sprawdź czy zadziała. Nie dałem powerdown ponieważ widzę że nie jest to potrzebne (bo z baterii działać nie będzie). [syntax=basic4gl] $regfile = "2313def.dat" $crystal = 8000000 Config Portd.3 = Input 'przycisk on/off Set Portd.3 Config Portd.0 = Output 'LED on/off Reset Portd.0 Config Int1 = Falling 'konfig przerwania...
serjo ? hahaha to bajer. Cos sie wymysli. Jak to sie objawia? $regfile = "m8def.dat" $crystal = 1000000 Config Portc = &B1111111 Portc = &B1111111 Config Portd = &B11111111 Portd = &B11111111 config pinb.1= input ' tego nie miales a bardzo wazne S1 Alias Pinb.1 Set Portb.1 Declare Sub Buz Declare Sub Buze Declare Sub X Dim I As Byte Call X...
W przerwaniu $regfile = "m8def.dat" $crystal = 1000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portd.6 , Db5 = Portd.5 , Db6 = Portb.7 , Db7 = Portb.6 , E = Portd.7 , Rs = Portb.0 Cursor Off Config Int0 = Low Level Config Rc5 = Pind.2 On Int0 Pobr_rc5 Dim Address As Byte Dim Address1 As Byte Dim Command As Byte Dim Command1 As Byte...
Mały przykład, ale bez wykorzystania funkcji Debounce. Przed odczytaniem stanu przycisku, zapamiętywany jest stan portu. Odpowiednie Piny są ustawione jako wejścia, następnie sprawdzane jest czy przyciski są wciśnięte. Stan przycisku jest zapamiętywany w zmiennej Tempkey, zostają przywrócone stare ustawienia portu. [syntax=basic4gl]$regfile = "m8def.dat"...
Nie chce mi się zagłębiać dalej w pisanie. Tych trybów możesz sobie dopisać ile chcesz. I jak Przewijajac menu naciśniesz Set to zmień tryb na, na przykład, "Ustawiam_temp" i w tym trybie znów przyciski Plus i Minus bedą działać dla zmiennej ustawianej. Potem naciskasz ESC i wracasz do trybu jakiego chcesz.. to proste i pewne. [syntax=basic4gl]$regfile...
Te Waity do diody Led żeby patrzeć czy program się zawiesił nie są szczęśliwym rozwiązaniem dla programowego portu :D Zobacz tak. Dioda błyśnie jak coś odbierze i oczywiście wyśle Ci to drugim portem software`owym. [syntax=vbnet]$regfile = "m328pdef.dat" $crystal = 8000000 $hwstack = 32 ' default use 32 for the hardware stack $swstack = 10 ' default...
Witaj Na razie układ działa prawidłowo i na pewno jest jakaś zwłoka, którą z czasem będę chciał zniwelować o ile będzie to konieczne, teraz chciałbym się skupić nad programem do opóźnienia z którym mam najwięcej problemów, Masz problemy bo cały program masz napisany pod priorytetem obsługi LCD a nie zamierzonego celu. LCD potrzebujesz tylko aby ustawić...
Prosze bardzo: 'Program regulujący prędkość obrotową silnika DC 12 V 'Do sterowania wykorzystano sygnał PWM 'Częstotliwość przebiegu PWM ok. 254 Hz - 8 MHz/510/64 'Przycisk S1 zwiększa prędkość obrotową silnika 'Przycisk S2 zmniejsza prędkość obrotową silnika $regfile = "m8def.dat" 'informuje kompilator o pliku 'dyrektyw mikrokontrolera $crystal...
Jeżeli przycisk miałby podciąganie to zawsze byłby w trybie gaszenia a po wciśnięciu i zwarciu do masy 0 czyli tryb rozjaśniania tu mi już coś nie pasuje! Dodano po 20 [syntax=basic4gl]$regfile = "m8def.dat" $crystal = 16000000 Config Pinb.1 = Output Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Disconnect , Prescale =...
Hej! Oto programik w Bascom-AVR. Jeżeli naciśniesz przycisk(portd.0) na mniej niż pieć sekund to zapli Ci się dioda(Portb.7), a jeżeli będziesz trzymał przycisk wciśnięty przez pięć sekund to przesunie Ci jedynkę po całym porcie b. Config Pind.0 = Input Config Portb = Output Dim I As Dim I=1 Program: Do If Pind.0 = 0 Then For I = 1 To 5 Wait 1 If Pind.0...
"MArSTER_1 napisał: Spróbuj w kodzie Slave usunąć instrukcję SPIINIT. No to już jest jakaś wiedza szamańska ;)" Nie jest to wiedza szamańska. Opierałem się na Helpie Bascoma , w którym wzraźnie napisano, że wykonanie instrukcji SPIINIT powoduje: "In hardware spi mode the SPIINIT statement will set the SPI pins to : SCK = Ouput MISO = Input MOSI = Output"...
Tu masz kod jakim testowałem płytkę. Napisane to było bardzo "na pałe", aby tylko odpalić i sprawdzić regulację na triaku. NIE MA tu procedur odczytu czasu z RTC i programowania całości. Jak napisałem projekt i płytka leży od chyba stycznia i czeka na "swój czas" - po prostu kolega który mnie prosił o wykonanie tego układu wyjechał za pracą a ja nie...
atom1477, przecież o ile jakieś przerwanie w międzyczasie nie zmienia Portd.5 to kod Nie chodzi o to żeby ustawił w końcu, tylko w momencie kiedy piszesz Pind.5 = 1: No ale Portd.5 zamiast Pind.5 byłoby przejrzyściej. W ogóle przejrzyściej było by stosować ten zapis jeszcze zamiast Set Portd.5. Tysiące razy było. Do rejestru port zapisujemy a z rejestru...
Przetestuj ten. Tak go poopisywałem, że aż mi się nie podoba :D [syntax=basic4gl]$regfile = "m8def.dat" $crystal = 8000000 $hwstack = 40 $swstack = 16 $framesize = 32 '# wyświetlacz Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5 Cls '# timer ' 8000000Hz(8MHz)/256(Prescaler)=...
config input bascom input input bascom
volvo silnika sunker antena ładowarka modelarski
Brother DCP-J1140DW – ustawienie języka polskiego w menu i EWS Zamki drzwi Iveco a Fiat Ducato - zgodność i różnice