Tlumaczylem, ze restart bedzie tylko raz mozliwy, w petli programu. Nie napisales jasno, ze ma byc w kazdej chwili. Moze jutro ci wlepie kawalek kodu. ________________________________________... CONFIG INTx = LOW LEVEL On Intx Przerwanie Enable Interrupts do loop:end Przerwanie: disable intx '.... tu reset '.... enable intx Return...
Dodałem drobną poprawkę, przetestowałem w symulatorze i wyglada że teraz jest ok. Ustaw $crystal odpowiednio. Podłącz pod PD.3 przycisk i pod PD.0 LED (led będzie świecił gdy sprzęt jest w stanie czuwania). O powerdown nie ma co walczyć i tak używasz zasilacza. Najpierw przetestuj ten program, dopiero potem połącz go z twoim silnikowym i przekonfiguruj...
Witam. W petli glownej programu musisz sobie napiac jakas procedurke wyboru podprogramow. Np mozesz uzyc do tego 3 przyciskow - jeden do zwiekszana zmiennej np wybor , drugi do jej zmniejszania atrzeci przycisk do potwierdzenia "enter" . Nie pamietam juz dokaldnie skladni w Bascomie ale moze to byc np tak: DDRB=&b11111000 // - piny 0 1 i 2 portu...
Symulator Lasera http://images49.fotosik.pl/261/c05af04e8... Fot.0 Jedno ze zdjęć prototypu symulatora lasera Jest to opis kilku symulatorów zaprojektowanych i działających przeze mnie . Zarówno tych najprostszych opartych na popularnym tajmerze 555 , jak również do konstrukcji profesjonalnych opartych na mikrokontrolerach jednoukładowych...
Żeby zrobić za pomocą Timera - to nie możesz używać trybu PowerDown tylko Sleep - żeby właśnie Timery mogły działać to po pierwsze. W taki trybie jednak będziesz miał nieco większy pobór prądu niż w pełnym PowerDown. Więc wszystko zależy na ile ma wystarczać bateria o ile jest to coś zasilane z baterii. Bez PowerDown'a na pewno będzie to sporo krótszy...
Mam pytanie czy z przycisków w porcie A można zrobić przerwania wywoływane zboczem narastającym... chodzi o to czy np mając podpięty przycisk do portu A.1 mogę z tego wywołać przerwanie tak żeby po wciśnięciu przycisku zaczął się wykonywać jakiś program np załączenie jakiegoś silnika na 20 sec. ale żeby w tym samym czasie można było też załączyć inny...
Jeżeli sprawdzasz przycisk podłączony do masy, to czemu przerwanie Timer ma być wyzwalane zboczem rosnącym ? Config Timer0 = Counter , Edge = Rising
PF - Jak zakładasz temat że potrzebujesz jakiejś pomocy, to postaraj się trochę szybciej odpowiadać na zadane pytania. Poniższy program powinien rozwiązać Twój problem. Zmienna "C" odpowiada w tym programie za czas w którym powinieneś wcisnąć przycisk 2-3 razy, wartość 5 (If C = 5 Then) odpowiada 1-nej sekundzie (prawie). Poprzeglądaj sobie schematy...
Witam Do tego celu można dojść za pomocą timra i przerwań. Po prostu w momencie wciśniecia przycisku , puszczasz w ruch timer. Jeśli zliczy powiedzmy sekunde to zapala Ci jedną diode, jeśli doliczy do 5 sekund , to zapalasz inną. Oczywiście musi być to tak zrobione żeby procek nie czakał az naciśniesz przycisk. Po prostu po wykryciu zmiany przycisku...
...Co ta funkcja robi ? Jeśli tego nie wiesz , to znaczy że nie wiesz , jak działa Twój mikrokontroler :( Ciekawi mnie czy wlozenie if'ow w przerwanie nie spowoduje duzych opozniena czasowe. Pomyśleć napewno nie zdążysz :D Bo juz o tych waitms 50 wogole nie ma mowy. Tak :?: To napisz , co generuje zbocze na Pind.2.Jeśli to nie jest przycisk , to faktycznie...
Wszystko jest ok, domyślam się przyczyny niedziałania: - przerwanie jest jako low level - dopóki wciskasz przycisk to przerwanie ciągle się wykonuje, po jego puszczeniu główny program może się nie wykonać Zrób tak: - w twoim ostatnim programie w przerwaniu wpisz: Disable Int0 - pozornie bez sensu ale zauważ że po wyjściu z powerdown będzie się wykonywało...
Witam Napisałem program w Bascom do obsługi dwóch serwomechanizmów. Program jest prosty i po naciśnięciu przycisku załącza na pewien czas 1 serwo potem 2 następnie wraca obydwa . Odczekuje jakiś czas i ponawia cykl. Wszystko działa , ale chciałbym aby po naciśnięciu przycisku w dowolnym czasie program ruszał od początku. Próbowałem zrobić to instrukcjami...
Mam pytanie jak w czyms takim ( --> kod ponizej) otrzymac ponowna mozliwsoc urzycia przycisku sw1 ? Gdyz z tego co widze kompilator nie pozwala mi w napisanych przeze mnie petlach urzyc go ponownie i jak np w 2-giej petli daje sw2 to juz wszytko dziala poprawnie...A wiec jak mam go ze tak sie wyraze zresetowac ? - zeby znowu by aktywny (sw1) ? Do If...
Witam, Podczas pisania programu menu wyskoczył mi taki mały problem , może najpierw przedstawię kod [syntax=basic4gl] Config Pind.3 = Input Set Portd.3 Memo Alias Pind.3 Config Pind.4 = Input Set Portd.4 Smulti Alias Pind.4 Dim Nr_menu As Byte , Klucz As Bit , Step_ As Byte , Vfoab As Byte Nr_menu = 0 Do Cls Lcd Lookupstr(nr_menu , D_menu) On Nr_menu...
Witam. Czy mógłby ktoś podać jakiś dobry sposób na odczyt stanu przycisków, najlepiej jakiś kawałek kodu w bascomie.
Procesor nie wstaje po uśpieniu przy Twoim kodzie. Z obsługą uśpienia pomagałeś mi Ty, i wygląda tak: [syntax=vbnet]Pw_off: Do If Switch = 0 Then 'jesli wcisnieto przycisk If Lock = 0 Then 'a zmienna już wyzerowana Lock = 500 'wylaczy po 500ms od puszczenia przycisku Turn_off = 1 'ustaw flage by po puszczeniu przycisku zadziałało End If Else If Lock...
Witam mam pytanko odnośnie programu. Chcę żeby po podaniu masy na PINC.1 na PINA.1 pojawiło się napięcie i zniknęło. ale tylko raz aż do odłączenia masy od PINC.1 co natomiast spowodować ma pojawienie się i zniknięcie napięcia na PINA.2 ale nie może sie to dziać co obrót pętli tylko raz po każdej zmianie stanu na PINC.1 Proszę poprawić tytuł wiadomości...
Witam Niedawno zaczolem programowac w bascom chce napisac program do µP tak aby dzialal jak przelacznik Zrobilem cos takiego: Config Portb = &B11111111 Portb = &B11111111 Config Portd = &B1111110 Portd = &B1110111 Dim K As Byte K = 0 Do If Pind.0 = 0 Then Incr K If K = 0 Then Portb = &B11111111 If K = 1 Then Portb = &B11111011 If K = 2 Then Portb...
witam wszystkich. mam problem mianowicie po skompilowaniu i wgraniu do procka programu wykonuje polecenia z petli glownej. po nacisnieciu przycisku ok powinien wejsc w osobna procedure ustawianie, jednak nawet gdy nic nie naciskam zalacza sie sama. Pytanie dlaczego. jestem początkujący jak co :) [syntax=basic4gl]$regfile = "m32def.dat" $crystal = 16000000...
Witam chciałbym aby w bascomie zaprogramować przycisk że po wciśnięciu i przytrzymaniu określoną liczbę sekund np 20 włączy program
Witam. Mam problem z kodem w bascomie. W skrócie opiszę co ma robić. W pętli głównej bada jaka liczba przychodzi przez RS232 (A = Inkey() ). Jeżeli jest to 87 to wtedy ma wyskoczyć do procedury/podprogramu o nazwie "Lowandslow". Tam na chwilę ustawia piny od B.4 do B.7 na "1" i załączane zostają przekaźniki spuszczania powietrza z czterech poduszek....
Witam Czy ktoś ma doświadczenie z przerwaniami w bascomie. Napisałem sterownik temp. I cyklicznie za pomocą przerwania wywołuje podprogram który odczytuje temperaturę niestety często zdarzają się kaszaki na LCD poczym reset procesora zazwyczaj w ekranach parametrów po wyłączeniu przerwania wszystko jest ok. Domyślam się że przerwanie zatrzymuje działanie...
Witam, Mam mały problem z napisaniem kodu tak aby ten program uruchamiał się za pomocą przycisku [syntax=basic4gl]Config Pinb.1 = Output 'linia pb1 jako wyjście Config Timer0 = Timer , Prescale = 256 'deklaracja timera jako czasomierza On Timer0 Przerwanie_co_2ms 'deklaracja jaka etykieta obsługuje Led Alias Portb.1 'alias dla wyjścia b.1 Dim Licznik...
Mam taki problem że po zaniku w kodzie impulsu nadam piszczy mi buzer - wszystko wyjaśni poniższy kod który jest na 100% poprawny ale i tak czegoś brakuje a i skończyły mi się pomysły 'alarm P If T(1) >= T_alarm Then If Buzz_en = 1 Then Led_a = Not Led_a Else Led_a = 1 if Buzz_en = 1 then buzz = not buzz else buzz = 1 Else Led_a = 1 Czujnik(1)...
Witam potrzebuję porady jak napisać prosty program do włącznika bistabilnego .Schemat jest banalny na portach B i D są podłączone przyciski ,zaś na portach A i C są podłączone układy ULN2003 ,z układów ULN wychodzi napięcie na przekaźniki. Próbuję coś robić ale schematy z kursów (Bascom) co są wrzucone do internetu są na jednej diodzie i jednym przycisku,jak...
Cześć. Napotkałem ostatnio na pewien problem, mianowicie w momencie gdy wywołuję przerwanie w swoim układzie, to po jego obsłudze główny blok programu nie jest kontynuowany, tylko wszystko zaczyna się od początku (albo resetuje procek). W załączniku schemat urządzenia. Załącznik usunąłem. http://obrazki.elektroda.net/63_12624652... Przerwanie...
Prywit! Mam problem z obsługą przerwania zewnętrznego. Do pinu INT0 podłączyłem włącznik zwierający do masy. Jak widać w programie podciągnąłem końcówkę do plusa. Do pinów C.1; C.2; C.3 podłączyłem diody LED do zobrazowania problemu. Napisałem taki oto krótki program i jestem zdziwiony działaniem. Po uruchomieniu programu dioda podłączona do pinu C.1...
Witam! Uczę się Bascoma i postanowiłem napisać "stoper" sterowany z pilota (pilot nadaje w standardzie rc5). Najpierw napisałem pętlę odpowiadającą za ustawienie stopera za pomocą pilota. Zrobiłem to za pomocą przerwania INT0. Wszystko działało jak należy. Problem się zaczął jak skonfigurowałem timer0 do pracy jako timer. Program przestał reagować na...
Witam Napisałem program który zlicza impulsy z przycisku ale nie chce mi wyświetlać wyniku, wyskakuje taki komunikat: Error : 35 Line :30 3 parameters expected a to jest ten program: Dim J As Byte , D As Byte , S As Byte , T As Byte Dim Wynik As Byte Config Portb = 255 : Portb = &B11111111 Config Portd = &B1111100 : Portd = &B1111111 Cls Do...
Witam. Mam liczbę T1 w formacie SINGLE. Chcę z niej uzyskać część rzeczywistą (z zaokreąglaniem lub bez - obojętnie, jak prościej). Jak to zrobić? Myślałem eby w jakiś sposób zastosować asemblerowskie div, ale to coś nie działa. Pomocy, już siedzę nad tym...ehh Procek to AT89C4051. update: niżej dalsza część problemu ;)
Witam!! Można prosić o sprawdzenie poprawności kodu. Czy jest dobrze ( logicznie napisany). If Pina.6 = 0 Then ' Wyłączenie/włączenie wyświetlacza lcd Waitms 100 Toggle Portd.4 End If If Portd.4 = 0 Then Pwm1b = 0 Else Pwm1b = Zmienna(33) End If Założenie jest takie że po naciśnięciu przycisku pwm ma wartość 0 a po kolejnym odczytuje wartość...
Napisalem w bascomie program ktory ma mierzyc czas trwania impulsu. Dokladniej jest to pokazane na rysunku w zalaczniku. Ale niestety program niechce dzialac a dokladniej pokazuje mi na lcd caly czas 101 i niewiem co jest grane bo moim zdaniem jezeli zmienia sie czas trwania impulsu to powinna sie zmienic iloscimpulsow zliczonych przez licznik. dodam...
Witam, Mam problem z zrealizowaniem za pomocą tylko jednego przycisku funkcji: naciskam - licznik zlicza w górę puszczam - licznik zatrzymuje się naciskam - licznik zlicza w dół puszczam - licznik zatrzymuje się itd... Męczę się nad PWM - regulacją podświetlania LCD, na atmega8, problemu nie widzę ze sterowaniem dwoma przyciskami, ale rozłożyłem się...
No niestety trzeba będzie trochę popracować... :D Proponuję tak (attiny13): 0. konfigurujesz porty, włączasz pullupy na pinach z przyciskami 1. procesor czeka w uśpieniu na pin change interrupt 2. po obudzeniu sprawdzasz jaki kod wysłać, wyłączasz przerwanie pin change 3. w pętli wysyłasz kolejne bity włączając i wyłączając PWM (opis kodu RC5 [url=http://www.ustr.net/infrared/index....
Nojmi - gdybys mogl opisac mi krok po kroku co robi Twoj program... PLEASE!!! Wpisuje obsluge diody ale cos dziwnie mi to dziala... To znaczy jak nacisne 5 razy przycisk powinien zapalic diode na 5 sekund i potem ja zgasic... A on jak naciskam kolejne razy tak jakby liczyl od poczatku... Acha! I dlaczego dla przerwania 1 sekunda i przy kwearcu 12M jest...
Napisałem się, napisałem... a tu wylogowało i przepadło a wstecz w przeglądarce nie przywróciło :( ale postaram się odtworzyć. W wyżej zaproponowanym sposobie musisz mieć przycisk podpięty pod zewnętrzne przerwanie. Ja zrobiłbym to inaczej. Obsługę przycisku zrobiłbym w przerwaniu timera. Przerwanie wywoływał co kilka milisekund. W przerwaniu najpierw...
800 obrotów/min to max jakie będą używane w tym enkoderze, ale nie mogę zatrzymywać przerwania, bo impulsy muszą być liczone ciągle, wszystko resztę muszę wykonać pomiędzy przerwaniami. 800 obrotów to daje impuls przerwania co 15us, a ja w pętli nic nie będę robił oprócz sprawdzania czy jest naciśnięty przycisk STOP, więc teoretycznie wszystko powinno...
Podczas moim przygod z bascom nie musialem dawac zadnych kondensatorow bo Debounce na drodze programowej usuwalo drgania. Teraz chce zrobic to samo. Zrobilem tak ze odczekalem 50 ms, i sprawdzilem czy przycisk jest nadal wcisniety, jednak czasem jak nacisne, przytrzymam i puszcze to dioda tez zmienia stan, mimo ze nie powinna ( przerwanie jest tylko...
Mam mały problem z programem napisanym w bascomie , mianowicie założenia są takie jest to odbiornik pilota IR na atmega 8 chodzi mi o sam algorytm dekodowania sygnału , który ma dekodować wszystkie rodzaje pilotów obojętnie czy są w standardzie RC5 czy SONY na wyświetlaczu LCD mam mieć wyświetlane umownie wartość jedynek i zer i problem polega na tym...
Dzięki za wskazówkę, poszukałem trochę na forum i znalazłem taką wypowiedź: ...konfigurujesz timer1 do pracy w normalnym ale nie robisz start timer. robisz przerwanie dzialajace na zbocze np. narastające-> Dalej : robisz zmienną flaga w przerwaniu robisz if flaga=1 then start timer1 flaga=0 else stop timer1 w rej od timera masz czas... kopiujesz gdzie...
teraz jest ok mozesz dodać trzeci przycisk podpięty do p3.7 ale to tak na marginesie następnie musisz powiedzieć w czym piszecz program. jeśli nic nie umiesz to musisz cię czegoś nauczyć wybór jest prosty asm lub bascom lub c. w programie będą dwie ważne procedury. jedna to przerwanie które musi być wywoływane idealnie co sekunde. w nim będziesz zwiększał...
Problem w pewien sposob rozwiazany, moze komus sie przyda Dodano linie: $initmicro ........ _init_micro: Config Watchdog = 1024 Start Watchdog Return W tej postaci watchdog poprawnie resetuje uP: $crystal = 7372800 $regfile = "m168def.dat" $initmicro Config Aci = Off Config Lcd = 40 * 2 Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.3...
1) PinB.5 poprzez rezystor 10K podłączasz do VCC. Do PinB.5 podłączasz też kondensator 100nF do GND. 2) PortB.0 INT0 podłącz przez opornik 200 omów do przycisku (druga nóżka przycisku do GND) to będzie twój przycisk do zmiany efektów 3) Pozostają ci tylko 4 wolne nóżki dla ledów. Możesz dodać ekspander I2C->8 bit PCF8574 i sterować 8 ledami lub zostawić...
OK, problem rozwiązałem, problem polegał na tym, że pilot ma przyciski "CD", "FM", "MW" i "AUX". Naciskając przypadkowo przycisk "FM" zmieniłem nadawane adresy i komendy, żeby wszystko wróciło do normy musiałem nacisnąć przycisk "CD". Jak widać więcej osób zgodziło się, że nie zrozumiało postu, więc przepraszam za nieścisły język. Program do testowania:...
Mam prośbę o pomoc w ukończeniu programu, otórz założeniem programu jest aby zaświecić dioda1 po określonej ilości mrugnięć dioda2 i w odpowiednim momencie wciśnięciu SW1. Program działa bezbłędnie jeśli ręcznie określę mu zmienne A i B, natomiast zaczynają się schody jeśli chcę dodać możliwość programowania zmiennych A i B, zapisując je w pamięci eeprom....
opracowałem mój program do bramy.. lecz mam jeszcze jeden problem z tym przerwaniem INT0. Gdy np brama się otwiera i po zwarciu zworki portd.2 od INT0 układ prawidłowo zatrzymuje się lecz jak teraz włączę żeby brama się zamykała na zwartej zworce i po chwile od-zewrze przejdzie na stan wysoki zamykanie bramy się zatrzymuje jakby przerwanie działało...
Mam taki problemik tutaj macie fragment kodu: 'C013b Prosty zegar z ustawianiem Dim Sekjed As Byte , Sekdzies As Byte , Minjed As Byte , Mindzies As Byte , Maxi As Byte Dim , Godzjed As Byte , Godzdzies As Byte , Mux As Byte , Migaj As Bit , Uniwers As Byte Config Portb = 255 : Portb = &B255 : Config Portd = &B1111100 : Portd = &B1111111...
Witam, jeszcze proszę praktyczne rozwiązanie takiego problemu, gdyż program jest praktycznie ukończony, ewentualnie drobne poprawki kosmetyczne:), ale w obecnej wersji odczyt i zapis wykonywany jest z poleceniem "wait", przez co wskazywane temperatury nie są czasem poprawne - wyskakuje BRAK ds'a. Już nie mam pomysłu jak to zrobić, proszę tylko o jakieś...
Witam wszystkich wszech wiedzących. Mam taki drobny problem, otóż w zestawie uruchomieniowym zl11avt zaprogramowałem mikrokontroler attiny 2313 żeby na wyświetlaczach led był zegarek z budzikiem. Po zastanowieniu sie zobaczyłem że mam 4 porty wolne i mogę wykorzystać je do czego chce. Chciałbym żeby to był normalny zegarek ale gdy na PD2. (wolnym) pojawi...
Fakt, ze jest milion różnych sposobów na zrobienie tego. Ok spróbuję tym sposobem co mi podsunąłeś. W sumie nawet lepiej tak. Dzięki. Dodano po 5 Ok, coś tam skleciłem, jest to niepełny program, bo nie ma w nim np. ustawień dla Mute i trybu, oraz nie pokazuje na LCD wartości, ale to później. Póki co mam dziwny problem z wyświetlaniem, ale o tym za chwile....
Problem ze zmianą nazwy pliku rozwiązałem - oczywiście należy pamiętać, że nazwa pliku może być ośmio znakowa. W kodzie dodałem: Plik = "temDD_MM" + ".txt" Mid(plik , 4 , 5 ) = Data_plik oraz w odczycie czasu Data_plik = Bcd(dday) + "_" + Bcd(mmonth) oraz zmieniłem wpis zapisu Open Plik For Append...
Mam sobie niżej pokazany programik w bascomie ale niestety nie wiem jak dopisać obsługę pilota :| Programik jest na 89c4051 ;) $large Config Lcd = 16 * 2 Config Timer1 = Timer , Gate = Internal , Mode = 1 Config Sda = P3.1 Config Scl = P3.0 Dim Licz As Byte Dim I As Byte Dim Nast(5) As Byte Dim St As String * 7 Dim W_reg As Integer Dim Wielk1...
Witam. Jestem początkującym w dziedzinie programowania na elektronice znam się dobrze. Chciałbym zbudować komputer pokładowy do mojej hondy civic i znalazłem na elektrodzie projekt z pod tego linku. http://www.elektroda.pl/rtvforum/topic22... Płytkę zaprojektowałem na nowo pod atmege128 reszta bez zmian. Wyświetlacz od Siemensa s65 ls020 podłączyłem...
Ten drugi pomysł jest moim zdaniem lepszy. Do tego możesz użyć końcówki przerwania INT - ma konfigurację zbocza, którym jest wyzwalane przerwanie.
Do atmegi8mki Ci może nie wejść obsługa FATu. Poszukaj na elektrodzie FAT SD Atmega i coś znajdziesz gotowego. - Napewno nie Bascom :D Potem jakieś przerwanie i mierzyć czas i robić systematyczne opróżnianie buffora na drabinke R2R albo DAC.
Wracajac do tematu czy moglbym prosic przynajmniej o pseudo kod obslugi przykladowo drgania w przyciskach , wysterowania przekaznika np przez 2s oraz komunikacji 1wire jednym timerem (atmega8 ma az 2 timery wiec pewnie szybko skoncza sie jego mozliwosci chcac napisac kod bez zatrzymywania) Cały dowcip polega na tym że z tego 8 bitowego timera możesz...
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.
[syntax=vbnet]Automatycznie2: Locate 1 , 1 Lcd " Tryb Automat. " Locate 2 , 1 Lcd "Aktualnie: PR:2" Prog1 = 0 Prog2 = 1 Prog3 = 0 Prog4 = 0 Prog5 = 0 If Cofn = 0 Then Goto Wybor Else Dim Odlicz As Byte Odlicz = 120 Do Wait 1 Decr Odlicz If Cofn = 0 Then Goto Wybor Loop Until Odlicz = 0 Goto Automatycznie3 End If[/syntax] Możesz nawet zwiększyć czułość...
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...
Co do bascomowego symulatora to działa on u mnie bardzo wolno, a Hardware simulator wyświetla jakieś bzdury Symulację można przyśpieszyć dodając $sim , ale działa to przez usunięcie opóźnień, więc może zmienić zachowanie. W każdym razie polecam przyjrzeć się co się dzieje w pamięci RAM. [url=https://avrhelp.mcselec.com/index.h...
Wiec tak: W ogóle wyrzuciłbym zmienna/flagę F. Nie jest potrzebna tutaj. W programie głównym zamiast sprawdzania F, sprawdzaj A, czyli warunek IF z przerwania przenieś do programu głównego, łącznie z zerowaniem A. W przerwaniu zwiększaj tylko A. Zamiast: If F = 1 Then Cls Locate 2 , 1 Lcd "przerwanie" Wait 1 Cls F = 0 Enable Int0 End If zrobilbym...
Uruchom przerwanie od Countera (najlepiej od porównania wartości zliczonej z ustawioną) i zmień stan portu w podprogramie obsługi przerwania lub prościej, ale mało elegancko zmień [syntax=basic4gl]If Counter1 = 100 Then ...[/syntax] na [syntax=basic4gl]If Counter1 >= 100 Then ...[/syntax] Nie tak jest to, że w chwili zliczenia setki nasz if może się...
Możesz sobie podłączyć przycisk pod zewnętrzne przerwanie i w programie przerwania na początku zrobić Disable INT0 , wtedy drgania stuku będą chyba wyeliminowane.
[syntax=basic4gl]Config Timer0 = Timer , Prescale = 1024 Enable Timer0 : On Timer0 Przerwanie0 Dim Tmp As Word Tmp = 0 Dim Ptimer1 As Word Ptimer1 = 0 Do If Klawisz = 0 Then If Ptimer1 = 0 Then Ptimer1 = 100 End If If Ptimer1 < 95 And Klawisz = 0 Then Tmp = 1 End If End If If Tmp = 1 And Ptimer1 < 85 And Ptimer1 > 70 Then If Klawisz = 1 Then...
Nie wiem czy odbierasz tam jakieś komendy. Wywal te Wait`y. Tutaj po zmianie stanu do zmiennej Blokada zostanie wpisana wartość do odliczenia w dół. Jeśli nastąpi następne przerwanie to w zależności od tego czy minął już czas blokady, to albo zostanie przedłużony jej czas bo ktoś trzyma przycisk dłużej albo.. :D [syntax=basic4gl]Dim Blokada As Word...
$regfile = "attiny2313.dat" $crystal = 4000000 Config Pind.2 = Input Config Portd.0 = Output Config Portd.1 = Output Config Portd.3 = Output Set Portd.2 Przycisk Alias Pind.2 Dim Sekwencja As Byte Declare Sub Pierwsza Declare Sub Druga Declare Sub Trzecia Enable Interrupts Enable Int0 On Int0 Przycisk_przerwanie Do Loop End Przycisk_przerwanie:...
A może sprzętowe rozwiązanie ? Zamiast przycisków NO zastosować NC ?
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)......
Ja bym sugerował podpiąć przycisk pod przerwanie zewnętrzne. Jeden timer byłby puszczany i zatrzymywany w przerwaniu do pomiaru czasu, a drugi do multipleksowania wyświetlania.
Musisz ustawiać znacznik, albo lepiej- odblokować przerwanie :-)
bascom przycisk przerwanie przycisk przerwanie przerwanie bascom
wycie biegach zmiana ciśnienie wtrysk subwoofer wydawać dziwna dźwięk
miele pralka cybertarcza orange
Kontrolka silnika w Hyundai Tucson - przyczyny i diagnostyka Buderus GB212 a regulator Bosch CT 200 – kompatybilność, EMS Plus, funkcje, ograniczenia