Witam ! Masz błędy, bo te dwa warunki: If S1 = 1 Then Call Pr1 If S2 = 1 Then Call Pr2 nie są dokończone, Możesz zrobić tak: If S1 = 1 Then Call Pr1 If S2 = 1 Then Call Pr2 albo tak: If S1 = 1 Then Call Pr1 end if If S2 = 1 Then Call Pr2 end if Pozdrawiam. Stefan
powinno byc : if pinb.2 = 0 then ....
Jakoś nie widzę żebyś tu korzystał z przerwania od Timera... Bo nie musisz ;p mogłbyś pokazać jakiś przykład obsługi przycisku w przerwaniu timera ? Nawet jakiś URL do innego projektu. Więc chyba oczywistym jest że ten fragment kodu należy umieścić w przerwaniu od Timera.
Witam ! Tu jest błąd: portb = 1111111 ma być: portb = &B1111111
zacznij od usuniecia elementów R1,C1 - one są potrzebne tylko przy 89cx051, przy 2313 uniemożliwiają mu pracę.. po za tym proponuję w pętlę wpisać jakieś opóźnienie np. waitms 500 np. Do Portb.4=0 waitms 500 Portb.4=1 waitms 500 Loop End i dioda powinna migać
Bascom AVR NIE OBSŁUGUJE 89C51! Nie ten program albo nie ten procek. Zmień na bascom'a 8051 http://www.elektroda.net/download/pafile... albo procka na jakiegoś AVR'a AT90S2313, ATMega8, ATMega8535.
Proszę tak napisać program by nie było w nim ani jednej instrukcji GOTO, zwłaszcza w podprogramach oraz przytoczyć go w całości .
Dim State As Byte Dim I As Byte Do For I = 0 To 100 If Pind.4 = 0 Then State = 0 End If If Pind.5 = 0 Then State = 1 End If Waitms 10 Next I If State = 0 Then Rotate Portb , Left Else Rotate Portb , Right End If Loop
DDR to nie instrukcja tylko rejestr portów np. DDRB - rejestr określający kierunek portu PortB (wejście czy wyjście). W bascomie konfigurujesz np. Config portb.5=output lub np. config portb=input Po szczegóły odsyłam do dokumentacji procesora i języka Bascom.
Zmień może na początek swoją litanię w ten sposób... Zamiast litanii, wystarczy tylko "amen" :-P [syntax=basic4gl]Print Bin(PORTB) [/syntax]
wita. Zapomiałeś dopisać po konfiguracji portu (pinu) wejściowego podciągnięcie go do jedynki....portb.0=1 pozdrawiam.
A nie powinno być Config Portb.0 zamiast Pinb.0 ?
Co to za twór $crystal = 4.000??? Powinno chyba być $crystal = 4000000 Poza tym masz 2 razy DB6 Config Lcdpin = Pin , Db4 = Portb.2 , Db6 = Portb.3 , Db6 = Portb.4 , Db7 = Portb.5 , E = Portb.1 , Rs = Portb.0
TCCR1A=0 lub TCCR1A=TCCR1A AND &H3F i masz kontrolę nad pinem Portb.1(OC1A) Piotrek
Oto kod: If Portb.1 = 0 Then Toggle Portb.2 każdorazowe pojawienie się 0 na portb.1 spowoduje zmianę stanu portb.2 Pozdrawiam.
Zmiana i ustawienia procesora nie dało nic , dalej nie przełącza drugiego procesora , w sterowniku CDROM
... Co jest nie tak? Grzech stary jak AVR-y :D Zmień w kodzie Pinb.1 na Portb.1 i pomyśl ;) Piotrek
... 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...
Generalnie PIN to wejście, a PORT to wyjście. Chyba jednak nie :) PIN to pojedyncze wejście/wyjście, a PORT to 8 (najczęściej) pinów (np. PORTA, PORTB). Gdzie każdy pin w porcie może być programowany i obsługiwany niezależnie.
Witam. Dzięki za szybką odpowiedź ale.... moja frustracja sięga zenitu. To po prostu nie działa w real.Na domiar tego podobny kod tylko z waitms przed rotate działa poprawnie. Ps.próbowałem zaproponowany kod ale nic(nie wysterowałem portu). Głupia sprawa i banalna ale nigdy nie miałem podobnego przypadku stad moje pytanie.
(at)ElektrodaBot Jak wygląda kod w BASCOM do bariery optycznej, lub transoptora refleksyjnego z modulowaną wiązką? uC Attiny13 Portb.2 - nadajnik IR Portb.0 - LED - kontrolka Portb.3 - odbiornik IR
Proszę.Diodę podłącz między PORTB.2 a GND,powinna migać co 1s.
Witaj Robert ! Tą linię: If Pind.1 = 0 Then Portb = 1 'S2 - zgaś lampkę napisz tak: If Pind.1 = 0 Then Portb = 255
Db5 = Portb.6 Config 1wire = Portb.6 To też nieciekawie wygląda :D
Można zapisać do portu liczbę odpowiadającą poszczególnym pinom. Zyskujemy wówczas zamiast Portb.7 = 0 Portb.6 = 1 Portb.5 = 0 Portb.4 = 1 możemy zapisać np: Portb = Portb Or &B01010000
Program w tej formie jaką zamieściłeś zaraz po zainicjowaniu zmiennych i sprzętu wchodzi w warunek "If Timer1" nawet bez wywołania przerwaniem. Później zdejmie coś ze stosu, albo przeleci się po pustym flash`u i zacznie od początku. Żeby w ogóle to zaczęło coś robić to powinieneś po Start Timer dodać, jakąś pustą nawet, pętlę "Do : Loop" Wtedy w pętli...
Można. Np. tak: Zmienna = Lookup(liczba,Tabela) Portb.0 = Zmienna.0 Portb.1 = Zmienna.1 Portb.3 = Zmienna.3 Portb.5 = Zmienna.5 Portb.6 = Zmienna.6 Portb.7 = Zmienna.7 Portb.2 i Portb.4 nie będą zmieniane.
Najpewniej w tabeli masz złe wartości. Przykładowo 0 ma tu kod 3=00000011B czyli na pewno portb.0 = 1 i portb.1 = 1 jeśli portb.1 jest podpięty pod segment A to jest błędnie.
Witam. Wszystkie Pind.5, w warunkach, zmień na Portd.5. Rejestr PIN służy do odczytywania stanu danej końcówki a rejestr PORT do jej ustawiania lub zerowania. P.s. Aby ustawić pojedynczą końcówkę jako wejście lub wyjście używa się składni Config Pinx.y = tryb. Czyli zamiast Config Portb.1 = 1 powinno być Config Pinb.1 = 1 (chociaż Bascom łyka jedno...
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
Zrób mini test. Skonfiguruj PORTB.7 = Output i użyj tego OCR1C, albo podeśle Ci na PW ten poprawiony DAT ;)
wilekie dzieki kazdy otrzymuje po 15pkt
Co do kodu źródłowego (BASCOM) Portd, Portb itd. to rejestry przechowujące stan wymuszany na pinie uC. Da się do nich zapisywać, jaki stan ma być wymuszany na danych pinach - jeśli pin jest wyjściem, to ustawiany jest odpowiedni stan. Jeśli pin jest wejściem to stan 0 na bicie na tego rejestru powoduje, że wejście jest wiszące (trzeba na nim wymuszać...
Balu masz racje jeśli chodzi o ddr ale jeżeli w programie napiszemy prosty warunek tego tupu: if portb.1 = 0 then set portb.2 end if To napewno nie ruszy.
Zmień: Set Portb na PORTB=255 Bo Set może z tego co wiem ustawiać tylko bity i dziwne że Bascom ten kod kompiluje z tym Set Portb...
"Set" operuje na bicie lub pinie , a nie na całym bajcie czy porcie. Twoje "Set Portb" Bascom zinterpretował jako "Set Portb.0" , a dioda podpięta gdzie :?: Zmień na "Set/Reset Portb.2" lub "Portb=0/255" I będzie git :wink: Piotrek PS Takie "duperelki" najlepiej przetestować w sumulatorze.
Funkcja RESET lub bezpośrednie przypisanie zera. Na przykład. PORTB.0 = 0 lub RESET PORTB.0
Read Zmienna Portc.0 = Zmienna.0 Portc.1 = Zmienna.1 Portb.0 = Zmienna.2 Portb.7 = Zmienna.3 ...
Witam wszystkich Jak wielu mam problem z obsługą wyświetlacza graficznego ze sterownikiem KS108B w bascomie. Przeszukałem całe forum i nie znalazłem podobnego. Kupiłem wyświetlacz o rozmiarze 128x64 pikseli. link do noty katalogowej podaje poniżej: http://www.kamami.pl/dl/lcd_ag_12864d1.p... Wyświetlacz podłączyłem do procesora Atmega8 następująco: port...
Miałem trzy diody i tak jak przewiduje kod jeśli napiecie było poniżej 250mV to jedna z diod świeciła dużo słabiej. Powyżej 300mV słabiej świeci inna dioda. Sprawdź empirycznie ;) Co do diody RGB tam gdzie pisze Set wpisz w kodzie Reset a tam gdzie pisze Reset wpisz Set i powinno się obyć bez wymiany diody ;) Chyba coś takiego ;) [syntax=vbnet] If Reference...
Procesor nie może realizować 2 pętli jednocześnie (a szkoda;) ) dim a as bit, b as bit do waitms 20 toggle b if pind.0 = 1 then a =0 else a = 1 end if if a = 1 then portb.0=b else portb.0=0 end if loop Powinno działać ale sprawdz :)
Wiem czemu nie działa. Jeśli masz switch'e podłączone do masy i pinów procka to musisz zamiast: Stan_portu = Pinb And &B00001111 'portb jako stan dać: Stan_portu = not Pinb 'portb jako stan Stan_portu = Stan_portu and &B00001111 Mój błąd :)
Config Portb = Output?
Zastosuj podciąganie: Portb = &B11111111 A poza tym to widzę taki sam temat w koszu. Pewnie ktoś zaraportował jako obniżanie poziomu.
Niestety po stworzeniu układu na płytce stykowej dalej nie działa. Nie działa też na PORTB.
Masz błąd na schemacie. AVR nie mają pull-down, więc przycisk powinien zwierać z masą (minusem baterii). Program też nie wydaje się dobry, choć nie znam Bascom. Na moje oko trzeba tak: $regfile = "m8def.dat" $crystal = 8000000 Config Portb = Output Config Portd = Output Config Portd.4 = Input P Alias Pind.4 D Alias Portb.6 Set Portd.4 Do If...
Zły rejestr sprawdzasz, zamiast If Portb.5 = 0 Then powinno być If Pinb.5 = 0 Then
Piszesz: 'instrukcja SPIINIT dla układu SLAVE nie konfiguruje jej wcale, tylko pozostawione jest to użytkownikowi." Przyznam, że jest to stwierdzenie niezrozumiałe. Myślę, że nie powinieneś już ciagnąć tematu, bo brniesz coraz głębiej-niepotrzebnie. Ponawiam prosbę do splawik00. Czy przeniesienie instrukcji konfigurującej MISO jako wyjście dla Slave...
[syntax=bascom] Waitms 500 Portb = &B00010010 Portc = &B00001000 Portd = &B00001000 Waitms 150 Portb = &B00000100 Portc = &B00000001 Portd = &B00010001 Waitms 150 Portb = &B00001000 Portc = &B00000100 Portd = &B00100010 Waitms 150 Portb = &B00010010 Portc = &B00001000 Portd = &B00001000[/syntax] Zmienione, nadal to samo.
Problemy: 1)Nie wiem czy tak ma być, ale nie ustawiłeś na PortB.1 stanu wysokiego, aby podciągnąć złącze. 2)Źle zagnieżdżone IFy. Powinno być: [syntax=basic4gl]Do If Pinb.1 = 0 Then Waitms 20 L = L + 1 If L = 3 Then Set Portb.2 End If If L = 6 Then Reset Portb.2 L = 0 End If End If Loop [/syntax]
Wstaw rezystor 10k od pinu do masy. I usuń tą linijkę: Portb = &B11111111
Po pierwsze powinieneś działać w zakresie 0-7. Po drugie Rnd losuje liczby według algorytmu pseudolosowego - warto na starcie załadować generator jakimś seedem. Po trzecie nie lepiej: PORTD = Rnd(255) PORTB = Rnd(255)
witam. ad 1: domyślne ustawienie lcd w bascomie: options>compiler>lcd orginalnie w programie i zgodnie z płytką AVT3500 jest: lcd type- 2*16 bus mode- 4bit data mode- pin lcd address- C0000 RS address- 8000 enable- portb.3 rs- portb.2 db7- portb.7 db6- portb.6 db5- portb.5 db4- portb.4 ad 2: mam cały kurs programowania avr-ów w bascomie ale tylko w...
Zamień miejscami Loop i End If. Zmień Toggle Pinb.2 na Toggle Portb.2.
witam jest zrodełko w bascom z obsługą Timer1 ale niepotrzebuję aby timer1 obsługiwał mi port zewnetrzny T1 (portb.1) w atmega16 ,jak mozna wyłaczyć go z obsługi przez timer1 w Bascom ? poniewarz potrzebuję go do sterowania lcd i chce go z tego powodu wykluczyć :(
Po portb.1 = 1 daj portb.2 = 0 , a po portb.2 = 1 daj portb.1 =0 , bo chcesz gasić tą drugą diodę.
Nota katalogowa przeczytana ? Które wyprowadzenie to PORTD.7 ? ;) Config Sda = Portd.7 Może powinno tam być PORTB.7 dla SDA i PORTB.5 dla SCL ? No i oczywiście programator ISP odłączony... Bez podania schematu dalej nie rozmawiam... ;)
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ć.
to nie jest kwestia sprzętowa (tak mniemam) ponieważ po zmianie Portb.1 na inny problem jest ten sam
A może pomoże dopisać jedną linijkę do kodu "odbiornika" ? Proponuję dopisać w tą część kodu opóźnienie: If I = "a" Then Toggle Portb.0 Waitms 500 ' <<<<<<< End If Pozdrawiam. Stefan
Mam jeszcze jedno pytanie - czy przed przełączeniem PINB.1 z rejestru PORTB.1 na OC1A istotna jest wartość w rejestrze PORTB.1?
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
A spróbuj kolego set portb.1, reset portb.1?
Radziłbym Ci zobic tak: Cały PWM zrób na przerwaniu od jakiegoś Timera; nie uzywaj zmiennych typu single, jeżeli częstotliwośc przerwań bedzie odpowiednio szybka wystarczy zmienna typu byte lub word. Obsługe LCD czy przycisków i innych obliczeń zostaw w pętli główne Przykładowy PWM dla portb.3: Gdzie a to jakas amienna a do b podajesz wartosc PWM (0-255)......
może spróbuj inną metodą, może coś z tego rozbudujesz: Dim Mem_wiert As Byte Dim Powtorzenie As Integer Declare Sub Obrot1 Declare Sub Obrot2 Mem_wiert = 1 'wstepna wartosc numeru cewki '---------------------------------------... Do Debounce Pind.0 , 0 , Obrot1 , Sub Debounce Pind.1 , 0 , Obrot2 , Sub Loop End '---------------------------------------...
Witam ! Daj podciąganie programowe, Jeśli to bascom to: np. Portb.0 = 1 Brak rezystora 4,7k, pomiędzy pinami 1 i 20 może być przyczyną Twoich problemów. Pozdrawiam. Stefan
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...
Chce zapalic segmenty wyswietlacza na plytce. Nie wazne w jaki sposob chce sie upewnic, ze dziala po zaprogramowaniu w c. W bascomie portB odpowiadal za segmenty wyswietlacza, wiec chyba w c tez. Jezeli macie jakikolwiek program, ktory uruchomilby segmenty wyswietlacza, to bardzo ptosilbym o podeslanie.
Witam, Czy może mi ktoś pokazać kod w bascomie, który uruchomi PWM na pinach PortD.7 i PortB.3 Bo nie mogę sobie z tym poradzić? Dokładniej chodzi o sterowanie silników przez L293d Porta.0 'Linie sterujace silnikiem A Porta.1 Porta.2 'Linie sterujace silnikiem B Porta.3 Portd.7 'Linie PWM Portb.3 Pozdrawiam
To może inaczej, czy podłączysz łaskawie tego switcha między masę a portb.1 ?
Zmień: Set Pinb.1 Set Pinb.2 na: Set Portb.1 Set Portb.2
W takich sytuacjach najlepiej zmniejszyć częstotliwość multipleksacji abyś mógł zaobserwować przełączanie wyświetlaczy i sprawdzić poprawność wyświetlania. Dim Display_buffer(4) As Byte [...] Display_buffer(1) = 2 Display_buffer(2) = 4 Display_buffer(3) = 6 Display_buffer(4) = 8 Do [...] Loop End...
W Bascom nie programuję, ale na moje oko jeśli chcesz nadać wartość wyjściu to powinieneś pisać do PORTB, a nie do PINB.
sprawdz ten wsad podłączone pod sprzętowe SPI, a reszta tak: Rs Alias Portb.4 Res Alias Portb.5 Cs Alias Portb.6 Led Alias Portb.7
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...
Zmiana stanów led po przytrzymaniu przycisku ma jedną zaletę, otóż jeśli chcę szybko przejść do stanu gdzie świecą się oba ledy. W niczym mi to nie przeszkadza. Jeśli tak, to nie ma problemu. Możesz jeszcze zebrać opóźnienia w jednym miejscu: [syntax=basic4gl] $regfile = "attiny13.dat" $crystal = 1000000 Config Portb = &B111100 Portb = &B000010 Dim...
Można też tak :) [syntax=vbnet] CLK_STROBE Alias Portb.0 = 1: Portb.0 = 0 [/syntax] Albo: [syntax=vbnet]CLK_STROBE Alias toggle Portb.0 : toggle Portb.0 [/syntax]
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
Ja piszę w C robi sie to prosto np a=PINC.1; PORTB.3=1;
podciagniecia czyli ustaw stan wysoki na wejściach np. PORTB.2 = 1
Niestety te rezystory mają dużą wartość więc w środowisku o dużych zakłóceniach warto dodać rezystory zewnętrzne. W tym przypadku wystarczy włączyć wewnętrzne, ponieważ projekt autora nie zwiera źródeł dużych zakłóceń. Poszukaj jak włączyć rezystory pull up za pomocą BASCOM Może tak: [syntax=basic4gl]Portb.0=1[/syntax] lub tak [syntax=basic4gl]Portb=&B00000001[/synta...
A w takim razie, (używając polecenia LPRINT) skąd mam wiedzieć jak połączyć piny do LPT?? musisz pokombinowac i poszukac na googlach. np. $regfile = "m32def.dat" $crystal = 4000000 _lpt_data Alias Portc ' data port connected to d0-d7 of LPT _lpt_control Alias Portb ' portb used for the control pins _lpt_status Alias Pinb _lpt_busy Alias 1...
A co tam chcesz ustawić w tym timerze? Coś dostrzegłem. Co nto ma być Config portb.1=1? Czytelniej chyba = input lub output. Dodano po 16 A masz helpa do bascoma po polsku?
Kliknięcie switcha podłączonego do masy;) podpiętego do portu portb.3. Pozdrawiam.
Rozumiem, o co ci chodzi, ale nie ma w Bascomie instrukcji z taką składnią jak napisałeś...SET PORTB.7=ADC. Po odebraniu komendy, czy ramki, czy jak tam wolisz sterować procesorem przez RS232, musisz zmienić stan i kierunek portów za pomocą wspomnianych rejestrów. Np: If key="A" then DDRC=&b01010101 PORTC=&b10101010 end if "KEY" Pobierasz...
W Twoim wypadku jest to portb. A w moim portb jest zajęty to sprawdziłem na portd. Deklaracja $crystal jest do niczego nie potrzebna dopóki nie korzystasz z bibliotek czy podprogramów wykorzystujących zależności czasowe. A tych w Bascomie jest mnóstwo. UART, LCD, SPI itd. Tak że lepiej jest ustawiać $crystal taki jaki jest naprawdę.
Ustaw to: $crystal = 400000 tak: $crystal = 8000000 I fuse do tego. Poza tym podałem ci program który podaje PWM na 2 porty, nie musisz stosować 2 tranzystorów, wybierz 1 port na którym będzie ci to działać. Kolejna sprawa, to wielkość WAITMS musisz dobrać eksperymentalnie, ponieważ zależy od tego prędkość rozjaśniania i gaszenia lampki. Jeśli chcesz...
A dałeś PORTB na włączone rezystory podciągające?
W Przerywanie: można wstawić (Chyba) config Int1= falling. A potem zmieniać na Rising. Ale w głównej pętli stan portb będzie stale kasowany do 0. Tak że trzeba by chyba zrobić zmienne temp_0 i temp_1 i podstawiać do Portb.
nie nic tam nie jest podłacozne jedynie mam w programie(w mikrokontrolerze) ustawione portb =&B00000000
Jeżeli przyciski masz do VCC, to todaj rezystory od pinów do masy (10...100k). Dodano po 7 W pierwszym programie pomyliłeś porty. Portb ustawiłeś jako wejście a tam podłączyłeś diodę. Portd ustawiłeś jako wyjście i tak podłączyłeś przycisk.
Brak kropki w deklaracji pinów wyświetlacza ma byc: DB6 = portb.1 Następnym razem sprawdz dokładnie tego typu błedy i nie dodawaj tematu z tak błahego powodu
O eliminacji drgań pamiętam - na razie jest poprzez kondensator i opornik, lecz jak będę kończył program, to to dopiszę. Możesz mi wyjasnić dlaczego jest źle?: Sprawdzam sobie stan samego timera z częstotliwością 10hz w tym wypadku, a stanu przycisku nie sprawdzam, ponieważ jest wywoływany przerwaniem INT0 Edit: Już sobie poradziłem - pomyliłem PINB...
Witam ! Zacznij od tego: $crystal = 800000 --- jedno zero za mało. następna poprawka: Config Portb = &B00101000 0 jako wejście 1 jako wyjście porty B0. B1, B2 masz 0 a powinny być 1 Brak konfiguracji Portu D Pozdrawiam. Stefan
Niestety, chciałbym aby w tym tkwił problem...lecz wydaje mi się, że obie komendy są poprawne przykładowo Reset Pinb.1 działa tak samo jak Reset Portb.1
Witam mam problem z komendą waitms w bascomie to nie z instrukcja masz problem tylko z programem. Instrukcji waitms używa tysiące ludzi i im działa. No problem ciekawy. Zacząłbym od obserwacji przy jakim tym czasie zaczynają sie problemy bo tgo nie napisałeś. Czy jeżeli zmienisz wait 1 na waitms 999to już jest problem?? Wywal ten podprogram Pobr_znaku....
Otwarte Alias Portb.0 to w przypadku gdy będę chciał sprawdzić jej stan, to moge użyć aliasa, If Otwarte = 1 Then .... czy muszę sprawdzić warunek w ten sposob: If Pinb.0 = 1 Then .... Poprzez If Otwarte = 1 Then nie sprawdzisz stanu wejścia Pinb.0. Zrobisz to drugim sposobem albo modyfikując alias w ten sposób: Otwarte Alias Pinb.0
Instrukcję warunkową popraw jeszcze, bo zabrakło ci jednego end if'a. Czyli powinno być: if Pinb.0 = 0 Then Portb.2 = 0 End If Tu akurat nie musi nic dodawać bo BASCOM dopuszcza składnię jednowierszową w stylu: If Warunek Then [...] Else [...] Jak napisał landy13, w "kodzie" :) autora zbędny jest End If.
ok, tylko najpierw uporam się z przyciskami i nastawami :P Dodano po 28 $regfile = "m8def.dat" $crystal = 8000000 Config Portd = Output 'podłaczony wyświetlacz 'Config Pinb.0 = Output ' anoda 1 źle! nazwa pin służy do odczytu wartości 'Config Pinb.1 = Output 'anoda 2 źle! aby ustawić należy się posłużyć nazwą Portb.x 'Config Pinb.2 = Input...
Przywrócenie fusebit'ów do stanu fabrycznego (1 MHz) też nie pomaga ? Zmień pin na inny lub ustaw cały PORTB jako Output i zamiast 1 bitu migaj wszystkimi: PORTB = 0, PORTB = 255.
bascom config portb b11110000 atmega162 portb attiny26 portb
sprężarka danfoss schemat zasilacz antenowy silnik zamiast przyspieszać zwalnia
ładowarka einhell ładowarka einhell
Lokalizacja hebla w Renault Trucks 2022 Schemat transformatora migomatu Einhell 145 Turbo