To proste, wykorzystaj warunek. IF wyrażenie then instrukcja else instrukcja end if
Jak najbardziej w arduino można operować bezpośrednio na rejestrach tylko trzeba brać pod uwagę skutki tego rozwiązania... Jak ktoś zada sobie trud podejrzeć co kryje się za digitalWrite() to będzie wiedzieć o co chodzi. Niemniej PORTD/PIND/DDRD są jak najbardziej dostępne w Arduino co w niektórych przypadkach może być wygodniejsze przy przesiadce z...
Zamiast "Toggle Pind.7 " ma być: "Toggle Portd.7 ".
Nie avrstudio5! To jest beta- w dodatku schrzaniona. Ściągnij normalne 4.18.
Dokładnie Twój problem wynika z braku maskowania bitu toggle. Jak pisał Mirek podejrzyj helpa BASCOM'a i tam masz pokazane jak maskować ten bit.
A nie lepiej byłoby wykorzystać PWM? Wtedy można dosyć precyzyjnie ustalać częstotliwość na wyjściu, oczywiście ustawionym w tryb Toggle... Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Toggle , Prescale = 8
A w helpie tego nie ma?
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...
Oto kod: If Portb.1 = 0 Then Toggle Portb.2 każdorazowe pojawienie się 0 na portb.1 spowoduje zmianę stanu portb.2 Pozdrawiam.
A komendy toggle będą działały tak szybko, że zmiany będziesz wstanie zaobserwować jedynie oscyloskopem/analizatorem stanów logicznych/multimetrem z funkcją pomiaru częstotliwości.
Witam... Ja bym nie bawil sie w komparator i ... tylko wzioł cfrowy termometr 1-wire np DS1822, DS1821(swoją drogą da sie go zaprogramować jako termostat) no ale można zrobić to w rózny sposób, wracam do tematu postu... Przerwanie od komparatora w BASCOM Config Aci = On , Compare = Off , Trigger = Toggle On Aci Przerw Enable Interrupts Enable Aci coś...
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
Zamień miejscami Loop i End If. Zmień Toggle Pinb.2 na Toggle Portb.2.
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...
I popraw program : [syntax=basic4gl] $regfile = "m32def.dat" $crystal = 8000000 Config Portd.3 = Output 'buzzer Portd.3 = 0 Do Wait 1 Portd.3 = 1 Wait 1 Portd.3 = 0 Wait1 Portd.3 = 1 Wait 1 Portd.3 = 0 Loop End [/syntax] albo lepiej tak: [syntax=basic4gl]$regfile = "m32def.dat" $crystal = 8000000 Config Portd.3 = Output 'buzzer Do Wait 1 Toggle Portd.3...
toggle b - zmienia stan zmiennej bitowej na przeciwny (z 0 na 1 i odwrotnie) Else - poczytaj o skladni if..then: if ... then -jezeli warunek spelniony to ... else -w przeciwnym wypadku to .... end if
Wszstko dlatego, iż zmienne typu Single są nieco odmiennie zapamiętywane w pamięci i mają wyjątki (np. NaN, QNaN, SNaN) które nie są liczbami, i każda operacja arytmetyczna z nimi powinna wywołać błąd operacji i jego zgłoszenie - a tego Bascom niestety nie obsługuje (jak i spora ilość innych kompilatorów). Operacja z jawną zamianą znaku jest bezpieczniejsza...
Spróbuj tak: do Debounce Pind.0 , 0 , algorytmy ' Twój s1=pind.0 loop algorytmy: toggle A ' zmienna A jako bit If A=0 then Algorytm 1 sterowania wyników na LCD else Algorytm 2 sterowania wyników na LCD end if return Użycie debounce eliminuje drgania styków. Pozdrawiam.
Gdy już usuniesz wewnętrzną pętlę do..loop to zwróć uwagę, że stan przycisku będzie sprawdzany raz na 60s. Możesz zrobić sprawdzanie np. tak (co 1 sek.): dim x as byte ... do 'sprawdź przyciski if x=60 then x=0 toggle ... end if wait1 incr x loop end Albo wykorzystać timer lub przerwanie.
Własnie w tym problem, że to program pod AVR, który próbowałem przerobić, ale i tak nie da się go skompilowac, bo niektóre komendy są nie przyjmowane przez Bascom 8051, jak np. Toggle. Proszę poprawić pisownię w postach i prawidłowo zastosować znaczniki code! Robak
Sprawdziłem ten kod przed chwilą i jeśli na PD6 jest przycisk.. to jego kolejne naciskanie włącza lub wyłacza naprzemiennie diode LED na pinie PORTD.7 100% tested [syntax=vbnet]$regfile = "m644pdef.dat" $crystal = 8000000 $hwstack = 40 $swstack = 16 $framesize = 32 Pcmsk3 = &B01000000 Enable Pcint3 : On Pcint3 Pcint3_isr Config Portd.6 = Input : Set...
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]
Po co ustawiasz portd.4 na wejscie Hi-Z? Ustaw tak: PORTD = PORTD or &h10 Wtedy podsiągasz ten pin do plusa i nie musisz ustawiać tam jedynki w podprogramach. Przerób A na BIT, po czym Program: Portc.4 = 0 'jedna dioda zapalona Portc.5 = 1 'druga dioda zgaszona toggle a Return Program2: Portc.4 = 1 ' dioda zgaszona Portc.5 = 0 ' dioda zapalona...
If Flaga = 1 Then Toggle Portb.2 Else Ten zapis generuje Ci ciąg impulsów na wyjściu, zamiast "toggle" wystarczy "set".
"i symulator teoretycznie powinien go uruchomić" Symulator BASCOMA tego nie uruchomi. Jeśli chcesz zobaczyć w symulatorze zmianę pinów to musisz przerzucać program ręcznie przyciskiem "Step Into code F8" i wpisać $SIM na początku programu ,bo WAIT będzie zajmował mu wieki. Dodano po 6 Poza tym jak tak będziesz pisał takie proste programy ,to może ci...
Dlaczego kolega nie korzysta z trybu CTC z opcją Toggle Pin? Nośną można przecież generować sprzętowo.
Możesz mi powiedziec jakim poleceniem wyłaczyc sterowanie diodą tak by nie wyłaczyć PWM? Bo nie mogę tego dojść. Najlepiej poleceniem toggle jak sie da
Jak to nic nie podłączone ? A jak ma uc odbierać kody z pilota jeśli nie na ICP ? This program works by connecting the Data output from the IS1U621 to the ICP ' Pin of the AVR and then uses the Capture1 interrupt to measure the time ' between each bit to know if it is a 1 or a 0 and then uses Compare1a interrupt ' to detect that there has not been a...
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...
portd.4 =0 if portd.2 = 0 toggle portd.4 powinno dzialac
Debounce eliminuje drganie styków, a jak mam zmienić stan pinu pod który dam przekaźnik? Toggle w 8051 nie jest dostępne.
No jednak nie do końca dostrzegłeś swój błąd, owszem Set Portb.6 jest zbędne w podprogramie Pr_1: i dlatego je usunąłem, ale to nie to powodowało nieprawidłowe działanie tego programiku. Błąd miałeś w linii z Debounce porównaj jak ona wygląda w twoim pierwszym poście a jak w moim. Poczytaj o rejestrach określających kierunki portów, rejestrach wejściowych...
1) Brak deklaracji CONFIG COM w obu programach 2) W odbiorniku wyrzuć TOGGLE i wstaw RESET bo za chwilę napiszesz czemu led się ciągle świeci ale przyciemniony 3) W odbiorniku wykorzystaj ISCHARWAITING i INKEY. Odbierasz tylko A i na podstawie czy jest =10 czy =15 wykonujesz ifa do świecenia ledem
$regfile = "m8def.dat" $crystal = 8000000 Config Pind.0 = Output Portd.0 = 0 Config Pind.3 = Input Set Portd.3 Config Int1 = Low Level On Int1 Ir Enable Interrupts Enable Int1 Do Loop End Ir: Disable Int1 Toggle Portd.0 Enable Int1 Return Jeszcze najlepiej jakies opoznienie dodac. Zapraszam do czytania podstaw o odbiornikach i nadajnikach...
Można i bez timera, ale to będą krótkie impulsy :-) toggle porta.0 toggle porta.0 toggle porta.0 toggle porta.0 toggle porta.0 toggle porta.0 :-)
marcinek.p - to gotowiec dla ciebie, nie mam jak go przetestować ale jestem pewien że zadziała jak trzeba. Masz tu przerwanie, miganie led i zliczanie migniec z incr Mozna to wszystko wkleic do przerwania ale dobra zasada nakazuje w przerwaniach umieszczać jak najmniej kodu. [syntax=basic4gl] $regfile = "m8def.dat" $crystal = 1000000 $hwstack = 32 $swstack...
A nie lepiej tak ? Przykładowa konfiguracja timera1 w trybie CTC i przebiegiem na OC1a [syntax=basic4gl]Config Timer1 = timer, Prescale = 256, CLEAR TIMER = 1, Compare A = toggle, Compare B = disconnect [/syntax] Potem tylko zmieniać wartość rejestru Compare1a jakimiś przyciskami, pilotem, enkoderem etc. ps. Jak nie zadziała to poustawiać bity w rejestrach...
Tak, zmieniłem na toggle bo tamto co napisałem wcześniej było całkowicie błędne. A ty to wykorzystałeś :) Zamiast Portb.1 = Sw daj If Sw = 0 then toggle portb.1 Dodano po 58 Pomyśl logicznie, za 100ms program odczyta stan pinu, i jeśli będzie wynosił 1 to i taki stan dostanie dioda - zgaśnie po 100ms.
Masz tu prosty, sprawdzony, działający program do sterowania portami. $regfile = "m16def.dat" $crystal = 1000000 ' przelicz u siebie te zera :) Dim B As Byte Config Portb = Output Portb = &HFF Waitms 100 Open "comd.1:9600,8,n,1" For Output As #1 Open "comd.0:9600,8,n,1" For Input As #2 Do B = Inkey(#2)...
Jeśli chcesz aby np. dwie diody mrugały z różną częstotliwością to w najprostszy sposób możesz to zrobić tak: na początku pętli głównej dajesz małe opóźnienie powiedzmy 5ms. Potem w każdym obiegu pętli (co 5ms) zwiększasz wartość dwóch zmiennych np. Licz1 i Licz2. Kiedy Licz1 osiągnie wartość 50 wtedy zerujesz ją i zmieniasz stan pinu do którego dołączona...
No i problem wygląda na rozwiazany, to co powodowało niedziałanie ww układu to fakt, ze w przerwaniu od UART nie pobierałem znaku z buforu, przez co flaga nie zostawała wyzerowana i kolejne znaki nie były odbierane... Innymi słowy powinno być tak: Port: A=InKey() Toggle portd.6 Return
Zrób inaczej: Declare Sub Miganie - deklaracja procedurki ...program (tu się coś dzieje) call Miganie - jeśli ma zamigać, to skocz do procedury Miganie 'procedura : Sub Miganie toggle led toggle led ... costam cośtam end sub
Zobacz to: $regfile = "attiny2313.dat" 'najpierw określamy typ proca $crystal = 1000000 'definiujemy z jakim taktowaniem będzie pracował config portb=input 'port b jako wejścia portb=&B11111111 'wszędzie stan spoczynkowy-1 config portd=output 'pprt d jako wyjścia portd=&B0000000 'wszędzie stan spoczynkowy-0 Do 'pętla nieskończona Debounce...
Dla pełności tematu. Jak skorzystać z PCINT? Szukałem w manualu i jakieś przykłady w sieci ale nie znalazłem nic czytelnego. Oto przykład dla Attiny13 (jest on w manualu): [code][syntax=basic4gl] $regfile = "attiny13.dat" $crystal = 9600000 $hwstack = 32 $swstack = 24 $framesize = 8 'config pinb.0 = input Config Portb.2 = Output Pcmsk = &B00000001...
Sprawdź jaki procesor masz ustawiony w opcjach bascoma... pewnie jakiś attiny2313 i bascom kompiluje program pod ten właśnie procesor. I spróbuj zaprogramować tym: $regfile = "m8def.dat" Config Portd = Output Config Portb = Output Do Toggle Portb Toggle Portd Waitms 200 Loop : End
A czy przypadkiem nie powinno być Load Timer0, 111 Oraz Toggle PORTB.1
Wykorzystaj funkcję Toggle. Jeśli zmienna nazywa się np. A to zapis Toggle A.3 zmieni na wartość przeciwną tylko bit 4 tej zmiennej
Nie wgłębiałem się , ale tak na szybko spróbuj zmienić w procedurze Odior_pilota: po Toggle Portc.0 waitms 5 na np. waitms 100
Ale żeby zrobić to z flagą, to muszę też zrobić podprogram w którym będzie komenda to zmiany stanu flagi, np.: On Timer0 Przerwanie ... przerwanie: toggle flaga return
Diody migają po dwa razy, kolejne dwa razy zawsze po naciśnięciu przycisku, tak w kółko. Jak nie naciskam to nic się nie dzieje. Zdaje się że taki zamiar był tego programu... Niemniej jednak spróbuj ten code: [syntax=basic4gl][/syntax ... $regfile = "attiny13.dat" $crystal = 9600000 Config Portb = &B011000 Portb = &B000010 $hwstack...
np tak : Config Timer1 = Timer , Prescale = 1024 Timer1 = 0 Start Timer1 Enable Interrupts On Timer1 sterowanie_led do ..... loop sterowanie_led : Toggle Led1 return
No tak :) Co nagle to po diable ! Skopiowałem bez zastanowienia. Biorę się za zmiany. A ten fragment: [syntax=vbnet] 'Do 'Toggle Led 'Wait 1 'Loop 'End [/syntax] Chyba trzeba odremować ?
No niech bedzie(tamte też mają koło 1cm,nie pamiętam jak z power-down).W Bascomie tylko debounce a toggle zmieni stan bitu. A już znalazłem to powerdown masz 10 razy mniej niż 2343. Poprawie:obsługa przerwania i potem toggle oczywiście.
A może bardziej sensowne byłoby: [syntax=basic4gl] If S = 0 And PIND.7 = 0 Then port = portc End If [/syntax] e marcus
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...
Nie przesadzaj ;) Jestem programista ale akurat bascom mi nie podchodzi. Do tego slyszalem ze odmierzyc tam cos precyzyjnie nie idzie - stad opinia. Co do kodu to co tu pokazywac? toggle portd.0 .... waitus ... toggle itd? Tak czy siak twoj kod nie dziala odnośnie gotowca od kolegi pixel.... więc jaki to jest twój ulubiony język skoro nie Bascom? ;)...
$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
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 :...
Może ten zapis Compare A = toggle wstaw w innym miejscu np w pętli głównej i sprawdź (tylko czy bascom łyknie coś takiego).
Bez specjalnego ingerowania w program uruchom sobie Timer1 (w końcu zapłaciłeś za niego :D ) i zmuś go do przerwania co określony czas. Dioda będzie sobie migać równiutko, a jak napiszesz krótką obsługę przerwania to multipleksowane wyświetlacze się nawet nie zająkną. Polecam instrukcje: Config Timer1... Start ... Load... On... Enable... a później Toggle...
A myślisz, że ruszasz nią z częstotliwością zbliżoną do 36 kHz? Bo mnie się wydaje, że nie. Swoją drogą, moim zdaniem powinieneś załadować do timera wartość 111, wtedy na wyjściu osiągniesz 8000kHz/111=~72 kHz, i jak będziesz stosował Toggle to na wyjściu osiągniesz f=~36kHz
Uzywam pełnej wersji- normalnie się kompiluje. Wyjście po I2Cinit do gosub Blad- gdzie masz dwukrotne ustawianie LCD-dużo czasu to pochłania- to nie jest pomysł na debugowanie. Spróbuj zrobić to na jakiejś diodzie z toggle albo coś równie szybkiego.
Witam, Polecenie SOUND port , il_impulsów , czas_impulsu To mi nie pomoże. Jako argument chcę podać potrzebną częstotliwość (liczba), a nie ilość impulsów i czas impulsu... Jeżeli znasz częstotliwość to nie problem określić ilość impulsów i czas trwania, ale ta funkcja jest mało precyzyjna. Lepiej wykożystać do tego Timera: $crystal = 4000000 Pwm1a...
Pind.0 = Output - ma być config PORT. Pk Alias Pinb.2 ma być PORTB.2 --> PDF --> to oznacza toggle bit. Pozdrawiam
Po małych zmianach działam na czymś takim. Pomimo taktowania z wewnętrznego kwarcu nie widać efektu. Jakiegokolwiek. [syntax=c]/* * RealTimeClock.c * * Created: 2013-11-17 01:46:48 * Author: Piotr Pabian */ #include <avr/io.h> #include <avr/interrupt.h> void init_RTC(void) { //ASSR = 1<<AS2; //Enable asynchronous mode TCCR2 = (1<<CS22)|(1<<CS21)|(1<&l...
... Później wykorzystałem wyjście CompareA , skonfigurowałem charakter na toggle i pięknie sygnał generuje, nic nie przeszkadza sygnał jest ciągły, ale za jasną ch... nie mogę wpisać początkowej wartości i regulować częstotliwość... Świetny pomysł, tylko gorzej z wykonaniem :D Użyj jednego z dwóch trybów CTC timer1 i zmieniaj wartość końcową , czyli...
Można tak :) [syntax=basic4gl]Dim I As Byte , A(4) As Byte , Nr_bitu As Byte A(1) = 6 : A(2) = 4 : A(3) = 5 : A(4) = 7 For I = 1 To 4 Nr_bitu = A(i) Toggle Portd.nr_bitu wait 1 Next[/syntax]
Co prawda uczę się ale dlaczego taki program nie działa poprawnie, co robię źle? [syntax=basic4gl]$regfile = "m32def.dat" $crystal = 16000000 Config Portd.0 = Output Config Timer0 = Timer , Prescale = 8 On Timer0 Przerwanie Load Timer0 , 200 Enable Timer0 Enable Interrupts Do Loop Przerwanie: Toggle Portd.0 Return End[/syntax]
po $crystal podawana jest częstotliwość w Hz, więc 1000000 jest ok dla domyślnie skonfigurowanej atmegi8. Z resztą to lepiej ustawiać w opcjach kompilatora. Aha i zamiast pisać: Do Waitms 250 Portb.0 = 0 Waitms 250 Portb.0 = 1 Loop wystarczy Do Waitms 250 Toggle Portb.0 Loop a to, że pierwszy listing działał wynika chyba z tego, że za każdym razem sprawdzane...
Bez generatora nie zaprogramujesz. Tiny najprawdopodobniej chodzi na generatorze wewnętrznym 8MHz z preskalerem /8 jeśli nic w fusach nie grzebałeś. Spróbuj jeszcze odczytać program z uC by sprawdzić czy jest w pamięci - na forum opisywano już cuda ze znikaniem programu. Zaprogramuj mu miganie diodą. Coś w rodzaju: Do Toggle Port ... Waitms 500 Loop
Mam dać toggle portb.4 ? Mógłbyś skopiować mój program i "przerobić" to co miałeś na myśli ?
Tą samą pętle można napisać jeszcze prościej :) do toggle portd.6 waitms 300 loop end Pozdrawiam i życzę udanych eksperymentów! :)
Podejrzewam że problem jest z odbiorem danych z pilota. BASCOM i GETRC5 nie za bardzo sobie z tym radzi. No i czy masz na pewno pilota RC5? Dodano po 1 Zobacz to: [syntax=basic4gl] $regfile "m8def.dat" 'konfiguracja mikroprocesora $crystal = 4000000 'konfiguracja kwarcu Config Portb = &B11111111 Portb = &B11111111 Config Portc = &B1111101...
Jakby Ci się chciało sprawdzić: Odremuj: 'On Timer0 Ir I to: '( Ir: 'sei Load Timer0 , 53 Toggle Portb.2 Return ') I wtedy jest PORTB.0 znieniany co kilka s.
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,...
Witam, czy mógł by mi ktoś pomoc w napisaniu wyłącznika schodowego? Chodzi o to abym mógł podłączyć dwa przełączniki pod atmege i kiedy dowolnie który przełączę zmieni się stan na nóżce z diodą. Próbowałem z poleceniem Toggle ale coś nie potrafię sobie poradzić. Pozdrawiam i proszę o pomoc.
witam, jak wyjść z podprogramu z powrotem do pętli głównej. Użyłem polecenia goto np: [syntax=basic4gl] do if pinc.4=0 then goto x loop end sub x: do waitms 30 toggle portd.1 loop end end sub[/syntax] pozdrawiam
Zumek -- dzięki za wskazówki ale niestety w moim procesorze nawet po ustawieniu Timer1 na 65492 max. częstotliwość jaką udaje mi się osiągnąć to ~16KhZ. Może tak: (Nadal w Bascomie , choć nie całkiem w Basicu) $crystal = 4000000 Config Portb = Output Config Timer1 = Timer , Prescale = 1 , Compare A = Toggle On Compare1a Introc1a Nosave Timer1 = 0 Compare1a...
względnie dim flaga as bit config portx.y = input set portx.y przycisk alias pinx.y do if przycisk=0 then toggle flaga waitms 150 end if loop
Linie danych wszystkich kości rozszerzających łączysz do wspólnego (dowolnego) portu, sterowania \OE do masy, linie taktujące CP do kolejnych wolnych linii dowolnego portu. Wysłanie danych na port wymaga: 1. Ustawienia odpowiednich stanów na porcie danych 2. Przepisania danych do przerzutników wybranego układu 74LS374 przez wystawienie przedniego zbocza...
Udało mi się! 'Przykład generowania fali prostokątnej niezależnie od CPU 'procesor AT Mega8 'zegar wewnętrzny 1 MHz 'piezo pomiędzy PB.1 a +5V 'UWAGA!!!, ATMEGA8 ma domyślnie załączonego Wachdoga!!!. Trzeba wyłączyć bezpiecznik!!! $regfile = "m8def.dat" $crystal = 1000000 Dim I As Byte Ddrb.1 = 1 'port b.1 wyjściowy '---------------------------------------...
O ile każdy może wyrazić swoją opinię to mogę to zrozumieć, ale to co napisałeś jest nietrafionym założeniem ponieważ ja znam wiele produktów leżących na półkach sklepowych oprogramowanych w Bascom. Znam kilka firm oprogramowujących w tym języku niektóre z produktów. Pisz proszę o rzeczach o których masz pojęcie, albo zaznacz że dywagujesz. (at)autor...
A skąd tam Ci się 39 wzięło ??? :!: Sprawdź to: [syntax=basic4gl]regfile "m88def.dat" $crystal = 16000000 '---------------------------------------... Config Timer0 = Timer , Prescale = 64 On Timer0 Ti_prog Const Przerwanie = 231 '16000000/64/(256-25)=10kHz (100us) Counter0 = Przerwanie Enable Timer0 Enable Interrupts Do ' ' Loop End '--------------------------------------....
Chwile sie pobawiłem i zastanawiałem sie czemu mi zle działa dioda podpięta do PORTB.3 a to jest związane z OCR1A dlatego zle działała. Nie dlatego, nie ma tu żadnego związku. OCR1A jest to wpis do rejestru, który służy do określenia górnej granicy (TOP) do jakiej ma liczyc Timer1 co odpowiada upływowi czasu tu akutat 1 sec., zaczym się wyzeruje. Jeżeli...
Można sobie ułatwić robote na kilka sposobów.Użyć aliasów zamiast definiować zmienne bitowe: Dim Przekazniki As Byte Pk0 Alias Przekazniki.0 Pk1 Alias Przekazniki.1 Pk2 Alias Przekazniki.2 Pk3 Alias Przekazniki.3 Pk4 Alias Przekazniki.4 Pk5 Alias Przekazniki.5 Pk6 Alias Przekazniki.6 Pk7 Alias Przekazniki.7 Set Pk0 'tak ustawiamy bit Reset Pk5 'tak...
Proponuje tak: $regfile = "attiny13.dat" $crystal = 1200000 Config Portb = &B101111 Portb = &B010000 Do If Pinb.4 = 0 Then Wait 1 Toggle Portb.3 Else Portb.3 = 0 End If Loop
Zainteresuj się czymś takim jak toggle bit - zmienia się on tylko w przypadku ponownego wciśnięcia klawisza w pilocie - jeśli klawisz jest przytrzymany to toggle bit się nie zmienia - telewizory i inne urządzenia RC5 właśnie ten element standardu wykorzystują do rozpoznawania ponownego wciśnięcia i/lub przytrzymania klawisza. Wystarczy zapamiętać poprzednią...
A helpa czytaliśmy ? :) For extended RC5 code, the extended bit is bit 6 of the command. The toggle bit is stored in bit 7 of the command
Najlepiej zastosuj Toggle portx.y tylko wcześniej ustal stany początkowe.
To trzeba zmienić priorytet z 12 bitów stałokodowego pilota na odbiór HCSa lub całkiem usunąć obsługę pilota 12 bitowego. może tak: [syntax=vbnet]'*************************... '========================= przerwanie przy kazdym zboczu ICP, odczyt czasu trwania impulsu...
Witam Kolega miro340 ma rację i ja wiem o tym, że w momencie przyciskania dłużej przycisku po prostu zmienia stan na przeciwny od tego jest Toggle. Napisałem tutaj z prośbą aby ktoś mi doradził, poradził jak się tego właśnie pozbyć. Pozdrawiam
$regfile = "m8def.dat" $crystal = 1000000 Config Pinc.0 = Output Config Pinc.5 = Output Dioda1 Alias Portc.0 Dioda2 Alias Portc.5 Config Int1 = Low Level Config Rc5 = Pind.2 On Int1 Przzew0 Dim Komenda As Byte , Adres As Byte Dim Odebrano As Bit Enable Interrupts Enable Int1 Do If Odebrano = 1 Then If Adres = 0 Then 'pilot o adresie 0 toggle...
Nadal nic. Nie reaguje na żaden przycisk pilota. Nie mam podłączonego kwarcu, wewnętrzny oscylator jest domyślnie na 1MHz, tak? Jak napisałem program typu do toggle portb waitms 500 loop to dioda miga, więc oscylator działa poprawnie. Dobrze myślę?
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 =...
Witam, Napisałem program, który po wciśnięciu switcha (podaniu napięcia na PinB. 1 i PinB. 2 przez kilka sekund) ma migać diodami w kolejności 123 lub 321 w zależności od wciśniętego switcha. Po naciśnięciu switcha 1. diody przez cały czas zaświecają się po kole 123 i tak przez cały czas. Przerwać może tylko wciśnięcie switcha numer 2 i włączenie funkcji...
Już nie mam więcej pomysłów...po prostu nie ogarniam tego. Czytam o zmiennych i jakoś nic mi z tego nie wychodzi a to przecież taki prosty programik do zrobienia. Pomóżcie koledzy ! Czego mi TU brakuje, że nic nie działa ?! [syntax=basic4gl] $regfile = "m644pdef.dat" $crystal = 16000000 Config Porta = Output '1=wyjscie Porta = &B00000000 Config...
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...
Nie wiem tylko o co chodzi z tym CTC $regfile = "m8def.dat" $crystal = 1000000 Config PortB = Output Config Timer2 = Timer , Prescale = 8 , Compare = Toggle , Clear Timer = 1 Enable Interrupts Enable Timer2 Do Loop
...Dziękuję za pierwszy konkretny post w sprawie ... No to ja dodam cos konkretnego od siebie. Dla niewierzącego mirekk36 cytat z NE6/2004 "W Bascom nie działa Config Timer1=TIMER, PRESCALE=8, Compare A =TOGGLE, działa natomiast TCCR1a=&B01000000 TCCR1b=&B00001010 Takich przykładów jest po kilka w publikowanych programach. Ten osobnik (może osobniczka)...
Dim stan_koncowki as bit Dim poprzedni_stan_koncowki as bit Przerwanie: stan_koncowki=pinb.0 if stan_koncowki=0 and poprzedni_stan_koncowki=1 then toggle I_fototranzystor 'to wszystko w jednej linii, tylko tutaj mi rozdziela poprzedni_stan_koncowki=stan_koncowki
toggle timer1 toggle switch toggle button
zasilanie manipulatorów integra esp8266 flashowanie dorobienie kluczyka peugeot
pralka indesit cieknie pralka indesit cieknie
Błąd 03 w bramie Hörmann A460 - przyczyny i rozwiązania Zamiennik akumulatora Parkside 20V 2Ah - kompatybilność i wybór