Niestety, to nie pomogło, usunąłem wszystkie wait'y które tam były i dalej jest to samo. Może macie jakieś inne pomysły? Wszystkich nie usnąłeś - zostało 25ms z debounce. Poza tym konfiguracja przerwania jako Low level powoduje, że jest ono generowane raz za razem dopóki jest stan niski na pinie. Przerwanie nie zdąży się obsłużyć, bo debounce potrzebuje...
Przeorganizowałem twój kod z pierwszego postu bo w tym z dzieleniem i modulo to może działać ślamazarnie. Jeśli ci pasuje oczywiście. Licznik obsługuj w przerwaniu timera. A zmieniaj tylko wartość zmiennej za pomocą przycisków. To musisz sobie dopisać. Gdyby obliczenia w przerwaniu były za długie, przenieść je do głównej pętli, ale tutaj zawsze będzie...
Nie wiem czy chcesz się nauczyć czy potrzebujesz program. Na początek te uwagi: 1. Nie wiem co tam robi dyrektywa $eeprom. Jest niepotrzebna w tym kodzie 2. Zmienna Ds jest zwiększana w przerwaniu niezależnie od tego czy jesteś w Menu czy nie. Tak więc po powrocie z Menu już na pewno nie zdążysz załapać się na warunek If Ds = 2 i wyzerować jej wartość....
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...
Szpilki są wąskie- i jest ich tylko kilka. Zwiększyć ilość próbek. Napisałeś wcześniej: Normalnie debounce powinien sprawdzać stan co kilka ms a drgania ustają po ok.20ms. Ale w przypadku impulsatora przy szybkim kręceniu stany się zmieniają co 2.5ms. W wyniku tego masz wykres jaki pokazałem (wykres dolny). Czyli drgania styku zachodzą na kolejną zmianę...
http://obrazki.elektroda.pl/5924959500_1... Witam ponownie! Kilka dni temu chwaliłem się projektem "PALM v1.0 BETA Atmega128", a dziś chciałbym przedstawić komputerek do motoru lub roweru jaki zrealizowałem już jakiś czas temu na zamówienie. Urządzenie miało zastąpić oryginalne psujne, mechaniczne zegary. Funkcje i założenia: *Wyświetlanie...
http://obrazki.elektroda.pl/3089511800_1... Witam, dziś prezentuje swój bezprzewodowy termometr pracujący na częstotliwości 433 MHz. Urządzenie składa się z nadajnika i odbiornika. Nadajnik odczytuje temperaturę pieca C.O. i wysyła ją do odbiornika. W odbiorniku mamy możliwość ustalenia górnego i dolnego progu załączenia alarmu, który...
Witam wszystkich po raz kolejny. Jako że odwiedził mnie listonosz z długo i niecierpliwie wyczekiwaną żółtą kopertą, to postaram się dzisiaj opisać Wam tutaj pokrótce gadżet, który to był w środku - moduł cyfrowego radia FM zrobiony na układzie TEA5767 firmy NXP. Moduł ten to …. powiedziałbym, że to kompletne radio, choć by wydobyć z niego dźwięk,...
Witam Mam problem z napisanym programem na attiny 2313, program może jest prosty ale dopiero co się uczę programowania mikroprocesorów w Bascomie.Program sam w sobie działa ale jest problem z drganiami na przełącznikach,switche mam podciągnięte do gnd,diody katodami do gnd anodami do procka.Czytałem o funkcji debounce i o timerach ale narazie timery...
Witam Mam oto taki kod: $crystal = 8000000 Config Debounce = 45 Dim A As Byte Dim B As Byte Dim C As Byte Dim D As Byte Dim E As Byte Dim S As Integer B = 1 C = 1 D = 5 E = 5 Config Portc = &B10011001 Portc = &B01111111 Do If Pinc.5 = 0 Then Gosub Bbb Else Gosub Xxx Loop Xxx: If Pinc.6 = 0 Then Gosub Ttt Else Gosub Ppp Return Ttt: Portc.0 = 0 For A...
Nie działa mi komenda debounce. Pracuje na ATmega 16 Mam podłączone przyciski do uC pod piny A0, A1, A2, A3, A4, A5. Przycisk natomiast jest podłączony pod mase układu. W programie podciągłem rezystory takim sposobem: Set PORTA.0 ............. a program wygląda tak do ...... instrukcje odczytu czasu z PCF8583 instrukcje odczytu z temp. z DS1820 ..........
tak przycisk caly czas trzymam a wsumie to wkładam drut w +5v i dlatego powyższy warunek wykonuje się z każdym obiegiem loop. Lepiej już wykrywać pin przycisk_wyzwolenia jako przerwanie zboczem. Nie pisze w bascomie .. ale program to program tylko nie mam jak tego sprawdzić Lepszy przykład stosowania: https://english.svet-el.si/index.php/inp...
A więc króciutki program testujący debounce. Działa ale dziwnie jakoś. Na portach PD0 , PD1 są klawisze z aktywnym stanem 0 Na portach PA0 , PA1 mam podłączone ledy. Założenie Po nacisnięciu klawisza PD0 zapal diode na PA0 Po nacisnięciu klawisza PD1 zapal diode na PA1 program działa tak że Po nacisnięciu klawisza PD0 zapal diode na PA0 oraz PA1 Po...
Proszę o pomoc. Jak opracować obsługę przycisku bez zatrzymywania programu głównego? Chodziłoby mi o coś w rodzaju debounce w bascomie. bardzo proszę o pomoc z góry dziękuje
Druga możliwość, to wykorzystanie przerwania od timera. Ustawiasz sobie przerwanie co np. 10ms i w przerwaniu badasz stan klawiatury i zapamiętujesz. Jeżeli ten nowy stan jest inny, niż zapamiętany poprzednio, to np. wpisujesz sobie wartość opóźnienia (do eliminacji drgań styków) do zmiennej. Jeżeli stan się nie zmienił, to zmniejszasz zmienną i jeżeli...
Witajcie. ... Program jest oczywiście przykładowy. Gdy zamiast przerwania etkietę Przerwanie: wołam przy pomocy funkcji Debounce wszystko jest OK. ... Naprawdę nie wiem gdzie popełniam błąd. Będę wdzięczny za wszelkie sugestie. Pozdrawiam Krzysiek To mi wygląda , na zbyt mały stos.Zwiększ parametr HW Stack na 100 i sprawdź , czy pomogło. Piotrek
Ja bym stawiał na brak debounce. Skoro sprawdzany jest stan przycisku to pewnie on do czegoś służy. Może do wyświetlenia informacji na wyświetlaczu. Jeżeli brak debounce to przerwanie to wywoła się pewnie z kilkanaście razy. Może być tez tak ze przepełnia się stos, kilkanaście razy 32 bajty.... i koniec RAM, procek sie resetuje. Ale to tylko zgadywanie...
Witajcie. Popatrzyłem na inne tematy w google, na elektrodzie itp. ale nie mogę znaleźć satysfakcjonującej odpowiedzi :D Otóż mój problem polega na tym, że chcę sterować moją super lampkę jednym przyciskiem. Niestety po wielu próbach cały czas jestem niezadowolony z rezultatów. Tryby pracy przeskakują to z I=1 do I=3 itd. Ogólnie cały układ albo pracuje...
Witam! Mam pytanie do osób programujących w Bascomie. Dlaczego po kilkukrotnym wciśnięciu przycisku P3.2 program się zawiesza i co zrobić by przez cały czas działal poprawnie? Dziękuję za poświęcenie chwili czasu. Config Timer1 = Timer , Gate = Internal , Mode = 1 Dim D As Byte Dim C As Word D = 0 Declare Sub Czas On Timer1 Przerwanie Enable Interrupts...
Zastanawiam się jeszcze, czy przerwania od INTx nie zastąpić sprawdzaniem pinu. Instrukcja DEBOUNCE w sumie ma eliminować drgania zestyków i jeśli będzie odpowiednio skonfigurowany czas Debounca (CONFIG DEBOUNCE) to DEBOUNCE pinx.y, 0, przerwanie, sub powinno zadziałać chyba dokładnie tak jak On INT1 przerwanie Jedyna wada jest taka, że jeśli procesor...
"bo jak kiedyś wystąpią wyższe obroty to ich nie uwzględni " Słusznie- debounce to paskuda. Ale od czegoś trzeba zacząć. Normalnie ma 25ms- można dać 1ms i chociaż sprawdzić. Kontaktron tak jak przycisk- ma drgania. Trzeba sprawdzić czy po 20ms ma ten sam stan- dla początkujących- debounce. A lepiej ale nie jako "pacaneum"- wygenerować przerwanie z...
Witam, Zmagam się z problemem przerwania w Atmega 8. Bez zagłębiania się w szczegóły mojego projektu, dajcie mi prosze znac czy to normalne zachowanie: 1. Przycisk S1 oraz Impulsator z przyciskiem S2. Impulsatorem "chodzę" sobie po menu i klikam przycisk impulsatora S2, który akurat w tej pętli nic nie robi, przerwania sa wyłączone cli(); ale uruchomione...
Nie znam Bascoma Odpalasz timer, tak żeby generował przerwanie co 50 ms. W tym przerwaniu sprawdzasz stan portów i to w zasadzie wszystko. W pętli głównej monitorujesz ten stan i odpowiednio reagujesz.
A mnie się widzi coś innego:) Reaguje przypuszczam na zbocza (nie chce mi sie szukać w pdfie), jak naciskasz raz sie generują zbocza (pewnie jakiś debounce tam masz) i drugi raz jak puszczasz znow sie któreś zbocze łapie.
Witam. Napisałem taki oto program, który generalnie działa, choć nie ma jeszcze obsługi alarmu dzwiękowego. Bardzo proszę o zerknięcie i stwierdzenie, czy jest napisany optymalnie. Dodano po 1 Teraz mam w miarę gotowy kod: [syntax=basic4gl] $regfile = "m32def.dat" $crystal = 8000000 Rem $sim Rem minutnik do jajek Dim A As Word Dim Anoda As Byte Dim...
Zamieszczam caly program i prosiłbym oprzerobienie pod moje wytyczne. Przerasta mnie to . 'sterownik do pieca at89c2051 ' wyświetlacz 2*16, poprawione zachowanie po zaniku napięcia $large $crystal = 12000000 Config Lcd = 16 * 2 Cursor Off Cls Config Sda = P3.1 Config Scl = P3.0 Config Timer0 = Timer , Mode = 1 , Gate = Internal Config Timer1 = Timer...
Ok wybrałem nadpisywanie całej pamięci flash przy wgrywaniu sketchu, dzięki za podpowiedź. Chyba chodzi o watchdog? Musisz zatrzymać monitor szeregowy, kiedy się pojawiają logi i wkleić tutaj informację o przyczynach WD - zwykle jest to dość pomocna informacja. Pod tym linkiem masz informację na temat diagnozowania przyczyny wystąpienia WD w ESP8266:...
Witam, drogich forumowiczów. Mam problem z komunikacją kilku urządzeń w sieci rs485. A tak prawdę mówiąc to z komunikacją pomiedzy dwoma, jednym "master" i jednym "slave". Normalnie staram się zadawać pytania w ostateczności na forum Elektroda, ale po prawie 3 tygodniach siedzenia przy problemie, przeglądaniu masy poradników i postów związanych z rs485...
Bardzo proszę. Zmodyfikowałem program tak, by uzywał tablic. To jest mod pierwszego listingu: [syntax=basic4gl] Rem warstwowa obsługa LCD $regfile = "m32def.dat" $crystal = 1000000 Ddra = &B00001111 '4-7 = output Porta = &B11110000 'pull up Config Lcd = 16 * 2 Config Lcdmode = Port Config Lcdpin = Pin , Db7 = Portc.7 , Db6 = Portc.6 , Db5 = Portc.5...
Przełącznik mechaniczny w mikrokontrolerze? -to taki elektroniczny mezalians.Z uwagi na ważny temat napisze mój programik ' uwaga niedoskonały' $regfile = "m8def.dat" $crystal = 1000000 Config Pinb.1 = Output Config Pind.2 = Input Config Pind.1 = Input 'port do Int0 Set Portd.2 ' podciągam na stan wysoki Set Portd.1 Wy Alias Pind.1 ' zamiana nazwy ReturnWl...
Napisałem taki oto kod: Kod: Dodano po 6 dopisałem enable timer0, teraz widzę jakąs tam poświatę pierwszych trzech cyfr na wyświetlaczu. Po raz kolejny zbyt szybko multipleksuję? Jeśli tak, to czy mogę wpakowac w obsługę przerwania komendę wait? Dodano po 11 teraz jest taki kod: Dodano po 23 Jeśli ustawię ASSR= &B00001000, to będę musiał przerzucić...
Dziękuję Freddy ale wejść jest 23. Nie bardzo rozumiem co do powyższego ma ilość wejść. Nie wiem jaki wynik można osiągnąć ale mogę spróbować sobie popstrykać albo postrzelać karabinkiem ASG do wyłącznika. Mi raczej chodzi o kod który będzie odporny na takie strzelanie. np taki : [syntax=c]ISR(TCC0_OVF_vect) { uint8_t i; for(i = 0; i < inputPortNumber;...
Witam. Mam problem z dziwnym zachowaniem lcd podczas realizacji programu. Program pisałem już dość dawno, kiedy uczyłem się jeszcze podstawowej obsługi timerów. Ale, że problem się zaczął pojawiać również w innym moim programie, postanowiłem napisać na forum, bo nie wiem co robię źle. Posiadam płytkę ewaluacyjną do atmegi32 i atmegi8 oraz kilka wyświetlaczy...
Witam, Do INT0 ATmegi16 mam podłączone urządzenie dające impulsy - łączące masę. Dopisałem filtr na drganie styków, ale jedno rozwiązanie działa, a drugie nie. Wolałbym całkiem wyłączać przerwania tak jak w listingu 1, ale w tym przypadku po upłynięciu timeoutu przerwanie uruchamia się jeszcze raz. Czyli na każdy impuls na wejściu licznik zlicza dwa...
Na chwile wgrałem w procek mój starszy program, który działa, a oparty jest o timer2 z preskalerem 256. Poniżej go zaprezentuję w całości. [syntax=basic4gl] $regfile = "m32def.dat" $crystal = 16000000 Dim A As Word Dim Anoda As Byte Dim Min1 As Integer Dim Min2 As Integer Dim Sek1 As Integer Dim Sek2 As Integer Dim Liczba As Byte A = 0 Anoda = 0 Min1...
olo_3 -> to jest cały kod? ten który tu pokazałeś????? po pierwsze - gdzie masz pętlę główną po części inicjalizacyjnej programu ??? DO ... LOOP - chyba że ślepy jestem czy jak? (jeśli rzeczywiście jej nie masz to nie dziw się, że twój program wariuje bo po z tego co widać po inicjalizacji odrazu program leci do obsługi przrwania i się zapętla na śmierć)...
regfile = "m8def.dat" $crystal = 8000000 Config Pinb.0 = Input Config Pinb.1 = Input Config Pinb.2 = Input Config Pinb.3 = Output Config Pinb.4 = Output Config Pinb.5 = Output Config Aci = On , Compare = Off , Trigger = Rising On Aci Przeciazenie Enable Interrupts Gora Alias Pinb.1 Dol Alias Pinb.0 Zatrz Alias Pinb.2 Wlacz Alias Portb.3 Wej1...
Docelowy uklad bedzie sporo robil > 2 czujniki temp, odczyt godziny z pcf8583 i alarmu, wszystko sterowane pilotem(jak bedzie trzeba to na przerwaniu), jak sie uda to komunikacja z pc przez uart, sterowanie 7 przekaznikami, regulacja rgb przez pwm, obsluga przyciskow bez debounce i waitow, obsluga menu ... Jak pisalem wczesniej powyzszy program to tylko...
Nie bardzo widzę sens stosowania przerwania dopisz Debounce Portd.2 , 0 , Pr_Stop i masz to co chciałeś timer raczej wykorzystuje się do wykonywania procedury w jednakowych odstępach czasu np. licznik sekund itp. ewentualnie do wymuszenia testowania wejścia (wejść) częściej niż czas obiegu głównej pętli programu. Przerwanie może być wykonywane kilka...
Ustawienie dla 16MHz: Config Timer1 = Timer , Prescale = 256 Enable Interrupts Enable Timer1 On Timer1 Mierzymy Cursor Off Mierzymy: Load Timer1 , 62500 'żeby przerwanie było dokładnie co 1s Incr S Natomiast dla 4MHz będzie: Config Timer1 = Timer , Prescale = 64 Enable Interrupts Enable Timer1 On Timer1 Mierzymy Cursor Off Mierzymy: Load Timer1...
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...
Chodzi o te zaznaczone ustawienia z obrazka. Są wstawiane jako domyślne jeśli się ich nie wpisze do kodu. Chodzi o to, że kiedy Bascom skacze do jakiegoś Sub to odkłada na stos te wcześniej omawiane dwa Bajty. W takim Sub już może tego nie widać, ale tez skacze np. do procedury odczytu czujników 1Wire. To już np. cztery bajty a w tym momencie nadchodzi...
Koledzy znając życie to pewnie problem wynika z mojej niewiedzy. Mam podprogram Który ma mi zliczyć czasu załączenia pompy. W tym celu wykorzystałem sobie przerwanie które generuje mi przepełnienie co 500ms. W warunku Flagi 500ms jest zmienna (kala(n))która jest zwiększana co 500ms jeśli pompa jest załączona. Załączam sobie pompę np na 3,5s czyli zmienna...
Witam, zbudowałem duży zegar z pasków Ledowych, sterowany przez Atmega16. Napisałem do niego program sterujący, który niby działa ale ma 2 mankamenty. 1. Zegar wydaje się działać niedokładnie pomimo dodanego zewnętrznego kwarcu 16MHz. 2. Segmenty które w danej chwili powinny być wyłączone (np środkowy przy wyświetlaniu 0) nie wyłączają się do końca,...
Witam, zbudowałem jakiś czas temu zegar LED-owy, z wykorzystaniem taśmy LED i atmegi16. Napisałem do niego program w Bascomie i wszystko niby działa poza jedną rzeczą. Mianowicie nie działają przyciski mające ustawiać czas na zegarze. Czy ktoś byłby tak miły żeby wskazać mi błąd ? :) Program: [syntax=vbnet]$regfile = "m16adef.dat" $crystal = 8000000...
Może chodzi o coś takiego: $regfile = "m8def.dat" $crystal = 8000000 Config Lcdpin = Pin , Db4 = Pind.4 , Db5 = Pind.5 , Db6 = Pind.6 , Db7 = Pind.7 , E = Pind.2 , Rs = Pind.3 'to w zasadzie nie jest potrzebne koniecznie Config Pinb.1 = Input Config Pinb.2 = Input Config Pinb.3 = Output Config Pinb.4 = Output Config Timer0 = Timer , Prescale...
Poradziłem sobie z oledem w ten sposób że, wywaliłem fabryczny obwód do resetu, i podpiąłem pin reset z paska oleda pod atmegę. Kondensator, rezystor i diodę. Podobnie zrobili tu: http://forum.atnel.pl/topic7982-90.html Teraz jest inny problem. Gdy szybko włączam i wyłączam procesor, tzn power down, to procek mi się zawiesza. Pokażę program. [syntax=vbnet]$regfile...
Czy posiada ktoś z was sprawdzony programik do emulacji klawiatury?? W moim projekcie ma ona wysylac tylko kody 2 przyciskow, ale niestety funkcje z Bascoma zajmujace sie emulacja zawarte sa w bibliotece At_emulator.lbx ktorej nigdzie nie ma (jest w sklepie ale za 10Euro), probuje sam napisac komunikacje ale "troszke" mi sie wszystko krzaczy. Ogolnie...
Macie panowie racje. Generalnie to dawno temu zaczlem przygode z bascomem wtedy na 89C4051 ale poleglem i dalem sobie spokoj na wiele lat. Teraz wrocilem do tematu. Zaczalem od prostackich programow gdzie np delay 1sekunda sluzyl mi do mrugania ledami itd. Wstawialem takich delai wiele i mi diodki mrugaly jak cos tam mialem zglosic. Ale zaczalem sie...
Temat ostatecznie zmieniłem. Program działa, jeśli wywalę / "zaremuję" obsługę Wyświetlania baterii-nie napięcia. To jest dziwne, bo adc i reszta jest ok. Ale jek tylko dołożę obsługę wyświetlania ikonek IF-ELSE to procesor nie budzi się. Dodam że automatyczne wyłączanie zrealizowałem na transoptorze, bo inaczej miałem problemy z wybudzaniem. Program:...
Przepraszam że nie podałem kodu ale już to robię: to był kod dla attiny: $regfile = "attiny2313.dat" $crystal = 8000000 Config Pind.6 = Input Config Pinb.3 = Output Config Debounce = 50 Dim Togbit As Byte , Komenda As Byte , Adres As Byte S1 Alias Pind.6 Set Portd.6 Komenda = 12 Togbit = 0 Adres = 10 '***************************************...
witam Nie znam sie dobrze na programowaniu w bascom a chcialem zbudowac sterownik do pieca co, w EDW byl taki projekt i zbudowalem uklad ale temperature pokazuje z 3 czujnikow a jest mozliwosc podlaczenia 4 Mozecie mi pomoc i powiedziec co trzeba zmienic w programie aby sterownik pokazywal temp. z 4 czujnikow? Zalaczam listing. 'czerwiec 2002 'sterownik...
Jeden przycisk (widełki telefonu) ma obsłużyć 3 funkcje: 1 - off - podniesienie widełek, możliwość wprowadzenia numeru do zmiennej realizowana do czasu krótkiego naciśnięcia widełek 2 - on (1-3 sek) - krótkie naciśnięcie widełek i zatwierdzenie wprowadzonego numeru, dalsza rozmowa już w trybie off przycisku do czasu długiego wciśnięcia widełek - odłożenie...
Drodzy koledzy mam taki program wyświetlam czas z pcf 8583p na zmianę z temperaturą z ds18b20 . Chcę by ktoś doświadczony pomógł mi zoptymalizować kod oraz wytknął złe pisanie .Wyświetlam na 4 x 7seg więc wyswietlam czas bez secund i temperaturę całkowitą i dodatnią bo i tak nie udało mi się tego wyświetlić . Oto co wyskrobałem[syntax=vbnet] $regfile...
debounce przerwanie debounce debounce debounce przerwa
brother komunikat wymień toner oznaczenia elektroniczne volvo silnika
iveco 35c13 schemat kolumna węglowo
Wymiary basrefleksu w kolumnach Tonsil Voyager SAT 120 Wypadanie zapłonu w cylindrach 2 i 3 w BMW - przyczyny i diagnostyka