Witam, Mam prosty ukad testowy podłączony do atmegi16 z kwarcem 16MHz. Układ wygląda tak że do naruszenie odpowiednich pinów portu C powoduje zadziałanie odpowiedniego pinu Portu D. W pewnym momencie na samym początku kodu zaraz po konfiguracji portów wstawiłem wpis UCR=0 Chciałem w ten sposób wyzerować rejestr UART'a. Jednakże w po tym wpisie przestały...
Witam! Poniżej przedstawiam kawałek programu do obsługi silnika krokowego z układem A3972. Procek komunikuje się szeregowo z ów układem, problem tylko w tym że za wolno... nawt nie trzeba stosować opuźnien przy zmianie stanu portu ( np.: DTA czy CLK)!!! Program oczywiście w bascomie, proszę o opinie czy da się coś jeszcze z tego bascoma wycisnąć, czy...
Tak właśnie myślałem że używanie przerwań i poleceń wait nie jest dobrym rozwiązaniem. Dzięki za odpowiedź. To nie ma nic wspólnego. Po to są przerwania żeby w ten sposób z nich korzystać. Natomiast twój problem bierze się z całkowicie czegoś innego. Po prostu tak napisałeś przerwanie i tak często je wykonujesz, że u ciebie w tym konkretnym przypadku...
Witam, ostatnimi czasy potrzebowałem wykonać projekcik do sterowania jasnością diody. Przeczesałem elektrodę, kawałek polskiego internetu i książkę do Bascoma. Układ, który wykonałem działa poprawnie, ale gorzej jest z softem. Niestety nie bardzo wiem gdzie szukać rozwiązania problemu. Attiny2113 działa na wewnętrznym oscylatorze. Oto mój kod. For A...
Nawet przy pisaniu w bascomie w pewnym momencie nie da sie zyc bez pzytania datasheeta. A bez poczytania , wogóle się da :?: ...albo nazwe rejestru i numer bitu i tez przypisuje stan. przykladowo SFIOR.3 = 0 Jeśli już , to czy nie jest "ładniej" używać nazw bitów Sfior.acme = 0 Wracając do meritum , to chciałem , by pepin0 wyczytał z manuala , że INT2...
Bascomem juz całe wieki się nie bawiłem, ale wydaje mi się, że najprostsze rozwiązanie to: 1. Zadeklarować jakąś zmienną typu bit 2. Po wciśnięciu przycisku należy: -sprawdzić stan tej zmiennej -wyświetlić odpowiedni napis na wyświetlaczu (np TAK dla wartości zmiennej = 1 lub NIE dla wartości zmiennej równej 0) -zmienić wartość zmiennej na przeciwny...
Witam ponownie !!!! Kolega Zumek świetnie to napisał. Ja uwzględniłbym jeszcze czasy wykonania warunku L1=30 i sprawa załatwiona. W obsłudze tego przerwania można dopisać jeszcze dwa warunki i sterować dwoma dodatkowymi częstotliwościami. (M.) Dzięki za uznanie :) Czas "wykonania się" przerwania niema tu żadnego znaczenia,a czas od rozpoczęcia obsługi...
Witam Mam Atmega32A + PCF8563 + PCF8574 + RFM12 + DS18B20 +DHT11. Port danych LCD to Port.A, ControlPort to Port.C. I2C standardowo na Portc.0 Portc.1. Niestety jest problem z obsługą I2C, tzn. zegar PCF8563 nie działa w ogóle ( na LCD puste pole ) , a klawiatura na PCF8574 - tylko jeden klawisz i to nie ten, który jest przypisany w kodzie ( działa...
Witam. Jestem początkujący w programowaniu więc proszę o wyrozumiałość. Potrzebuje program sterowania klapą (otwieranie i zamykanie dwie krańcówki góra dół i silnik lewo prawo). Chce aby jazda w gore lub w dol odbywała się w momencie zmiany stanu pewnej zmiennej zewnętrznej konkretnie zboczem rosnącym. Wyczytałem, że w Bascomie można zrealizować t przerwaniem...
Witam Mam program budzika, który jako dodatkową atrakcję miał mieć możliwość mówienie czasu na żądanie i odtwarzanie oprócz buzzera utworu jako alarmu. Atmega steruje przez jedno SPI programowe układem MAX7219, a przez konwerter poziomów i drugie SPI programowe odtwarzaczem WTV020SD. O ile sam WVT020SD + PCF8563 ( wyjście CLK do INT1 ) działają dobrze,...
Witam jak mogę zmienić wyjścia pinów na stan niski . Program napisany w BASCOM. [syntax=vbnet]$regfile = "m16adef.dat" ' specify the used micro ' generated. Take care that the chip supports all fuse bytes. $crystal = 8000000 $baud = 19200 ' used crystal frequency ' generated. Take care that the chip supports all fuse bytes. Config Lcd = 16 * 2 Config...
No właśnie. A jak sprawdziłeś że nie działa? Skąd wiesz napewno?. U mnie po skompilowaniu też działa ale nie to jest problemem. Zastanów sie najpierw jak ma działać ten program i dlaczego warto wstawić opóźnienie po każdej zmianie stanu.
Oto kod: If Portb.1 = 0 Then Toggle Portb.2 każdorazowe pojawienie się 0 na portb.1 spowoduje zmianę stanu portb.2 Pozdrawiam.
Witam, Napisałem kawałek programu który ma generować przebieg na porcie b.0 około 9ms - stan wysoki około 4,5ms - stan niski Użyłem do tego licznika, żeby odmierzał czas, dokładność tutaj akurat nie ma znaczenia. Problem w tym że nie działa to jak należy, tzn wykonuje się tylko jeden podprogram. Wiem że jest coś nie tak, bo po przepełnieniu licznika,...
Witam ! Buduję właśnie kolejne urządzenie i skończyły mi się właśnie wolne piny w moim mikrokontrolerku. zabrakło ich do sterowania kontrolkami na panelu. Postanowiłem dobudować zewnętrzny expander i teraz moje pytanie. Czy można w Bascom-ie jakoś zaadresować konkretne bity w bajcie tak by można ich było oddzielnie w programie używać ? Do ekspandera...
Witam Mam tak, jak w kodzie poniżej obsługiwane przyciski i pilot NEC. [syntax=vbnet] '********************* obsługa pilota '******** ustawianie stanu bitu If Command = 104 And Blokuj_pilot = 1 Then ' klawisz 1 Blokuj_pilot = 0 Licznik_blokuj_pilot = 0 Klawisz_1 = 1 Command = 0 Licznik_zeruj_led = 0 ' zerowanie licznika powrotu do wyswietlania godzin...
Witam was Serdecznie! Często wykonując różne układy niezbędne jest wykonanie płytki PCB. Samo stworzenie mozaiki w programie komputerowym jest przyjemnością, natomiast fizyczne wykonanie jest zupełnym przeciwieństwem. Wykonując dany projekt po przygotowaniu płytki już do trawienia korzystałem ze szklanego dużego naczynia do, którego wlewałem wrząca...
no ciezka sprawa z tym, przynajmniej dla mnie :( jesli chodzi o wykresy to mowia one w jaki sposob trzeba wysylac impulsy z pinow procka przykladowo: jeden pin procka to CL (zegar), na ktorym wystepuje przebieg prostokatny drugi pin procka do DI (czyli dane), w momentach zmiany stanu w przebigu zegarowym (CL) z L na H linia danych musi miec odpowiedni...
Dziękuję za odpowiedzi obecnie program wygląda tak: „ $regfile = "m8def.dat" Config Portc.2 = Output Config Portb.0 = Input Do If Portb.0 = 0 Then Portc.2 = 0 If Portb.0 = 1 Then Portc.2 = 1 Loop End " Kompilacja i programowanie bez problemu ale wejście portu B.0 (sprawdzałem na B.1 tak samo) nie reaguje na zmiany stanu. Port B.0 jest podpięty...
błąd weryfikacji jest tam spowodowany przez wysterowanie pinów przez system - procek np widzi dodatkowe cykle na spi i się sypie komunikacjia niemożność zaprogramowania procka jest tym samym - zmiana stanu pinów wejściowych podczas wchodzenia do trybu programowania może sprawić, że kontroler niewejdzie do trybu programowania (zła sekwencja wchodząca...
No i następnej sprawy nie rozumiem. Dlaczego ten licznik liczy do 99999 a nie "po bożemu" do 65535? Przynajmniej tak się wyświetla. I z 1000 przy decr "zmniejsza" się na 9999? 'Program do sterowania małych silników krokowych za pomocą ATMega8 i układu L6219 lub LB1845 'sterowanie ćwierćrokowe, zasilanie 30V 'set i reset zastosowałem w celach poglądowych-...
Witam buduje taką mini stacje pogodową i zatrzymałem się z obsługą ds-a co w tym może być nie tak ? W książce którą posiadam jest tylko obsluga 1820. Docelowo mają być 2 czujniki na 2 liniach. Zrobie to dublując kod . Jednak przy jednym nic nie działa wyświetlacz zostaje cały czarny bez czujnika , i z nim też . Oto kod: '###STACJA POGODOWA BY GEGE97##################################...
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 by otrzymać jednakowe odcinki czasu zliczane później...
Witam. Nie wiem czy to jest możliwe, ale potrzebuje dodatkowej funkcji w termostacie, by zliczała ile razy dany port miał zmianę (Chodzi tu konkretnie o liczbę kliknięć przekaźnika) Zrealizowałem to poprzez: [syntax=basic4gl] If Przekaznik1 = 1 Then Incr Licznikprzekaznika1 End If If Przekaznik2 = 1 Then Incr Licznikprzekaznika2 End If[/syntax] Zmienną...
Nie skacze do pętli tylko do podprogramu, wogóle to ten pierwszy program miał nieprawidłową strukture. Troche inaczej się powinno pisać, dioda jeszcze przejdzie, ale rozbudować ten progam to juz cieżko. Proponuje urzywac przerwan do takich celów. Ułatwia prace, program jest czytelny i przejrzysty. Tj. tworzysz pusta pętle (ew. z komendą debounce) Po...
Kiedyś zdeasemblowałem procedurę obsługi RC5 z bascoma (bo chciałem napisać odpwiednia procedure w C lub asm). Niestety ta obsuga RC5 jest mocno niedoskonała , a jedyną jej zaleta jest niezalezność od czestotliwości kwarcu ale zauważyłem że poniżej pewnej wartości nie działa (ile niepamietam ale chyba cos ok.2MHZ). Procedura obsługi po przyjeciu przerwania...
Witam ! Uruchamiam program na Atmega644 w Bascomie i napotkałem ciekawy problem. Wkleję kod i wyjaśnię poniżej. Sub Wykonaj_regule_in(wri_reg As Byte) Wri_out = Wej_par_2(wri_reg) 'odczytaj numer wyjścia Wri_out = Wri_out And &B00000111 Wri_rw = Wej_par_2(wri_reg) 'odczytaj reakcję wyjścia Wri_rw = Wri_rw And &B00111000 Shift Wri_rw , Right...
Cześć. Ja myślę tak : Proponuje czujnik Halla i dokonywać pomiaru między zmianami stanu. Dla uśrednienia powiedzmy zliczać 5 zmian i dzielić przez 5. Najdokładniej (przynajmniej dla mnie by było) Bo jeśli weźmie się kontaktron i liczy powiedzmy przez 2 sek. (zakładając 1,2 obr. na sek.) to koło może wykonać 2,5 obrotu a policzy nam 2 czyli oszuka nas...
Witam Mam problem polegający na tym, że potrzebuje napisać program, który po odczytaniu stanu niskiego na pinie np. pinb.0 utrzyma ten stan przez ok. 2 sekundy. Wygląda to tak: Mam diodę nadawczą i fototranzystor podlączony do pinu procesora. Gdy sygnał z diody nadawczej dociera do fototranzystora to procesor odczytuje stan wysoki. Gdy coś przerwie...
Odkopuje temat. Jak tym sterować? (w Bascomie) ustawic jako stan poczatkowy DS, SH I ST na 0. Wysłać jakis stan logiczny na DS, ustawic SH na stan wysoki potem ST na wysoki i na odpowiedniej końcówce Q pojawi się stan wg wartości przesłanej w DS? Tylko na ktorej koncowce pojawi sie ten stan? Q0 czy Q7? czy musze powtarzac procedure dla kazdej koncowki...
Flaga to taki znacznik, że coś się zmieniło. Żeby nie wysyłać całej litanii znaków, to wysyłaj tylko informacje o zmianie stanu przycisku. Jeśli był 0 a jest 1 to wysyłasz, jeśli nadal jest 1, to nie wysyłasz nic, bo wcześniej już poinformowałeś drugi procek o zmianie stanu.
Miałem niedawno problem jak rozwiązać problem wielu hardware'owych uartów. Przychyliłem się do rozwiązania, w którym połączę parę układów AtTiny2313 przez SPI. Próbowałem nawiązać transmisję. Wszystko byłoby ok, gdyby nie to, że gdzieś gubią się bajty... Kod wygląda tak: SLAVE $regfile = "m32def.dat" $crystal = 16000000 $baud = 31250 Dim Cosik...
nie... zmienilem TYLKO i wylacznie czestotliwosc wewnetrza generatora RC z 9,6Mhz na 128Khz... Reset działa ponieważ z poziomu bascoma wciśnięcie reset powoduje chwilową zmianę stanu pb.3 (podpięta dioda) - więc racze reaguje
Witam Postanowiłem zbudować miernik odległości wykorzystujący ultradźwięki. Zakupiłem 2 czujniki w TME Jednego używam do wysłania fali a 2-go do odebrania. Po przejrzeniu postów na Elektrodzie i innych www zbudowałem poniższy układ w załączniku (PDF). Program napisałem a Bascomie ale NIESTETY NIE DZIAłA. Oto on $regfile = "m8def.dat" $crystal...
Witam, od kilku dni męczę się z podobnym problemem (piszę w Bascomie AVR 1.11.8.3). Juz sam nie wiem co jest nie tak. Programator działa poprawnie. Mogę odczytać sygnaturę układu(ATtiny26) jak również załadowac program (przez ISP programer Dybkowskiego) plik hex (cykliczna zmiana stanów na wyjściach portów)- napisany celem sprawdzenia programatora i...
Przerwanie od timerów to zbiór instrukcji, które zostają wykonane w przypadku przepełnienia licznika, asynchronicznie, czyli niezależnie od wykonywanego w danym momencie kodu (chyba ze jest to inne przerwanie). Nie wiem jak wygląda obsługa przerwań w bascomie, ale mogę wytłumaczyć o co "biega". A więc 8-bitowy licznik ulega przepełnieniu co 256 cykli...
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...
:-) tak zgadza się trzeci efekt uboczny GOTO - działające przerwania, faktycznie trzeba by zrobić najpierw disable interrupts. Jednak z trzech opcji wolę watchdoga jako najbardziej bezwzględną metodę :-) Ten miernik co linkowałem to nie oscyloskop... ale analizator RS232 z dekodowaniem transmisji i pomiarem czasów każdej zmiany stanu. Celowe "zamulanie"...
Witam.Piszę soft który ma na celu obsługę kart SD i LCD od 6100.Samą obsługę LCD opanowałem (na atmedze8) jednak nie wiem czy SD będzie działać.Jako kartę wykorzystam m2 1gb (została po starym telefonie).Jak na razie nie mam dostępu do atmegi bo właśnie co ją spaliłem jednak pytam się o poprawność softu.Jak widać w sofcie brakuje jeszcze odczytywania...
Witam Mam taki oto problem: robię sterownik silnika krokowego unipolarnego na ULN2003, obecnie jest podłączony zabawkowy 28BYJ-48, jednak mimo zdefiniowania sekwencji sterowania półkrokiem (8 zmian stanów na cykl) i pełnym krokiem (4 zmiany stanu na cykl) efekt mam taki sam - silnik obraca się o identyczny kąt przy zadanej takiej samej liczbie kroków...
No to robi się jeszcze prościej: - najpierw sprawdzasz czy aktualnie masz pełną godzinę: coś w stylu [syntax=c]if (minuty==0 AND sekundy==0)[/syntax] - wewnątrz tego warunku ustawiasz sobie bit [syntax=c]if (czas start > aktualna godzina) set bit[/syntax] - a nastepnie sprawdzasz warunek wyłączenia [syntax=c]if (czast start < czas stop) { if (czas...
Na wait-ach to był prototyp do potwierdzenia teoretycznej wiedzy o regulacji fazowej :D już zrobiłem na przerwaniach i śmiga nic nie przycina podczas odbioru danych z pilota wystarczyło trochę pomyśleć i działa. Ciekawe dlaczego w bascomie nie ma możliwości skonfigurowania przerwania INT1 tak żeby reagowało na każdą zmianę stanu jeżeli procek ma taki...
Przy takim napisaniu programu funkcja debounce nie jest potrzebna bo jest wait 1 i to ona przytrzyma informacje o stanie przycisku. Wyrzuć " Set Porta.2" bo w tym przypadku nie jest potrzebne, jeśli definiujesz porty jako wejścia to będą podciągane do góry wewnątrz procka. Poza tym ducker1 dobrze napisał. W Bascomie aby zobaczyć stan rejestru odpowiadajacego...
mając tyle przykładów na Elektrodzie i w sieci , nie potrafisz zrozumieć tak prostego sterownia to Twoja wiedza o Bascomie nie jest zbyt wysoka masz na szybko zrobiony program z danymi w tablicach , zmiana stanu na pinach portu C.0 i C.1 uruchamia silnik w wybranym kierunku 'test 'sygnały dla silnika na Portd.4 do Portd.7 'Portc.0 i Portc.1 ustalenie...
Nie mam zewnętrznego kwarcu podłączonego, w fuse bitach jest ustawiony 1MHz, nic nie zmieniałem tam. Pewność mam, bo tranzystorami steruje dobrze z odpowiednimi czasami. Kolego czemu jesteś taki uparty - przecież chcemy Ci pomóc. Nic nie stoi na przeszkodzie (oprócz Twojego uporu), abyś dodał w tej pętli co wyświetlasz tekst na LCD zapalanie i gaszenie...
Czy jak w Bascomie Avr, zapisuję zmienną X do pamięci EEPROM, to muszę wyłączyć przerwania. ? Bo to wygląda tak , że kręci się pętla główna Do...Loop. Jeżeli w tej pętli zostanie wykryta zmiana stanu zmiennej, to jest nowa wartość wpisywana do pamięci. Dodatkowo działa Timer0 do obsługi wyświetlaczy, przerwanie co 4ms Jeżeli w czasie zapisu do pamięci,...
Witam . Napisałem ( prawie) sobie na ww procesor program w asm i bascomie który ma robić za zamek otwierany kartą . W bascomie wszystko działa w 100 % według założenia jednak w asm mam taki problem że układ sam zmienia swoje taktowanie (ponad 2x) przez co wszystkie funkcje czasowe nie pracują jak powinny . Nie było by w tym nic niezwykłego ( ustawiony...
Witam Tak jak w temacie mam napisałem program w bascomie który ma za zadanie zapalać cztery diody led po odebraniu po RS232 cyfr od 1-4 i chodzi to bez problemu ,ale teraz gdy uczę się języka C postanowiłem ten sam program przenieść na C i już nie jest tak dobrze.Objaw jest taki gdy wyśle 1-Zapalają się i gasną diody "STROBO I KULA" gdy 2-Tak sama 3-Też...
Najprostszym rozwiązaniem wydaje mi się wygenerowanie sygnału wspólnego (tutaj mającego 3 stany: oba_puszczone, mieszany, oba_nacisniete) oraz operowanie na jednej pomocniczej zmiennej "gotowosc" - cykl zacznie się tylko wtedy, kiedy sygnał wspólny jest w stanie oba_nacisniete a układ jest gotowy - wtedy nastąpi rozpoczęcie procesu oraz skasowanie gotowości....
Kompletnie zły zapis z tym xor'em. Zauważ, że (PIND&_BV(2)) przyjmuje wartości 0x00 oraz 0x04, podczas gdy (PIND&_BV(7)) 0x00 oraz 0x80. W jednym kierunku (przy zmianie stanu na PD2) stany są przeciwne, więc cały warunek zawsze jest fałszywy i występuje zmniejszanie. W drugą stronę albo oba są równe 0 albo jedno jest równe 0x04 a drugie 0x80. Sam xor...
Problemem przy programowej obsłudze koderów przyrostowych jest to, że układ działa poprawnie jeżeli program przechwytuje kolejne (wszystkie) stany kodera. Jeżeli program krąży w pętli to działa asynchronicznie w stosunku do zmian wejść i dekoder głupieje, bo dostaje niepoprawne następstwa stanów i jeżeli obsługuje je w sposób uproszczony to efekt jest...
Poprawiłem tytuł na bardziej oddający problem i zgodny z regulaminem p. 3.1.15. Ponadto proszę się zapoznać z zasadami korzystania z działu: LordBlick Witajcie. Oświećcie mnie dlaczego ten program nie działa tak jak powinien. Przełączam przełącznik który pin PB1 zwiera do masy (pojawia się zbocze opadające na INT0) program przechodzi do obsługi przerwania...
Witam. Proszę o pomoc w zmianie sterowania z tych paru przycisków na jeden. Dokładnie chodzi o to, żeby można było zmieniać podprogramy jednym przyciskiem i żeby nie trzeba było czekać na zakończenie podprogramu lub resetować. Z góry dziękuje. [syntax=basic4gl] $regfile = "m644pdef.dat" $crystal = 16000000 Config Lcd = 16 * 2 'wyświetlacz 16*2 Config...
Witajcie. Skusiłem się napisać ponieważ po tygodniu walki stwierdziłem, że już więcej nic nie wymyślę. Otóż chciałbym zbudować w oparciu o procesor atmega nadajnik IR który nada wybrany kod w określonych odcinkach czasu. Otóż korzystam z programu MKdecoder firmy atnel, który w bardzo fajny sposób dekoduje sygnały IR z dowolnego pilota przedstawiając...
Dziękuje za uwagi. Nie zajmuje się natywnie programowanie w BASCOMie (pierwsze spotkanie). A poprawki jakie zaproponował były wykonane na potrzeby uruchomienia układu. Kod po moich poprawka i uwzględniających część uwag ZUMEK-a (chodzi o typ zmiennej z Word na Integer) Funkcje dodane do regulatora; 1. obsługa czujników temperatury serwii DS nie ważne...
Witam, mam następujący problem z poniższym programem. Prosiłbym bardziej obeznanych kolegów o sprawdzenie, układ powinien działać tak: ustawiam temperaturę plus regulacja histerezy, gdy temperatura jest niższa układ załącza przekaźnik do czasu wyrównania temperatury, problem polega na tym że program załącza przekaźnik (grzanie) tylko na moment po czym...
Zmontowałem programator - kit AVT 2502. Płytkę robiłem samodzielnie no i nie działa. Moja wstępna ocena jest taka że to soś raszej po stronie softwerowej - na pinach portu nie dostaję żadnych impulsów. W prawdzie pomiarów dokonywałem woltomierzem i miernikiem częstotliwości, ale sądzę że jakieś chwilowe zmiany stanów powiniennem wychwycić. Robiłem pruby...
Masz rację ale tutaj wykorzystujemy tylko mechaniz działania debounce bez analizy dlaczego tak sie nazywa a nie inaczej. Otóż działa ona tak iż za pierwszym razem sprawdza czy stan jest różny niż zadeklarowaliśmy. Jeżeli tak to zapamieta ten wynik i zacznie liczyć czas. Jak odliczy czas to sprawdza jeszcze raz czy może stan aktualny jest stanem różnym...
Najczęściej mikrokontrolery mają wbudowane takie cóś dziwne jak Timer/Counter... ;) Zaionteresuj się proszę dokumentacją do twojego procesorka na stronie producenta i/lub Helpem od Bascoma, jak rozumiem... Pozdr, Ligt-I
Czy ktos mi moze pomoc ( w programowaniu mocny nie jestem ) mianowicie mam procesor 89s52 i che do niego podpiac prosta klawiaturke 10 przyciskowa pod wyprowadzenia <0.0 do 1.1> i np nacisniecie klaiwsza 0.0 spowoduje ze pin 1.7 zmieni stan do czasu az na pinie 1.8 nie pojawi sie impuls a w miedzy czasie (tak 0,3sekundy po zmianie stanu pinu 1.7...
Wiem dlaczego. Popatrz na listing (Poznaję! #elcafe :) ). Instrukcje IF mogą się wykonać w całości albo i nie. Dlatego zmiana stanu na "0" odbędzie się szybciej, a zmiana stanu na "1" dłużej bo program jeszcze musi "przelecieć" wcześniejszą instrukcję IF i zadecydować czy wykonać instrukję po THEN czy nie. A jak pisałem wcześniej ciągle działające przerwania...
Witam! Temat być może poruszany nie raz jeżeli chodzi o sprawę odczytywania stanu przycisków. U mnie jednak stanowią one niejako tło. Program ma za zadanie badać prawidłowe działanie kontaktronów, które są wyzwalane poprzez magnes umieszczony na wałku silnika krokowego. W załączonym kodzie przedstawia się to w ten sposób, że po włączeniu zasilania silnik...
Wutam! Mam pewien problem z realizacją programową wykrywania zmiany stanu na porcie mikrokontrolera Atmega16. Do programowania używam BASCOM_AVR. Program odpytuje port wejściowy czyjników w nieskonczonej pętli, po wykryciu zmiany któregoś z pinów portu ma uruchomic opowiedną procedurę. Poniżej fragment kodu. Problem jest w tym iż nie każda zmiana stanu...
instrukcja "if port.6" sprawdza stan portu w tej chwili i nie wie co było wcześniej :)) powinneś zapamiętać stan portu np. w zmiennej Bylo=Port.6 w miejscach gdzie robisz Wait 5 a warunki powinny wyglądać : if (port.6 =1) and (Bylo =0) then.. elseif (port.6 =0) and (Bylo =1)... Oczywiście to jest zasada, składnie języka pewnie do poprawy Dodano po 1...
Jak zrealizować sterowanie aby program na podstawie odczytu stanu Pinb.2 wysłał jednorazowo dane do syntezy, a dopiero po zmianie stanu na przeciwny ponownie jednorazowo wysłał dane do syntezera i ponownie cierpliwie czekał na kolejną zmianę stanu Pinb.2 Do Waitms 100 If Pinb.2 = 0 Then : Gosub Nadawanie : End If If Pinb.2 = 1 Then : Gosub...
Witam, Chciałbym sobie "ręcznie" ustawić do pracy w trybie CTC Timer1. Tak aby generować na 2 wyjściach stały przebieg PWM. próbuję to ustawiać tak: Ocr1ah = High(1562) 'ma być 10Hz Ocr1al = Low(1562) Ocr1bh = High(3124) 'ma być 5Hz Ocr1bl = Low(3124) ' zmiana stanu wyjścia OC1A na przeciwny, przy porównaniu ' zmiana...
Tylko, że tak zapisany kod wygeneruje trochę więcej intstrukcji niż "ręcznie" zoptymalizowany z AND, OR, SHIFT. Oczywiście biorąc pod uwagę pewne uproszczenia. Na przykład. dim xx as byte dim yy as byte xx = pinb yy = pind xx = xx and &b00000110 shift xx, right, 1 yy = yy and &b11000000 shift yy, right, 4 xx = xx or yy na wyjściu w XX dostniesz:...
witam dzieki za odpowiedzi ;) tak to prawda ze zaden program nie jest banalny jak nie ma w nim ladu skladu - wybaczcie ale to pierwsze kroki z bacomem - chcialem napisac oprg ktore: 1. wyswietla temperature 2. po nacisnieciu mojego s3 czyli zianie stanu Pinb.5 przejdzie do suba gdzie po nacisnieciu s1 czyli Pinb.3 zmienie ilosc ml zmienna Ilosc_ml_p1...
Nie chodzi mi o wykrycie 0 bo to oczywiste że go nie będzie, chodzi mi o wykrycie "zmiany", czy to jest możliwe Brak jakiejkolwiek logiki, w Twoim rozumowaniu. Żeby wykryć zmianę stanu na pinie, to jest rzeczą oczywistą, że należy rozróżniać nie mniej niż 2 stany na pinie.Ponieważ uC nie potrafi "wykryć" stanu wysokiej impedancji, to jest jasne , że...
Jestem kiepski z programowania. Wiem , że procek atmega88 ma możliwość wygenerować przerwanie , przy zmianie stanu portu, prawie a może nawet z wszystkich pinów. Mam projekt, w którym procek jest w stanie powerdown, i zmiana stanu na kilku pinach powinna go wybudzić. Program sprawdzi co i jak zrobi co ma i dalej ma wejść w stan powerdown. Dokładnie...
Na moje oko odświeżanie wynosi 1200ms skoro trzeba przełączać źródła sygnału. Żeby zmierzyć okres czekasz aż stan pinu zmieni się powiedzmy na 0. Wtedy uruchamiasz Timer z przeskalerem równym 1 pracujący jaki licznik zliczajcy takty zegara i czekasz aż stan pinu zmieni się na 1. Wtedy odczytujesz licznik Timera i masz okres. Można by też czekać na kilka...
W zasadzie co ten program robi? Bascom jest wolny- ale procesor wykonuje instrukcje co 0.125us przy tym zegarze. Załóżmy 1000 cykli w pętli- zajmie mu 125us policzenie stanów 0 na wejściu i co dalej? Od wykrycia 0 powinien zblokować na jakiś czas zmianę stanu, odliczyć czas w ms a nie w us i zmienić stan wyjścia. Timer i ewentualnie przerwanie.
To prawda co piszesz ale nadal nie rozumiem co ma wspólnego print"b" ze zmianą stanu w odbiorniku pind.6 A może to zupełnie coś innego PIOTR Już mi się rozjaśniło każde przerwanie powoduje zmianę stanu portu A jak wygląda przesyłanie danych typu byte w takim przykładzie?? w procesorach 51 wystarczyło napisać A=42 printbin a w odbiorniku inputbin A i...
Witam wszystkich :D Zanim zalozylem ten temat b. duzo szukalem tego co potrzebuje i wiem ze bylo juz pisane na ten temat ale nie znalazlem nic konkretnego wiec pisze . A chodzi mi o to ze potrzebuje napisac program w bascom do attiny 2313 ktory mial by utrzymywac procka w trybie uspienia a gdy wcisne jeden z 2 guzikow to ma sie obudzic wyslac dany...
Witam Założenie jest takie. Czujnik ruchu wyzwala przerwanie INT0 = Falling, powoduje stopniowe zwiększanie PWM1A ( i to działa ). Następnie Timer2 ma odmierzyć czas i uruchomić stopniowe zmniejszanie PWM1A - i z tym jest problem. Tzn. wartość PWM1A się zmniejsza, ale nie tak szybko jak przy zwiększaniu, tylko co zadany czas timer2/Licznik2, czyli 5...
cos tkiego udało mi sie stworzyć... tylko jak teraz zrobić przełaczanie by po zmianie stanu portu pierwszy czas pozostał na LCD i zaczeło liczyć drugi czas aż do zmiany stanu portu. Sub Tmr1 Cls Dim Sek As Byte Config Timer1 = Timer , Prescale = 256 Enable Interrupts Enable Timer1 Timer1 = 32000 On Timer1 Czas: Start Timer1 Sek = 0 Locate 1 , 1...
witam, proszę o naprowadzenie lub jakiś przykład: Chcę przypisać wykonanie jakieś operacji atmedze8 (po uarcie) np zmiany stanu danego portu przez wciśnięcie wcześniej zadeklarowanej kombinacji z klawiatury np: IF wcisnę "WA" then ............................ Set Portc.4 ........................... IF wcisnę "WD" then ........................... Reset...
Witam. Po przejrzeniu noty do atmegi8 wydaje mi się, że dobrze ustawiłeś Timer2 w tryb CTC. Zmiana stanu na OC2 powinna występować z częstotliwością ok. 66kHz co da przebieg o okresie ok. 33kHz. Jedynie bitu TCCR2.7 (FOC2) nie musisz ustawiać. Z tego co wyczytałem to ustawienie tego bitu wymusza zmianę stanu na OC2. A to w twoim przypadku jest niepotrzebne....
Hehe, przeanalizuj dokładnie Twój ostatni programik i odpowiedz sobie jeszcze raz na pytanie jak on właściwie działa :) ...jak ograniczyć ruch diody dosłownie na 4 pinach. Tu mamy przesuwanie 2 diodek - "00010001"... Wkradł mi się mały błędzik :) W swoim programie pobierałem dane z linii Data i były to tylko bity 0...3 dla silnika bipolarnego natomiast...
Zrobiłem taki rysunek . Układ ten ma być zasilany 5V a nie 12V . co zmienić aby działał poprawnie . Ta częśc układu ma szansę działac poprawnie przy zasilaniu 5V bez zmian, mimo że ten układ nie poprawny !!!. Wystarczyłby tylko jeden tranzystor PNP w funkcji kluczujacej anodę, co wymagałoby zmiany w programie; załączac je stanem niskim na wyjściach...
Bascom Procesor Attiny 2313 płytka testowa AVT3500 Znalazłem w internecie program trochę w nim pozmieniałem i działa czyli wyświetla na wyświetlaczu 7 segmentowym liczby w zakresie od 0 do 9999. ale mam problem bo che wyświetlić na nim liczby z przecinkiem z dokładnością do 0,1 tylko nie wiem jak. Chce zeby wyświetlał tylko do 99.9 ale do 999.9 tez...
tank_driver , i tu się z Toba zgadzam. Niestety wystarczy napisać: [syntax=basic4gl]!Sbi Portc,4 'Zmiana stanu Pinu na 0 !Cbi Portc,4 'Zmiana stanu Pinu na 1 [/syntax] Pozdrawiam
W listingu wkradł się błąd bo do prób ustawiłem podciaganie do 1 we1. We1 jako wejście sterowania chciałbym żeby działało tak: jesli pojawi sie stan 1 to wykonaj czynności w sub i tu wybór w zależności od stanu we2 i we3 po zakończeniu sub jeśli będzie 0 to czekaj a jak będzie 1 to wykonaj j.w. Nie bardzo rozumiem co masz na myśli pisząc ze we1 jest...
Witam ponownie Sugestia Kolegi M. S. była pomocna. Całość wygląda tak [syntax=basic4gl] '************ Zegar 6 wyswietlaczy LED + PCF8563 $regfile = "m8adef.dat" $crystal = 8000000 $hwstack = 32 ' rozmiar stosu sprzętowego $swstack = 32 ' rozmiar stosu programowego $framesize = 32 $baud = 9600 '************ deklaracje portow - 74HC595 Config Portc.3...
Witam, Programik, który wklejam poniżej idealnie funkcjonuje na ATmega8... Wcale w to nie wierzę... Wg schematu, - wielokolorowa dioda jest w wersji ' z WSPÓLNĄ ANODĄ (CA) ', którą to podłączyłeś do GND. Ta dioda nigdy nie zaświeci niezaleznie jaki potencjał będzie na jej pozostałych elektrodach. Odnośnie programu... (najlepszy przykład jak nie nalezy...
Zaczynam dopiero programować i mam problem z TIMER = COUNTER . Chce by o zliczeniu ilości impulsów procesor wykonał np: zmianę stanu portu lub coś innego . To jest program : [syntax=bascom] $regfile = "m32def.dat" $crystal = 8000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Porta.2 , Db5 = Porta.3 , Db6 = Porta.4 , Db7 = Porta.5 , E = Porta.1...
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...
Witam, mam program (attiny2313) do obsługi termometru DS18b20 i wyświetlacza, układ posiada 3 przyciski +/M/-. Program reaguje na zwieranie przycisków do masy, a chciałbym zrobić tak by procesor reagował na przerywanie masy. Znajdzie się ktoś kto mógłby rzucić okiem na program i podpowiedzieć co trzeba zmienić?? [syntax=vbnet] $regfile = "Attiny2313.dat"...
To jak w poradnikach wideo M.Kardasia do HC-05. Po co ciągle konfigurować tego ESP? Mojego skonfigurowałem raz. Teraz jak podłaczę do niego terminal to po włączeniu/resecie sam loguje sie do mojego routera. Sam pisze, że WIFI CONNECTED i WIFI GOT IP Program zaprezentowałem jako przykład i coś co udało się w tej prostej wersji uruchomić. Całość działa...
Nie do końca tak to działa. Silnik jest załączany i faktycznie wyłącza się gdy prąd przekroczy wartość graniczną. Musi to być szybko zrobione bo przekaźnik sterujący silnikiem jest wolny i przy dłuższym czasie zabezpieczenie zasilacza wyłącza wcześniej zasilacz. Licznik błędów jest tylko po to że gdyby przekaźnik się skleił to po czasie awaryjnym program...
Witam. Chciałem zrobić sterownik wzmacniacza audio na bazie kitu AVT2829. Szczególnie zależy mi na uczeniu się dowolnego pilota. Zrobiłem płytkę przystosowałem do niej program, użyłem większego procesora (atmega8) no i program działa ale strasznie ułomnie. Procedura zapamiętania kodów z pilota przebiega jak należy ale już samo działanie jest strasznie...
Dzięki wielkie !! Pomogło , aczkolwiek nie rozumiem dlaczego bez tego też czasem działało zależnie od kolejności wpisów ? Teraz działa OK bez względu na kolejność wpisów, i reszty (czyli początku programu w którym pewnie jest mnóstwo innych błędów :-) ) [syntax=vbnet] $regfile = "m2560def.dat" ' specify the used micro $crystal = 16000000 ' used crystal...
. Zamierzam zrobić tak by mogli wprowadzić korektę (jeśli będzie potrzebna) i zapisać w eeprom. czy to dobry pomysł? Jakoś tak; $Crystal=12000000 Config Timer1 = Timer , Prescale = 8 On Timer1 Inter_1mS Inter_1mS: Counter1 = Counter1 + Licznik (64036 - wychodzi z obliczeń, że da to 1ms) /tu odliczę sobie 103/ Błednie to rozumujesz, albo błednie podałeś...
ustalam w ten sposób podciąganie pinu do stanów wysokich i niskiego(**) . Zakładałem, że po to jest alias (zawiera nazwę pinu), który sprawę rozwiąże. Co gorsza przyznam się, że taka była moja praktyka więc nie wiem jakim cudem błędy wyszły dopiero teraz. Podsumowując, właściwe jest podciąganie do VCC i GND poprzez SET i RESET a nie jak ja to zrobiłem....
Zobacz coś takiego: $regfile = "m328pdef.dat" 'definicja mikrokontrolera $crystal = 16000000 'częstotliwość taktowania mikrokontrolera $baud = 9600 'szybkość transmisji szeregowej $hwstack = 40 'rozmiar stosu sprzętowego $swstack = 40 'rozmiar stosu programowego $framesize = 40 'rozmiar ramki stosu 'Inicjalizacja portów wejściowych i wyjściowych...
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ś...
Zrobiłem jak polecił kol. Jaca ale niestety diody nadal nie reagują na zmianę temperatury. Dopiero włączenie i wyłączenie układu powoduje zmianę stanu diod. Może ktoś ma jakieś pomysły??
Tak, to fajny pomysł z tym sortowaniem :-) Programowo proste a przypuszczam że bardzo dobrze działa w praktyce. A co do drugiego tranzystora- nie chodziło mi to żeby zwierać piny do masy. Jeśli tak zrobisz to popsujesz mikrokontroler. Proponuje cos mniej wiecej jak na rysunku. Stan "1" na wyjściu otrzymasz kiedy na obydwu wejściach będzie "0". W pozostałych...
W nocie aplikacyjnej, w rozdziale External Interrupts masz bardzo ładnie opisaną różnicę pomiędzy INT0 a PCINT5..0. PCINT5..0, Pin Change INTerrupts, reaguje na zmianę stanu na pinach. INT0 może reagować także na poziom niski lub tylko wybraną zmianę (zbocze), to jest jedna z różnic pomiędzy tymi właśnie przerwaniami. Obsługa nie powinna różnić się...
Dzielnik przez 8 i 9 możesz zrobić na którymś timerze sprzętowym wbudowanym w procesor. A realizacja dzielnika przez 8,5 musi być programowa: Próbkujesz sygnał wejściowy i każda zmiana stanu sygnału wejściowego powoduje inkrementacje zmiennej co daję dwie inkrementacje na okres sygnału (stan wysoki i stan niski liczone osobno). A dalej pozostaje wykrycie...