na każdym który napiszę jest tak samo, w nowym temacie powyżej podałem ustawienia fuse bitów, zaraz wkleję kawałek na którym teraz się bawię Dodano po 4 to kod na którym teraz się bawie '**************************...
Witam Piszę sterownik grzałki lutownicy. Sam sterownik wstępnie działa dobrze. Natomiast po wykryciu obrotu enkodera w prawo lub w lewo zwiększam lub zmniejszam wartość zmiennej NASTAWA i wysyłam po UART do komputera oraz wyświetlam na LCD od nokii 3310. Co jakiś czas w wyświetlanym tekście zarówno...
Bascom - wersja 1.11.95 Kod, no jest tego sporo: - zegar PCF8563 - Zapis na SD - dwa czujniki DHT11 - odczyt z PCF8574AP ( klawiatura ) - RC5 - ma być DS18B20 - ma być DCF77, ale nie doszedłem do tego momentu ( tzn testowałem na innym procesorze i działało ) Działa - zegar PCF8563 - dwa...
Witam Pisalem kiedys program do sterowania robotem (manipulatorem ) w bascomie. Zliczal on miedzy innymi impulsy z 3 enkoderow. i wszystko ladnie chodzilo: Fragment kody ktory zlicza impulsy z 3 enkoderow: //enkoder 1 Enk1_a Alias Pinb.0 Enk1_b Alias Pinb.1 //enkoder 2 Enk2_a Alias Pinb.2 Enk2_b...
Poczytaj o przerwaniach Dodano po 2 Jak ja sie bawilem enkodery posty tutaj na forum mi pomogly. Zrob to na jednym przerwaniu i napisz wlasny program. Ta komenda enkoder= jakos dzwinie dziala Dodano po 13 '******* procek ******* $regfile = "m32def.dat" $crystal...
To niestety nic nie daje, bo właśnie o to chodzi aby podczas wykonywania przerwania od timer2(enkoder), gdy Timer0 się przepełni, procesor powinien zawiesić przerwanie (enkoder) i przejść do obsługi przerwaia od Timer0(czekaj). Chyba mnie źle zrozumiałeś.... zrób tak: Czekaj: Disable Timer1...
Witam Posiadam silnik z dołączonym enkoderem i tarczą (z drukarki), steruję prędkością obrotową za pomocą PWM, natomiast przerwanie INT wykorzystuje do zliczania obrotów silnika. Problem polega na tym że zliczanie obrotów silnika bez uruchomionego PWM działa poprawnie, gdy go włączę szaleje (nawet...
Nie napisałeś jak obsługujesz wyświetlacz. Jeśli nie sprawdzasz zajętości tylko odczekujesz jakiś czas przy wysyłaniu danych to być może przerwania przychodzą zbyt często zanim dane zostaną wysłane do wyświetlacza i sie coś psuje. Sama obsługa przerwania trwa może zbyt długo.
Łap. Naciskając przycisk enkodera wybierasz czy ustawiasz sekundy czy minuty. Mikrokontroler przykładowy żeby tylko kompilator błedy sprawdził. Podstaw swój i swoje wyprowadzenia. [syntax=basic4gl]$regf... = "m328pdef.dat" ' config for encoder_switch Config Portd.4 = Input : Przycisk Alias Pind.4...
Jest tego sporo, DCF77, 7 x DS18B20 i DHT11 ( akurat jeśli chodzi o niego to mam wątpliwości, czy ten kod działa, bo jest na obydwu płytkach podpięty i zdarza się zawieszenie ) Nadajnik Atmega328p Dodano po 16 Odbiornik Atmega644P - trochę zmieniłem obsługę przerwania, wydaje mi się,...
W obu programach masz błąd. W pierwszym: Akurat kod tu nie ma wiele wspólnego zrobiłem to na dwa sposoby i za każdym razem inne wyniki Widać że jednak ma. Chyba to rozgryzłem Proszę mnie poprawić jak się mylę No teraz by było. Przerwanie Int nie dzieli przez 256 więc masz przerwanie co impuls. Tylko...
Jak wyłączysz od razu przerwanie to przeważnie drganie styku nie ma już na to wpływu. Ostatnio walczyłem z enkoderem mechanicznym 24 imp. na obrót i działa bez problemu.
Na rysunku pokazałem podłączenie transoptorów (drugi podłączony jest do INT1) Do tego samego zasilania podłączony jest L293D. Oczywiście masa z proca jest połączona z masą aku. Na pinie INT0 jest normalnie stan wysoki, przesłonięcie szczeliny powoduje zwarcie pina do masy i inicjuje przerwanie. Programuję...
Witam... i temat zamykam :-) Zastosowałem jednak obsługę enkodera na przerwaniu Int1. Jedno z wyprowadzeń podpiąłem pod Int1, przerwania ustawiłem na wyzwalane opadającym zboczem a w samym przerwaniu sprawdzam co jest na drugiej "nodze" enkodera i zmniejszam lub zwiększam wybraną daną a którą wiem...
Zgadzam się z kolegą wyżej. Ja w przerwaniu robie tak: Getencoder: 'Wywołane przez przerwanie zboczem narastającym (Config Int0 = Rising) Waitus 100 If Pind.1 = 1 Then Decr Steps If Steps > 999 Then Steps = 0 ...
Cóż, nie jest to znana mi metoda obsługi enkodera, ale chyba ciekawsza... Natomiast nie widzę tu operacji na przerwaniach.... To prawdopodobnie powoduje błędy, chyba, że się mylę. Ale enkodery to zawsze zagadka dla mnie były więc wiele nie pomogę.. Pozdrawiam.
Witam. Proszę Kolegów o podpowiedź jak z impulsatora sterować wyjściami : jeśli kręcę w prawo załączony np. portc.1 a w lewo portc.2. Port powinien być w stanie załączenia tylko w momencie kręcenia w danym kierunku , po zaniku ruchu wyjście ma być wyłączone. Oto część kodu wyzwalana przerwaniem: ...
Tomaszek_ A co ma timer do tego? Zmienna A zwiększa się o 1 podczas przerwania od pinu INT0. Też nie jestem za zwalaniem winy na Bascom. Nigdy mi się nie zdarzyło żeby Bascom namieszał coś.
Witam. Może ktoś z szanownych forumowiczów spotkał się z programową obsługą enkodera (choć zwią to różnie) - to takie urządzonko przypominające z wyglądu potencjometr obrotowy ale jego oś kręci się w koło a w środku są styki. Jeśli kręci się w prawo to w pierwszej kolejności zwiera styk środkowy z prawym...
na wejścia podłączony jest enkoder(pierwszy zrobiłem z myszki komputerowej) w zależności na którym wejsciu pojawi się pierwszy impuls to przerwanie jest obsługiwane jako pierwsze . może cos z tego skorzystasz. obsługa przerwań jest na dole Dodawanie: i Odejmowanie:. Ale Panowie litości w krytyce to...
jakby kolega na początku napisał o co mu chodzi to było by mniej problemów. Q1. Czy jeśli ATTINY2313 jest traktowany częstotliwością 20 MHz oznacza, że przerwanie timera może być równie często generowane? niestety nie. 20MHz to czestotliwośc taktowania, timerów i rdzenia. samo wywołanie przerwania...
Poszukam nowszej wersji Bascoma, w której działa polecenie encode i mam nadzieję że zadziała to wszystko bo już zaczynam się denerwować. Przeciesz to tylko przełącznik. Na przerwaniach mi niby jakoś tam działał ale to nie to czego oczekiwałem, a przerwania na timerze nie chce robić bo w programie nie...
Zmiana bramki z 74hc20 na 74hc21 powinna załatwić sprawę. Oczywiście pod warunkiem że wszystkie wejścia enkodera są po włączeniu w stanie wysokim.
To na razie wersja robocza więc sporo niedociąnięć, muszę jednak zacząć rezygnować z bascoma. Niby już wszystko było OK, ale gdy tylko w pętli głównej przed wyświetlaniem chciałem zamaskować wynik poleceniem fusing, znów jakieś głupoty zaczęły się dziać. Nie mam już nerwów. $crystal = 8000000 $regfile...
Witam, w moim projekcie wykorzystuje enkoder, ale żeby przejść do następnego podprogramu, potrzebuję przycisku. W tym problem, ze używam instrukcji encoder() Próbowałem obsługiwać przyciski w pętli w której znajduje się ta instrukcja, ale w tym problem że stopuje ona całą pętlę, aż do przekręcenia enkodera. Dobra,...
Wystarczy ustawić sprzętowe przerwanie int0 np narastającym zboczem kanału A - w momencie przerwania sprawdzić stan kanału B enkodera i stosownie do jego stanu zmniejszyć lub zwiększyć stan licznika o 1.
Wpisywanie $CRYSTAL bez rzeczywistej zmiany taktowania procesora będzie powodować, że wszelkie opóźnienia i obliczenia kompilatora dotyczące liczników nie będą zgodne ze stanem faktycznym. GETRC5() korzysta aktywnie z licznika TIMER0. Tak manewruje wartością wpisaną do rejestru licznika oraz preskalerem...
Kursor jest zawsze na 1,1 i tylko piszesz LCD... Ale... W programie kiedy kręcisz enkoderem i coś ma sie zmienić to na końcu piszesz Call Odswiez_lcd a sub sam okresla co bedzie wyswietlał Użyłem zmennej refresh, jeśli 1 to ma wyświetlić, a to "home" mam ustawić tak jakby przed warunkami case,...
Podmień jeszcze procedurę obsługi przerwania. Tak jak na filmie dopisz "Nosave" po "Timer1_isr" w linii konfiguracji Timera i podmień te procedurę na taką: Na wszelki wypadek poniżej cały kod z filmu. [syntax=vbnet]$regfile = "m128def.dat" $crystal = 8000000 $hwstack = 40 $swstack = 16 $framesize...
Jaki będziesz miał wyświetlacz? Alfanumeryczny że string będzie ok? Czy może LED lub LCD segmentowy? Żeby zmieniać wartość enkoderem trzeba go obsłużyć... Enkoder ma przycisk? Zatem weź zmienną Word w której będziesz zmieniał nastawy np. [syntax=vbnet]dim wartosc as word dim index_wartosc as...
Wiec trochę to trwało by cokolwiek napisać ( brak programatora działającego z bascom trochę mnie stopował) Zrobiłem juz prosty algorytm tego co potrzeba zrobić i podzieliłem prace na 4 etapy: 1) wejścia adc dla map sensora ( zrobione ;) 2 wejście dla enkodera ( muszę zakupić...
Właśnie o to chodzi że zmienna ma ciągle inną długość,jest to licznik rewersyjny i dlatego wymysliłem kasowanie spacjami w ilości maksymalnego rozmiaru wyświetlanej liczby.W przerwaniu mam zrobione liczenie do enkodera a wyświetlanie jest wywoływane z pętli głównej jako procedura więc nie ma kolizji.
Daj schemat. Jak to jest enkoder od myszki, mozna postarac sie zrobic to najpierw na przerwaniu.
witam mam problem z wybudzeniem tego proca. przycisk jest podłączony pod int0 proca w programie głównym przycisk robi za enter ale jak się go dłużej trzyma to program skacze do powerdown i teraz nie mam pojęcia jak go wybudzać tym samym przyciskiem używając przerwania ? Do If Fun = 6 Then Fun...
Z tym priorytetem to nie do końca jest tak jak myślisz. Dziala to tylko w przypadku jednoczesnego otrzymania sygnału przerwania, natomiast po wejsciu do przerwania od licznika obsługa przerwania z enkodera zostanie zawieszona do momentu ukończenia obsługi licznika. W twoim przypadku w niczym to nie przeszkodzi...
Witam. Mając trochę wolnego czasu postanowiłem wrócić do zmagań z PIDem. W sieci znalazłem program PIDa w Bascomie na Atmegę8 (maluszek Attiny2313 okazał się niestety za mały). W programie wyłączyłem różniczkowanie - aby było łatwiej. Program działa dość dobrze tzn. obroty utrzymują się na żądanym...
Teraz to już nie wiem co Ty chcesz stworzyć , gotowy projekt na LM7001 z którego chyba korzystasz , rozumiem że chcesz w inny sposób wprowadzać zmiany częstotliwości ale nie możesz do tego używać portu C na którym masz LCD , Port D.2 , D3 to enkoder wykorzystujący przerwanie . Masz gotowy projekt wystarczy...
Wykonałem syntezę do radia ze strony . Generator i separator działa, scalak syntezy LM7001 pracuje z kwarcem 7,2MHz, po wyjęciu jego Atmega prawidłowo "milczy" tzn. brak wtedy wyświetlania częstotliwości zmian na enkoderze itd. Ta część programu działa ale nie steruje LM7001 synteza nie "łapie"....
Akurat takich mam dostatek, jednak nie bardzo rozumiem, jak wykożystac sprzętową obsługę w bascomie W helpie jest opisana funkcja ENCODER(), zatem może warto najpierw te parę zdań przeczytać? W obsłudze przerwania sprawdzasz stan wejść i porównujesz z poprzednim stanem Nie zapominajmy o drganiu...
Oczywiste że tak zawsze będzie. Tym licznikiem możesz liczyć tylko impulsy które są ukształtowane np z enkoderów, natomiast dla styków mechaniczynych musisz albo je ukształtować sprzętowo, albo zrobić debouncing programowy. Chodzi o to, aby z sieczki krótkich impulsów które powstają po wciśnięciu przycisku...
Witam, analizator zobaczył tylko ja specjalnie to zwęziłem żeby było widać zarys całego przebiegu,. Teraz tez już wiem, że pomysł stosowania przerzutnika D jest raczej bezcelowy. Bo i tak w programie trzeba sprawdzać stan na pinie kierunku. Oczywiście najlepszym rozwiązaniem jest zastosowanie bramek...
Problem wygląda następująco, zaistniała potrzeba zrobienia stabilizacji obrotów silnika na poziomie 500 do ok 2000 obr/min enkoder 8 imp/obrót napisałem coś takiego, i pomimo tego że w teorii powinno utrzymywać obroty na poziomie ok 9000 to utrzymuje je w okolicach 1500. [syntax=vbnet]$regfile =...
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. Bzdura. Przerwania będziesz miał wyłączone na max kilka cykli. Po włączeniu przerwań jeśli w międzyczasie nadeszło...
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....
Witam wszystkich serdecznie ! Z racji tego, że zbliżają się święta postanowiłem podzielić się z wami projektem elektronicznego drzewka szczęścia. Urządzenie powstało prawie rok temu i było prezentem urodzinowym dla mojej dziewczyny którą serdecznie pozdrawiam !!! :D Założenia do projektu:...
Witam! Przedstawiam wam w pełni automatyczną domową windę osobową! Jest to mój największy, najbardziej skomplikowany, i najdroższy projekt którym chwaliłem się jakiś czas temu w dziale „DiY w budowie”. () Na początku liczyłem że napiszę coś do poczytania dla ludzi na kwarantannie,...
Mam rozumieć, że układ zliczał prawidłowo, jeśli nie wykorzystywałeś INT0. Jeśli tak, to ja mam taką teorię: enkoder podaję impulsy o częstotliwości 250kHz (impuls co 4us), w czasie 100ms, takich impulsów może przyjść 25000. Z racji że opóźnienie jest programowe, każde wywołanie przerwania INT0, powoduje...
Napewno masz rację bo na 51 tak miałem niestety prawie 5 lat temu. Teraz już szkoda się bawić w 51 dlatego padło na AVR - zestaw uruchomieniowy na ATmegę128 ma znajomy dlatego padło na 128 (swój mam dopiero nabyć). Będę pisał w BASCOM-ie bo już w nim pisałem. Samo napisanie raczej nie będzie problemem...
Czytam i sam się pogubiłem hehe . Czy tu chodzi o względne przesunięcie (tmf) czy bezwzględne (satanistik). Parę miesięcy temu robiłem sterowanie PID dla servo Xmega w bascom . [youtube][/youtube] Nie obyło się bez problemu , który polegał na zliczaniu bezwzględnym więcej niż 65535 impulsów . Mój...