Nie dziel 1/3, tylko 100/3 albo 1000/3 (oczywiście w systemie binarnym przesunięcie musi być w oparciu o właśnie system binarny dokonane)... Dokonaj takiej normalizacji, aby otrzymać liczbę całkowitą, w której tylko wystarczy przesunąć przecinek. Tak więc przed przystąpieniem do dzielenia zmaksymalizuj mantysę dzielnej i zminimalizuj dzielnika, dbając...
Otóż mam zrobić na wyświetlaczu LED licznik binarny na 4 pozycjach i co pół sekundy zmiana(czyli wyświetli jedynkę w kodzie binarny, a za pół sekundy ma wyświetlić dwójkę). jak następuje przepełnienie to od początku.W języku Asembler. Na DSM 51 Mam ten program napisać na jutro, a na lekcjach nie robiliśmy licznika binarnego i mało co obsługiwaliśmy...
Witam Czy ktoś może miał styczność z tym mikrokontrolerem? Na drugim roku studiów zaczynamy z mikrokontrolerami co mnie bardzo interesuje, ale wykładowca przedstawił PicoBlaze, który ma bardzo małe zasoby i podobno można go programować jedynie w jego własnym języku assembler. Na razie tak patrzę sobie na symilatorze do pobrania ze strony (1,45MB) i...
Witam, mam problem z programem w języku assembler. Oto jego treść: Program, który czyta z pliku tekstowego dane i wyświetla co M-ty znak z co N-tej linii. Nazwa pliku, M, N (1 lub 2 cyfrowe) są podawane w linii komend jako parametry wywołania programu. Pisząc program nie używać IO.MAC program ten ma działać na procesorach 32bit i kompilować się w NASM...
Witam Potrzebuje pomocy przy stworzeniu algorytmu do sterowania Triakiem wykorzystując do tego licznik mikrokontrolera 8051. Narazie wygląda to tak ze wykrywam zero napięcia sinusoidalnego 230V 50Hz czyli okres mam 20ms (dokladnie wykrywam początek sinusoidy i tylko początek bo mam transoptor prosto pod nap 230v przez rezystor podpięte bo tak życzy...
Witam Otóż mam mały problem. Pisze sobie szybkie przerwanie dla timera na Atmega644, to co mi kompilator z C przetłumaczył na assembler wrzuciłem do wstawki assemblerowej a przerwanie zadeklarowałem z argumentem ISR_NAKED, rejestry używane w przerwaniu zarezerwowałem przez: register uint16_t licznik asm("r30"); register uint16_t temp...
Witam mam prośbę czy ktoś mógłby mi skompilować program?? ponieważ nie wiem w jakim programie to zrobić bo program jest assemblerze .include "2313def.inc" .def temp = r16 .def licznik = r17 .def licznikRL = r18 .def f1=r19 .def f2=r20 .def f3=r21 .def f4=r22 .def delay0 = r23 .def delay1 = r24 .def delay2 = r25 .org 0x0000 rjmp Reset .org...
potrzebuje przykladowy kawalek kodu w asemblerze na procesor 80c517a uruchamijajcy przebieg pwm o wypelnieniu 50% na wyjsciu portu 4.0 o czestotliwosci 20kHz pracujacego licznika nr3 w trybie compare preskaler ustawony na 000 impulsy o okresie 50us prosilbym o przykladowy kod, ew uzupelnienie i poprawienie tego: P4EQU0E8H PWM0BITP4.0 CTCONEQU0E1H CMSELEQU0F7H...
Witam. Czy potrafi ktoś pomóc mi z zadaniem z assemblera? Mam do napisania program, który mnoży dwie liczby 5 bajtowe (40 bitów) szesnastkowe oraz podaje wynik również w tym systemie (tylko wynik będzie wtedy 80 bitowy). Problem polega na tym, że do tego mnożenie trzeba wykorzystać algorytm, ponieważ instrukcja mul nie działa dla tak dużych liczb. Mnożenie...
1. Kolego jakcol68 co to za maszynka do liczników od Golfa 3? Może być taka do mięsa czy lepsza do golenia :). A tak na serio to jakiś Dashboard Programmer? Ale to wszytsko działa przez OBD a w golfie 3 licznik do OBD _nie_jest_podpięty_ . Inna sprawa, że żadne wyzwanie kupwać gotowy sprzęt. Rozumieć to co się robi, wiedzieć do czego służy każdy tranzystor,...
ebx, esi i edi są rejestrami które musisz zachować w niezmienionej wersji wracając z funkcji. ebx z niczym extra mi się nie kojaży, ecx działa jako licznik w krótkich rozkazach typu "lawinowego": mov eax,0 ; szukamy zera czyli konca stringu (mov al,0 wystarczy, ale kto tak pisze) mov ecx,-1; max 0xFFFFFFFF znaków do przeszukania mov edi,lpString...
A to akurat wiem. Multipleksowanie już robiłem wcześniej przy projekcie metronomu, ale wtedy pisałem w C i nie było problemów. A teraz nie wiem jak się zabrać za samo ustawienie odpowiednich poziomów na port 1. Wcześniej poprostu miałem zwykłą tablice cyfry[9] po której się poruszałem. A teraz nie do końca pewnie czuje się w tym assemblerze. Zdaje,...
Zaczynam przygodę z assemblerem. Chcę zapisać dane z uartu do bufforu, a następnie po otrzymaniu konkretnego znaku wyrzucić cały buffor jako echo. Naskorbałem następujący kod: org 0100H DSEG LINE_SIZES: DS 5 BUFFER: DS 55 CSEG main: mov SCON,#01010000b ;konfiguracja portu szeregowego ;tryb 1, uaktywniony odbiornik mov TMOD,#00100000b ;tryb...
No 7755 mierzy moc i energię. To że realizuje funkcję mnożenia nie oznacza że nie mierzy energii. Zrealizował bym to tak samo jak Ty. Tyle że nie wykorzystywał bym impulsów tylko po szynie SPI pobierał dane z przetworników ADC (Tylko 7755 nie ma takiej opcji. Ja miałem 7763. A najlepszy to był by 7759 bo pozwala na pobieranie próbek z kanału prądowego...
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...
impulsy najlepiej zliczacz za pomoca wewnetrznych liczników a masz i 8 i 16 bitowy. Więc zakresu z pewnością wystarczy. Przy 8 bitach raczej nie wystarczy . Chyba, że masz patent na zapisanie w 8 bitach liczby 5000 poprzez rozwiązanie mieszane z przerwaniem z licznika. Tam jest także licznik 16-bitowy. A co do patentu to jeśli zmniejszysz interwał...
Witam Pisze program w Asemblerze........... Niestety nie wiem co może być źle zaznaczę ze jestem początkującym programistą w asemblerze i liczę na wyrozumiałość załączam układ jaki stworzyłem na potrzeby projektu ----------------------------------------... Odp: Wszystko masz błędnie(!) Jak u ciebie ‘stoi’ wiedza o Prawie OHMA ? Przyjmij...
jak narazie to tylko umiem to zrobić sposobem kopiowania ale to za długo trwa Nie wiem czy istnieje sposób sortowania sposobem kopiowaniem. Sortować można same komórki lub w przypadku sortowania łańcuchów wskaźniki na te łańcuchy. Załączam materiały o sposobach sortowania. Żle się wyraziłem chodzi o to że ustawiam wartości np w adresie ds 0001 i je...
Witam! to wszystko bedzie najprościej zeralizować zadania. Ja bym zrobił to tak: 1) Uruchomi układ przerwań dla licznika np T0. Ustawić licznik w tryb pierwszy. Licznik w trybie 1 przy f=12MHz przepełni się conajwyżej ≈65ms dlatego trzeba by zliczać te przepełnienia, czym mógłby się zająć wcześniej odblokowany układ przerwań tego licznika ...ale...
Witam, mam problem z podłączeniem klawiatury PS/2 do 8051 i wyświetlenie na LCD 2x16 odebranych znaków. Póki co odebrane kody nie są zamieniane na kody ASCII ponieważ i tak nic nie wyświetla się na LCD (LCD działa, wyświetla napis "Znaki:" Który wyświetlam mu na początku). Obstawiam, że nie rozumiem do końca obsługi klawiatury. Pisząc kod wzorowałem...
Przepraszam za niedokładność mojej prośby, dokładnie chodzi mi o programik w asm16 mam juz taki kod: .model tiny .code org 100h start: mov ax,13h ; nr trybu (19)+ nr funkcji (0) int 10h ; ustawienie trybu mov bx,319 ; counter - pozycja pixela push es ; zapisz ss; mov ax,0a000h ; segment obrazu mov es,ax (at)1: ; petla mov byte...
Taki program mógłby wyglądać tak: Mnożna: rejestr E Mnożnik: rejestr A Wynik: rejestr HL LD HL,0000 ;inicjacja wyniku LD B,08 ;licznik pętli LD D,00 ;zerowanie bardziej znaczącego bajtu DE NXBIT ADD HL,HL ;przesunięcie wyniku w lewo RLA ;sprawdzenie cyfry monożnika JR NC, FIN ;opuszczenie zera ADD HL,DE ;dodanie mnoznej FIN DJNZ NXBIT ;powrót do początku...
Jest sposób aby wykonać ta procedurkę w asemblerze , ale nie wiem ile ona potrwa- a tobie zależy na szybkim wykonaniu obliczenia. Poniżej opisałem jak według mnie mogłoby to działać: Np. A=256 ; B=64 Deklarujemy tablice w której będą procentowe podzialy liczby (25%,50%,75%,100% itd) 1) porównanie liczb A=B, A>b, A<B 2) A>B (inkrementujemy odpowiednio...
Dziękuje za pomoc.. W klasie zrobiliśmy ten program troche inaczej ale ten działa lepiej.. w naszym trzeba było robić pętle, wpisywać ile znaków ma tekst.. A mam jeszcze jedno pytanie. chce sobie zrobić licznik BPM (Beats per minuts) Licznik mierzący ilość zliczanych impulsów w ciągu minuty tylko ze wynik ma być wyświetlany odrazu tzn. myslałem nad...
;* ;***************************************... ;*PROCEDURA WYLICZANIA SUMY KONTROLNEJ Z NUMERU SERYJNEGO UKŁADU 1-Wire ;***************************************... ;* ;* ;*******************************OPIS****... ;*Kolejne bajty numeru seryjnego...
Witam wszystkich, otrzymałem na zajęciach do napisania program w assemblerze dla układu dsm-51 oto jego treść: Napisz program który, przeszukuje tekst zapisany w pamięci programu, odnajduje i wyświetla na LCD słowo najmłodsze w kolejności alfabetycznej (z pośród wszystkich składających się na tekst). Tekst zajmuje ciągły obszar pamięci i zakończony...
Chciałbym zauważyć że ja chciałem uzyskać pomoc w wyjaśnieniu komend lub bezpośrednią odpowiedz jak mam zrobić i czy da się tak zrobić aby µC zapamiętał zmienną odczytaną z wejścia jako jakąś liczbę. Z tego co widzicie nie dostałem żadnej odp na ten temat. Niestety pytanie w pierszym poście było odmiennie sformułowane. Zatem pierwsza rzecz jaką...
1) zaprojektowaniu sprzętowego modułu licznika 16-bitowego dla procesora PicoBlaze: - licznik ma być konfigurowalny - do jakiej wartości zliczać - po zliczeniu do zadanej wartości powinno następować zgłoszenie przerwania - można skonfigurować licznik aby po zliczeniu i zgłoszeniu przerwania automatycznie się restartował lub zatrzymywał - licznik można...
Racja. Już dawno nie pisałem w assemblerze. Zastosowałem etykiety do skoków, a później wywołałem funkcje i działa (funkcja zabawa diodami). Przy obsłudze przerwania będę odkładał rejestr SREG na stos. Poniżej poprawiony listing programu. .include "m8def.inc" ;wektory przerwan .org $000 rjmp reset ;***************************************...
Witam, pisze program w assemblerze który pozwarciu INT0, będzie wykonywać określoną czynność(łączyć się z innym urządzeniem), Ale narazie utknąłem w martwym punkcie, napisałem program który po zwarciu INT0 wywołuje przerwanie które zapala diodę podpiętą do lini PC0 5 razy i gasi(zapalenie uzyskuje poprzez ustawienie PC0 w stan wysoki). Całość funkcjonuje...
Może tak będzie czytelniej: sprawdzanie ile razy 1000 mieści się w zadanej liczbie w rejestrach R1:R0 Ogólnie mój kod nie różni się prawie niczym od tych wskazanych w linkach (to jest ten sam pomysł co mój), tyle tylko że ja operuję nie tylko na 16b a również na 32b, stąd też tyle kodu. [syntax=asm]; Załaduj liczba 1000 do rejestrów R4, R5 ldi R16,...
Hej, próbuję napisać w assemblerze (Intel 8086 z dostępem do rejestrów 32 bitowych) program wykonujący szybkie podnoszenie modularne. Niestety coś tutaj robię źle. Najprawdopodobniej namieszałem bardzo w dzieleniu i mnożeniu, ale nie wiem, jak to naprawić. Byłbym bardzo wdzięcznym za pomoc. Poniżej zamieszczam mój kod: [syntax=asm].MODEL FLAT, C .STACK...
Witam. Mam problem z programem ponieważ nawet nie wiem jak się za niego zabrać. Jeśli by był ktoś tak miły i pomógł mi napisać taki program albo napisał za mnie byłbym bardzo wdzięczny "Proszę opracować program odliczający kolejne sekundy. Proszę w tym celu zorganizować 8-bitowy licznik sekund. Aktualny stan młodszej tetrady tego licznika (w zakresie...
No to po kolei: [syntax=x86asm] .MODEL SMALL Dane SEG DL_TABLICA EQU 15 Tablica DB 01h, 02h, 00h, 10h, 12h, 33h DB 15h, 09h, 11h, 08h, 0Ah, 00h Dane ENDS Najwieksza DB ? W jakim to będzie segmencie? Proponuję w Dane. Kod SEGM ASSUME CS:Dane, DS:Kod, SS:Stos Nie ma segmentu Stos Start: mov ax, OFSET Stos Po co to? mov ds, bx Co ładujesz do DS mov al,...
Próbuje swoich sił w assemblerze i w pewnym momencie wytworzył mi się problem. Chodzi o to jak odczytać dane zawarte z pamięci programu . Zakładam oczywiście ż nie wiem gdzie te dane się znajdują. Dane wprowadzam za pomocą dyrektywy: np .DB 3, 4, 7, 8 itd Próbuje zastosować rozkaz "LPM" i tu jest problem jak powiazać rejestr Z z licznikiem programu???...
Definiujesz sobie w timerze licznik czasu zwiększany po każdym przerwaniu jeżeli jest ustawiony znacznik MIERZ. Czynności w programie: 1. Zgaś lampkę 2. MIERZ=0 3. CZAS=0 4. Czy start ? 5. Jeżeli nie to idź do punktu 4 6. Odmierz przypadkowy czas od 2 do 6 sekund 7. Zapal lampkę 8. MIERZ=1 9. Czy wciśnięto STOP ? 10. Jeżeli nie to idź do pkt 9 11. MIERZ=0...
Muszę uruchomić dodatkowy UART na tym procesorze kwarc to 18,432M potrzebuje informacji i programów w asemblerze. Jeszcze jedno jaką wartość wpisać do licznika jeżeli nie kożystam z wewnętrznych generatorów prędkości dla UARTA podstawowego.
Ja też nie rozumiem jak was uczą jeżeli usiłuje Pan pisać program bez zrozumienia działania używanego bloku mikroprocesora. Widzę jest Pan z tych co się nie wgłębiają (większą część życia zawodowego poprawiam i prostuję "produkty" takich nie wgłębiaczy co im się nie chce doczytać opisu za to kupowane przez innych nie wiedzących co to wierzą w bzdety...
At90S2313 to procesor 8-bitowy wiec wszystkie rejestry (oprócz licznika rozkazów i jeszcze jakiegos ktorego niepamietam) są 8 bitowe, równiez organizacja pamieci danych jest 8-bitowa więc jesli chcesz posługiwac się słowem 16-bitowym to musisz go sobie podzielić na dwie częsci i przechowywać w oddzielnych rejestrach ( lub komorkach pamięci Sram) .
Można też zrobić to tak: start: mov C,P3.5 mov P3.0,C ljmp start ljmp jest rozkazem skoku bezwzględnego, co oznacza, że do rejestru PC (licznika rozkazów) wpisywany jest bezpośrednio adres etykiety start. Natomiast sjmp spowoduje dodanie do PC wartości z zakresu <-128;127>, co przy dłuższych programach spowoduje błąd kompilacji "address out...
witam mam licznik który zlicza w góre i wdół a teraz potrzebuje aby przy wartosci zero wył. przekaznik a przy wartosci + wł. przekaznik poniżej link schematy licznika który posiadam O który licznik ci chodzi? Pierwszy schemat to mikrokontroler - jeśli znasz assemblera, bądź C, to taki licznik stworzysz szybko i bezproblemowo. Ale po tym pytaniu mniemam,...
Przykladowa inicjacja licznika T2, by dzialal jako generator portu szeregowego: movSCON,#50h ;uart w rtybie 1 (8 bit), REN=1 */ anlT2CON,#0F0h ;EXEN2=0; TR2=0; C/T2#=0; CP/RL2#=0; */ orlT2CON,#30h ;RCLK = 1; TCLK=1; */ movTH2,#0FFh ;wartosc poczatkowa T2*/ movTL2,#0F3h movRCAP2H,#0FFh ;warotsc reload, 57600 Bds przy 24MHz */ movRCAP2L,#0F3h setb TR2...
W DS89c4xx liczniki pracuja tak samo jak w zykłym 8051, pewnie zeby zachowac zgodnosc wstecz... Xtal jest dzielony przez 12 Reszta procesora taktowana jest 1:1 i cyklu maszynowego nie zmienisz!!! mozesz natomiast: - dynamicznie podzielic przez 1024 /ale liczniki pracuja swoja predkoscia/ /w momencie przerwania procek wraca do normalnej predkosci/ -...
LICZNIK DS 1 LICZNIK_JEDEN DS 1 PRZERWANIE_T1: INC LICZNIK ;14) CLR TR1 ;15) doszedlem do tego, ze INC LICZNIK nie zwieksza licznika - dlaczego? wlaczylem debuggera i przerwanie z t1 sie uruchamia przechodzi przez ta instrukcje ale nie zwieksza wartosci licznika i druga sprawa: normalnie po wykonaniu przerwania program wraca do nastepnego...
... ; tu kod zatrzymujący licznik mov DPTR,#TABLICA ; iicjujemy wskażnik do tablicy mov A,#0 ;A ma teraz wartosc zero movc A,(at)A+DPTR ; pobieramy starszy bajt, teraz jest w A mov B,A ; zachowujemy go, np. w rejestrze B inc DPTR ; przesuwamy wskażnik do tablicy na nastepny bajt mov A,#0 ; tu trzeba wyzerować A movc A,(at)A+DPTR ; pobieramy nastepny...
Dziwny jest ten licznik oglnie mój działa podobnie. ASM na 51 a na AVRy się sporo różni dużo zapomniałem bo 5 lat temu miałem ASMa na 51. Zapodam ci fragment kodu ASM AVR. .equ licznik=r16 .equ jednosci = r17 .equ dziesiatki = r18 .equ temp = r19 ldi licznik,99 ladalsuj do rejestru R16 wartość 99 loop: (mov R0,#99 będzie u ciebie) teraz musimy to wyświetlić...
interesują Cię trzy przebiegi niezależne, czy 3 niezależnie regulowane wypełnienia? Z Twojego postu wynika, że to drugie :) Możesz uzyskać nawet tyle różnych wypełnień, ile masz pinów, ale to już softwarowo sterowane musi być, natomiast czysto sprzętowo uzyskasz 6 kanałów PWM na 3 licznikach
Witam Mam pewien problem, potrzebuje napisać sterownik do 6 serw. Sterowanie serwami rozwiązałem (jeśli ktoś ma lepszy pomysł to chętnie wysłucham), problem tkwi w komunikacji z komputerem, sama komunikacja działa, dane wysyłane są raczej poprawnie. Jeżeli obsługuje RS'a w przerwaniach to serwa zmieniają położenie tak jak należy, ale strasznie przy...
Już trochę nie mam czasu uczyć się assemblera. Problemem w tym programie jest to,że TAR "biegnie" niezsychronizowany z temp i var. pozdrawiam
Niektóre timery (patrz zestawienie rejestrów kontrolnych i sterujących) mają rejestry licznika (liczników) i rejestry porównania (porównań). Przerwanie OVF występuje wtedy, gdy zapełni się rejestr licznika, natomiast przerwanie COMP (porównanie) następuje wówczas, gdy stan rejestru licznika zrówna się ze stanem rejestru porównania. Wartość rejestru...
juz nieaktualne, poradzilem sobie :) 1. W takim razie wypada podać rozwiązanie. 2. Wypada dokładnie przepisać podany przez wykładowcę program "odluz" "w cx wsp.X, w dx wsp.Y" To jest nieprawda. Współrzędne są w rejestrze dx. dl - wpółrzędna y dh - współrzędna x cx to w tym programie tylko licznik pętli. Gdyby nie te błędy, może wcześniej by Ci ktoś...
W końcu sobie poradziłem:) A więc kompiluję tak: tasm.exe -85 -h -b nazwa.cos. Po kompilacji mam w pliku *.obj sam kodzik HEX gotowy(same instrukcje i adresy) do programatora. Pierwsze uruchomienie procka powiodło się:) Obecnie pracuję nad złożeniem z tego zegara. Nie mam do końca pomysłu jak zrobić dokładny takt 1Hz. Napewno wykorzystam przerwanie...
Prostszym językiem to będzie tak. Ponieważ masz 2 wyświetlacze, wyświetlasz cyfrę na pierwszym wyświetlaczu, później go gasisz i wyświetlasz cyfrę na drugim. Żeby nie było widać migania cyfr trzeba to robić 100 razy na sekundę, albo szybciej. Procesor więc musi zatrzymywać się 100 razy w ciągu sekundy i zapalać wyświetlacze na przemian. W tym celu należy...
Na podstawie książki "Podstawy Programowania Mikrokontrolera 8051" (Gałka) i materiałów znalezionych w sieci próbuję napisać program, którego zadaniem jest zdefiniowanie nowego znaku (symbol serca) i wyświetlenie go na LCD. Wiem, że program będzie prosty, ale utknąłem w miejscu z braku informacji. Znalazłem taki program, definiujący nowe znaki i wyświetlający...
źle liczysz. Co 8us będzie zwiększany licznik timera, a do przepełnienia potrzeba ich 256. PS. do ładowania wskaźnika stosu lepiej używać wartości low(RAMEND)
hej, mam do zaprogramowania stoper. na tę chwilę mam taki oto timer: [syntax=asm]sekundy EQU 07Eh ;zmienna sekund jedna_dwudziestaEQU 07Fh ;licznik jednej dwudziestej sekundy resetowanie EQU #19456 ;ustawienie zliczania co 0,05sek org 1000h ljmp start org 001Bh clr TR1 ;wyłączenie timera mov TH1,#HIGH resetowanie ; mov TL1,#LOW resetowanie ; setb TR1...
1. Do wyznaczenia co ile następuje przepełnienie timera potrzeba znać taktowanie procesora. Dla kwarcu 12MHz timer zwiększany jest o 1 co 1us (= 12/12MHz). 2. Timer to licznik, który zlicza w górę. Wpisując liczbę do rejestrów tego licznika zlicza on od tej wpisanej wartości, czyli szybciej doliczy do maksymalnej wartości (65535) i "przekręci się" co...
---- Building project: zadanie_25.ncp ---- Building file... : C:\Documents and Settings\Piter\Pulpit\u_kontrolery\u_kon... C51ASM: advanced C51 macro assembler Version 1.0 (01 Sept. 2009) Copyright (C) 2009 Atmel Corp. Pass 1 completed with no warnings and no errors Pass 2 completed with no warnings and 2 errors Segment...
Witam . Za zadanie miałem napisanie programu "Licznik LED (3.0) - ma wyświetlać 4-cyfrową liczbę (od 0 do 9999) - po przekroczeniu 9999 ma liczyć od 0", Niestety nie do końca go rozumiem . Prosiłbym o wytłumaczenie mi tego programu jeśli będzie to możliwe to linijka po linijce , assembler to nie moja Bajka a zaliczyć jakoś trzeba przedmiot Program :...
Straszny śmietnik i w opisie i w kodzie i w tytule. Nie widzę potrzeby archiwizacji wciskanych klawiszy. Nie widzę nigdzie potrzeby sortowania czegokolwiek. Program moim zdaniem powinien robić to w locie jedynie wduszenie klawisza zatwierdzającego kod zwraca użytkownikowi wynik: akceptacja albo odrzucenie przy ewentualnym jednoczesnym zerowaniu albo...
Wybaczcie moje marudzenie ale takie makro wymaga co najmniej dodatkowych dwóch "difajnów". Proponowane "ułatwienie" spowodowało że musimy zamiast 11 znaków wklikać 50 i na dodatek w czasie analizowania skakać po dokumencie aby zobaczyć co oznacza makro a później co oznaczają poszczególne definicje z makra. Wszystko zalezy, z jakiego edytora korzystasz,...
[syntax=asm] SEG_ON EQUP1.6;włączenie wyświetlacza 7-segm. ;Stałe używane w programie EIGHTEQU07FH ;kod cyfry 8 TWOEQU05BH ;kod cyfry 2 NINEEQU06FH ;kod cyfry 9 THREEEQU04FH ;kod cyfry 3 FIVEEQU06DH ;kod cyfry 5 ;Pamięć wewnętrzna RAM DISPLAY EQU30H LJMPSTART ORG100H START: MOVDISPLAY,#EIGHT MOVDISPLAY+1,#TWO MOVDISPLAY+2,#NINE MOVDISPLAY+3,#THREE MOVDISPLAY+4,#FIVE...
Może i nie ma sensu, bo jest odczytany przez autoassembler. Przypuszczam, że oryginalnie tam są tylko instrukcje inc ecx i move ecx. Robiłem wstrzyknięcie kodu i zadziało... Teraz się ocknąłem, że problem jest faktycznie w braku wskaźnika dla adresu w którym jest instrukcja inkrementująca, bo uświadomiłem sobie, że przecież stan licznika zamrażał się...
Co się dzieje po przekroczeniu zakresu 99999999? Licznik jest zerowany i liczy od 0, czy licznik jest zatrzymywany? Zamysł był taki, że po przekroczeniu zakresu miał liczyć dalej, ale ledem z jakimś przerzutnikiem miał sygnalizować przepełnienie. Wtedy zakres pomiarowy wynosiłby 200mln* zliczeń. Skąd niechęć do stosowania mikroprocesorów? Jaka tam...
Właściwie to nie wiem też, dlaczego masz w przerwaniu zliczanie do 125. Chciałeś w ten sposób uzyskać okres zapalania/gaśnięcia diody co 125 sekund? Chciałem to zrobić według treści z zadania jako że miał to być tryb porównania do zadanej wartości i teraz ustawiłem 125 ale sprawdzałem też na innych. W momencie gdy wartość timera jest równa tej zadanej...
Witam! Jeśli już piszesz w kodzie maszynowym, to tak dla formalności przypominam, że przy skokach względnych adres docelowy jest obliczany z uwzględnieniem bieżącego stanu licznika rozkazów czyli adres rozkazu skoku względnego plus 2. Pozdrawiam KG
Witaj Lulubella . Co prawda zbyt wiele Ci nie pomogę (sam sie uczę ASM), ale jednak lepsze coś niż nic. A więc zacznijmy od początku. Niezbędnym dla rozwiązania Twego problemu jest utworzenie tablicy 100-tu element owej w pamięci flash mikrusa. Oto ta tablica .org $2500 oznacza umieszczenie tablicy od adresu 2500 * 2 Teraz przyszedł czas na odczytanie...
Witam, chcę zrobić prosty stoper zliczający 655.4sekundy aktywowany wciśnięciem 20H ( w symulatorze na razie), jednak nie działa mi przerwanie i nie wiem czemu, program zapętla się i inkrementuje tylko R1 i gdy licznik T2 się przeładuje to następuje zresetowanie i dalej zlicza, nie obsługuje przerwań PRZE_INT0 i PRZE_T2. Prosiłbym o pomoc :) EDIT NIE...
Witam, chcę zrobić prosty stoper zliczający 655.4sekundy aktywowany wciśnięciem 20H ( w symulatorze na razie), jednak nie działa mi przerwanie i nie wiem czemu, program zapętla się i inkrementuje tylko R1 i gdy licznik T2 się przeładuje to następuje zresetowanie i dalej zlicza, nie obsługuje przerwań PRZE_INT0 i PRZE_T2. Prosiłbym o pomoc :) [syntax=avrasm]LJMP...
Na własnym doświadczeniu stwierdzam, by bawić się ARM trzeba: 1.Znać dobrze C i to sporo więcej niż podstawy 2.Znać bardzo dobrze angielski techniczny 3.Znać niuanse danego mikrokontrolera i czytać dobrze dokumentację. To przy graficznym programowaniu jest tak, że siadasz i programujesz z dnia na dzień... Trzeba tylko wiedzieć jak działają bramki,...
Nie wiem kto się myli, Trudno mi tu rozstrzygać. Nie jestem programistą. W życiu napisałem tylko kilka programów i to w Fortranie i assemblerze ale to było 30 lat temu. Z tego właśnie powodu malinkę programował kolega, który jest informatykiem. U niego ten system jest juz dwa lata. Fotowoltaike mam tyle samo czsu co on i od dawna sie do tych pomiarów...
witam, napisałem program który ma odliczać sekundy i minuty w rejestrach R1 i R2 ale podczas odliczania sekundy program zatrzymuje się przy rozkazie JNB... prosze o waskazówkę odlicznie sekundy polega na 15 krotnym przepełnieniu licznika z tą wartością początkową co jest podana (licznik jest w R0) org 0 mov tmod,#00000001b jraz: mov th0,high(61466)...
Witam Mam do napisania program do licznika T1 ze zliczaniem impulsów zewnętrznych z obsługą przerwań. Bez NPM tylko jako przerwanie. Proszę o pomoc.
Witam, mam prośbę, czy mógłby ktoś sprawdzić mojego Makefil'a, ponieważ podczas kompilacji wrzuca mi błąd o kodzie: avr-objcopy: 'main.elf': No such file make: *** [syntax=c]//sterownik wyswietlacza #include "HD44780.h" //usawiasz tam porty sterujące, nie musisz ogarniać kodu #include <util/delay.h> #include <avr/io.h>...
Kolega odłączał także fizycznie od portu danych ? Myślę że nie. Na szczęście mam Jtag-a i sprawdziłem to. Okazało się że kiedy port danych pracuje jako wyjście i pojawi się na nim choćby na jednym bicie wartość "1" cały układ z SED-em zaczyna pracować !!! Dziwne, prawda ? O ile dobrze pamiętam to na płycie od kasy był przy SED-dzie port chyba 74245...
Oto makefile # Simple Makefile by Volker Oth (c) 1999 # edited by AVRfreaks.net nov.2001 ########### change this lines according to your project ################## #put the name of the target mcu here (at90s8515, at90s8535, attiny22, atmega603 etc.) MCU = atmega128 #put the name of the target file here (without extension) TRG= cwicz1 #put your C sourcefiles...
Urządzenie ładne, lecz kalibracja jest niedokładna. Wykorzystanie trybu CTC licznika lub użycie assemblera zlikwidowałby niedokładność.
Gdyby założyć, że w momencie zmiany na jednym pinie, na drugim jest stan stabilny, to może udałoby się to zrobić tak jak próbowałeś. Myślę tylko, że i tak powinieneś nieco zmienić procedurę obsługi przerwania. Po pierwsze po delay należałoby najpierw sprawdzić stan pinu, który wywołał przerwanie, żeby stwierdzić, czy to nie był jakiś stan niestabilny....
Wybacz Kolego ale można się załamać - nie znasz podstaw programowania! Weź sobie jakąkolwiek książkę do C i przeczytaj chociaż KILKA PIERWSZYCH ROZDZIAŁÓW... Bardzo uprzejmie proszę. Forum nie jest od nauczania C, nawet na przykładach! Najprostszy program ma postać: #include <stdlib.h> #include <stdio.h> int main(void){ sleep(1);...
Ustawienie kierunku wyjścia było tylko przy wyrzucania zbednych linijek usunąłem go ale już dopisałem, moze ktoś sprawdzić czy u niego działa taki prosty kod bo ja już zaczyna podejrzewać procek... . Jeżeli wrzucę LED_TOGGLE; w pętle while to na oscyloskopie widzę przebieg prostokątny więc pozostałe sprawy są OK nie wiem dlaczego nie działa to przewanie...
Witam Przez ostatni czas zabrałem się za budowę manipulatora, konstrukcja powstała ze sklejki 3mm ciętej laserowo, do napędu użyłem serw, wiadomo łatwe sterowanie i duży udźwig. Jednostką sterującą jest procesor AT89S52, program napisany został w assemblerze. Głównym programem sterującym jest program na komputerze. Komunikacja odbywa się poprzez port...
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...
Mam nadzieję że nie zamoncę Ci za bardzo, ponieważ jak już wspomniałem nie mam pojęcia o jakiej maszynie piszesz, jednak aby zliczyć impulsy w odcinku czasu, muszą one być gdzieś zapisane. Jest to podstawa każdego licznika. Co do wymienionych przez Ciebie funkcji (SET_CLK, READ_CLK) to myślę, że odnoszą się do podstawy czasu układu. Znaczy że nie pełnią...
Ale poprzedni gość jest w błędzie bo język C sobie z tym nie radzi. zato wy chyba nie bardzo macie pojecie o czym gadacie... Przerwanie może przyjść w każdym momencie i przerwać wykonywanie jakiejs operacji np. przepisywania intów lub mnożenia doublów. przerwanie moze ci przyjsc nawet w srodku liczenia FFT z 10k punktow i nie ma to zadnego znaczenia....
Witam czy ktos moze mnie oswiecic w jaki sposob zapisac wartosc do rejestru Counter1 pod bascomem ? Mam taki prosty program i za nic w siecie bascom nie che go lyknac ............. I taki oto blad ASSIGNMENT ERROR line 8 Procesor ma ten timer w sobie. Jezli to wina bascoma to w jaki sposob zapisac ta wartosc z poziomu jakiejs wstawki assemblerowj ?...
Nabyłem ultradźwiękowy czujnik odległości HC-SR04, który jest przeznaczony do współpracy z Arduino. Chciałbym ten moduł połączyć bezpośrednio z portem LPT komputera a odebrane sygnały wykorzystać do przedstawienia na ekranie monitora wykresu zależności mierzonej odległości od czasu "on line". Kiedyś zajmowałem się zastosowaniem komputerów do wspomagania...
Nie bardzo rozumiem o co chodzi większość asemblerów dopuszcza komendę inc ("coś.obj") - czyli włączenie skompilowanego pliku asm , c, pas. Więc jeśli chcesz, to co robisz zrobić dobrze to pomyśl o działaniu z bibliotekami lib. Ważne jest to żeby stosować adresowanie ideksowane i zapewnić przenośność kodu w pamięci, nie stosować sztywnych przypisań...
Mikrokontroler jest wyposażony w układ licznikowo-czasowy i zapewne prowadzący chciał, żeby tego właśnie użyć zamiast czarować z pętlami. Ma to tą zaletę, że nie trzeba liczyć żadnych cykli (no może tylko do ustawienia). Ustawiasz raz i timer działa. tu masz notę katalogową, są nawet przykłady w assemblerze. Nie wiem, jakie tryby ma ten timer, bo nie...
Witajcie. pilnie potrzebuję przerobić kod z c++ na assemblera. program ma zliczyć ilość powtórzeń jednej liczby w tablicy jednowymiarowej. w języku c++ tak to wygląda: [syntax=cpp] #include <iostream> #include <conio.h> using namespace std; int main() { int tab[12]={11,12,14,52,16,35,15,58,52,52,5... int licznik=0; int liczba=52; int...
O ile pamiętam ciąg CBM80 służy do odnajdywania podłączonego poprawnego ROMu w carcie. Nie ma CBM80, to nie ma skoku do ROMu. Tak czy inaczej ten ciąg pochodzi z pamięci cart'a, więc jest on czytany i można użyć sygnałów istniejących przy odczycie cart'a. Zobacz Jeżeli ROM będzie podpięty gdzieś do pamięci (linie /GAME, /EXROM), ale ciągu CBM80 tam...
Mikrokontrolery, zwłaszcza ośmiobitowe, wydają się być generalnie łatwymi w użyciu układami. Mamy bowiem do dyspozycji prosty komputer i garść zwykle mało skomplikowanych peryferiów. Wystarczy napisać odpowiedni program i tyle. Ale nawet te proste z natury układy mają funkcje i możliwości, które są mało znane. Nie dlatego, że to jakiś sekret, ale ponieważ...
Cześć !!! NutOS można porównać raczej z poziomem Dos niż Unixa, więc trudno mówić o jakimś szczególnym poziomie abstrakcji, i ucieczce od sprzętu do kernela czy strukturze modularnej systemu. Masz dość jasną budowę sterowników i wektory przerwań. Pisząc program poprostu nie skupiasz się na typowej dla c/c++ konstrukcji w głównej pętli main, obsłudze...
No więc Timer chodzi na 1MHz. Kwarc masz 8MHz ale preskaler to 8 więc wychodzi 1MHz. Przerwanie od Timera następuje co 5000 cykli (mniej więcej bo trochę zajmuje zdjęcie rejestrów ze stosu). Czyli 1000000Hz / 5000 = 200Hz Tablica ma 64B ale z tego co widzę to siedzą w niej dwa okresy. Czyli tak praktycznie to ma 32B. Więc okres rozkłada się na 32 próbki....
Ok, coś jest nie tak. Przede wszystkim systick działa na trybie optymalizacji O1 i O2. Bez zmiany kodu. Na O0 od razu jest hard fault. Ale nie występuje na żadnej linijce kodu. Nie wchodzi do przerwania i wywala od razu błąd. EDIT: Działa w momencie kiedy wywaliłem inicjalizacje: N VIC_Init(&NVIC_InitStructure); A w to miejsce dałem: NVIC->ISER...
Witam, na wstępie poszukiwania Google nic nie dały... Jaki mam problem - sterowanie jasnością dwóch żarówek (niezależnie) poprzez opto i triak z TIMER1 (OCRA/OCRB) Atmega. Programuję w Assemblerze. Wykonałem to jako fastPWM dla TIMER1 z wartością TOP w ICR1 i wartościami dla jasności w OCRA i B. Wykrywanie narastających i opadających oblicza czas połówki...
No właśnie ta pętla For tyle zajmuje. To jest jedna z wad kompilatora BASCOMa (a nie samego języka BASCOM). Nieoptymalizowany dostęp do zmiennej licznikowej. Pętla za każdym razem ładuje zmienną z RAMu (16-bitową) i ją sprawdza (porównuje do stałej też 16-bitowej). Potem zwiększa i zapisuje z powrotem do RAMu. W C pobrana była by raz i nie była by porównywana...
Układu SID (6581 stary i 8580 nowy), będącym muzyczną orkiestrą komputera Commodore 64 nie trzeba nikomu przedstawiać – między innymi dzięki jego brzmieniu owa maszyna osiągnęła tak dużą popularność. Warto tylko przypomnieć, że SID ma jedynie trzy kanały, ale umiejętności programistów potrafiły z niego wycisnąć dźwiękowe cuda. Na dzień dzisiejszy...
Opiszę naprawę dość rzadkiej konsoli, polegającą na odtworzeniu schematu pierwowzoru, zaprojektowaniu i wykonaniu płyty głównej i dalszych krokach niezbędnych do przywrócenia jej życia i funkcjonalności, w których zastosowałem swoją nowatorską metodę. Będzie więc coś dla miłośników retro, fanów wytrawiania płytek, maniaków programowania w asemblerze...
Witajcie moi drodzy W tym temacie poznamy podstawy przerwań i timerów w PIC18F2550 . Na początek będzie krótki wstęp teoretyczny, a potem wszystko przerobimy dokładnie na praktycznych przykładach. Do lektury tematu przyda się ogólna wiedza na temat przerwań i programowania w C, choćby taka z Arduino. Temat oczywiście nie zastąpi w pełni czytania noty...
Zainspirowany podcastami o historii komputerów (podcast #19 - Słowo o architekturze i słowniczek pojęć By lepiej zrozumieć zagadnienie pamięci, musimy najpierw poznać architekturę, a dokładniej to części składowe procesora. Nie będziemy zagłębiać się w tajniki najnowszych Ryzenów czy i9, ani w sekrety GPU. Spokojnie możemy sobie odpuścić tournée po...