Witam. Piszę właśnie program na Atmegę8 i jestem zmuszony zoptymalizować kod do wymaganych 4kb kodu (dla wersji Demo). Chciałbym skorzystać z wstawek asemblerowych do sprawdzania stanu przycisku. Do tej pory wykorzystywałem Config debounce, ale jest on zbyt pamięciożerny. Próbowałem z: $asm sbis pinb, 0 $end Asm Ale niestety nie spełnia on moich oczekiwań....
A dlaczego miał by startować od początku? Niech wraca tam gdzie skończył. Nie widzę też konieczności stosowania przerwania do przycisków. Moja propozycja: Przerwanie timera wywoływane co sekundę. W przerwaniu tym zwiększany jest licznik czasu, ewentualnie ustawiana odpowiednia flaga, a potem w pętli głównej jeżeli flaga ta była ustawiona, to odczytywany...
Witam. Szczęśliwie dla użytkowników praktycznie wszystkie wyświetlacze alfanumeryczne LCD obsługuje się tak samo. Ich chipy sterujące są zgodne z HD44780. W skrócie obsługa LCD'ka wygląda tak: - inicjalizacja (zestaw komend sterujących, ustawia się min. sposób podłączenia 4/8 bit, ilość linii itp itd.). Sprawa dosyć dobrze opisana w większości datasheet'ów...
Witam Własciwie to mam na początku dwa pytania , pierwsze to : Konfiguruje port d jako wejscie z podciąganiem do plusa i potem w programie sprawdzam czy przycisk jest wciśnięty Sbis pind,6 Rcall podprogram i tu pytanie w AVR studnio podczas symulacji symulator zachowuje się tak jakby przycisk byl wciśnięty tzn panowal stan niski czyli skacze do podprogramu....
Witam, mam pytanko. Napisałem program który po wciśnięciu przycisku wyświetla na wyświetlaczu liczby kolejno od 0 do F. Jest to wywoływane przyciskiem na porcie p1.5 teraz druga sprawa. Chciałbym by przyciskiem p1.4 móc obniżać wartość liczby, przypuśćmy gdy będzie 7, a wcisne p1.4 pojawi mi się 6. Jakim sposobem to zrobić? Oto program: [syntax=asm];...
Można pozmieniać nazwy segmentów i etykiet - byle konsekwentnie. Można poprawić błąd, o którym napisałem - dodanie na początku "mov CX,1000" spowoduje, że po wpisaniu 1000 znaków program się zakończy, choćby nie został wciśnięty Enter. Na klawiaturze oprócz znaków możliwych do wyświetlenia są np. klawisze funkcyjne, strzałki, Home, End,... nie bardzo...
Uniwersalny sposób postepowania dla wszystkich mikrokontrolerów (note especially for jj ;)) : Masz w zapasie nieużywany timer liczący w dół (do 0) ? Przy każdym wciśnięciu ustawiasz timerek na jakąś wartość opóźnienia, np. 150ms. Z chwilą gdy timer osiągnie zero, przestaje liczyć. Tak więc przed sprawdzeniem czy przycisk naciśnięto, sprawdzasz wartość...
Wiem ze bylo milion razy, wciskalem przycisk szukaj, ale dla laika to i tak za trudne wiec prosze o wyrozumialosc ;) Potrzebuje po otrzymaniu stanu niskiego na wejsciu wlaczyc timer na 5 do 10 sekund i potrzebuje prostego opisu co gdzie ustawic, tzn. np setb TR0 ;wlacza przerwania, ale nie wiem jak dalej poustawiac i jak wyliczyc czas (bede potrzebowal...
Panowie mam pytanie co robię nie tak że mi nie obsługuje klawiszy. przyciski mam dołaczone do PA0...PA4. Do PA5 i PA6 mam dołączone przekaźniki (wyraźnie słychać czy się przełaczają), zamiast sterowania przekaźnikiem dawałem komendę zerowania LCD i nic. Tak jakby się gdzieś zawiesił albo coś. Wiem że całe życie się człowiek uczy i pewnie jest tu jakiś...
Witam, kiedyś bawiłem się mikrokontrolerkami AVR w Bascomie - ciekawa sprawa, ale po jakimś czasie zaczął mi się nudzić :). Postanowiłem więc spróbować sił w Asemblerze. Korzystam z kursu na stronie mikrokontrolery.net - ciekawy, ale trochę za mało jest wyjaśnień, dlatego bardzo proszę o pomoc :) Mam problem z układem czasowym, tzn. działa mi, ale ja...
Może zrób to inaczej. Podam sam pomysł bo osobiście nie programuję w C więc nie chcę głupot pisać, a podejrzewam że asembler Cię nie interesuje ;) Po naciśnięciu dowolnego przycisku wygeneruj opóźnienie. Po tym opóźnieniu sprawdź jakie przyciski są wciśnięte. Ale zwróć uwagę żeby przy każdej instrukcji if sprawdzać oba piny 1 i 2 portu B. Więc warunek...
Witam, jestem w trakcie realizacji mojego 1wszego projektu na AT89S52. Od niedawna jestem szczęśliwym posiadaczem klawiatury "telefonicznej" 12 przyciskowej (niestety nie jest to klawiatura matrycowa, i ma 14 wyprowadzeń) , dotychczas nie udało mi się jej dobrze "obsłużyć". Chciałbym sczytywać 4 bajtowy kod wpisany z klawiatury (przykładowo 1234) a...
Witam ponownie Wykonałem płytkę poskładałem wszystko załadowałem hexa do 90s2313 i układ nie działa :( :( :cry: .Układ jest wykonany prawidłowo wg. schematu nie wstawiłem tam tylko MAX603 bo według mnie jest on tan tylko po to aby oszczędzać baterie i podaje zasilanie dopiero wtedy gdy układ jest podpięty do kompa. Połączyłem tylko nogi w podstawce(odmax603)...
Witam Programowałem trochę w bascomie swego czasu i tam opóźnienie wprowadzało się bardzo prosto - wait x i już.. O co mi chodzi. Mam zrobić pragramik .include "m2561def.inc" rjmp START ;-------------------------------- START: .def rej1 = r16 .equ KeyPort = PORTD .equ KeyPins = KeyPort - 2 .equ LedPort = PORTB ldi rej1,low(RAMEND)...
Chodzi mi o linijkę zaznaczoną gwiazdkami . Kompilator wyrzuca mi błąd takiej treści error: Undefined symbol: SPL i nie wiem co jest nie tak, w tej linijce .include "2313def.inc" .def acc = r16 ; nadanie rejestrowi r16 nazwy symbolicznej .cseg .org 0x00 ldi acc, 0b11111111 ; załaduj do acc liczbę 255 (0xff) out DDRB, acc ; wpisanie...
nie wiem jaki tam jest assembler. na Atmege16 mam coś takiego. procedura jest wywoływana z tajmera co 20 ms ;#######################################... skan_klawiszy: ldi acc,0x0F ;ustawienie wierszy jako WEJ, a kolumn jako WYJ out DDRB,acc ldi acc,0xF0 ; wlaczenie pull-up na WEJ out PORTB,acc out PINB,acc...
Diody działają poprawnie, Jest to Attiny2313 tylko z przyciskami nie chce działać. Sprawdzałem woltomierzem to na porcie jest 5V po naciśnięciu przycisku 0 więc od strony mechanicznej wszystko ok. .include "tn2313def.inc" .org 0 ldi r24,LOW(RAMEND) out SPL,r24 ser r24 out DDRB,r24 ; port B - wyjscia out PORTB,r24 ldi r24,0 out DDRD,r24...
Jak kiedyś zlitowałem się nad SAB600 i postanowiłem go zastąpić czymś bardziej orginalnym to powstał taki twór. Twór o tyle ciekawy, że w asemblerze ale pod Bascomowym interfejsem. Program oprócz generowania dźwięków robi jeszcze parę innych rzeczy, ale chyba tyle to już się można zorientować w kodzie. [syntax=basic4gl] '***********************Tiny13_Gong1...
Rzeczywiście, Atmega32 nie ma PCINT. Niemniej jak wspomniałem takie skanowanie lepiej jest zrealizować w oparciu o cykliczny odczyt. Wyklikałem poniższy kod ale nie gwarantuję, że jest on na 100% poprawny bo: - dawno nie pisałem w asemblerze - nie mam jak sprawdzić jego poprawności Idea jest taka, że w przerwaniu od przepełnienia T0 sprawdzamy klawiaturę...
Stąd pytanie czy ktoś z was pisze całe programy w asm czy tylko wstawki asm w C ? Ja pisze prawie całe programy w asemblerze. Prawie całe ponieważ inicjacje mam w C ze względu na IDE w jakim pracuje - LCPXpresso. Funkcja main natomiast jest już w całości napisana w asemblerze. Pisze głównie dla układów z rdzeniem Cortex-M0 (LPC111x) ponieważ ten rdzeń...
Ok ,a czy nie da sie odrazu zapisac sprawdzania przycisku pomijajac zaladowanie stanu portu do akumulatora ?? np : sprawdz: // petla sprawdania przyciskow P0-P7 jnb P2.0,wys0 // jesli P2.0 jest 0 skok do wysw0 jnb P2.1,wys1 jnb P2.2,wys2 . . . itd (...) Można sprawdzać stan linii portu 2 w ten sposób, nie trzeba wykorzystywać akumulatora. mov acc,...
Tak jak pisałem, obsługa przerwania ze względu na uwarunkowania kompilatora jest piekielnie długa i naprawdę na tym nic nie zyskujesz. Zobacz jak wygląda wygenerowany kod asemblerowy nawet dla prostej funkcji. Piszesz o sprawdzeniu stanu klawisza co chwile, a czym to się różni od sprawdzania co chwilę flagi, którą zmienisz w przerwaniu? Tym, że w każdą...
Po kursie asemblera x86 w szkole, dopiero zaczynam sie przesiadac z bascoma na ASM, wiec pewnie jeszcze do tego dojde bo narazie ledwo wiem jakie znaczniki ustawiasz ;) Ale mimo wszystko dzieki. Z drugiej strony czytalem ze podejscie polegajace na sprawdzanie stanow przyciskow co okreslony czas jest bardzo popularne. Jednak zastanawialem sie jak na...
Tak wiec plik glowny wyglada to nastepujaco #include <at89c5131.h> #include "zmienne.h" #include "funkcje_lib.h" extern GET_KEY(); BYTE Tablica[10]; //Tablica[0] sekundy //Tablica[1] minuty //Tablica[2] godziny //Tablica[3] dni void RTC_INIT() { RCAP2H =(0-10000)>>8; // licznik zlicza impulsy RCAP2L = (0-10000); // opoznienie 10ms - sprawdzone...
W wywołaniach masz odwołania do main3 i main4 których nie ma w kodzie. Nie ma gdyż one są prawie identyczne jak te wyżej. Różnica polega na innych zawartościach rejestrów DDRD i PORTD. Napisałem o tym w pierwszym poście: Zamieszczam fragment programu: W całości program składa się z 4 pętli (zamieściłem tylko dwie, żeby zobrazować jak to ma działać)....
Podstawą pracy układu jest „generatorowa” metoda pomiaru. W roli generatora wykorzystano przerzutnik Schmitta, który zapewnia działanie urządzenia w pełnym zakresie pomiarowym. W celu pomiaru C i L wykorzystano oddzielne generatory, przełączane w zależności od ustawionego trybu pracy. Wyjścia generatorów łączą się z wejściem ICP mikrokontrolera...
Przedstawiam "CLR2313"; czyli miernik pojemności, indukcyjności i rezystancji na ATtiny2313 (AT90S2313). Pomiar parametrów elementów pasywnych to jeden z problemów w pracy majsterkowicza. Chciałem zaprojektować urządzenie, które parametrami nie będzie zbytnio odbiegać od podobnych amatorskich konstrukcji. Oczywiście, i wśród konstrukcji amatorskich...
Tiny_Nixie Zegar inny niż wszystkie Chciałem zaprezentować konstrukcję, której realizacja trwała około 10 lat ;), bo mniej więcej tyle minęło odkąd zakupiłem cztery Lampy LC-531 na krakowskiej giełdzie elektronicznej. W tym samym czasie też wpadły mi w ręce pierwsze AVR-y z niektórymi z nich jeszcze przez długie lata za sprawą nieznajomości asemblera...
Przedstawiam efekty mojej próby zmierzenia się z tematem sterowania bramą garażową. Taka potrzeba pojawiła się po awarii oryginalnej elektroniki napędu. Zamiast kupować następną identyczną płytkę sterującą (która znowu padnie po jakimś czasie), można przecież zrobić swoją, prostszą, i potem tanio ją serwisować we własnym zakresie. (I to by było na...
Witam, Przedstawiam kolejny projekt z wykorzystaniem karty TeleVGA, tym razem jest to " 4- kanałowy termometr z zegarem RTC i wyjściem VGA " Projekt powstał przy okazji realizacji zlecenia na kontrolę temperatury na linii produkcyjnej. Jednym z wymagań była dobra widoczność odczytów dlatego wybór padł na monitor LCD. Po realizacji projektu postanowiłem...
Witam Tak Panowie ja się z Wami zgadzam (z racji tego iż w programowaniu jestem jak but) chociaż z tymi diodami i analogowym wskaźnikiem zupelnie nie. Jeżeli chodzi o program to od początku miałem takie wrażenie, że cos jest nie tak. Uważałem, że trzeba to napisać co najmniej w C, ale najlepiej w asemblerze - niestety programista mi nie powiedział w...
Sterownik włącza/wyłącza do 8 urządzeń grzewczych i chłodniczych. Stan wyjść zależy od: temperatury mierzonej w dowolnej liczbie punktów, wewnętrznego zegara czasu rzeczywistego, programu grzania i chłodzenia przechowywanego w pamięci EEPROM. Architektura sterownika Sterownik jest oparty na mikrokontrolerze AT89C2051 . Układ ten ma 2 kB pamięci flash...
NA WSTĘPIE Wiem, wiem, ktoś zaraz powie, że układów aktywnego obciążenia nie sposób zliczyć i kolejny taki projekt przyczynia się do klęski urodzaju… 8-) Mimo wszystko chciałbym przedstawić projekt aktywnego obciążenia. Aktywne obciążenie samo w sobie nie jest czymś szczególnym, ale obudowane w odpowiedni układ elektroniczny, nabiera niebanalnego...
IC4505 CD4015 wszystkie nóżki 0V tylko zasilanie na 16=5V IC 4504 CD4014 2- 2,5V 5- 5V 6- 5V 7- 5V 11- 5V 13- 5V 14- 5V 16- 5V IC 4503 CD 4014 1- 5V 4- 5V 5- 5V 6- 5V 7- 5V 12- 5V 13- 5V 14- 5V 15- 5V 16- 5V Cieszę się że poświęciłeś czas na napisanie "dissasemblera" choć niewiele mi to mówi, ale asembler to język programowania? Co jest mi potrzebne...
Nie wiem czy sie przyda ale mam opis bootloadera ale na ATmega8 oto on napisany w bascomie: 'Program Bootloadera (monitora) dla ATmega8 umożliwiający ładowanie 'programu do pamięci Flash przez interfejs RS232 z prędkością 19200 'bodów 'Bity fuse należy ustawić, by na Bootloader było przeznaczonych 128 'bajtów 'Początek adresu programu Bootloadera:...
po pierwsze po dyrektywie .cseg podaj .org 0 a program niestety leci ci w maliny bo troszeczkę namieszałeś. gdy już zaczyna się pętla główna programu main: to sprawdzasz poleceniem SBIS PINC, 0 czy przycisk jest naciśnięty i jesli tak czyli PINC0 zwarty jest do masy to robisz skok do etykiet zwieksz i do tąd w takich rozważaniach jest ok a delej to...
Interpreter 1-wire sterowany przez rs232 Ponieważ posiadana płytka testowa z wyświetlaczem LCD 2x16 i 4 przyciskami nie zapewniała możliwości wygodnego testowania układów 1-wire powstał interpreter wykorzystujący standardowy komputer jako urządzenie wyj/wej i komunikujący się przez port RS232 przy pomocy kabla null modem. Hardware : Interpreter został...
Witam Chciałem przedstawić mój projekt: Metronom cyfrowy do pianina. Zawsze mnie zastanawiało dlaczego firmy tak zdzierają za metronomy. Na Alledrogo najtańsze chińskie modele kosztują ok 40zl, nie mówiąc już o lepszych. Moich wymagań i tak żaden z nich nie spełniał, więc postanowiłem zrobić własny. Zależało mi szczególnie na głośności oraz możliwości...
Witam Próbuje od dłuższego czasu uruchomić UART'a w układzie, ale nie bardzo wychodzi. Z rozpędu kupiłem sobie ATTiny26, który go nie posiada, płytka i układ jest zaprojektowana (i już zlutowana) pod niego, więc w pewnym sensie zmusiłem się do napisania obsługi komunikacji. Nie chce tego już zmieniać, a programowanie chciałem potraktować jako kolejne...
Interpreter 1-wire sterowany przez rs232Ponieważ posiadana płytka testowa z wyświetlaczem LCD 2x16 i 4 przyciskami nie zapewniała możliwości wygodnego testowania układów 1-wire powstał interpreter wykorzystujący standardowy komputer jako urządzenie wyj/wej i komunikujący się przez port RS232 przy pomocy kabla null modem. Hardware : Interpreter został...
Witam serdecznie :D Chciałbym przedstawić wszystkim mój autorski projekt prostej konsoli stworzonej w ramach konkursu obecnie prowadzonego na elektrodzie. Każdy pewnie zapyta dlaczego akurat SharkII? To wskazywałoby jakby istniała pierwsza część, ale w sumie gdzie ona jest? W dawnych czasach tj. 2006 rok ukończyłem wraz z płytką prostą grę elektroniczną....
Witam serdecznie, borykam się ze zrealizowaniem zadania o poniższej treści: Zaprojektować w asemblerze system mikroprocesorowy złożony z mikrokontrolera 8051. System ma realizować licznik modulo 100 generujący skalę czasową co 1s. Uruchomienie licznika i start od zera następuje poprzez podanie sygnału 1 na przycisku, wyłączenie przycisku (zero) powoduje...
>dondu Autor tematu w pierwszym poście nic nie pisał o przesyłaniu komend assemblera a jedynie w następnym poście potwierdził sugestię Piotrus_999 która w tym przypadku jest błędna a autor wątku przyjął to za dobra monetę. Piotrus_999 nie wie jak jest skonfigurowany moduł Easy8051 więc pianie o rozkazie MOV P1,P2 nie ma żadnych podstaw merytorycznych....
Mam wrażenie, że jeśli te sygnały nie muszą być HiFi, to da się zrobić 23 sygnały na jednym module STM32F103C8T6. Ale trochę trzeba się postarać. Podliczyłem - STM32F103C8T6 ma 19 pinów "5V tolerant" (A8-12, A15, B2-4, B6-15) i 11 z ograniczeniem do V_DD=3.3V (A0-7 B0,1,5); z tego B2 to BOOT1 (służy do wybierania, z jakiej pamięci ma startować, ale...
Hmmmm... tylko timerów potrzebuje do innych celów (m.in. do UART). W asemblerze robiłem tak, że w głównej pętli chodziła mi klawiatura, po nacićnięciu przycisku wykonywała się procedura i albo następował powrót do sprawdzania klawiatury, albo w procedurze było oczekiwanie na naciśnięcie określonego klawisza (nie było "omiatania" przez cały czas). Chodzi...
ZbeeGin Najwidoczniej nie wykonujesz procesu kompilacji poprzez wywołania polecenia Assemble jeśli chodzi o ustawienia AVRStudio to mam tak jak na obrazku czyli lewe okno: Debug platform - wybrane AVRSimulator prawe okno: Device - wybrane ATmega8 Następnie pod przyciskiem F7 lub CTRL+F7 mam zamiast Assmeble mam opcję Build - wydaje mi się nazewnictwo...
Jak to w życiu bywa, człowiek kolejny raz staje przed wyborem kupienia wątpliwej jakości chińskiego produktu, albo wyprodukowania „elastycznego” narzędzia którego parametry są nieco pewniejsze ;), przede wszystkim korzystanie z niego będzie sprawiać mi podwójną przyjemność. Tym razem temat dotyczy termometru. Miernik o tyle niebanalny,...
W Podatność na wstrzykiwanie komend Jedną z częstszych i łatwych do odnalezienia dziur jest podatność na wstrzykiwanie komend poprzez np. interfejs użytkownika. Sama idea tego ataku jest prosta – załóżmy, że podajemy gdzieś tekst, który następnie wykorzystywany jest do skonstruowania komeny dla powłoki systemu. Jeśli teraz podamy jako ten tekst...
*Icebox thermostat* jest termostatem do lodówki zawierającym mniej i bardziej wymyślne funkcjonalności, przy czym większości z nich z pewnością nie znajdziecie w pospolitych termostatach. Zostały uznane za całkowicie zbędne i pozbawione sensu ;) Konfiguracji termostatu dokonuje się bezprzewodowo z użyciem BlueTooth oraz konsoli VT100. Termostat posiada...
Witam wszystkich. Tym razem chciałbym zaprezentować jeszcze jeden projekt zegara (z kalendarzem i budzikiem) zbudowanego z użyciem Zilog Z8681 oraz RTC MCP7940, który jest rozwinięciem prezentowanego wcześniej na Elektrodzie projektu zegara z tym samym mikrokontrolerem ( ). Efekt prac jest widoczny na filmiku oraz na zdjęciu, gdzie zestawiłem prezentowany...