Czytać ze zrozumieniem ! CZEKAJ: MOV R0,#255 MOV R1,#255 ODLICZAJ: ODLICZAJ1: DJNZ R0, ODLICZAJ1 ; ODLICZAJ2: - to przeszkadza Atomowi DJNZ R1,ODLICZAJ1 - zalozmy, ze kosmetyka ; DJNZ R0,ODLICZAJ1 - to przeszkadza Tobie RET ... Jeszcze zmiany w: START2: SETB P2.0 ; wylacza MOV R2,#39 odliczaj_czekaj1: ; LCALL ODLICZAJ_CZEKAJ...
Z opisu funkcji wynika, że pętla używa 8-bitowego licznika. Gdzie w tej funkcji jest odniesienie do licznika.? W tej linii: dec %0 Po prostu jeden z rejestrów jest używany do odliczania opóźnienia i dlatego został "przezwany" licznikiem. Nie ma to nic wspólnego z fizycznymi licznikami/timerami. O wstawkach assemblerowych możesz przeczytać w manualu...
Poczytaj o licznikach 8051, ładujesz wymierzoną liczbe do licznika, licznik odlicza tyle cykli maszynowych, i po odmierzeniu tej liczby (20ms) zmieniasz w przerwaniu stan portu, i tak w kółko, trzeba znać częstotliwość taktowania. Taki skrót żebyś wiedział czego szukać.
żona pyta ile mi zostało żeby ZUS uznał 1. że mogę złożyć wniosek o emeryturę (nazwę T1) 2. kiedy odpowie, że wniosek został uwzględniony(T2 = T1 + termin zus {ok. 1 m-c} T3 data wypłata 1 emerytury (T3 = T2 + kosmos {tego czasu nie będę odliczał} zaznaczam jestem + 64 przepraszam jeśli martwi cię mój wiek. z pozdrowieniami wojtek Dodano po 2 Możliwości...
bo dopiero zaczynam z assemblerem i posluchaj dobrej rady: Na tym poprzestan. Zacznij pisać w C albo nawet lepiej w C++. Asembler nie służy w 21 wieku do pisania programów tylko czasem, od wielkiego dzwonu (raz na kilka lat ) trzeba napisać 20 linijek. Nie marnuj czasu na coś całkowicie zbędnego.
if(++sek == 60) podobno można zrobić and-em szyciej. Czekam na rozwiązanie Rozpatrywanie takiego czegoś jest co najmniej niepoważne. Taka konstrukcja w C może być skompilowana na pewnie kilkanaście różnych sposobów w zależności od deklaracji zmiennych, poziomu optymalizacji, użytego kompilatora, ilości wypitej kawy, pogody itd. I każdy będzie działał...
ZbeeGin ma racje, sprawdziłem szprzętowo i wszystko działa.... z małym wyjątkiem: Kiedy zaczyna się odliczanie w dół, nie zaczyna od wybranej cyfry tylko o jeden większej... np. wybiore 5 a zaczyna 6,5,4,3,...,0 Jak to poprawić ?
Dlaczego nie Timer ? Obsługa przerwania TIMER0_OVR w niczym nie przeszkadza w działaniu PWM, a mamy w ten sposób jakąś podstawę czasu, który można sobie odliczać w tym przerwaniu. Dokładność co do 3 miejsc po przecinku nie jest taka istotna przy dekodowaniu RC5... Co do kodu - to nie ma prawa tak działać, obsługa przerwania powinna być jak najkrótsza,...
Koledze cukras chodziło zapewne o język programowania a nie o docelową platformę sprzętową. Język to asembler uC 8051. Kolego elektronikopo , jeżeli oczekujesz że ktoś napisze za ciebie ten program to się srogo zawiedziesz, tu nikt nie odwala za kogoś 'gotowca' , także do pracy, ten program to nic trudnego; szybciej będzie jak sam go napiszesz niż jak...
https://obrazki.elektroda.pl/6848039300_... Ogranicznik czasu pracy to dość banalne urządzenie włączane pomiędzy mechanicznym włącznikiem ciśnieniowym a pompą, mające ochronić ją przed przegrzaniem (skutkiem suchobiegu). Zasada działania: 1. Po włączeniu zasilania przekaźnik jest włączony i zaczyna się odliczanie 100 sekund (w normalnej...
Widzę mały błąd - ustawiłeś 20 sekund, a po kliknięciu odliczania od razu przeskoczyło na 19 - nie powinno czekać tej jednej sekundy ?
Jeszcze mam pytanie czy da się przerobić tak aby wrzucić to na procek attiny13? Owszem, ale raczej w C lub asemblerze... ;) Tutaj np. jest RGB LED na Tiny13: http://www.elektroda.pl/rtvforum/topic20...
W AVR Studio dokumentacja do Atmegi8 nie nazywa się tak jak w prxuypadki atmega128 tylko m8def.inf więc jak dołączysz ten plik to też powinno jakoś działać. Znajduje się on w tym samuym katalogu co dokumentacja do 128. Pozdrawiam. O tych plikach mówi się nie dokumentacja, tylko plik nagłówkowy i nie "m8def.inf", tylko "m8def.inc"... (Domyślnie w katalogu...
Policzyć ile cyklów zegarowych przypadnie na 1 sekundę i zrobić pętlę, która wykona właśnie tyle cykli. Można też zaprząc do tego timery, wtedy odliczanie można zrobić bardziej precyzyjnie.
To trzeba policzyć: (+) oznacza liczbę cykli procesora dla danego rozkazu mov r0,#0 mov r1,#60 setb dioda loop1: loop2: nop ;+1 nop ;+1 nop ;+1 nop ;+1 djnz r0,loop2 ;+2 djnz r1,loop1 ;+2 clr dioda Wewnętrzna pętla wykonuje się 256 razy i trwa 6 cykli. W sumie więc trwa dla kwarcu 11,0592MHz: 11059200 / 256 razy / 6 cykli / 12 taktów/cykl = 600Hz Aby...
a nie lepiej napisac ten prgram w asemblerze tego mikrokontrolera? mysle ze za odliczanie do tylu bedzie odpowiadala instrukcja djnz
Witam Musisz sobie napisać kawałek, który będzie sobie tylko odliczał, będzie to podprogram np. czekaj, oraz podprogram który czyści wyświetlacze. Konstrukcja programu będzie wyglądała tak. dupa1: ... ... ... ... lcall czekaj lcall czysc dupa2: ... ... ... ... ... lcall czekaj lcall czysc itd. dupa4: ... ... ... ... lcall czekaj lcall czysc...
Zmieniłem kod.Niby jest bez błędów ale jest brak reakcji na zmianę wartości w OCR0,tzn.czas odliczany jest taki sam bez względu na zmianę w OCR0. #include <avr/io.h> #include<avr/interrupt.h> .global pwm TIMER0_COMP_vect : ldi r17,0 out _SFR_IO_ADDR(TCCR0),r17 out _SFR_IO_ADDR( TCNT0),r17 reti pwm: push r17 ldi r17,0b00001101...
Dzięki, ale tak naprawdę, pierwotnie to jest pętla na 3 rejestrach, tylko liczy jakoś dziwnie... Dodałem NOP. EDIT: zagadki ciąg dalszy. Przypomnę, że każdy piksel to 3 bajty, więc po ustaleniu takich parametrów: R16=255 R17=8 R18=0 uzyskuję linijkę 768 pixeli, to się zgadza. Idziemy dalej, zwiększenie R18 powinno dać mi już prawie dwie linijki tak...
W pierwszym poście napisałeś że potrzebujesz zmierzyć czas całego impulsu i tak jak to wygląda na pierwszym rysunku to chyba miernik częstotliwości by tu wystarczył. Miernik od Manekinnen mierzy od 1Hz do połowy prędkości Twojego kwarca...może na początek Ci wystarczy a ma otwarty kod który możesz zaimplementować do swojego rozwiązania. Mała częstotliwość...
Niby dlaczego za małe(krótkie) Procedury delay liczą 256*256 cykli co daje trochę ponad 65ms dla zegara 1 MHz. Procedury, które podałem łatwo dostosować do dowolnego zegara. Wystarczy pozmieniać wartości ładowane do odpowiednich rejestrow. W komentarzach podane są cykle zegarowe zajmowane przez określoną instrukcję. Dla 1MHz cykl wykonuje się w czasie...
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...
Witam wszystkich progrmistów w asemblerze... mam wielki problem, dostałem zadanie ( w zasadzie to dwa, treśc drugiego w innym poście) do zrobienia z czegoś z czego jestem zielony i potrzebuje pomocy w rozwiązaniu i zrozumieniu problemu... Za wszelką pomoc bardzo dziękuje Zaprojektować i uruchomic system generujący przerwanie czasowe, spełniający następujące...
Beda, beda :) W programie musisz ulozyc ich kolejnosc, przy kazdym cyklu. Potem tak, przy przerwaniu timera glownego wlaczasz wszystkie, i wlaczasz timerek 2 ktory odmierza czas swiecenia najciemniejszej diody. Wlacza sie przerwanie i bach wylaczasz te diode i wlaczasz znowu tyimer ktory odlicza czas swieceina drugiej njaciemniejszej minus czas swiecenia...
Jak już pisałem wcześniej wykorzystaj przerwanie. Użyj wejścia INT0 lub INT1. Ustaw je sobie na narastające zbocze i napisz procedurę obsługi przerwania odliczającą zadany czas. W pętli możesz sobie czytać ADC, a jak przyjdzie przerwanie to program automatycznie skoczy do obsługi przerwania. Daje to mniejsze opóźnienie pomiędzy wykryciem zmiany a zaczęciem...
To ze masz rezonator 10 MHz oznacza ze mikrokontroler wykonuje 10 * 10^6 cykli, a to oznacza ze jeden cykl trwa 0,1 us. Na początek załoz ze kazdy rozkaz trwa 1 cykl (to tylko załozenie), a wiec 0,1 us. Teraz musisz tylko wykonac podprogram który wykona T/0,1 rozkazów, gdzie T jest to czas który powinien trwac twój delay (mozna to wykonac przez pętle)....
Najprościej to zrobić w przerwaniu zegarowym, sprawdzasz stan klawiszy i po powiedzmy 10 ms sprawdzasz ponownie, jeżeli taki sam to zaczy, że drgań nie ma... Albo tak samo, tyle że czas odliczać pętlą, ale tu trzeba mieć wystarczająco dużo czasu na takie marnotrastwo cykli maszynowych.... PS. Podobna dyskusja się już toczy...
Masz tu prosty przykład w .asm START: MOV P1,#127 ;Podstaw 01111111 do portu p1 #127 Lcall TIME_N100 ;Wywołaj podprogram czas_n1 MOV P1,#191 ;Podstaw 10111111 do portu p1 #197 Lcall TIME_N100 ;Wywołaj podprogram czas_n1 Sjmp START ;Skocz do etykiety ;*************************************** ;podprogram opóznienie czasowe TIME_N100: PUSHACC ;przechowaj...
Witam i zapraszam do dyskusji. Do asembler:Impulator jest nowy- zamówiony wraz z całym osprzętem (tylko w częściach). Program wgrany w prosesor. Po złożeniu tego okazało się, że program sobie nie radzi - popełnia błędy, o których pisałem. Ja zmieniłem zastosowanie tego Kit-u, a co za tym idzie cały program napisałem na nowo. Stworzyłem program, który...
Piotr P. : dzięki za poprawkę. Tym bardziej widać, że trzeba użyć timer z przerwaniami co 0.5 ms - to się da bez problemu zrobić. Dalej odliczamy przerwania timera do 20 (w dół byłoby łatwiej) i wystawiamy 1 gdy zliczymy do 20, a 0 gdy zliczymy do 1 albo 3, w zależności od stanu wejścia DELAY2 opóźnia z grubsza o (((3 * 255) + 2 + 3) * 27 + 3) * 2 +...
Krytyka jest najlepszą formą zmuszenia do myślenia. Rzeczywiście niektóre błędy są tak proste że aż wstyd. Ogólnie w pętli głównej program ma sprawdzać ilość impulsów i wyjście komparatora informując mnie o tym diodami. Wejścia INT0 oraz INT1 będą wywoływać procedury dopiero po spełnieniu dwóch warunków z pętli głównej. Dokładność liczenia impulsów...
Witam! Potrzebuje pomocy i za kazda bede wdzieczny. Probuje napisac program w asemblerze na miernik refleksu o rozdzielczosci 0,01s i mam problemy ze wszystkim. Zalozylem sobie, ze po podlaczeniu do zasilania uruchomi sie licznik, ktory bedzie liczyl do momentu startu - czyli nacisniecia na przycisk "START". W tym momencie 'wyjmie' ostatnia cyfre jaka...
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ę...
Ja robie to tak: Podstawowe procedury 1W ;Zadeklarowac zewnetrznie szyny DQ1 DQ1EQUP3.4 ERROR_PEQUF0; brak odpowiedzi czujnika po RESET CZAS_KONVEQU16; x * 20ms ; Stale uzyte w procedurze RESET RES_TIMEEQU255; czes sygnalu RESET PRES_TIMEEQU15; czas oczekiwania na PRESENCE PRES_TIME_ENDEQU60; czas sygnalu PRESENCE RES_TIME_ENDEQU240; czas zakonczenia...
Dobra z komputera jest podawana liczba kroków i co ile kroków ma się silnik zatrzymywać na pomiar.Dane są przekazywane I2C.Czyjnik pozycyjny jakim jest fotodioda (zdecydowałam się na użycie tylko jednej) ,będzie mijała linie okreslajace odpowiednie polozenie.W momencie miniecia lini,ma byc wysłana informacja d0 komputera ,że minięta zostala linia.Jednoczesnie...
Oczywiście to '51 ORG 00h LJMP START ORG 0Bh LJMP 50h ORG 1Bh LJMP 70h START: ILOSC EQU 65536-46080 ; czas odliczania 50ms MOV TH0,#ILOSC/256 MOV TL0,#ILOSC-(ILOSC/256)*256 MOV TMOD,#00010001B SETB TR0 CLR TF0 MOV IE,#10000010B CLR P1.7 MOV R0,#2 MOV R1,#18 PETLA:NOP SJMP PETLA END ORG 5Oh MOV TH0,#ILOSC/256 MOV TL0,#ILOSC-(ILOSC/256)*256 DJNZ R0,DALEJ...
Prosty przykład - kompilowana pętla odliczana zmienną integer to na klasycznym procesorze co najmniej kilkanaście rozkazów kodu wewnętrznego, natomiast ta sama pętla na specjalizowanym interpreterze sprzętowym może się zamknąć w 2-3 rozkazach interpretowanych z tą samą prędkością. Prosta pętla iteracyjna na procesorze klasy x86 ma postać rozkazów:...
Rozpatrz opis działania polecenia SLEEP: "Rozkaz ten wprowadza procesor w jeden z trybów obniżonego poboru energii, określony przez nastawę specjalnego rejestru. Układ może wyjść ze stanu uśpienia tylko w skutek wystąpnienia przerwania lub zdarzenia zerowania. Jeśli do wybudzenia procesora wykorzystane mają być przerwania, należy pamiętać by wcześniej...
Dzien dobry mam taki problem, chciałbym podlaczyc zewn pamiec eprom np 24c08 do procesora rodziny 8051 np. 2051 lub c52 (dowolnego). I niewiem jak to obsluzyc. Bo mam do napisania program ktory ma odliczac czas 30 dni ale w momencie odlaczenia zasilania i ponownego wlaczenia musi liczyc DALEJ od momentu za nim wylaczono prad. Przyjmijmy ze co godzine...
Kompilator Turbo Pascal 7.0, system Windows XP Professional. Język programowania: Pascal. Próbuję pisać algorytm(kod) programu. Muszę użyć słowa algorytm, żeby mi się nie mieszało. Program ma działać na takiej zasadzie. Mamy emulator minutnika i to urządzenie jest sterowane kodem. Minutnik odlicza czas do zera. Minutnik osiąga zero i włącza się alarm....
fantom: "mapowanie urzadzen na przestrzen adresowa" to powinno troche inaczej wyglądać, a już napewno w przypadku uC '51, gdzie byłby potrzebny rejestr do zatrzaskiwania adresu, zresztą sam o tym piszesz. "P0 podciagniety wewnetrznie" - uC '51 nie posiada wewnętrznych rezystorów podciągających na porcie P0. Tu są procedury do ossługi LCD w asm '51:...
Witam, poszukaj może na stronie "www.mikroe.com" w dziale PIC, kompilatorów tam jest C, basic i pascal, sa to dema z ograniczeniem kodu chyba do 1k ale w manualu i po rozpakowaniu/zainstalowaniu w przykładach jest wyjaśniona obsługa TIMER'ow i odliczanie określonych odcinków czasu. Jak pisałeś używasz asemblera ale składnia jest naprawdę prosta (sugeruje...
Po raz kolejny zwracam się z prośbą do kolegów forumowiczów. Od pewnego czasu pracuję nad regulatorem fazowym zwykłe sterowanie triaka, wykrywanie 0 sieci nastawiane opóźnienie załączenia nic odkrywczego. Postanowiłem napisać taki program aby rozpocząć przygodę z uC. Pierwsza wersja powstała w C dodałem do tego coś a'la soft start i nawet to pracowało...
AVR studio (asembler) to nie Bascom... tu nie ma czegoś takiego jak komendy do obsługi sprzętowych liczników, musisz używać rozkazów uP i konfigurować odpowiednie rejestry i przede wszystkim odpowiednio używać przerwań, bo one są chyba najważniejszym elementem, którego używa się przy pracy z licznikami. Musisz wziąć notkę katalogową tego atmelka i przejrzeć,...
Zadanko mozesz tak trzasnac dwa guziki zmiany na INT0 i INT1, sterowane z przerwan. Ustawiasz timer ktorys na nim masz odliczac polowe okresu generowanego i negujesz bit i tak w kolko. Timerek oczywiscie na przerwaniu. Licznik max to 65536 moze zliczyc czyli np 65ms na 12MHz kwarc. Co daje okres 120ms czyli ok 10Hz jak nie zejdziesz nizej to nawet licznika...
witam. Ten post powinien znależć się raczej w dziale mikrokontrolery - a nie tutaj tam szybciej uzyskasz odpowiedz na to pytanie. Jezeli chodzi o licznik to wyglada to tak: timer zgłasza przerwanie w moencie przepełnienia (przejście z FFFFh na 0000h ) najlepiej zeby pracował jako 16bit w trybie zliczania imp. wewn zegara. nie wiem czy dobrze obliczyłem...
Jak napisałem na początku buduje manipulator (mechaniczne ramie). Program napisany tak iż przy nacisnienciu przycisku zwieszksza się o 1stopień wartośc konta o jaką ma przesunąc się ramie. Watrośc ta bezbośrednio wysyłana jest na LCD. I na po nacisnięciu 149 razy przycisku (lub dłuższym przytrzymaniu) do komurki ram po adres np 35h zapisywana jest liczba...
89C2051 nie ma wewnętrznego oscylatora, więc bez kwarcu lub generatora nie ruszy. Reset - wystarczy sam kondensator. Rzecz jest na tyle mała i prosta, że warto to napisać w asemblerze. Z drugiej strony, jeśli jesteś nowicjuszem, to masz sporo do nauczenia się - potrzebny Ci będzie timer do odliczania czasu, więc musisz się z nim zaprzyjaźnić. Bascom...
Witam wszystkich. Od razu zaznaczam że to są moje początki z asemblerem oraz 8051 i jestem zielony w tym temacie, ale do rzeczy. Pisze sobie program który ma pełnić rolę licznika - chce aby odliczał od 0 do 9999 a potem do tyłu. Do tej pory napisałem kod który wyświetla liczby od 0 do 9 i z w drugą stronę - wszystko odbywa się w pierwszym segmencie...
Biblioteki do obsługi tego wyświetlacza powinny być dobre, znajdowały się na płycie która byłą w zestawie .DDR określa czy piny mają być w wysokim stanie czy też niskim. Dodano po 10 Zdaje mi się że nie chce działać przez to że zmieniłem funkcję opóźniająca zamiast wstawek asemblerowych dalem żęby poprostu odliczało w dół (bez tej zmiany nie chciało...
Ustawiasz CTC na bardzo szybki, czas pomiędzy przerwaniami to będzie rozdzielczość regulacji. Reszta to wartości w pamięci(zmienne) odliczające programową syntezę częstotliwości. Aha..oki, dzięki, spróbujemy narazie coś wycisnąć z Bascoma ale czarno to widzę nawet w asemblerze, bo zależy mi na bardzo dokładnej częstotliwości, a przecież już przerwanie...
Nie da się dokładnie zrobić opóźnienia 1us na tym kwarcu. Błąd będzie mikroskopijny ale będzie. Najłatwiej takie opóźnienie zrobić dając 11 nopów. Oczywiście dla kwarcu 11.0592 MHz też to zrobisz. Wystarczy licznik timer0, prescaler = 64. Po zliczeniu 675 razy będziesz miał 1 sekundę. Ale ta jedna sekunda jest zależna od warunków w jakich przebywa...
IRQ na zbocze może machać kierunkiem licznika - odpada jedna podpętla IRQ z licznika może uruchomić (lub resetować) odliczanie gdy osiągnie się zadaną wartość - odpada kolejna podpętla IRQ z kolejnego licznika może odliczać czas 1 lub 0 - kolejna podpętla Osiągnięcie wartości min lub max z IRQ w/w licznika spowoduje wywołanie przerwania "1" lub "0"...
skoro stosujesz rs485 ,to po co Ci programowe UART'y ? skoro na szynie rs485 może pracować wiele urządzeń ,w zależności od typu full /hall duplex ,to już kwestja programowa rozróżniania urządzeń po adresacji Poza problemami natury elektrycznej, może być jeszcze problem "spotkania protokołów", czy jak kto woli synchronizacji. W przypadku danych napływajacych...
hmm może wkleje cały flik, a systick co ma z tym wspólnego i ma być w ogóle podzielony? przez 1? ------------edit A już chyba widze, po drodzę brakuje mi[syntax=c] LPC_SYSCON->SYSAHBCLKCTRL |= 1<<TIMER_SYSAHBCLKCTRL_BIT;[/synta... ------------edit2 Ok, lata :) teraz moja zwłoka wygląda jak poniżej, oczywiście trzeba jeszcze doszlifować bo funkcja...
Jeśli w asemblerze, to musisz napisać procedurkę do przerwania zegarowego odliczającą odpowiednie czasu w licznikach, w programie głównym zainicjować zegar i odpracować logikę (w sumie kilka instrukcji). Najprościej zrobić to w BASCOMIE - taki program to kilka instrukcji na krzyż, więc nie ma mowy o jakiejś strukturalizacji programu. Nie robię w BASCOmie,...
SylwekK --> tak jak pisałem jest to obarczone takimi małymi błędami ale chodziło mi tylko o przekazanie IDEI, którą jak widzę podchwyciłeś ;) Super. Jak widzisz można się obyć bez waitms'ów a dokładność odliczania czasu nie jest tu w ogóle aż tak istotna. Za to mamy 3 różne fragmenty kodu, które działają w sposób absolutnie nieblokujący. A te warunki...
http://obrazki.elektroda.net/87_12093826... Projekt może przydać się osobom wykonującym płytki PCB przy użyciu laminatów światłoczułych. Licznik ma za zadanie włączyć naświetlanie UV gdy rozpoczyna się odliczanie i wyłączyć je, gdy odliczanie się zakończy. Czas wyświetlany jest na czterech wyświetlaczach siedmio segmentowych. Poza tym wykorzystywana...
Witam! Na wstępie chciałem zaznaczyć, że od niedawna dopiero poznaję procesory z serii ARM. Bardzo dawno temu miałem styczność z 51- jedynką i keilem. Moje doświadczenie w programowaniu C też nie jest oszałamiające, natomiast asembler na ARM jak na razie jest przeze mnie mało zrozumiany. Proszę o wyrozumiałość przy pisaniu ewentualnych odpowiedzi, za...
Już lepiej w każdym przerwaniu z timera sprawdzaj czy jest coś do wysłania na LCD (np. globalna flaga odświeżania ekranu) i cykaj po 1 znaku co 1ms. Dla małych LCD (4x20) uzyskasz odświeżanie ekranu co <100ms i będzie ok. Po wywołaniu np. LCD_Clear, w tym samym przerwaniu, odliczasz 4 kolejne wywołania i przechodzisz do przesyłania znaków. Proste,...
A change of the COM1x1:0 bits state will have effect at the first compare match after the bits are written. For non-PWM modes, the action can be forced to have immediate effect by using the FOC1x strobe bits. Być może w tym jest problem. OC1A jest prawdopodobnie inicjowane z wartością 0 do momentu wystąpienia pierwszego "compare match". W trybach "set...
michal2666 --> sposobów jest milion. 1 sekunda to hetar czasu zresztą tak samo jak 16ms to także hektar czasu ;) Powiedz lepiej na co ty masz wykorzystany tenże swój Timer1 bo zaraz się może okazać, że także i jego można spokojnie wykorzystać do tych celów. Inna możliwość to - użycie Timera0 do odliczania impulsów do czasu upłynięcia 1sek i wtedy dopeiro...
http://obrazki.elektroda.net/22_12805124... Witam wszystkich. To mój pierwszy projekt w tym dziale. Dlaczego kolejna programowalna wycieraczka do samochodu, której było już kilka różnych projektów ...? ano dlatego, że ta jest konkretnie do modelu Fiata Seicento. Jak użytkownicy wiedzą standardowy regulator cyka co około 4s i nigdy mi to nie...
Czysto informacyjnie - licznik domyślnie liczy w górę, stad odejmowanie wartości CTC(właściwa wartość do odliczenia przez licznik) od 65535. PS: LordBlick czyli w końcu twierdzisz (nie używam CTC),że powinna być wartość 49910? Nie twierdzę nic w tej kwestii, ponieważ obsługa tego przerwania w Bascom nie jest dokładna i nie nadaje się do odliczania sekund...
http://obrazki.elektroda.net/64_12841145... Projekt powstał w celu zapoznania się z tym małym uC. Działanie układu: Po przyciśnięciu przycisku układ budzi się ze stanu "Power-down". WDT odlicza czas potrzebny do zmiany świecącego LEDa a Timer odpowiada za generowanie dźwięku. Po 10 sekundach migania układ przechodzi w stan "Power-down" Program...
To nie jest wątek by o tym dyskutować, ale wywołany do tablicy tylko krótko odpowiem. Choć nie pamiętam ale większość kodu napisał ZbeeGin. Zbyszku pochwal się na czym? Kod był pół na pół. Mój udział to startup, przerwanie odliczające czas, główna pętla i podstawowa obsługa przycisków. Twój kod to mowa i "bajery", czyli dodatkowe opcje dotyczące cyklicznego...
Drodzy fachowcy, Bardzo prosze jeśli ktoś z was byłby uprzejmy mi pomóc w napisani programu do pomiaru prędkości obrotowej do mikrokontrolera (8051 lub AVR). Nie mam pojęcia o asemblerze (od razu sie przyznaje), a program jest mi potrzebny na wczoraj do zaliczenia, za wszelką pomoc z góry bardzo dziękuje. Być może pomocny będzie schemat programu, który...
Pisze programy w asemblerze na mikrokontrolery lpc111x (lpc1114). Ponieważ korzystam z takiej płytki - .syntax unified .cpu cortex-m0 .align2 .globalsystick_init .thumb .thumb_func systick_init: //wyzerowanie rejestru SYST_CVR movs r1, #0 ldr r0, =0xE000E018 str r1, [r0] //wpisanie wartosci odliczanej do rejestru SYST_RVR movs r1, #1 lsls...
Witam, dziękuje za zainteresowanie moim tematem:) Efekt ma być taki że diody (każda osobno) mają migać w losowy sposób. Całość ma być zainstalowana na listwach ok 1,5 cm szerokości więc procesor nie mógł by być za duży. Dlatego spodobał mi się tiny 13 lub tiny 2313 (bo takie mam ) ewentualnie mega8 ale to ostatecznie:) Może ktoś zna bardziej odpowiednie...
Dziękuję za komentarze. Ciężko jest zbudować układ który zadowoli wszystkich (o ile w ogóle jest to możliwe) i nie takie miałem założenie. Dla mnie spełnia on wszystko to co potrzebuję. Zamiast jumperków spełniających funkcje zworek, można od razu wlutować odpowiednie zworki z drutu. Układ mam zamknięty w obudowie jak na zdjęciu, dodatkowo miejsce łączenia...
Light'I zaskoczyła mnie Twoja odpowiedz.Cyba nie pisałeś w Bascom, a później w C ;). projektów które sterują czymś tam - licząc impulsy, nadzorując temperaturę, odliczając czas, pokazując wartości lub komunikaty na wyświetlaczach, analizując sygnały wejściowe i dając odpowiedź na odpowiednie porty. Tak do tego Bascom jest super,ale pomyśl sobie np....
co do asemblera, znam go na tyle, że obsługuje rejestry, bawię się w wpisywanie ciągów arytmetycznych, geometrycznych do poszczególnych komórek pamięci. Takie podstawy, to czego uczą w szkole na DSM ;P Czyli jakieś działania arytmetyczne, miganie diodą W c mieliśmy kilka zajęć i obsługiwanie wyświetlaczy 7 segmentowych, odliczanie w górę i w dół, ale...
Witam. Chcialem zrobic urzadzenie podobne do inteligentnego domu czy alarmu. Wiele wejsc i wyjsc (np. 256). Wszystko pisze w ASM dla PIC16 lub PIC18. Pomijajac kwestie skomplikowania i ogarniecia wzrokiem (czytelnosc) wszystkiego dla asemblera zastanawiam sie jak to robia znawcy ;) Czuje podskornie, ze musi byc jakas wielka tablica, ktora ma zdefiniowane...
Ja wcale nie twierdziłem, że to jest sztywna granica. Właśnie dlatego że twierdziłeś że więcej się nie da: Według moich szacunków, przy częstotliwości taktowania 16MHz, detekcji na jednym zboczu, procedurach napisanych w asemblerze i niezbyt wysokich oczekiwaniach dodatkowych co do pozostałych zadań wykonywanych przez mikrokontroler można osiągnąć...
KaJakKrzysztof: W katalogu Bascoma w program files masz katalog Samples. Jest tam o ile się nie mylę zegarek, jakiś bardziej skomplikowany zegarek i mnóstwo innych przykładów zastosowań timerów, przerwań itd. Na pytanie - czy coś takiego będzie działać odpowiedz sobie sam, załaduj program do AVR-ka. Timer od countera różni się tym, że służy do ODLICZANIA...
witam Temat być może jest trochę mylący. Ale do rzeczy. Bawię się zestawem zl3avr i jestem na etapie obsługi transmisji w kodzie RC5 w asemblerze. W książce "Mikrokontrolery AVR ATmega w praktyce" podane są gotowe programy do nadawania i odbierania wiadomości w RC5. O ile procedurka nadawania nie budzi żadnych moich wątpliwości, o ile w przypadku odbierania...
http://obrazki.elektroda.pl/3413210700_1... 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...
Można to zrobić w każdym języku i w którym dokładnie będzie zależało jedynie od tego, czy podstawy któregoś z języków opanowałaś. Najłatwiej bedzie zapewne w c ale i w asemblerze nie będzie to zbyt skomplikowane. Prostym rozwiązaniem będzie użycie timera do odmierzania czasu a w pętli głównej sprawdzanie wartości zmiennej incrementowanej przez ten timer...
hmm chodzi o to ze od momentu w ktorym rozpoczynam zliczanie dajmy na to 200us [w asemblerze komenda setb tr0] do momentu w ktorym nastapi skok do obslugi przerwania uplywa wiecej niz 202us. [202 bo juz wliczam tutaj skok do przerwania ktory trwa 2 cykle]. zakladalem tez ze moze tam jeszcze jakas jedna mikro sekunda jest potrzebna do czegos wiec obliczalem...
... Proszę o szczegóły. Dlaczego oczywiste jest, że timer że 16-bitowy odliczy 1s? Zakładamy że taktujemy kwarcem 4MHz. Jeden takt to 1/4 000 000=0,25us. 16 bitów to 65536 cykli. 65536cykli*0,25us=16,384ms Proponuję więc zliczyć 100 cykli 10-cio milisekundowych. ilość cykli = 10ms/0,25us=40000 cykli. Wpisujesz więc do timera 40000 i czekasz aż się...
Witam. Posiadam AT89S52, do którego podłączone jest: - 4x7-seg. na całym porcie P0 mam a-h, a wybieranie wyświetlacza odbywa się między: P1.0 a P1.3 - klawiaturę matrycową 0-9 na porcie P3 - 4 przyciski na P1.4 - P1.7 Moje zadanie polega na tym aby po przyciśnięciu jednego z przycisków cyfra, która jest wyświetlana na wyświetlaczach była co sekundę...
https://obrazki.elektroda.pl/5705909000_... 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...
Tak właśnie jest. Proponuję policzyć dokładnie ile potrzeba taktów zegara pomiędzy kolejnymi krokami i tak ustawić przerwania timera, aby odliczyć właśnie tyle taktów. Musisz jeszcze pamiętać, że samo wejście w podprogram obsługi przerwania i dalsze instrukcje też zajmują kilka taktów, więc przy małych wartościach preskalera może mieć to znaczenie i...
Jezyki wysokiego poziomu nie nadaja sie dopisania zegarka. Bez zdeasemblowania to nie wiadomo co sie dzieje w takim programie. Procedury krytyczne czasowo i odliczone co do jednego cyklu zegara to jak wsponiano powyzej powinno sie pisac w asemblerze. Pozatym trzeba kupic stabilny kwarc to uzyska sie niezla dokladnosc. Co do kwarcu to m32 ma nozki TOSC...
nie jestem specem w "c" ale wartosc wpisywana do rejestru licznika T1 ((to chyba ten ktory u Ciebie ciągle odlicza) - powinna być wpisywana odrazu po wejsciu do podprogramu obsługi przerwania a nie na jego koncu. (tym bardziej ze program wykonuje sie rozną liczbę cykil). pamietaj o tym , ze mikrokontroler ma stale adresy wektorów przerwan. Tego nie...
Witam, Pomysł dobry ale sypie się najprawdopodobniej z powodu zbyt dużej ilości przerwań. Proponuje projekt sterownika "równoległego", taki wykorzystałem w mojej pracy inżynierskiej. Wprawdzie korzystałem tylko z 8 serw ale 16 też obsłuży po drobnej modyfikacji. Program zabiera większość mocy procesora do obsługi przerwań ale tylko przez czas 2ms potem...
Program napisany w asemblerze ma być to generatorek kóty zapala np diodę co 1sek próbuje skompilować o to ten program, którego zamieściłem listing i niestety nie chce mi go skompilować i wypisuje jak wyżej ^^ Cóż moglibyście mi doradzić ponieważ jestem bardzo początkujący po zmianie tak jak sugerował kolega z loop na petla 29 000D: petla: 30...
Gdzieś przeczytałem, że jeśli LPC 1114 jest taktowany 48 MHz, chcąc zrobić opóźnienie 1 us muszę wykonać w pętli 32 nop'y, a dla 12 MHz 8 * nop. Przestań więc czytać takie głupie źródła (; Jak chcesz zrobić opóźnienie 1us to musisz sobie ustawić timer i odliczyć 1us. Każdy inny sposób jest do niczego i co najwyżej będzie przybliżony. Kolejna sprawa...
Możesz zbudować zewnętrzny zegar 4MHZ na bramce cmos i podać go do Attiny13 lub zamienić pętle opóźniające , jeśli się da oczywiście . Przy zegarze 4.8 będziesz miał do zliczenia o "kilka impulsów" więcej aby uzyskać ten sam czas. Przykładowo w programie autora jest : ldilicz1,0x32; początkowa wartość p1:ldilicz2,0x3B; odliczenie 2.25 msek p2:declicz2...
Witam , mam nadzieję iż nie zanudziłem bez reszty.. W zestawieniu z moimi "dokonaniami asm." kolega michalko12, jest najbliższy temu co ja kiedyś robiłem . Oto wersja asm z przełącznikiem kompilacji aby kompilować jako samodzielny plik - kto chce ->ten może :D ( ta wersja to 16-timerów, 16-nasto bitowych, każdy cztery tryby konfiguracji, oczywiście...
http://obrazki.elektroda.pl/5313552500_1... 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...
Nigdy nie korzystałem i nie śledzę rozwoju AI, więc mam pytanie. Czy i ewentualnie jak dobrze, modele językowe radzą sobie z pisaniem programów w asemblerze, np. mikrokontrolerów 8-bitowych? Coś tam generują, ale nie sprawdzałem w rzeczywistym układzie. DeepSeek wygenerował coś takiego: Poniżej znajduje się przykładowy program w asemblerze dla mikrokontrolera...
Witam Dzisiaj znalazłem fajną stronkę gdzie był umieszczony super fajny ściemniacz sterowany pilotem i ręcznie na Tiny12 ( http://republika.pl/rejestr/strony/avr_r... ). I tu mam pare pytań: 1. Potrzebuje 2 takich układów w jednej puszce więc żeby mi się to zmieściło wymyśliłem że uwspólnie odbiornik podczerwieni, zasilanie, tranzystor odp....
http://obrazki.elektroda.pl/8834646100_1... Urządzenie zostało zmontowane na mikrokontrolerze ATtiny2313, do którego podłączono zewnętrzną pamięć EEPROM - 24C16. Źródła są udostępnione, a sam projekt zrealizowany i sprawdzony w praktyce. Urządzenie współpracuje z układami typu DS1990 w ilości do 500 sztuk. Sterownik kontroli dostępu...
Witam! Potrzebuję pomocy odnośnie programu w asemblerze pod DSM 8051. Mam wykonać program, który będzie liczył na wyświetlaczu LCD od 0 do 9 z przyśpieszeniem po każdej cyfrze o 900 ms do 90 ms. Po skończonym odliczaniu pojawia się napis Stop. Z tego co rozumie z polecenia to odliczanie czasowe powinno się rozpocząć od wartości 8190 ms przy cyfrze 9...
Siemka! Mam polutowany układzik który będzie czytał temperaturę z ds1820. Nie mam jednak kodu. W innym temacie na tym forum znalazłem procedurki: ;Zadeklarowac zewnetrznie szyny DQ1 DQ1 EQU P3.4 ERROR_P EQU F0 ; brak odpowiedzi czujnika po RESET CZAS_KONV EQU 16 ; x * 20ms ; Stale uzyte w procedurze RESET RES_TIME EQU 255 ; czes sygnalu RESET PRES_TIME...
Cześć Przede wszystkim musze powiedzieć że nie znam sie ani odrobine na asemblerze . Mamy tu koder do 4kanałowego sterowania proporcjonalngo w asm'ie na attiny 15. teraz pytanie -czy da sie przerobić kod tak ,aby miał ich 7 lub 8kanałów i wrzucić go do Attiny 26 ?? I czy to koder PPM?? PS niestety nie przypomnę sobie strony z której wziąłem ten schemat...
Witam. Mam przy pomocy timerów w asemblerze napisać program na mikrokontroler AVR90USB1287 program, który będzie generował liczbę co 1 sekundę od 0 do 99 i w zależności ma świecić na odpowiedni odcień dioda, albo wersja pośrednia, 0-barwa zielona, 99-barwa czerwona, inne to pośrodku odcień. zadanie mam to zrealizowane, ale bez użycia timerów, ale nie...
timer odlicza timer1 odlicza zegar odlicza
piła krajzegi wymiana poduszki silnika renault oporniki radia
czujnik temperatury czujnik temperatury
Volvo S80 I/II – demontaż prawej strony deski rozdzielczej, schowek, SRS, Torx Bosch Motronic 2.1 J00005 EPROM Meaning for BMW, Volvo, Saab – Not a Fault Code