Hehe... no to następny pomysł - a jak szybko obraca się pętla główna programu? Nie wiem jak masz skonstruowany program, czy w ogóle jest? Dużej precyzji czasów chyba nie potrzeba, nie ma różnicy, moim zdaniem, czy przytrzyma się przycisk 1s czy 1,1s, więc może ten pomysł wsadzić do pętli głównej i bez przerwań. Wtedy w zależności od szybkości pętli...
Ten program nie ma prawa działać. Zle zbudowany Select...Case. Nigdy nie będzie przeskoku dla I=2 oraz I=3. Reszty nawet nie analizuję.
Jedynym wyjściem zdają się być przerwania, obsługę klawiatury należy zrobić w podprogramie przerwania INT0 lub INT1, poczytaj ten temat :-) http://www.elektroda.pl/rtvforum/topic10...
1. Jak masz podłączony przycisk? Powineien być tak żeby zwierał pin procesora do masy. 2. if portd.0 = 0 then !!! 3. taki program Ci bedzie dziwnie dzialal bo jest cos takiego jak drgania stykow. Jezeli odczyt trafi akurat na moment ze styk sobie odskoczy to choc ty myslisz ze g wcisnales to nic sie nie zrobi. Wniosek: trzeba wytlumic rgania stykow....
Witam !!! Zainstalowałem specjalnie BASCOM'a i stwierdzam, że trzeba to napisać od nowa. Najlepiej będzie Clk klawiatury wpakować na przerwanie zewnętrzne typu "any change". Kiedy clock wyzwoli przerwanie, sprawdzasz w petli dane i po sprawie. (M.) Witam, masz racje, że trzeba to włożyć do przerwania, ale nie trzeba pisać tego od nowa. Dzisiaj poprawiłem...
Należy pierwsze poczytać o przerwaniach, a nie czekać na gotowca. Bascom ma dosyć intuicyjnego helpa z przykładami. Tylko, żeby przerwanie mieć z klawiatury musisz podpiąć jej wszystkie wiersze lub kolumny przez diody do jednego z wejść INTx
Ponieważ tzw. casting w BASCOMie jest nieco zbyt prosto zrobiony to proponuję zrezygnować z: Dim Xl As Word Dim Xh As Word A w przerwaniu pobierać zawartość z rejestru ICR za pomocą specjalnie generowanej dla tego celu zmiennej typu Word: Capture1 . Pętlę Do..Loop zamieniłbm na sprzętowe porównywanie i kasowanie licznika przez CTC. Niech takimi rzeczami...
Kombinujecie jak koń pod górę. W helpie Bascoma jest przykład jak obsłużyć klawiaturę bez przerwań i działa bez zarzutu, sprawdzałem.
To jak najlepiej to napisać aby nie wstrzymywać programu a jednocześnie nie zgubić żadnych danych z MIDI - w Bascomie. robiw
Wydaje mi się że powinno to zadziałać. Podziel sobie program tak aby najpierw odbierał kod w przerwaniu INT a inny podprogram odbierałby dane z klawiatury i wyświetlał cośtam na lcd. Gdybanie gdybaniem ale nigdy nie sprawdzisz lepiej co sie stanie dopóki nie zbudujesz pcb.[/quote]
Dzieki za podpowiedz, tak zrobilem i podpialem wyjscie clock klawiatury pod przerwanie, dziala dobrze, trzeba tylko troche pokombinowac z opoznieniami, dzieki
Tak, ale klawiatura jest częściej skanowana i trzeba odczekać jakiś czas aby DS przekonwertował temp. a to przerwanie które używam jest od PCF8583
Przenieś albo obsługe klawiatury albo silnika to przerwania.
Rezystora nie ma na schemacie ale fizycznie go wlutowalem i dalej nic. Najczesciej wyzwalaja sie przyciski klawiatury lub zewnetrzne przerwanie. W programie wlaczone pull-up.
A taka moja mała sugestia, czy nie lepiej zrobic uklad obslugujacy wiele klawiatur nie korzystajac z GETKBD() ?? np uzywajac ukladow na I2C PCF8547 i wykorzysujac przerwanie od ukladu odczytywac stan klawiszy... a tak na marginesie GETKBD() obsluguje jeden port... Pozdrawiam
marco47 - przepraszam, nie zauważyłem. marek19951 - proste if-then nie załatwi problemu. Jeżeli masz zapał, a widzę , że masz, zacznij od procedury obsługi klawiatury , która nie powoduje opóźnień poprzez martwe pętle ( czyli m.in wait, debounce, bitwait itp). Ja to zrobiłem na przerwaniu programowym z timer1, które odliczało mi okresy 10 ms w połączeniu...
Ja osobiście użyłbym nawet delay'ow które są dołączane biblioteką - i znów nie wiem jak to w Bascomie jest . Ale jeśli wszystko będziemy robić poza , obsługą przerwania dla klawiatury to nic nie przeszkadza timerowi dalej generować zadane przebiegi :)
Ok kumam :). Dzięki. Mam jeszcze jedno pytanie a co będzie gdy dane z Uarta bedą nadchodzić w chwili gdy będzie obsługiwane inne przerwanie. Z tego co pamiętam to w AVRach nie można ustawić priorytetów przerwań tak jak w '51.
Jak masz klawiaturę podłączoną do portu C to nie będzie działać. Powodem jest standardowo uruchomiony J-TAG. Spróbuj z inną końcówką wyzwalającą przerwanie.
Cytat z książki Wiązani: "Funkcja oczekuje na odebranie znaku z klawiatury, czyli wstrzymuje działanie programu. Przerwanie pętli oczekiwania może nastąpić przez ustawienie zmiennej Err, na przykład w podprogramie obsługi przerwania". Przyznam, że robiłem coś kiedyś na klawiaturze AT, ale nie kombinowałem z "wstrzymywaniem" programu.
Skoro procedura przerwania powoduje opóźnienia to rozumiem że też "upośledzi" działanie polecenia getkbd...? Próbowałem do pilota podpiąć klawiaturę, wszystko powinno być ok, ale nie jest
NP: IF A and B and C then coś tam się dzieje end if A B C to klawisze ( piny porty zmienne ) Pozdro! I to powinno dziać się w obsłudze przerwania, jeżeli ma to się rzeczywiście natychmiast stać. Klawiaturę podłącz tak, aby po wciśnięciu dowolnego klawisza generowała określony stan, linię z tym stanem podłącz do pinu zewnętrznego przerwania w kontrolerze,...
Jak zrobic Input w przerwaniach ? mam program dla atmega16 odbierajacy dane w przerwaniach aczkolwiek jest to zrobione w taki sposob ze odczytuje Udr i przypisuje jej wartosc do jakies zmiennej no i nie mam jak "ladnie " wyslac np liczby 53 <przypisywanie rejestru Udr do zmiennej powodoje ze zczytywane sa z klawiatury kody ascii a 53 ma "5">
do bascoma można dokupić dodatkową bibliotekę emulującą klawiature PS/2. Sam używam tej biblioteki do paru projektów. W bascomie niepowinieneś mieć problemow jest bardzo prosty (no czasami są problemy z przerwaniami).
Zrób sprawdzanie portów do których podpięte są przyciski w pętli głównej, albo w podprogramie obsługi przerwania Timera0 - po wyświetleniu cyferek na wyświetlaczach. Zawsze pozostaje jeszcze Timer2 :D, ale jak zapuścisz przerwania z 3 timerów i do tego jakieś zewnętrzne int to mogą być problemy...
jezeli chodzi o czasy zegara to nie sa az tak bardzo tragiczne (od 60 do 100 us) wiec chyba Bascom sobie z tym poradzi, w moim programie mam generator na timer1 ktory dla kwarcu 8MHz (prescaler = 64)i wartosci w rejestrze licznika 65530 daje mi przerwanie co 40us... moze juz ktos napisal taka komunikacje i moze sie podzielic doswiadczeniami ?? Pozdrawiam
Ja dodam książkę Janiczek, Stępień Mikrokontrolery jednoukładowe. Wszystko ładnie wyjaśnione, a potem praktyka: ustawienie stanów na wyjściach zmiana ich stanów, licznik na pętli to samo tylko na licznikach wewn przerwania dokupić max232 i podłączyć do kompa lcd, klawiatura, i2c ;)
Dziękuje koledze perlon i dondu za zainteresowanie, ja dopiero zaczynam zabawę z prockami Atmela i Bascomem więc wolałem zapytać. Drabinka z rezystorami fajna sprawa ale wolę proste rozwiązania. Więc skoro mogę użyć wejścia programujące to rozwiązuje mój problem, zrobię klawiaturę matrycową z wykorzystaniem przerwania.
Analizowałem dla innego kolegi mój program w którym stosuję UART. Widzę, że na początku odblokowałem globalne przerwania z adnotacją jak niżej. Enable Interrupts 'Przerwania od UART zaszyte w Bascomie Wstaw może tą linię w swój program. Poczytaj help'a - CONFIG SERIALIN
Ano właśnie nie wyobrażam sobie jak to zrobić prockiem bez zewnętrznego źródła przerwania. A co do schematu to wszystko jest jak w notach przykazane. A skoro już procek czai się na przerwanie z RTC to przy okazji może czaić się i na to z klawiatury. Tutaj chyba nawet uA żadnych nie oszczędzę. (at)Niveasoft, jednak będę się upierał że jak na język wysokopoziomowy...
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 byte if index_wartosc =1 then wartosc=wartosc + 1 end if if...
Witajcie. Robię malutkie projekty korzystając z Bascoma. Do tej pory wyłącznie na 2313 i jakoś sobie radziłem. W nowym projekcie postanowiłem zastosować Atmega8535 i od razu natrafiłem na problem. Mianowicie po włączeniu przerwań od Timer0 nic nie działa jak powinno. Pomimo tego że procedura obsługi wyświetlacza jest wołana z obsługi przerwania na wyświetlaczu...
dołączam schemat ideowy tego kity, oraz listing obsługujący to urządzonko z poziomu bascoma. najpierw na pcfy wysyłana jest warość 255, zeby poustawiać wszystkie I/O w stany H, a potem, zmiana klawiatury może być przeglądana programowo (i2c) albo można wykorzystać przerwania INT, które będą pcfy generować, po wciśnięciu klawisza, i wówczas zostanie...
Po usunięciu pętli w podprogramach obsługi klawiszy przygasanie zmniejszyło się o około 90%. Obecnie widzę, że na czas obsługi nacisnięcia wyświetlacz ledwie przygasa. Spróbuję stworzyć obsługę w przerwaniu. Czy mogę w przerwaniu wpakować instrukcję debounce? Wiem, że domyslnie wprowadza 25ms opóźnienia, by wyeliminować drgania styków klawiatury. Wydaje...
Witajcie Ja klawiaturę podpiąłem do portu D i mam problem z jej działaniem w Bascomie. Jak mam odczytać wartość portu D jak w ATtiny2313 brakuje PD.7
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...
Dzięki za cierpliwość. 70ms dobrałem doświadczalnie. Chodzi o to ,że tylko w ten sposób umiem zrobić ,żeby silnik w serwie kręcił . Tylko są tu kroki bo włącza sie co 70ms. Chcę ,żeby to było płynnie. Tyle ile trzymam przycisk na pilocie tyle się kręci , bez żadnych przerwań . Próbowałem także z toggle ale wtedy trzeba przycisnąć drugi raz przycisk...
Jest jeszcze przerwanie PCINT wyzwalane dowolnym zboczem. Wejść PCINT jest zdecydowanie dużo, zatem można reagować nie tylko na dwa przerwania INT0/1. Fakt, nie wszystkie AVRy to mają. Co do programowej obsługi to trzeba skanować klawiaturę w krótkich odstępach czasu i porównywać stan bieżący z poprzednim odczytem. Niestety czas musi być dość krótki...
Wydaje mi się że te czytniki symulują klawiaturę. Poszukaj kodów klawiatury w internecie. Są to rozkazy naciskania i puszczenia odp. przycisków, a w zasadzie cyfr. A rozwiązanie twojego drugiego problemu to odpowiedni parser portu szeregowego. Nie znam bascoma, ale w C robisz przerwania, bufor, flagi i hula Pozdrawiam
Ludzie momentami mnie PRZERAŻACIE. Ja robiłem multipleksowanie 4 cyfr 7-segm., linijki swietlnej i klawiatury z DS1820 w systemie pod AT89C2051 i nie mam żadnych problemów - blokuje przerwanie po całym kompletnum obiegu wykonuje transmisję przez 1wire po czym wlaczam przerwanie i dziala mi TAAK. p.s. nie uzywajmy bascoma i wszystko sie da
Załączam pełny program obsługi klawiatury 4x4. Obsadź swoje procedury i będziesz miał gotowy program. Nie zapomnij pozmieniać portów dla kolumn i wierszy, wartości kwarcu, itp. W procedurze obsługi przerwania możesz dołożyć dodatkowe czynności. Wartości kodów klawiszy (obliczane z kolumny i wiersza): - 0..9 - 0..9 - A..D - 20..23 - * - 10 - # - 12
Niedawno był tu temat o menu i sposobie jego rozwiązania. Jeśli kolega chce usłyszeć mojej rady to osoboście zrobiłem to używając przerwania timera, obojetnie jakiego. Po odliczeniu określonej wartości czasu (jaki to twoj już wybór) przerwanie to w przypadku bezczynności klawiszy wpisuje do bufora klawiatury znak odpowiadający powrotowi z menu czyli...
Jest w to wbudowany sterownik na uP łączy się przez port szeregowy z kompem i po naciśnięciu guzika programowania procek odpala procedurę programowania jest ona umieszczona w obsłudze przerwania. Tekst wprowadza się z klawiatury przy pomocy np. terminala w bascomie koniec tekstu oznacza się wciśnięciem Esc potem trzeba jeszcze zresetować procesor drugim...
To prawda że nie są to procesory wielordzeniowe. Windows może wykonywać kilka zadań "jednocześnie" pracując na procesorze jednordzeniowym ( pamięta ktoś może 386, 486, pentium 166 itp ? ) Zrobiłem kiedys program "wielozadaniowy" na at90s8535 polegało to na odczytaniu stanu interesujących mnie wejść w pętli głównej programu i wywołaniu odpowiednich procedur....
Mały uC ale pewnie starczy wyprowadzeń żeby podpiać lcd - będzie odrazu widać co się dzieje. Jak nie to może chociaż sprzętowy uart - tylko musiałbyś pamieć przypiąć pod inne wyprowadzenia. Reset Tcon.0 Enable Interrupts Enable Int0 On Int0 Odczyt zapisz tak dla pewności: On Int0 Odczyt Reset Tcon.0 Enable Int0 Enable Interrupts albo tak: on int0 odczyt...
Buduje uklad programatora na bazie procesora 90S8515 i napotkalem na problem przy pisaniu programu w Bascomie. Przy przesylaniu danych do procesora (115200 baud) z predkoscia pisania na klawiaturze program dziala, ale gdy program na PC wysyla dane strumieniem do procesora wszystko sie wywala. Problem w tym ze przesylane dane sa binarne a nie znaki z...
Witam ! Oto fragment pliku pomocy Bascom AVR w języku polskim. Przeznaczenie: Konfiguruje działanie funkcji GETATKBD() oraz określa końcówki portów do których podłączono klawiaturę komputera PC AT. Składnia: CONFIG KEYBOARD = PINx.y , DATA = PINx.y , KEYDATA = tabela_kodów gdzie: KEYBOARDKońcówka portu do której dołączony będzie sygnał CLOCK klawiatury....
Witaj, powiem tak, niewiele nauczysz się zlecając komuś pracę. Jeżeli urządzenie ma służyć do nauki to może spróbowałbyś je sam wykonać. Ja polecałbym Ci zacząć od prostych rzeczy, jak np wykonanie płytki(jakiś starter kit na avr'ce) lub coś prostszego znalezionego w sieci. Potem zacząć pisać proste programiki jak np migająca dioda, obsługa przycisku,...
Robiłem na prace dyplomową zamek na 90s2313 i pcf8574> zamek działał tak matryca klawiatury była podpięta do układu pcf naciśnięcie któregoś przycisku powodowało że układ pcf wystawiał przerwanie na procku i procek wchodził do obsługi tego przerwania w którym było za zadanie przeskanować porty układu pcf i przypisać je do jednej zmiennej z której później...
Jest niemozliwe poniewaz zastosowale petle Do Loop z ktorych nie ma wyjscia (Loop jest przed Return) Lepiej bedzie jak odczyt klawiatury zrobisz na przerwaniach. I wtedy bedziesz bez problemu mogl wywolywac nieskonczone procedury. Zawsze kiedys przyjdzie przerwanie ktore bedzie moflo sprawdzic klawisz i wywolac inna procedure jesli zajdzie taka potrzeba....
Nie zdarzyło mi się uszkodzenie portów zwarciem itp więc póki co rezystory usuwam. Generalnie panel już działa i to bardzo dobrze obsługa programowa jest nawet przyjemniejsza od obsługi zwykłej klawiatury czego się nie spodziewałem. Mam jednak pytanie czy ktoś ma jakiś pomysł na generowanie przerwania w momencie dotknięcia ekranu ? tak aby nie było...
"zajęte" timery. zawsze możesz dopisać tak jak pisałem z dźwiękiem. w przerwaniu timera pomniejszasz zmienną o 1 oraz gdy jest równa 0 wyłączasz podświetlanie. w obsłudze klawiatury dodajesz zapalenie podświetlenia (pewnie ustawienie jakiejś nużki w odpowiedni stan) oraz ustawienie tej zmiennej na odpowiednią wartość (trzeba wyliczyć z prędkości z jaką...
Pomyślę i o tym później, wykorzystuję przerwania w Bascom-e od timera, zupełnie inna jakość pracy ale i dużo więcej trzeba myśleć aby poprawnie wszystko zsynchronizować, zrobić trzeba będzie obsługę wektora przerwania np co 10 ms żeby sprawdzał stan wierszy, podglądałem już takowe projekty ale tutaj ewidentnie zablokowałem się na tych bitach ... Nie...
Pisze wlasnie program do mojej pracy dyplomowej. Mam taki problem, gdy wielkosc mojego programu zaczyna przekraczac 2kB nie dziala on poprawnie. Wyglada to tak jakby programowal tylko te 2kb a dalej sie zarzymywal. Tak mi sie wydaje poniewaz na samym koncu programu mam zapisana procedure przerwania (obsluga klawiatury). Teraz ta funkcja nie dziala....
Witaj :D Według mnie tablica jest niezbedna poniewaz to w niej sa zapisane wlasciwe znaki , i wydaje mi sie ze nauczuciel sie myli bo samo polecenie getatkeyb() zwrocilo by numer wcisnietego klawisza a nie konkretna literke , liczbe czy znak . Przykladem moze byc fragment polskiego helpa do bascom-a w ktorym jest opisane dzialanie tego polecenia Funkcja...
Potrzebuję teraz, by ktoś kto dobrze opanował Bascoma by zamieścił dwie procedurki - do odbierania i nadawania danych i jak to zrobic, by dane były nadawane i w tym samym momencie komputer wiedział, że ma je odebrać i odwrotnie. Nie chcę cały czas przesyłac czegoś, tylko jak nacisnę klawisz na klawiaturze w kompie to on ma mi wysłać jakieś liczby do...
Bez problemu mozna zrobic obsluge klawiatury matrycowej, LCD, RS, ADC na jednym timerze + petla glowna a efekt sekwencyjnego wywolywania kodu jest i tak niewidoczny dla uzytkownika. Jak chcesz migac 3 diodami, np. 1 co sekunde, 2 co dwie sekundy, 3 co trzy sekundy to bez problemu zrobisz to na timerze wywolywanym co sekunde. A i tak jest to przerost...
pewnie że nie ma wpływu na timery i musisz poczytać książki o samych prockach żeby zrozumieć co to są timery sprzętowe. Bo o ile można powiedzieć że program nie ma wpływu na timery sprzętowe to już timery sprzętowe a raczej ich przerwania mają wpływ na program i to się wiąże z tym działaniem niedokładnym twojego nieszczęsnego wait..... zatem obsługa...
afff x_X zumek nie chciałbyś mi może trochę bardziej pomóc, bo coś czuję, że tego w wakacje nei napiszę :( Update: ok, wywaliłem Waitms 330 kompletnie. Wait 1 podczas komunikacją z 1Wire zamieniłęm na Waitms 200. Jest tak, że w pierwszym obiegu czujniki nie są do końca jakby zresetowane (temp. 85*) ale już w następnym jest ok. Klawiatura działa też...
według mnie 'Config ..' to jest polecenie dla kompilatora tak jak w asmie .equ albo coś w tym stylu... ciężko dla jednej procedury ustalić 2-ie różne metody działania... raz na porcie tym a raz na tym... żeby to szło adresować porty za pomocą rejestrów :( idzie tylko za pomocą stałej (przezco wielokrotne config niedziała) albo za pomocą wskaźników X,Y...
Wiem, że działa, bo całą obsługę klawiatury sprawdzałem na ATmega32. Tam śmigała bez problemu. Zresztą na tej ATmega8515 za którymś razem też ruszyła. Widzę, że nie działa, bo na ekranie LCD pojawia się cały czas 0. Gdyby działało, to zmieniałoby się w zależności od naciśniętego klawisza. [syntax=basic4gl]Ekran_glowny: Do Locate 2 , 1 Lcd Licz I2cstart...
Po raz kolejny podnoszę temat klawiatury, jej konstrukcji i obsługi tak aby nie trzeba było angażować kontrolera do ciągłego monitorowania stanu portów. Wymysliłem więc sobie, że każdy klawisz to będzie coś takiego jak na rysunku poniżej. Czyli klawisz podłączony jest do wejścia wyzwalającego przerzutnika monostabilnego (2 takie przerzutniki znajdują...
Wszystko było by fajnie z tym innym licznikiem ale niestety zostały mi tylko 8 bitowe a to za mało, musiał bym część liczenia przenieść do pętli głównej a niestety to też nie zda egzaminu bo jak np włączę menu, a tam jest np. obsługa klawiatury i chośby dyskryminacja drgania styków która wstrzymuje czas, a w tym czasie stracę impulsy i pomiar będzie...
mam taki kod '**************************** 'Konfiguracja '**************************** $regfile = "attiny2313.dat" $crystal = 8000000 Config Portb = &B11111111 : Portb = &B11111111 Config Portd = &B11111011 : Portd = &B11111111 Config Timer0 = Timer , Prescale = 256 Enable Timer0 : On Timer0 Przerwanie0 Enable Interrupts '****************************...
FastAVR jest mocno związany z asemblerem i daje bardzo efektywny kod wynikowy - Bascom się chowa przy nim. Ale tak jak w asemblerze trzeba pamiętać o deklaracji i inicjacji każdej zmiennej. Pierwsze 3 linie definiują typ proca, głębokośc stosu, prędkość zegara - ważne dla symulatora. Definiuję przerwanie od Timera0 i ustalam tryb pracy Timera0 Definiję...
Odświeżam temat i przedstawiam co zrobiłem . Wykrywanie stanu i wystawianie stanu logicznego nie chciało działać kiedy było zrealizowane na opóźnieniach. Do głowy wpadł mi pomysł kolegi pikczu by zrobić coś w przerwaniu TIMERA. Tak wiec odczytywanie stanu jest w podprogramie przerwania a w pętli sterowanie ledem. Do zmiennej sw zapisujemy poklei czy...
Ale z Ciebie kombinator :D Widzę , że nie masz dobrego pomysłu na obsługę klawiszy i czy to będzie w Basicu , czy w C , to sprawa drugorzędna :( Rozwiązanie z dwoma przerwaniami - przerost formy nad treścią , ale stosowanie funkcji Debounce w przerwaniu , które jest wywoływane co 4ms , to już całkowita porażka , bo Debounce po wykryciu naciśnięcia klawisza...
No to może zastanów się (skoro już i tak chcesz zdecydować się na jakiś zewnętrzny scalak) np na Expander 16bitowy I2C PCF8575 Nie dość, że w procku zużyjesz TYLKO 2 !!! piny na magistralę I2C to jeszcze będziesz miał do dyspozycji 16 pinów. Możesz sobie 8 z nich ustawić jako wejścia i podłączyć do nich swoje słicze. Natomiast kolejne 8 bitów ustawiasz...
Witam Chcę zrobić proste menu ale mam problem Napisałem taki program ale on nie działa i nie wiem co jest źle http://obrazki.elektroda.pl/8154646300_1... http://obrazki.elektroda.pl/1040274800_1... Chcę zrobić tak, że jak nacisnę przycisk P1 to wtedy ta strzałka > przejdzie na inne menu. np. Jest tak jak na zdjęciu 1...
Pomysł i projekt tego oto prostego zestawu z procesorem 8051 powstał podczas fascynujących zajęć na uczelni. Podczas ćwiczeń na legendarnym zestawie DSM-51 nie nadążałem za tym asemblerem. W tamtych czasach zajmowałem się jedynie AVRami. Jako, że nauka lepiej mi szła w domowym zaciszu zacząłem szukać jakiegoś fajnego i łatwo programowalnego mikrokontrolera...
czyli jak przykładowo dam: [syntax=basic4gl] do if flaga = 1 then 1wreset 'reset 1wwrite &H55 1wwrite &HCC 1wwrite &H44 'dokonaj konwersji end if if flaga = 2 then 1wreset 'reset 1wwrite &H55 1wwrite &HCC 1wwrite &HBE Temperatura(1) = 1wread(2) 'odczytaj dwa pierwsze bajty end if 'DALSZA OBRÓBKA DANYCH.... 'inne rzeczy - obsługa przycisków czy coś innego......
Dzięki za chęć pomocy. Procka mam attiny 2313, podłączenia są następujące: wyprowadzenie nr.12-tranzystor setek,13-tranzystor dziesiątek,14-tranzystor jedności.74ls164 podłączony jest: clr-do +5V,clk-11 wyprowadzenie procka,AB(zwarte)-9 wyprowadzenie procka. Nie chcę absorbować czasu na całość, popróbuję resztę programu sklekocić sam (ma być tam jeszcze...
Podstawy się kłaniają ale do rzeczy. Ustawiłeś zmienna X jako bajt : Dim X As Byte a za chwilę robisz cos takiego: X = "141" Zmienna typu byte może zawierać wartości liczbowe z zakresu od 0 do 255 a nie jakiś teskt!!! Do tego celu służy zmienna typu string którą deklarujesz tak: Dim X As String * 3 Cyfra 3 informuje ile znaków będzie mogła...
Witam. W pewnym sofcie dla Atmega16 wykorzystałem już: - Timer1 (16 bit) do odliczania 0,0001s odcinków czasu - Timer2 (8 bit) jest wykorzystywany przez odbiornik podczerwieni (instrukcja getrc5) Timer 0 niby jest wolny, ale nie wiem / nie jestem pewien czy nie jest on wykorzystywany przez jakieś używane przeze mnie instrukcje (np. print dla sprzętowego...
Tłumaczą Ci ludzie już drugi dzień. Zwłaszcza kolega Logan . Czy tak trudno przeczytać w Helpie: Instrukcja ON INTERRUPT Przeznaczenie: Wykonuje skok do podprogramu gdy wystąpiło określone przerwanie. Składnia: ON źródło_przerwania nazwa_podprogramu Jeśli trudno to porzuć programowanie - są łatwiejsze profesje.
Jeśli chodzi o cmd_timeout to chodzi o to, że wejscie RX kiedy pin używany jest przez USART nie jest niczym podciągane. Kiedy jest podłączony do drugiego urządzenia np. procesora lub MAX485 to problemu nie ma bo pin jest podciągany wyjściem TX tego uC lub MAX485. Kiedy jednak odłączysz to na pinie stan jest nieustalony i wpadają na USART śmieci. Ten...
.... dodaję że problemy mam z tym że jeśli umieszczę moje wypociny w przerwaniach to podczas wysyłania danych z modułu A instrukcją Print to układ lubi mi się zawiesić , lub mam problemy z odebraniem kompletnych danych. W tem przykładzie jaki podałem ostatnio wszystko chodzi idealnie poza tym że mam zaśmieconą i opóźnioną przez to pętlę główną. Posłuchaj...
W pierwszym etapie można uruchomić układ "na sznurku", sterowany ze zwykłej przewodowej klawiatury PC, potem wystarczy podmienić ją na układ bezprzewodowy. Procedury współpracy z klawiaturą PC są chyba w BASCOMie. Ale jak to dziala? Tak, jak napisał kolega wyżej, nie powinna Cię interesować transmisja radiowa i sposoby kodowania w tym torze. Klawiatura...
Swoją drogą do czego one służą. Fajnie, że pytasz :) Te 2 linijki służą do wyłączenia interfejsu JTAG z poziomu programu. Dlatego są 2 razy, bo aby wyłączyć interfejs JTAG należy 2 krotnie zapisać wartość 1 do bitu JTD w rejestrze MCUCSR w przeciągu 4 cykli zegara (po szczegóły odsyłam do dokumentacji). Gdybyś używał w programie przerwań to przed tymi...
Cześć sory, że tak późno, ale nie miałem neta bo w router'ku zmieniałem firmware. odnośnie: "musisz zmienić tok rozumowania według mojej wiedzy liczniki działają niezależnie czyli liczą a procesor robi swoje ale przerwanie zmusza procesor do wykonania czynności innych czyli obsługi przerwania czyli obliczenia tej jednej sekundy" Prawie, ale nie do końca....
NIGDY nie robi się multipleksowania na tym samym Timerze, który jest wykorzystany do odmierzania czasu. Zbawco mój :) tergo nikt wcześniej mi nie napisał. Nie wyłącza się Timera w pętli głównej. No wyłącza się bo inaczej w takim rozwiązaniu jak moje ekran migocze ;) choć chciałbym w końcu tego nie robić i zrozumieć o co kaman. Po co Goto w pętli głównej...
Tak, w programie zawarte są dwie procedury obsługi przerwania, obydwie od przerwań zewnętrznych: [syntax=vb]Communication: Set Comm_needed Return [/syntax] oraz [syntax=vb]Timer_loop: Set Loop_tick Return [/syntax] Rozumiem, że bez całego kodu analiza może być ciężka. Jednak sytuacja w uproszczeniu wygląda w ten sposób, że kod: [syntax=vb]a = 3 print...
A ja mam oto takie przerwanie: ;=======================================... ; Timer 0 interrupt ;=======================================... .org0x000B t0intv: MOV timer_xxx,TL0 ;2 execution time measurement (start) PUSHACC ;2 PUSHPSW ;2 DJNZclock_clk, noclock ;2 MOV clock_clk,#iclock_clk;2 ; hundreds of seconds INC clk_x MOV...
janbernat --> tak na pierwszy rzut oka to w tym rozwiązaniu do obsługi klawiatury nie ma jednak żadnego mechanizmu eliminacji drgań styków i stąd może być to wrażenie, że niepewnie się przełącza itp moim zdaniem. Zobacz, naciskamy klawisz - rozpoczynają się drgania (zawsze występują prawda?) u ciebie od razu na pierwszy sygnał drgania styku reaguje...
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...
Zgadzam się, jak wszystko jest podłączone ok to nie ma szans aby układ nie transmitował. Faktycznie ja też stosuję 11059200 i zawsze działa. SPRAWDŹ KABLE! 1. Po pierwsze kabel komp<->RS232 czy masz kabel z zamienionymi końcówkami Rx Tx tzn. przy kompie 2 przy Max232 3 i na odwrót! 2. Sprawdź schemat połączeń max 232 z noty aplikacyjnej - proawidłowe...
http://obrazki.elektroda.pl/1899461000_1... Ostatnio zaprojektowałem na potrzeby dyskoteki switch DMX. Wykonałem 8 sztuk, jak na razie pracują bez zarzutu. Nie publikuję płytki, bo wymaga dopracowania, a nad publikacją wsadów i źródła się zastanowię. Co do PCB, to i tak zaraz dostaną mi się pewnie słuszne baty za zbyt małe odstępy części...
Od kad zmienilem bit CKOPT w fusach dziala bardzo stabilnie A więc wniosek , że program to jedno , a sprzęt to ... drugie :D za kazdym razem dostaje informacje AT+CSQ+CSQ: 19,99OK Czyli telefon wysyła echo. ... Nie rozumiem do konca czemu bez zerowania bufora tez dziala ..ale wstawielm to co podeslales ;) Jeśli odczytasz wszystkie dane w buforze ,...
Programowanie uC prawie niczym nie rózni sie od programowania komputera klasy PC ( w uP ZAZWYCZAJ nie ma systemu operacyjnego ). Większośc kompilatorów C dla uC jest kompatybilna ze standardem ANSI C. Kompilatory C są zazwyczaj rozszerzone o obsługe typów bitowych i funkcji przerwań. Problem pojawia sie przy obsłudze urządzeń zewnętrznych ( wyświetlacze,...
Jeżeli piszesz w bascome to proponuje funkcje: INPUT $baud = 1200 $crystal = 12000000 Dim V As Byte start: input V p0=V goto start Zasada jest taka program czeka na w lini "input V" na odebranie czegos przez port RS jesli mikrokontroler odbierze to przechodzi do nastepnej lini i ustawia port p0 w wartosc odczytana z rsa nastepnie powraca spowortem...
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...
popełniłem swego czasu taką obsługę Getrc5 w przerwaniu z wykorzystaniem bitu Toggle, który przydaje się do sprawdzenia czy mamy wciąż wciśnięty klawisz - wtedy zmienna Repeat = 1 a gdy tylko raz to Repeat = 0. To się czasem przydaje i fajnie można wykorzystać, oto przykładzk - hmmm może troszkę rozbudowany bo z wstawkami asemblerowymi ale można je...
Ja bym koledze tak doradził, co do samej komunikacji. Jakieś 2 miesiące temu sam nad tym się głowiłem jak to zrobić i w końcu praktycznie sobie wdrożyłem zwykły RS232 tyle że pracujący na najwyższych obrotach. Początkowo obawiałem się że "system" niewydoli przepuszczać w te i we wte informacji jednak i mile się rozczarowałem. Na potrzeby tego rozwiązania...
Witam, zaczynam "zabawę" z uC i programowaniem. Na pierwszy strzał chciałem zrobić prosty (tak na początku mi się wydawało) sterownik. Planowane opcje to: zegarek, termometr i obsługa 2-6 wyjść 230V. Wszystko chciałem stworzyć na atmedze8 ewentualnie 16. Założenia: - LCD na którym będą informacje prawdopodobnie będzie 4x20 - czas + ewentualnie data...
Ok, skompiluje program z dyrektywą $sim, a nastepnie będę próbował pauzować działanie programu w symulatorze. Program z pierwszego postu testowałem w procku. PWM działa, a multipleks nie, bo timer2 nie raczył ruszyć. Programy testowe sprawdzałem wyłacznie na symulatorze sugerując sie tym, że w przypadku użycia timer0 i timer1 widziałem naliczanie wartości...
Witam. Wiem, że temat był wielokrotnie wałkowany na forum, ale mimo przebrnięcia przez sporą ilość informacji jakoś nadal mam problem z poradzeniem sobie z moim przypadkiem. Buduję 'klawiaturę matrycową' ale nie na przyciskach, ale na przełącznikach, zatem program sterujący nie będzie miał rozpoznać naciśnięcia przełącznika, a stan wszystkich linii......
Musisz dobrać taki kwarc, który da się podzielić tak by uzyskać częstotliwość pracy UART = 31250 Hz +/- 1% Komunikat MIDI składa się z 2 lub 3 bajtów. Jeżeli bajt ma ustawiony najstarszy bit to jest on (ten bajt) traktowany jako rozkaz a jezeli nie to są to dane do rozkazu (ogólnie dane są przesyłane w porcjach 7 bitowych). Dekodowanie jest dość złożone,...
Zmieniłem w liniach z Load na Timer1 = A ale nic to nie dało nadal 10us. Podejrzewam że nie pracuje z preskalerem =1 prawidłowo. Gdzieś czytałem z rok temu że kod programu będzie pracował z zegarem 14MHz (tak jest u mnie) a Timery z 8Mhz. Prawda czy nie ?. Z obliczeń na kalk.exe do wyliczania Timerów jeden cykl Timera przy 14Mhz to około 0.07us.Czyżby...
Witam. Niestety to nie działa, gdy inkrementacja zmiennych "przesunięcie1 i 2" się zeruje po osiągnięciu len(x) w warunku if...then w głównej pętli, cały napis z Bufor_text zanika i tworzy się na nowo. widoczne na nagraniu: na Lcd pierwszy wiersz jest bufor_text + " "+ zmienna(przesunięcie) 1022010 const gdyż nie są wpisywane w moim projekcie na sztywno...
Zamiana wyświetlaczy nic nie daje, zamieniałem nawet same kabelki łączące je z płytką i też nic. Jeśli chodzi o przerwania to mam odbiór danych z RFM12 oraz obsługę klawiatury na PCF8574. Może faktycznie coś na rzeczy z tymi przerwaniami. Wyświetlacz, który nie działa jak trzeba oprócz wyświetlania daty, godziny oraz części odebranych danych wyświetlać...
przerwanie klawiatura klawiatura przerwanie przerwanie bascom
motorola hasło 18650 akumulator pobór prądu głowica renault espace
gs500 instalacja samsung wf70f5e0w2w
Programowanie radia Toyota Avensis III T27 Ustawianie radia w Toyocie Avensis T27 Active