, 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...
Zajrzałem do skompilowanego pliku i widzę że kompilator w ogóle nie używa tu R2 i R3 więc mi je zostawił ;) Od pewnego czasu w Bascom do rejestrów można się odwoływać prosto z kodu. Ciekawe którą wersję Bascom masz. Pewnie znowu schody... U mnie program się kompiluje na 96% [syntax=vbnet] $regfile = "attiny13.dat" $crystal = 9600000 $hwstack = 16 $swstack...
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...
(...) osobnym PinX i oczekuj na stan niski ADCx2 aż do spełnienia tego warunku. Jeśli na ADCx2 napięcia równe 0 mrugnij diodą Led1 jeden raz przez 300ms, wyłącz Przekaźnik1 na PinX Po czym wróć do góry procedury, do oczekiwania na napięcie na ADCx1 To właściwie tyle. Dziękuję za uwagę i wszelaką pomoc. Witam serdecznie na forum! Chętnie pomogę Ci przygotować...
Potestuj bo tak na szybko przy poobiedniej kawie klapałem jedną ręką :D Może coś przeoczyłem i trzeba prześledzić. Te złożone operacje w jednej linii dla stałych Bascom robi bez problemu. Osobiście bym tego tak nie napisał. Nie wiem po co to ciągle obliczać jak można raz... [syntax=vbnet]$regfile = "m328pdef.dat" $crystal = 16000000 $hwstack = 64 $swstack...
Config Portb.0 = Output Config Portb.1 = Output Config Portb.2 = Output Config Portb.3 = Output Config Portd.7 = Output Config Portd.6 = Output Config Portd.5 = Output Config Portd.4 = Output zastąp: DDRD=255 Zastąp IFy case'ami, dodaj procedurę zerującą Portd7-4 i kod będzie zgrabniejszy. Przypisanie logiczne zastąpi 4 instrukcje sbi/cbi warte 8 taktów...
Wyłapałem że wcześniej deklarowałeś $regfile = "m16def.dat" zamiast $regfile = "m16adef.dat" (mimo że procesory różnią się jedynie poborem prądu i rezystancją podciągania pinu RESET to warto było sprawdzić ten trop), jeśli dioda LED podłączona jest poprawnie do PORTA.0 to niestety nic więcej (poza samym komputerem) nie przychodzi mi do głowy... Ostatni...
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...
Można i na pewno lepiej byłoby to zrobić Timerem zwłaszcza jeśli to cześć większego programu bo to przecież zrobiłby nawet Tiny13 :D Jeśli jednak te impulsy są jakieś "wolne" to pewnie wystarczy taki Waitms a nawet możesz użyć innych jednostek Waitus itd.. Na tym Bitwait program mógłby zawisnąć gdyby stan ustalił się na stanie wysokim. Dlatego trochę...
Z tego, co pamietam, nie w każdej wersji Basoma działała tak napisana konfiguracja. Może spróbuj zamiast tego: Dodano po 3 Pracując z płytkami Arduino (różnego wydania i versji) musisz pamiętać że zasadniczą częścią ich funkcjonalności jest wpisany tam bootloader Kolega autor już skasował bootloader. Jeśli będzie potrzeba użycia tego badziewnego bootloadera,...
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...
W Bascom to parę linijek. Proszę bardzo: [syntax=vbnet] $regfile = "m32def.dat" 'wybor typu procesora $crystal = 8000000 'ustalenie czestotliowsci taktowania Config Pina.1 = Output ' diody Config Pina.2 = Output ' diody Config Pina.3 = Output ' diody Config Pina.4 = Output ' diody Config Pina.5 = Output ' diody Dioda_1 Alias Porta.1 'Wygodne aliasy...
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
Nie odkrywajmy koła od nowa ;) Kod dla takiego wyświetlacza jak na obrazku. https://obrazki.elektroda.pl/2987586400_... Wyciąłem go z kodu który w minute można znaleźć w DuckDuckGo :P Jeśli ktoś ma inaczej podłączone segmenty to musi tylko edytować tablicę Data. [syntax=vbnet]$regfile = "m328pdef.dat" $Crystal=16000000 $hwstack=32 $swstack=8...
A coś takiego? [syntax=vbnet] $regfile = "m8def.dat" $crystal = 8000000 $baud = 9600 Config Portb.2 = Output : Portb.2 = 0 : Pk3 Alias Portb.2 Config Portb.1 = Output : Portb.1 = 0 : Pk2 Alias Portb.1 Config Portb.0 = Output : Portb.0 = 0 : Pk1 Alias Portb.0 Config Portd.2 = Output : Portd.2 = 0 : Led3 Alias Portd.2 Config Portd.1 = Output : Portd.1...
Set Portd.5 - będzie stan wysoki albo: Pind.5= 1 Toggle zmienia stan Pinu, u ciebie nie był ustawiony żaden stan.
"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"...
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
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ć.
Dzisiaj akurat potrzebowałem rejestru HC595 do rozszerzenia liczby wyjść użytecznych. Poniżej fragment kodu w bascomie. Przypisane nazwy odpowiadają katalogowym. Zmienną Portx traktujemy jak zwykły 8 bitowy port wyjściowy. Kod z pod etykiety 'obsługa rejestru' wstawiamy w pętli głównej programu, aby rejestr był na bieżąco odświeżany. [syntax=basic4gl]...
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...
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...
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...
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
...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 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...
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...
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...
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...
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
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 :...
$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
Korzystaj z symulacji krokowej. Ostatecznie nie dawaj $sim w programie natomiast waitms zmień na mniejsze (symulacja jest ok 100x wolniejsza od procka, więc zamiast waitms 200 daj 2) Sprawdzonego programu do zapalania diod na kolejnych portach nie ma. Np. możesz użyć jednej zmiennej WORD i rozbić ją potem na dwa proty. Zaletą jest to że operujesz na...
Nie mogę się doszukać w helpie jak skonfigurować i używać PWM dla Tiny2313 w Bascom AVR a wyszukiwarka na forum nie działa, ktoś może mi pomóc? Ponieważ nie za bardzo ufam Bascomowi przy konfiguracji automatycznej( Config Timerx) , to wolę poustawiać rejestry ręcznie , korzystając z dokumentacji :D $regfile = "attiny2313.dat" $crystal = 1000000...
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...
Trzeba uważać i czytać cały kod jeśli się go wpisuje, zwłaszcza do swojego mikrokontrolera :D Nie zauważyłeś, że ten Bootloader jest przykładowy i był użyty na takiej płycie testowej. W kodzie skonfigurowano dwie diody LED do mrugania :) I tak jak normalnie nigdy nie konfiguruję wejśc bo normalnym stanem pinu po resecie w mikrokontrolerze jest "wejscie"...
Tu masz troszkę prościej, z użyciem operacji przesunięcia bitowego (krótszy kod, łatwiejsza zmiana prędkości linijki led) Dim Led As Byte Dim Kier As Bit Config Portb = Output 'wszystkie porty b jako wyjścia' Portb = &B00000000 'wszystkie porty b w stanie niskim Config Portd = Output 'wszystkie porty d jako wyjscia Portd = &B0000000 'wszystkie porty...
Nie znam bascoma, ale takie coś powinno działać: $regfile = "m16def.dat" $crystal = 1000000 Config Portd = Output Portd = &B0000000 Do Waitms 200 Toggle Portd.0 Waitms 200 Toggle Portd.1 Waitms 200 Toggle Portd.2 Waitms 200 Toggle Portd.3 Waitms 200 Toggle Portd.4 Waitms 200 Toggle Portd.0 Toggle Portd.1 Toggle Portd.2 Toggle Portd.3 Waitms...
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...
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...
'///////////////////////////////////////... '// Police Alarm With ATmega8 (Use 4%) // '// Compiler: Bascom 1.11.9.0 // '// Programmer: Behnam zakizadeh // '// Web: www.avr64.com // '// Email: Behnamzaki(at)hotmail.com // '///////////////////////////////////////...
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...
zacznijmy od tego, ze kod umieszczamy w klamrach Dodano po 10 to jest kod na jedna sekunde $regfile = "m8def.dat" $crystal = 8000000 Config Pind.7 = Output Portd.7 = 0 Przekaznik Alias Portd.7 Config Timer1 = Timer , Prescale = 256 On Timer1 Sekunda Enable Interrupts Enable Timer1 Load Timer1 = 31250 Do Loop End Sekunda: Load Timer1 =...
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...
Witam ! Spróbuj ten program wgrać do Tinki13 z fusami fabrycznymi, powinno być ok. $regfile = "ATtiny13.DAT" $crystal = 1200000 '9600000 / 8 = 1200000 Config Pinb.0 = Output Portb.0 = 0 Led Alias Portb.0 Do Led = 0 Waitms 500 Led = 1 Waitms 500 Loop End Pozdrawiam. Stefan amator GG6293398 http://obrazki.elektroda.net/58_12350502...
Hej! Wpisz ten program: $sim $regfile = "m8def.dat" $crystal = 4000000 Config Portd = Output Do Portd = &B00000000 Wait 1 Portd = &B11111111 Wait 1 Loop End Jeżeli chcesz testować tak proste programy to dodawaj na początku dyrektywe $sim (przy programowaniu uP musisz ją usunąć!). Dodatkowo zamiast klikać F5 klikaj F8. W ten sposób będziesz przechodzić...
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...
Proszę, może to Cię zachęci do przeczytania reszty we własnym zakresie. Program "miga" nośną 38kHz co 1ms ;) http://obrazki.elektroda.pl/5631733100_1... [syntax=vbnet] $regfile = "m8def.dat" $crystal = 8000000 $hwstack = 64 $swstack = 32 $framesize = 32 Config Timer2 = Timer , Prescale = 1 , Compare = Toggle , Clear Timer = 1 Compare2...
$crystal = 8000000 Config Portb.0 = Output Config Portb.1 = Output Config Portb.2 = Output Config Portb.3 = Output Config Rc5 = Pind.6 Dim Address As Byte , Command As Byte Enable Interrupts Do Getrc5(address , Command) Command = Command And &B01111111 If Address = 0 And Command = 7 Then 'tu wpisac adres i komende guzika dla ktorego ma robot...
Sprawdź miernikiem napięcie podawane z LM35 na ADC. Przepisałem ten kod tak by był przejrzystszy. Przy okazji zaoszczędziłem 8% pamięci. To nieistotne. Istotne natomiast jest to, że teraz widać, że układ wyłączy się jeśli odczyt na ADC będzie w zakresie 250-300. Powyżej lub poniżej tego zakresu krążek będzie świecił. [syntax=vbnet]'Program "elektronicznej...
zbocze bascom config bascom config serialin bascom config input
unitra strojenie dyskryminatora 2sc1845 zamiennik instrukcja scenic
pobierz autocom pobierz autocom
Rollei Actioncam 372 Firmware Update Guide Nissan X-Trail T30 2.2 dCi – napięcie na przekaźniku sterowania turbo, wartości i pomiar