zdejmowanie stosu

Znaleziono około 195 wyników dla: zdejmowanie stosu
  • AVR - cykle zegarowe, nanosekudny, przeliczanie cykli

    Witam Stos, jest to obszar pamięci do którego zapisuje się kolejkę przerwań i stan rejestrów po zgłoszeniu przerwania. Procesor coś robi, zgłasza się przerwanie, odkłada sobie na stos to co robił, wykonuje przerwanie, zdejmuje ze stosu to co robił przed zgłoszeniem przerwania i dalej to wykonuje. To tak na prędce. Polecam tą stronkę http://www.edw.com.pl/ea/asm_avr.html...

    Mikrokontrolery AVR   09 Paź 2008 17:20 Odpowiedzi: 9    Wyświetleń: 3804
  • Różnice między rozkazami RET, RETI i RETN w procesorze Z80?

    RET - powrót z podprogramu wywołanego przez CALL. RET zdejmuje ze stosu adres umieszczony tam przez CALL, RETI - powrót z podprogramu obsługi przerwania maskowalnego (zainicjowanego przez rozkaz INT n gdzie n= 1..8), RETN [ powrót z podprogramu obsługi przerwania niemaskowalnego (zainicjowanego przez rozkaz NMI). Pozdrawiam wszystkich jjanek

    Początkujący Elektronicy   03 Paź 2004 17:13 Odpowiedzi: 3    Wyświetleń: 2614
  • Nie znalazłeś odpowiedzi? Zadaj pytanie Sztucznej Inteligencji

    Czekaj (1min)...
  • Przerwania 89c2051 .asm. Pytania dot. obsługi przerwań.

    Witam Proponuję jednak zapoznać się z kursem asemblera z EdW. Wyjdzie to na zdrowie. Instrukcja RET jest do powrotu z podprogramu do którego skaczemy LCALL, ACALL. NAtomiast z przerwania zawsze wychodzimy przez RETI. W obsługę przerwania wchodzimy zupełnie inaczej. Jak wystąpi warunek przerwania to procek automatycznie odkłada na stos adres powrotu...

    Mikrokontrolery   07 Sie 2006 19:59 Odpowiedzi: 15    Wyświetleń: 2761
  • REKLAMA
  • Błąd w obsłudze klawiatury matrycowej w programie 8051 [DSM-51]

    Po wywołaniu WAIT_KEY kod klawisza masz w akumulatorze i zpisujesz wszystkie "próby" na stosie do czasu aż zakończysz 0x0A. Potem zdejmujesz tylko te dwa ostatnie znaki (0x0A) i ten kod. A wszystkie pozostałe nie są ze stosu zdejmowane. Masz wtedy niezrównoważony stos. Musisz mieć tyle samo rozkazów POP ile PUSH, bo inaczej Ci się stos przepełni dość...

    Mikrokontrolery   02 Lip 2012 14:51 Odpowiedzi: 2    Wyświetleń: 2299
  • Jak dokładnie odmierzyć 10 minut w Bascom przy użyciu kwarcu 8MHz?

    Zawsze jak wchodzisz w przerwanie np.On Timer lub w podprogram sub procesor odkłada zawartość pewnych rejestrów na stos (co zajmuje mu ileś us) a po przerwaniu (lub sub-ie) zdejmuje ze stosu (co znowu zajmuje czas). Rachunkowo wygląda wszystko dobrze w programie-ale tylko gdy procesor chodzi z nieskończoną prędkością. A chodzi ze skończoną. A-w tych...

    Mikrokontrolery AVR   10 Cze 2009 19:25 Odpowiedzi: 3    Wyświetleń: 3548
  • REKLAMA
  • ATTiny 2313 resetuje się po 20 cyklach, Problem dla mędrców

    Podprogram musi być zakończony instrukcją RETURN zgodnie ze schematem ........................... Gosub Podprogram ........................... End Podprogram: ........................... Return Return powoduje powrót do następnej instrukcji po Gosub i najważniejsze zdejmuje dane ze stosu (zapamiętane przed skokiem do podprogramu). W ten sposób stos...

    Mikrokontrolery   07 Maj 2006 21:10 Odpowiedzi: 9    Wyświetleń: 1746
  • Atm16,Bascom. Jak zrealizować kilkakrotną zmianę stanu portu

    Wychodzisz z przerwania za pomocą GoTo. To jest problem. Ostatecznie nawet by to działało, ale przed GoTo musiał byś ręcznie zdejmować trochę rzeczy ze stosu. Ale grzebanie w stosie to raczej nie najlepszy pomysł. Musisz kompletnie zmienić koncepcję programu.

    Mikrokontrolery   20 Lis 2009 12:18 Odpowiedzi: 76    Wyświetleń: 6366
  • Atmega8a - [atmega8a][bascom] Resetowanie atmegi w pętli z Rotate

    Wszystkie Sub`y powinny być poza pętla Do Loop a tymczasem u Ciebie etykieta Silnik jest w pętli. Gosub czyli "go sub" oznacza odłożenie na stos aktualnego adresu gdzie program jest wykonywany, skok pod adres procedury Sub i powrót w to samo miejsce (a dokładniej do następnego po odłożonym adresie miejsca) poprzez Return Return zdejmuje ze stosu odłożony...

    Mikrokontrolery AVR   22 Lut 2016 09:57 Odpowiedzi: 2    Wyświetleń: 1110
  • BASCOM pożera pamięć RAM. Program się nie kompiluje.

    W C sprawa wygląda tak samo .... No tu kolega troszkę przesadził chyba? ;) .... w C sprawa nie wygląda tak samo chociażby z uwagi na to, że byle makro ISR() nie odkłada i zdejmuje ze stosu absolutnie wszystkich rejestrów procesora co standardowo robi Bascom. A takich kwiatków jest znacznie więcej niestety :( tylko że kompilator C nie sygnalizuje błędu....

    Mikrokontrolery Początkujący   20 Lut 2012 21:42 Odpowiedzi: 8    Wyświetleń: 1611
  • CORE-E0002: Stack under flow error occurred from instruction

    Zamiast goto L1, powinno być call L1 : call odkłada na stos adres powrotu, return go pobiera i wpisuje do pc , goto nic nie odkłada ale return i tak coś, czyli zero, pobiera ze stosu i wpisuje do pc - i program idzie od początku, zdejmowanie ze stosy bez uprzedniego odkładania musi wyprowadzić program na manowce. Przy etykiecie L1 musi być addwf PCL,...

    Mikrokontrolery PIC   04 Kwi 2010 18:34 Odpowiedzi: 4    Wyświetleń: 2598
  • Czy funkcja main w mikrokontrolerach powinna zawierać return 0?

    Pamiętaj, że program nie zaczyna się od main. Wcześniej jest jeszcze odpowiedni kod biblioteczny - zwykle nazywa się crt/crt0 itp. Zarówno w mikrokontrolerach jak i w PC, a nawet w większych maszynach plik binarny rozpoczyna swoje wykonanie od ustalonego adresu. Linker umieszcza tam właśnie moduł crt, i dopiero z tego modułu wołany jest main - po przygotowaniu...

    Mikrokontrolery   22 Maj 2022 14:22 Odpowiedzi: 17    Wyświetleń: 807
  • Podprogram w C dla ATmega128 - zawiesza się po powrocie z funkcji `del()`

    Moze problem ze stosem? Ztego co pamiętam o C (nie jestem pewien czy tutaj to działa) to adres powrotu wrzucany jest na stos, a RET zdejmuje go ze stosu i wrzuca do licznika instrukcji.

    Mikrokontrolery   02 Cze 2007 11:46 Odpowiedzi: 27    Wyświetleń: 2261
  • REKLAMA
  • Ograniczenie ilości zmiennych w BASCOM AVR na ATMEGA32 - co robić?

    Ato jest proste czytaj co pisze kompilator : Source string could be too big to fit into target string in line 375 (....) Masz zbyt długie stringi ;) fajnie brzmi to pierwsze a możliwe ze program mimo kompilacji będzie ci nadpisywał stosem zmienne , Ramu jest tyle ile jest i trzeba nim dobrze dysponować jeśli przy każdym przerwaniu odkladasz na stos...

    Mikrokontrolery   23 Gru 2007 15:11 Odpowiedzi: 12    Wyświetleń: 1847
  • [C] Jak efektywnie dekodować sygnał RC5 z TSOP4836 w C?

    Nie upieram się- można całość umieścić w przerwaniu. Bo jak program krótki to odkładanie/ zdejmowanie ze stosu może być dłuższe niż wykonanie obsługi. Całość nie jest krytyczna czasowo jeśli ma robić tylko dekodowanie.

    Mikrokontrolery AVR   20 Lis 2011 10:14 Odpowiedzi: 15    Wyświetleń: 5467
  • Jak wykonać programowy reset w mikrokontrolerze 8051? Dostępne instrukcje/reset

    Takie wychodzenie z przerwania to gwarantowane przewalenie stosu i program w lesie każde wywołanie przerwania odkłada coś na stos czego potem nikt nie zdejmuje efekt przepełnienie stosu i ....

    Mikrokontrolery   05 Sie 2007 12:04 Odpowiedzi: 15    Wyświetleń: 1368
  • [ATMEGA128] Timer1 CTC nie generuje przerwań przy 16MHz, OCR1A=62500

    RCALL MAIN dodaje to gdyż kiedyś jedna instrukcja RET wróciła mi aż do RESETu. Jak się nie dba o poprawne odkładanie i zdejmowanie ze stosu to tak właśnie bywa.

    Mikrokontrolery AVR   06 Lip 2008 08:32 Odpowiedzi: 23    Wyświetleń: 4136
  • Praca na temat stosu w językach wysokopoziomowych.

    Prosze pomóżcie: mam do napisania prace na temat stosu w językach wysokopoziomowych. Zupełna sierota ze mnie w dziedzinie programowania więc zwracam się do forumowiczów o małą pomoc. Czy ten kawałek kodu poprawnie opisałem? Czy moje kilkuzdaniowe wypociny maja w ogóle jakikolwiek sens :-)? http://obrazki.elektroda.net/59_12422309... Jest to bardzo...

    Ogólny techniczny   18 Maj 2009 14:20 Odpowiedzi: 15    Wyświetleń: 1164
  • [atmega...][c]Masakrowanie przerwań - luźne dywagacje...

    Z takich sztuczek to jeszcze - po wywołaniu przerwania zdejmujemy ze stosu oryginalny adres powrotu i zapisujemy swój i procek po zakończeniu przerwania wraca tam gdzie chcemy, ale to raczej tylko w asemblerze.Podobny trik można zastosować do podprogramów ( call ret ).

    Mikrokontrolery AVR   30 Cze 2010 10:39 Odpowiedzi: 91    Wyświetleń: 7281
  • [ATTINY2313] [ATTINY2313][BASCOM] Jak precyzyjnie ustawić przerwanie timer0 przy 10MHz?

    Bo obsługa przerwania też zajmuje trochę czasu- ileś taktów zegara. Bascom jest "bezpieczny" dla użytkownika i odkłada na stos wszystko- a nie tylko to co potrzebne. A potem zdejmuje ze stosu. Ale za to działa wolno. Spróbuj : on timer0 etykieta przerwania nosave. Ale to będzie szybsze i mniej bezpieczne. Albo ASM.

    Mikrokontrolery AVR   14 Lis 2009 16:41 Odpowiedzi: 7    Wyświetleń: 2111
  • [ATmega16 C] ATmega16 C: Przerwania licznika, problem z wartością TCNT0 poniżej 218

    Strona 214 dokumentacji. Jak wpisałeś bity 1 do tego co wytłuściłem- to zgodziłeś się na przerwanie w dowolnym momencie z ADC. Co z tym robi kompilator- jak napisałem- nie wiem. Nie znam się na C- może robi z tym coś sensownego- ale masz dwa przerwania. Każde zajmuje jakiś czas. Odkładanie na stos->obsługa-> zdejmowanie ze stosu. Poza tym: "Używasz...

    Mikrokontrolery AVR   26 Lis 2009 16:47 Odpowiedzi: 18    Wyświetleń: 2484
  • [Atmega8] [Atmega8][Bascom] Jak ustawić timer 2-bajtowy na przerwanie co sekundę?

    Wojtek - wchodzisz tutaj: [url=http://www.frank-zhao.com/cache/avr... z kalkulatorem 16MHZ z preskalerem 1024 oznacza że: - 1 sekunda nastąpi po 15625 cyknięciach timera - przerwanie następuje przy przepełnieniu jeśli wybierzesz OVERFLOW, ale może tez nastąpić przy COMPARE, od tego zależy jaką wartość wpiszesz do timera (czy odejmiesz...

    Mikrokontrolery AVR   22 Lip 2012 23:39 Odpowiedzi: 47    Wyświetleń: 6188
  • Jak usunąć zero przed literą na LCD w DSM-51? Kod w Jagodzie

    dzięki za pomysł ze spacjami, zrobiłem tak i działa. Z 7-segmentowym sobie jakoś poradziłem, natomiast pojawił się kolejny problem a mianowicie co robi pop 00H, wiem ze pop zdejmuje ze stosu a 00H to pewnie jakis adres, jednak nie wiem jaki?

    Mikrokontrolery   21 Sty 2005 13:32 Odpowiedzi: 3    Wyświetleń: 1674
  • [tiny2313] [tiny2313][Bascom] Zegar widmowy - problem z wyświetlaniem po kilku sekundach

    Brak RETURN'ów w podprogramach (na końcu) wywoływanych przez GOSUB. Procek skacze i nie zdejmuje danych ze stosu. Po przepełnieniu stosu idzie w maliny.

    Mikrokontrolery AVR   27 Mar 2009 14:10 Odpowiedzi: 6    Wyświetleń: 2331
  • Organizacja stosu w mikrokontrolerach serii 51 - dostęp do parametrów

    No więc, jest opłacalne i jest stosowane, jeśli by zdejmować elementy ze stosu do pewnego poziomu żeby wygrzebać zmienną to trzeba gdzieś te dane zapisać. Robi się to stosując bezpośredni dostęp pamięci używając tzw rejestru BasePointer, który wskazuje na wierzchołek stosu "na początku" procedury, np procesor x86 ma specjalne rozkazy w których argumentem...

    Mikrokontrolery   08 Sie 2004 18:53 Odpowiedzi: 8    Wyświetleń: 1317
  • Jak używać RAM zamiast rejestrów w AVR ATmega128?

    A nie łaska w przerwaniu odkładać i zdejmować rejestry na stos/ze stosu? Push i Pop mogą Ci w programie głównym "nie działać" jak nie wiesz jak z nich skorzystać ale w przerwaniu na pewno zadziałają. Mówisz że wykorzystujesz wszystkie rejestry. Na to nie ma rady. Jest za to inna rada: Nie wykorzystuj ich ;) Po prostu przerzuć parametry do RAMu jak na...

    Mikrokontrolery AVR   16 Maj 2010 19:49 Odpowiedzi: 13    Wyświetleń: 2327
  • Jak działa rejestr LR i stos w STM32 przy wywołaniach funkcji i przerwaniach?

    EXC_RETURN jest w tym przypadku "znacznikiem" końca procedury przerwania. Właściwy adres powrotu jest pobierany ze stosu (PC). Ze stosu jest zdejmowana również (między innymi) poprzednia wartość rejestru LR.

    Mikrokontrolery ARM   05 Maj 2016 14:58 Odpowiedzi: 40    Wyświetleń: 2712
  • STM32F4: Podwójne przerwania AWD przy optymalizacji -Os, dlaczego?

    Tu nie chodzi o sam potok Cortexa, a o to, że sterownik przerwań jest wolniejszy od samego procesora, więc skasowanie przerwania zajmuje zapewne nawet kilka cykli zegara procesora. Cortex nie zdejmuje ze stosu rejestrów na końcu przerwania, jeśli ma zgłoszone przerwanie, więc ten powrót z przerwania na końcu procedury w praktyce nawet się nie wykona,...

    Mikrokontrolery ARM   02 Kwi 2013 15:49 Odpowiedzi: 41    Wyświetleń: 5361
  • [ATmega32][Bascom] Dokładny pomiar czasu trwania przerwania

    Można zrobić tak aby oba mikroprocesory miały wspólny zegar- to po pierwsze. To że instrukcje wykonywane w przerwaniach zabierają jakiś czas- to po drugie. To że przy wywoływaniu przerwania coś jest odkładane na stos a po powrocie coś jest zdejmowane ze stosu- a to też zajmuje czas- to po trzecie. To co proponuje tadzik85 to jest taki "wytrych". Jak...

    Mikrokontrolery AVR   23 Cze 2010 19:04 Odpowiedzi: 12    Wyświetleń: 3663
  • DSM8051 - Jak przekonwertować 4-cyfrową liczbę dziesiętną na hex?

    Własnie obliczeń nie mam. Powiedzmy że mam liczbę np. 9475. W zapisie bin to jest: 00100101 00000011 jeżeli będę dzielić tylko pierwszy bajt to i potem drugi przez 16 to połączenie wyników nic mi nie da. Dlatego proszę aby ktoś mnie naprowadził na rozwiązanie. W programie wprowadzam z klawiatury 4 cyfry (w górnym rzędzie LCD) każdą wrzucam na stos (zaczynając...

    Mikrokontrolery   10 Cze 2014 08:41 Odpowiedzi: 13    Wyświetleń: 1347
  • Procedura 1-Wire w asemblerze dla 89c2051 - szukam algorytmu lub kodu

    Mam pytanie do kolegi który zamieścił powyższą procedurkę? Dlaczego w podprogramie iobajt połozona na stos jest liczba 2 i 3 a później zdjęta? PUSH 2 to jest zapamietanie na stosie R2 PUSH 3 to jest zapamietanie na stosie R3 ponieważ w tym podprogramię uzywam R2 i R3 a mogą tam się znajdowac informacje które ten podprogram nie powinien niszczyć, dlatego...

    Mikrokontrolery   17 Gru 2004 14:12 Odpowiedzi: 17    Wyświetleń: 6624
  • ONP - prośba o sprawdzenie działania i polecenie aplikacji

    Zapis przedstawiony przez Ciebie jest niepoprawny (zgubiłeś po drodze operator dzielenia, być może z nawału operacji...) A poza tym bardzo dobrze! AB*CDEF*-G^/- Ogólna zasada tłumaczenia z notacji wrostkowej na ONP: Każdy argument jest wkładany na stos. Gdy pojawia sie operator, wówczas zdejmuje się ze stosu odpowiednią liczbę argumentów (dwa dla operatorów...

    Programowanie Początkujący   02 Lut 2012 19:28 Odpowiedzi: 1    Wyświetleń: 978
  • [C] Przepełnienie stosu w menu - jak uniknąć zapętlenia funkcji?

    Stos "czyści" się w pewnym sensie automatycznie, po wykonaniu funkcji ze stosu zdejmowane są adres powrotny i wartości kluczowych rejestrów (co uwalnia zajętą przez funkcję przestrzeń na stosie). Nie wiem na jak procesor piszesz program, ale zwykle do stosu jest dostęp, tzn. można przesunąć ręcznie wskaźnik góry stosu, ale obawiam się, że może to się...

    Mikrokontrolery   28 Wrz 2010 19:04 Odpowiedzi: 9    Wyświetleń: 948
  • Co potrafi ATMEGA8? Program, TIMER1 z preskalerm=1. Czas się nie zmienia.

    Można jeszcze inaczej, jeżeli zależy Ci na przerwaniach, to przy deklaracji, na końcu parametr NOSAVE On Timer1 Gen NOSAVE Durny BASCOM wrzuca na stos prawie wszystkie rejestry po wejściu do przerwania (w sumie 29 sztuk w AVR), a przed wyjściem z przerwania zdejmuje rejestry ze stosu. Stąd niesamowite opóźnienie. Oczywiście po zastosowania NOSAVE rejestrami...

    Mikrokontrolery   20 Mar 2005 23:20 Odpowiedzi: 6    Wyświetleń: 2429
  • Wstawki ASM w Bascomie - jak to bezpiecznie zrobić?

    Dziekuje Wam za pomoc. jednak to o czym piszecie juz robilem. czyli zapisywalem sreg zarowno na stos jak i w zmiennej w pamieci bez widocznej poprawy. Zapisywalem rowniez wszystkie rejestry uzywane (pozniej nawet wszystkie rejestry procesora) bez rezultatu. Moze problem jest w tym ze nie wiem dokladnie co robi bascom jak reaguje na przerwanie? moze...

    Mikrokontrolery   25 Lis 2006 23:38 Odpowiedzi: 18    Wyświetleń: 2360
  • 8052 - Timer0 i przerwania: dlaczego program restartuje po przepełnieniu?

    sprawdzalem w wynikowym kodzie w asm, no i z tego co widac kompilator przed procedura obslugi przerwania wzuca na stos ACC, pozniej go zdejmuje. moze wlasnie w tym tkwi problem, ze powinienem jeszcze jakies rejestry na stos wyslac ? jakies pomysly ? pozdrawiam

    Mikrokontrolery   28 Lut 2005 13:00 Odpowiedzi: 15    Wyświetleń: 2364
  • Czym są przerwania w mikrokontrolerze AT89C2051? Wyjaśnienie dla początkujących

    Witam Przerwanie tak obrazowo tłumacząc: Czytasz książkę, nagle dzwoni telefon. Odbierasz telefon, rozmawiasz. Po zakończeniu rozmowy wracasz do lektury. Procesor wykonuje jakiś kod, dzwonek tel. to jest zgłoszenie przerwania - więc wykonuje kawałek innego kodu - rozmowa tel. Po wykonaniu przerwania wraca do wykonywania kodu. Przy czym wznawia wykonywanie...

    Początkujący Elektronicy   10 Kwi 2006 22:20 Odpowiedzi: 2    Wyświetleń: 878
  • Analiza błędów w programach asemblerowych - średnia z liczb na stosie

    Witam Odnośnie pierwszego zadania to jasne jest że procek nie wie gdzie ma wrócić. Jak zdejmujesz adresy ze stosu to wypadało by je poprawnie zachować do odtworzenia. Nie pamiętam teraz czy można zdejmować ze stosu w ten sposób POP 40H ale jak zdejmujesz drugi bajt do akumulatora to trzeba go zachować bo za chwilkę z niego korzystasz i tracisz jego...

    Mikrokontrolery   18 Cze 2008 20:27 Odpowiedzi: 1    Wyświetleń: 1688
  • [Atmega16, DS18B20, Bascom]Pomiar temperatury i przerwanie

    To teraz dalej. Polecenie waitms 750 daje konieczne opóźnienie dla przetwarzania wyniku z DS. Ale nie wyłącza przerwań. W czasie tego waitms przerwanie jest wywoływane ok. 2900 razy- przy tych ustawieniach timera. Za każdym razem jest wykonywana dość długa procedura obsługi przerwania - a odkładanie i zdejmowanie ze stosu też jakiś czas zajmuje. Tak...

    Mikrokontrolery AVR   30 Mar 2010 18:40 Odpowiedzi: 29    Wyświetleń: 7293
  • Jak napisać procedurę przerwania w assemblerze bez prologu i epilogu w AVR GCC?

    Nie mam żadnego pomysłu na to aby zmusić kompilator AVR GCC(+AVRstudio) aby procedurę obsługi przerwania calkowicie zrealiować jako procedurę napisaną w assemblerze reszta jest w C. Chodzi o to że niezależnie od poziomu optymalizacji kodu, kompilator dodaje prolog i epilog który mi kompletnie nie pasuje, chodzi o odkładanie rejestrów na stos. Nawet...

    Mikrokontrolery AVR   04 Lut 2010 22:27 Odpowiedzi: 17    Wyświetleń: 1779
  • Uruchamianie zaawansowanych aplikacji C++ na mikrokontrolerach

    Nie wiem czemu się przyczepiłeś do tego ASM, ale śmiem wątpić byś miał gdzieś rzeczywiste porównanie implementacji cpp vs ASM a jedynie bardzo nietechniczne przepychanie się słowne. Jak chcesz udowodnić to technicznie podaj wartości liczbowe a nie słowne. Tak czytam ten wątek i też nie rozumiem dlaczego on to robi, C++/C ma nad ASM rzeczywistą przewagę...

    Artykuły   14 Wrz 2021 10:55 Odpowiedzi: 25    Wyświetleń: 3279
  • Przeniesienie programu z AT90S2313 na ATtiny13 - problemy z BASCOM i UART

    Sprawdziłem i miałeś rację :) źle przeliczyłem wartoś (faktycznie jest kwarc/64) a co do rejestrów to okazuje się, że potrzeba wrzucić na stos rejesrtry: r0, r4, r17, r20, r24, r25, r26, r28 i r30. Niektóre np: r27 nie są używane (wg symulatora). Przy okazji odkryłem że jeśli ostatnim rejestrem odłożonym na stos jest np. r5 a zdejmowanie ze stosu zacznie...

    Mikrokontrolery   21 Wrz 2006 19:31 Odpowiedzi: 20    Wyświetleń: 3504
  • [GCC][M162] Powrót z przerwania w inne miejsce niż wywołano

    pop R16 pop R17 'zdjęcie adresu powrotu ldi R16, xx ldi R17, yy push R16 push R17 'załadowanie nowego adresu powrotu. reti Wiem że nie w C, ale w C chyba jednak po przezwyciężeniu wszelkich niedogodności da się wstawić taki kod. Do R16 i R17 trzeba załadować adres powrotu. Jak? Nie wiem. W BASCOMie bym wiedział. Ten fragment trzeba odpalić po zdjęciu...

    Mikrokontrolery AVR   05 Maj 2009 12:26 Odpowiedzi: 9    Wyświetleń: 1648
  • [C] Jak zaimplementować stos w kalkulatorze w C? Integracja stosu z kodem kalkulatora

    Podejrzewam że ten kalkulator ma wykorzystywać ONP. Poczytaj sobie najpierw co to jest stos i jak sie go używa. Napisz stos i funkcje do jego obsługi (m.in. push i pop), przetestuj czy dobrze działa, a potem zdefiniuj funkcje kalkulatora (dodawanie, mnożenie itp). Funkcje obliczające będą zdejmowały (dodawały) elementy(liczby) ze stosu i wykonywały...

    Programowanie Początkujący   23 Sie 2010 23:56 Odpowiedzi: 3    Wyświetleń: 3128
  • nakładanie się przerwań na siebie, keil uVision 2

    Wie może ktoś co zrobić w Keilu, żeby można było korzystać z więcei niż jednego przerwania? Chodzi o to, że jak jest ich już 2 to nakładają się na siebie. Pisze program w C i nie wiem co z tym fantem zrobić?? W asm to nie ma sprawy bo odrazu robi się skok do właściwej procedury i dopiero tam odkłada się co potrzebna na stos a w C to juz gorzej bo nie...

    Mikrokontrolery   29 Wrz 2006 11:35 Odpowiedzi: 3    Wyświetleń: 1252
  • [AtMega16][BASCOM]Problem z odmierzaniem odcinków czasu

    No właśnie- przerwanie od Timera co 16.384 ms a w przerwaniu tylko inkrementacja jakiejś zmiennej. No ale to Bascom- odkładanie na stos i zdejmowanie zajmie jeszcze kilkadziesiąt instrukcji po 0.0625us przy zegarze 16MHz. Ale nawet wtedy to będzie poniżej 6us. Wystarczy aby obsługa przerwania INT0 była krótsza od 16ms. Zwłaszcza że przerwanie zewnętrzne...

    Mikrokontrolery AVR   10 Maj 2010 11:58 Odpowiedzi: 11    Wyświetleń: 1668
  • Jak zacząć programować systemy S7-300? Czy potrzebna znajomość systemu operacyjnego?

    s7-300 stoi na stole,pierwsze male operacje na wejsciach / wyjsciach dzialaja bez problemu,teraz jeszcze detale i bedzie dobze!!!! jezeli sys i ta przeleci wrzystko to dlaczego pisze sie funkcje czy bloki( tylko po to zeby bylo ladnie i czysto czy ma to cos wspulnego z funkcjonalnoscia wielokrotnego wywolania bloku danych pozdrowienia Raczej jest to...

    Automatyka Przemysłowa   20 Maj 2009 21:51 Odpowiedzi: 15    Wyświetleń: 2067
  • Zawieszanie się programu w BASCOM przy użyciu Debounce Pinc.5 - jak naprawić?

    No to przeanalizuj sobie program krok po kroku: 1) W sub A po wciśnięciu przycisku następuje skok do podprogramu(!) Prog_1, któru w Ciebie zadeklarowany jest jako zwykła etykieta, a nie podprogram. Jakbyś pisał w asm, to takie coś jest jak najbardziej poprawne, ale w innych językach może, ale nie musi działać, tu raczej działa tak jak w asm. 2) z Prog_1...

    Mikrokontrolery   05 Sie 2005 20:47 Odpowiedzi: 5    Wyświetleń: 1442
  • BASCOM - jak przerwać procedurę i wrócić do pętli DO...LOOP?

    Uwagi praktyczne już po próbach z programem :D Dopiero jak pozmieniałem właściwy program, jak zobaczyłem to w symulatorze doszedłem do jeszcze prostszego rozwiązania. Można podmieniać adresy powrotu w obszarze adresowym stosu, można sobie zdejmować ileś tam danych ze stosu - tylko po co... Wystarczy ustawić wskaźnik stosu SPL na adres początkowy stosu...

    Mikrokontrolery   12 Sty 2006 08:47 Odpowiedzi: 16    Wyświetleń: 2745
  • Stos w bascomie 8051. Jak mogę zwiększyć wielkość stosu? Programowo.

    Może jaśniej za pomocą komend bascoma ? ja używam w programie instrukcji CALL i rozumiem to tak jeśli wykonuję skok do jakiejś etykiety to program odkłada na stos adres powrotny stos rośnie coś wykonuje w tej etykiecie i wraca z niej z powrotem do poprzedniej , zdejmuje adres powrotny z stosu czyli stos znów maleje i tak w kółko jeśli wpiszę wartość...

    Mikrokontrolery   15 Lis 2008 10:34 Odpowiedzi: 7    Wyświetleń: 1848
  • [Bascom] Losowe wartości temperatur z DS18B20 w sterowniku pieca

    Ten program jest dziwnie napisany i być może po czasie brakuje mu stosu. Już wyjaśniam. 1. Po pierwsze powinno się deklarować wielkość stosu #hwstack bo inaczej to masz tam tyle ile masz wpisane w IDE a tam możesz mieć dalej jakieś Tiny2313. 2. Po drugie użycie instrukcji GoTo by przeskoczyć z jednego Sub do drugiego lub wyjście z Sub do pętli głównej...

    Mikrokontrolery   05 Maj 2020 19:23 Odpowiedzi: 8    Wyświetleń: 726
  • Jak napisać program w Pascalu do zarządzania danymi o samochodach?

    Mam napisać "prosty" programik jako pracę zaliczniową (1 z 3). Problem polega na tym, że niwząb nie pamiętam już Pascala. Może ktoś pisał kiedyś coś podobnego i mógły sie podzielić... Treści: 1) Napisz program realizujący następujące zadania: -Zdefiniuj rekord, na który składają się dane o samochodach: marka, kolor, rok produkcji, uwagi - Wczytuje dane...

    Programowanie   11 Mar 2006 11:49 Odpowiedzi: 2    Wyświetleń: 1569
  • Assembler - obliczanie średniej z liczb na stosie i zapis do komórki 30h

    Po pierwsze to zależy na jakim procku to masz napisać, komendy trzeba sobie przejrzeć jakie są dostępne i na tej podstawie coś próbować zrobić. Nie wiadomo, jakie instrukcje są wykonywane więc ciężko ułożyć jakiś scenariusz. Wywołanie podprogramu zapisuje się na stosie, a to ile dokładnie zajmuje ten narzut (przynajmniej adres powrotu z podporgramu...

    Programowanie   04 Paź 2012 23:24 Odpowiedzi: 10    Wyświetleń: 4314
  • Używanie dwóch timerów w BASCOM (atmega2560) - pobieranie danych z tablicy i sterowanie PORTB

    Niestety Bascom AVR jest nieoptymalny pod względem przerwań, bo obligatoryjnie zrzuca większość rejestrów na stos i je zdejmuje przed wykonaniem treści przerwania. Poza tym, zastanów się czy masz prawidłowo obliczone timingi, bo LOAD 1 nie powoduje, że do licznika wpisywane jest 1, tylko wynik operacji 65536-1, a zatem przy obecnym preskalerze co 8...

    Mikrokontrolery AVR   07 Kwi 2023 07:26 Odpowiedzi: 17    Wyświetleń: 738
  • 89Cxx51: Przerwanie zewnętrzne nie działa poprawnie przy stanie niskim

    Jedyne co mi przychodzi do głowy to to, że zrzuciłeś w procedurze przerwania coś na stos i nie zdjąłeś wszystkiego (lub zdjąłeś za dużo) i przy powrocie zdejmowany jest i przepisywany do PC adres znikąd wzięty (to, co pozostało na stosie). Podobnie sprawa ma się wówczas z PSW. Bo przy skoku do przerwania PC i PSW wędrują na stos :] Pozdrawiam

    Mikrokontrolery   16 Lip 2006 13:17 Odpowiedzi: 11    Wyświetleń: 1536
  • Asembler, pętla w pętli. Jak powtórzyć? Rejestr CX.

    Dzięki. Chodził mi po głowie ten stos, kombinowałem nawet tym umieszczaniem i zdejmowaniem ze stosu ale wszelkie próby kończyły się porażką. Już widzę gdzie popełniałem błąd. Jeszcze raz dzięki.

    Programowanie Początkujący   08 Cze 2010 13:13 Odpowiedzi: 2    Wyświetleń: 7184
  • DSM-51 Wyświetlacz LED - operacja na wskaźnikach.

    Pisałem takie cuś. Wklejam kod i nawet z komentarzami =] LED_BUF_BASE equ 030h LED_BUF_SIZE equ 06h org 00h ljmp Start org 30h Start: mov SP,#040h clr P1.6 mov R0,#LED_BUF_SIZE mov A,#00h Led_buffer_clear: dec R0 lcall Write_to_LED_buffer inc R0 djnz R0,Led_buffer_clear mov R0,#02h mov A,#040h lcall Write_to_LED_buffer Loop: mov A,#01h mov...

    Mikrokontrolery   03 Gru 2010 15:09 Odpowiedzi: 8    Wyświetleń: 2237
  • Kontroler I2C wyświetlacza na sterowniku T6963C

    ale czy bufor to kwestja języka? wydaje mi się, że tu idzie o zasadę. Ja sobie zrobiłem bufor do rs232 w formie tabli, przerwanie dokłada na stosik znaki a procedurka zdejmuje , wystarczyła 8 bajtowa tabelka żeby nawet pisanie na 4 ręce nie powodowało przepełnienia. Zrób tak samo. Niech przerwanie odkłada ci na stos komendy a procedura niech zdejmuje...

    DIY Konstrukcje   31 Maj 2010 15:58 Odpowiedzi: 22    Wyświetleń: 13492
  • BAS KS108 Xmega - Nowy Bascom, polecenie lcdat zawiesza uP, reszta ok.

    No nie właśnie. W zasadzie to w ogóle nie :D A już na pewno nie tymi programowymi. hwstack to stos sprzętowy. Ale jego wierzchołek musi ustawić programista. uP jedynie sprzętowo umieszcza i zdejmuje tam dane, ale gdzie to robić to musi określić programista. swstack to stos programowy. W sumie nie wiem co to :D frame to ramka i też nie wiem co to :D

    Mikrokontrolery AVR   24 Paź 2012 12:25 Odpowiedzi: 7    Wyświetleń: 2097
  • [PHP] PHP – Jak najlepiej parsować tagi [code][/code] BBcode w systemie komentarzy?

    Pisanie parsera bbcode zahacza już o pisanie własnego parsera, z definicji chociażby nawet :p. Problemy 1. i 2. nie stanowią większego problemu w moim rozwiązaniu. Proponuję, abyś napisał coś w ten deseń: funkcja, która po prostu wyodrębnia otwarte&zamknięte tagi bbcode z fragmentu tekstu i na nich operuje. Z tym, że jeśli napotyka na otwarcie znacznika,...

    Programowanie   11 Maj 2010 13:58 Odpowiedzi: 5    Wyświetleń: 2127
  • Jak stworzyć uniwersalny algorytm menu dla mikrokontrolerów AVR i 51?

    Tesz mi przyszedł taki pomysł... na Avr: zrobić w pamięci tablice 8x16.. 8 procesów, na każdy po 16 bajtów... w tych bajtah by były przechowywane: wskaźnik następnej instrukcji (PC), rejestry r16-r21, r26-31,r0 i r1... do całości wykorzystać jeden licznik... do bajtów danych następnej instrukcji (PC) wpisać adres w którym znajduje sie program.. (jeśli...

    Mikrokontrolery   26 Kwi 2004 07:20 Odpowiedzi: 6    Wyświetleń: 1758
  • ATmega2560 - przerwania timera1 nie działają, dioda nie gaśnie po 1 sekundzie

    Ok, mam 3 procedury, licznik włączam w kodzie głównym. R16 przy włączeniu przerwania odkładam na stos (push r16) a przed powrotem zdejmuję (pop r16). W poleceniu mam żeby program zaczynał się od ustawienia int0, jak to przeskoczyć aby nie wchodzić z main do obsługi int0?

    Mikrokontrolery AVR   30 Lis 2015 22:10 Odpowiedzi: 9    Wyświetleń: 1080
  • AVT2250 i SDCC: Konflikt przy obsłudze przerwań w języku C

    Witam Próbuję właśnie "zmusić" zestaw AVT-2250 do współpracy z językiem C. Używam kompilatora SDCC oraz środowiska Code::Blocks. Przygotowałem sobie plik nagłówkowy bios.h oraz plik bios.c (wszystko w załączniku, łącznie z projektem), aby było łatwiej wywoływać procedury zaimplementowane z BIOSie komputerka. O ile z napisaniem obsługi przerwania w asemblerze...

    Mikrokontrolery   24 Sie 2009 10:56 Odpowiedzi: 3    Wyświetleń: 2407
  • [MEGA128] Dlaczego ATmega128 resetuje się przy przerwaniach w programie migania diody?

    Ok. Ja nie wiem, poddaje się, przeanalizowałem cały kod, ni chu chu nie wiem czemu nagle coś się wykrzacza i dlaczego:/ Wygląda jakby gdzieś przez przypadek zdejmował jeden adres za dużo ze stosu *no albo cokolwiek* i robiąc reta wraca nie skąd przyszedł tylko skąd był call do maina, a za tym callem jest nic innego jak... rjmp do cli a potem rjmp do...

    Mikrokontrolery AVR   15 Lip 2008 14:13 Odpowiedzi: 19    Wyświetleń: 2058
  • BASCOM - wywoływanie podprogramów wysypuje program.

    Nie używaj GOTO do "przesiadek" między podprogramami, funkcjami. Skąd program wyszedł tam musi wrócić. Inaczej przy skoku bez drogi powrotnej uC odkłada dane na stosie i ich z niego nie zdejmuje. Jak chcesz by ktoś zanalizował twój program to po pierwsze daj go w całości, żeby można go sprawdzić w kompilatorze i po drugie porób wcięcia, bo ta miazga...

    Mikrokontrolery   04 Lut 2008 15:14 Odpowiedzi: 4    Wyświetleń: 1184
  • Jak zsynchronizować 5 mikrokontrolerów AVR na poziomie mikrosekundowym?

    To jeszcze spróbuj doprowadzić do uc jeden wspólny sygnał taktujący ... np. z zewnętrznego generatora. No i pozostaje kwestia programu tu hipotetyzuje bo pewien nie jestem nie zagłębiałem się w to i niewiem jak to dokładnie przebiega : ... zakładam że piszesz w C i jeden i drugi uc coś robią i mogą być w różnych podprogramach to przy wejściu w przerwanie...

    Mikrokontrolery   31 Mar 2011 19:38 Odpowiedzi: 29    Wyświetleń: 2656
  • Eclipse. Brak Includes. Nie widzi ścieżek do bibliotek.

    Już to znalazłem. Ale jest nieaktywne tak jak przypuszczałeś. Jak wrzucisz screenshota, to może przypomnę sobie jak to uaktywnić (; Zmiana Eclipsa miała jedynie uaktywnić tą opcję (przenieść ją do Preprocesor include paths jak rozumiem). W nowych wersjach ta konfiguracja wygląda zupełnie inaczej - tak jak w linku który wrzuciłem w drugim poście. Dlatego...

    Mikrokontrolery ARM   17 Maj 2015 09:35 Odpowiedzi: 9    Wyświetleń: 2319
  • [ATMega16] ATMega16: Niezgodne wyniki pomiaru czasu impulsów w mikrosekundach

    a no to źle zrozumiałem sorki, ale w takim razie miałeś chyba słuszną koncepcję że w przerwaniu INT zerujesz sobie Timer a w przerwaniu od ICP odczytujesz ICR tyle, że..... .... po pierwsze ty chcesz mierzyć czasu rzędu ? kliku mikro-sekund??? tzn jakie bywają te różnice po wyzwoleniu ??? jakie masz założenie bo jeśli kilka us albo i mniej - to musisz...

    Mikrokontrolery AVR   05 Lis 2009 19:48 Odpowiedzi: 11    Wyświetleń: 3979
  • Funkcja push nie działa poprawnie w implementacji stosu C++ - co poprawić?

    Chcę zdefiniować stos, w tym celu napisałem poniższy kod. Problem jest taki, że funkcja push nie wkłada elementu na stos. Może mi ktoś pomóc? [syntax=cpp] #ifndef STACK #define STACK #include <iostream> #include <new> using namespace std; class stack{ public: int* line; int element; int max ; stack (); ~stack(); int top();//liczba na górze...

    Software serwis   24 Sie 2014 19:36 Odpowiedzi: 2    Wyświetleń: 600
  • Assembler dla 8051 - Co to jest stos i jak działa? Szukam dobrego objaśnienia

    Ściślej mowiąc, na 8051 nie da się zrobić operacji push R2 (na przykład). Na stos można odkładać (i zdejmować z niego) tylko akumulator i rejestr B. Trzeba wtedy zrobić tak: :) Witam no muszę powiedzieć że troche kolegę poniosło bo niestety intrukcja PUSH i POP pozwala zapisywać do całego obszaru adresowanego w 51 bezpośrednio - czyli 128 bajtów pamięci...

    Mikrokontrolery   10 Lis 2005 21:28 Odpowiedzi: 15    Wyświetleń: 15392
  • [ATmega8] Jak zwiększyć częstotliwość licznika T0 powyżej 25kHz w ATmega8?

    Rozumiem, że za pomocą tej swojej pierwszej metody chciałbyś uzyskać bardzo wysoką częstotliwość, ale nie bierzesz w tym przypadku pod uwagę, że takie programowe generowanie nośnej dosyć istotnie różni się od sprzętowego, o kótrym wspominał Konrad co sam już zauważyłeś. Tam czuwa sprzęt nad tym a w twoim programowym przypadku musisz wziąć pod uwagę,...

    Mikrokontrolery AVR   21 Gru 2008 23:48 Odpowiedzi: 11    Wyświetleń: 3067
  • [asm] Dziwne zachowanie programu na ATtiny2313 z diodami LED na porcie B

    Lysoleq -> ... poczekaj, ale ty po wejściu w przerwanie INT1 inicjujesz Timer0 prawda? czyli ma się wykonać za jakiś tam czas przerwanie no i wykonuje się. Czyli po rozkazie reti skacze do obsługi przerwania timera0. Przecież w pętli głównej masz tylko nop - więc co ten cały program ma robić? jak rozumiem czeka na zbocze opadające na INT1, w tym przerwaniu...

    Mikrokontrolery   04 Lut 2008 22:40 Odpowiedzi: 19    Wyświetleń: 1806
  • Sterowanie wyświetlaczami w Bascom z użyciem Lookup i portu B z peryferiami

    Mam jeszcze 2 pytanie związane z Bascomem. Zrobiłem program przykładowy przedstawiony poniżej. Dim Nr As Byte Dim Nr2 As Byte Dim Koniec As Bit Skocz: Koniec = 0 Do Input "Podaj nr" , Nr If Nr > 0 Then If Nr < 20 Then Koniec = 1 End If End If Loop Until Koniec = 1 Do Print "pętla 2" Input "Podaj nr 2" , Nr2 If...

    Mikrokontrolery   30 Maj 2010 13:45 Odpowiedzi: 6    Wyświetleń: 1862
  • Jak działają przerwania? Problem z kodem.

    Wiem co robi przerwanie, problem w tym że nie potrafię określić jednoznacznie gdzie ono się rozpoczyna, gdzie zostaje zainicjowane. Czy przerwanie rozpoczyna się zaraz po zezwoleniu sei(); ? Mechanizm inicjowania przerwań jest z jednej strony relatywnie prosty, lecz dostatecznie zabezpieczony przed przypadkowym jego uruchomieniem. Aby uruchomic jakikolwiek...

    Mikrokontrolery AVR   17 Lis 2016 18:53 Odpowiedzi: 34    Wyświetleń: 2238
  • [avr-gcc][m128]zmienne lokalne nie lądują w zew. sramie?

    Dokłądnie, a z kolei przeniesienie stosu na AVR w obszar ExRAM jest marnym pomysłem - dostęp do tej pamięci jest wolniejszy i cały program będzie się wolniej wykonywał ze względu na wolniejsze działanie PUSH/POP i odkładanie/zdejmowanie adresów powrotów. Dodatkowo coś mi się kołacze (trzeba to sprawdzić), że ATMega128 ma jakiś problem kiedy stos leży...

    Mikrokontrolery AVR   02 Gru 2010 12:20 Odpowiedzi: 10    Wyświetleń: 1910
  • Zastosowanie stosu i obsługa przerwań w asemblerze - jak to działa?

    Brawo olekewaagata. Tak to jest i być powinno. Jak dotychczas chyba żaden z procesorów nie ma zawsze stałej ilości bajtów w rozkazie, stąd i przy przerwaniu nie wiadomo czy powrót z niego to do następnego bajtu, a może do następnego itd. A po co stos - krótko po to bo jest wygodny, i samo sie robi. W różnych procesorach jest co prawda co innego nań...

    Mikrokontrolery   18 Kwi 2005 19:26 Odpowiedzi: 9    Wyświetleń: 1527
  • Kalkulator ONP w C++ - błąd w implementacji stosu, prośba o sprawdzenie kodu

    Cześć, czy ktoś mógłby mi sprawdzić, gdzie mam błąd? Siedzę nad tym już trochę i nic nie znalazłem. Dzięki. Kod: [syntax=c]#include <stdio.h> #include <iostream> typedef long danetyp ; class stos{ // towrze klase stos struct wezel // tworze strukture wezel { danetyp dane; wezel *poprzedni; wezel(danetyp x, wezel*p) { dane = x; poprzedni...

    Programowanie Początkujący   20 Mar 2013 21:07 Odpowiedzi: 2    Wyświetleń: 1470
  • [atmega8] Jak uzyskać 40kHz dla paczek impulsów w ATmega8 z Bascom?

    Incr Paczka także korzysta z jakiegoś rejestru, którego Ty nie odkładasz przed wejściem do procedury ISR i zdejmujesz po wyjściu - ot cała "głupota" ;-). Przy No save nie używamy instrukcji Bascoma, chyba, że odłożymy odpowiednie rejestry na stos...robiw PS. Skasuj End po Loop, potrafi trochę nabroić ;-)

    Mikrokontrolery AVR   04 Wrz 2009 23:40 Odpowiedzi: 12    Wyświetleń: 2671
  • [Mega32] [Mega32][BAscom] Nieprawidłowe działanie przerwań INT0, INT1, INT2 - licznik_2

    Czyli na końcu obsługi przerwania można wpisać: Set GIFR.intfx - gdzie x- numer przerwania. Bo to jest tak że rejestr w którym wpisujemy zezwolenie na obsługę przerwania to nie jest ten sam rejestr do którego jest zgłaszana flaga wystąpienia przerwania. Ten pierwszy Bascom obsługuje sam- przez enable. A do drugiego trzeba się "dogrzebać" ręcznie. Pacaneum...

    Mikrokontrolery AVR   10 Lip 2010 16:54 Odpowiedzi: 6    Wyświetleń: 2191
  • Avr wstawka assemblerowa. Sposób wskazywania właściwej komórki w tablicy.

    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...

    Mikrokontrolery AVR   17 Maj 2011 11:36 Odpowiedzi: 5    Wyświetleń: 1740
  • Makro dla AVR: 56 nowych rozkazów w asemblerze - Wasze opinie?

    Dalsza zabawa ze stosem i rejestrami ;) Zapamiętywanie rejestrów na stosie , oraz ich odtwarzanie. ;składnia pushr A,B i popr A,B ;odkładane i zdejmowane w kolejności od A do B .macro pushr ;max 16 .if (at)0==(at)1 .dw (0x920F & 0xFE0F | ((at)0<<4)) .elif (at)0>(at)1 .dw (0x920F & 0xFE0F | ((at)0<<4))...

    Mikrokontrolery   01 Mar 2011 21:33 Odpowiedzi: 76    Wyświetleń: 11533
  • ['51] jak wyślwietlić wartość zliczonych impulsów?

    Zrobiłem tak jak mówiłeś: wroc:mov A,0 mov A,#Linia1 call LCDRozkaz mov A,r5 ;w R5 starsza polowka timera dziel: mov B,#0Ah;wpisuje 10 div AB PUSH Acc mov A,B ADD A,#30h;od tego kodu zaczynają się cyfry call LCDZnak ;pisze to co jest w Acc POP Acc JZ dalej1 ;jeśli już nie ma co dzielić JMP dziel;jeśli jest to dzieli dalej przez 10 dalej1:mov...

    Mikrokontrolery   28 Maj 2007 23:14 Odpowiedzi: 9    Wyświetleń: 1113
  • [C] Atmega8 przerwania INT0/INT1 – wielokrotne zliczanie naciśnięć przycisku (debouncing)

    "pod koniec obsługi przerwania wyzerowć jego flagę". Po czym następuje proces zdejmowania ze stosu. Ileś cykli trwa. W tym czasie teoretycznie może nastąpić jeszcze jedno ustawienie flagi. Teoretycznie- bo czekanie na wygaszenie drgań 2x80ms to jest wieczność. Dlatego sądzę że używanie przerwań zewnętrznych do sprawdzania stanu przycisku tylko komplikuje...

    Mikrokontrolery AVR   09 Lip 2010 21:11 Odpowiedzi: 25    Wyświetleń: 2472
  • Bascom, DS18B20 – jak zastąpić waitms 750 obsługą Timer0 przy odczycie temperatury

    To tak zmieniłem: Do Gosub Zrob_cos Gosub Przygotowanie_odczytu Loop '*************************************** Przerwanie_0: 'co 2ms Set Portd.0 If Liczniczek_przygotowanie_odczytu > 0 Then Decr Liczniczek_przygotowanie_odczytu End If Flaga_dodatkowa = 1 'do wykorzystania w innym sub Reset Portd.0 Return '***************************************...

    Mikrokontrolery   04 Kwi 2010 21:36 Odpowiedzi: 26    Wyświetleń: 4846
  • ARM GCC. Cortex-M4. Funkcja w assemblerze. Parametry na stosie. Instrukcje specyficzne.

    Chcę napisać funkcję w assemblerze, bo potrzebuję użyć kilku instrukcji niedostepny6ch zbyt łatwo wprost z C. I natrafiłem na problem z parametrami na stosie. Pierwsze 4 powinny trafić do rejestrów r0...r3, a kolejne na stos. Ja mam 6 parametrów (wszystkie 32-bitowe) więc ostatnie 2 powinny być na stosie. Testy robię na optymalizacji -O0. Definicja...

    Mikrokontrolery ARM   10 Cze 2021 18:50 Odpowiedzi: 9    Wyświetleń: 816
  • [8051] DSM-51 mam dwa zadania w asemblerze i nie wiem jak.

    Stos w '51 jest analogią stosu talerzy (np. po zmywaniu a przed wycieraniem, przy założeniu że nie masz suszarki :-)) Najpierw myjesz i kładziesz jeden na drugim a następnie zdejmujesz od góry (czyli nie możesz wyciągnąć nic ze środka). Ostatni talerz umyty jest jednocześnie pierwszym wytartym. Konkret. PUSH ACC kładzie na stosie akumulator, PUSH B...

    Mikrokontrolery   15 Paź 2010 17:14 Odpowiedzi: 5    Wyświetleń: 2704
  • Atmega 16 - opóźnienie sygnału 2 ms, problem ze zboczem opadającym

    Baardzo mnie przeceniasz. Pisać programów to ja jeszcze nie umiem. Ale napisać co zrobić-spróbuję. Jest taki sposób żeby nie zezwalać na przerwanie-ale odczytać w programie głównym że pojawiło się żądanie przerwania-flaga. W rejestrze odpowiednim. Jak jest-to ją zerujemy (wstawiając 1-a nie 0 -mimo że jest 1-nie rozumiem dlaczego-ale w większości rejestrów...

    Mikrokontrolery AVR   16 Cze 2009 13:12 Odpowiedzi: 27    Wyświetleń: 3641
  • Jak dynamicznie zmienić wartość X w pętli do loop w Bascom?

    Nigdy tak jak zaproponował wicy ! ZAWSZE, gdy wejdziemy w procedurę lub podprogram MUSIMY wyjść tak jak należy zdejmując ze stosu to co odłożyliśmy! Zamiast: if koniec=x then goto petla_glowna end if Wstaw: if koniec=x then return end if ----- Jeśli zamiast: petla_glowna: gosub Wykonaj goto petla_glowna wpisalibyśmy: petla_glowna: goto Wykonaj...

    Mikrokontrolery AVR   09 Maj 2009 20:39 Odpowiedzi: 8    Wyświetleń: 1425
  • AT89C52 i RAM/EEPROM. Port P0 ciągle jest w stanie zera logicznego.

    To zrob test i przed wywolaniem drugi raz procedury znak ponownie zaladuj DPTR tym samym adresem przed wywolaniem instrukcji movx A,(at)DPTR. Da to pewnosc ze w trakcie Twoich czarow z wypisywaniem na wyswietlacz nie gubisz wskaznika DPTR. UPDATE: Moze wiem o co chodzi. W procedurze znak odkladasz na stos akumulator. Potem zdejmujesz od razu wpisujac...

    Mikrokontrolery   30 Mar 2005 13:08 Odpowiedzi: 12    Wyświetleń: 1904
  • Jak uniknąć przepełnienia stosu w ASM na mikrokontrolerze ATmega88?

    ok ujmuj jak chcesz ale nie dziw się, że później czegoś nie zauważysz ... a kolejne moje spostrzeżenie - gdzież to kolega zgubił rozkaz RETI na zakończenie przerwania???? w ogóle program obsługi przerwania to jakiś sorrki - ale koszmar. Tak się nie robi. Podstawowa zasada to krótka jasna i przejrzysta obsługa przerwań. A u ciebie dzieje się masakra...

    Mikrokontrolery   29 Sie 2007 01:45 Odpowiedzi: 28    Wyświetleń: 3069
  • [C++] Czy dynamiczny rozmiar tablicy w DJGPP GCC 4.12 jest poprawny?

    Nie ma problemu z alokacją i ogólnie z działaniem programów. Kolejny przykład: #include <iostream.h> void funkcja(int ile) { char tab[ile]; cout << "Rozmiar tablicy: " << sizeof(tab) << endl; } int main(void) { funkcja(12); funkcja(122); funkcja(9);...

    Programowanie   22 Kwi 2009 17:27 Odpowiedzi: 4    Wyświetleń: 1304
  • Jak alokować pamięć dynamicznie w C dla ATmega16 w WinAVR?

    Dlaczego w WinAVR nie działa kod: char *wskaznik; wskaznik=new char[20]; /* ... dzialania na wskazniku ... */ delete []wskaznik; wskaznik=NULL; Kompilator wyrzuca serie komunikatów zaczynając od `new' undeclared (first use in this function) Pisze programik w którym używam dużych tablic po 120-140 znaków. W pewnym momencie (po dodaniu kolejnej tablicy)...

    Mikrokontrolery   30 Wrz 2006 17:12 Odpowiedzi: 8    Wyświetleń: 3006
  • [ATTINY2313][C] Eliminacja drgrań styków - rozwiązany!

    To teraz tak: Przerwanie od OCR1A jest co 10ms. Czyli w czasie delay(255) w pierwszej pętli będzie wywołane przecietnie 8 razy a w drugiej 14 razy. A ile czasu trwa obsługa przerwania? Łącznie z odkładaniem na stos i zdejmowaniem? O tyle x8 lub x14 wydłuży się czas tego delay(). Czy to będą znaczące efekty czy do pominięcia- to musisz obliczyć.

    Mikrokontrolery   29 Wrz 2010 23:27 Odpowiedzi: 11    Wyświetleń: 2597
  • Jak zbudować miernik prędkości obrotowej z Atmega8, LCD i GP1S51VJ000F?

    Z obsługi przerwania wyrzuciłem zbędny kod. Wpisałem TCNT0=250; i zlicza bardzo szybko. Zlicza bardzo szybko, ale obawiam się, że niedokładnie. 6 taktów to za mało nawet na tak krótką procedurę obsługi przerwania. Pisząc w C nie widzimy tego, ale samo wejście w procedurę to 4 takty + wyjście (RETI) 4 takty. Do tego zwykle w procedurze obsługi przerwania...

    Mikrokontrolery AVR   24 Sty 2011 00:38 Odpowiedzi: 62    Wyświetleń: 10806
  • Atmega16 - Jak użyć przerwań do obsługi przycisku w asemblerze?

    ... Program chodzi, ale nie obyło się bez niespodzianek. W funkcji exit_delay przy zdjęciu ze stosu r17 rejestr ten zeruje się i program dziwnie się zachowuje. Zdejmując ze stosu tą wartość do jakiegoś innego rejestru np r25 wszystko chodzi poprawnie. Czy wie ktoś czemu tak się dzieje? Cóż , Twój przypadek , można by porównać do takiej opowieści: "Wkładam...

    Mikrokontrolery   27 Lis 2007 15:15 Odpowiedzi: 8    Wyświetleń: 1906
  • [C++] tablica na stosie. Jak się potem odwoływać do elementów?

    siemka, mam taki kodzik: [syntax=cpp]#include <iostream> #include <stack> #include <conio.h> using namespace std; int main() { stack <int> stos; int tab1[3] = {1,2,3}; stos.push(tab1); //tu pojawia sie blad getch(); return 0; }[/syntax] no i tu pojawia się problem, bo takie coś nie działa i nie da się tak po prostu położyć tablicy...

    Programowanie Początkujący   19 Mar 2011 08:34 Odpowiedzi: 6    Wyświetleń: 3166
  • Assembler a C++ czyli wybór szybciej czy taniej...

    Wówczas takie programowanie przestaje się znacząco różnić od zwykłego C. Tia... a tworzenie zmiennych, zmienianie ich rozmiarów i dynamiczna alokacja pamięci są nawet prostsze (; Do niektórych zastosowań assembler ma sens, ale tych zastosowań jest coraz mniej - niestety lub stety - zależy co kto lubi. Ja początkowo uważałem, że assembler jest najlepszy...

    Mikrokontrolery AVR   08 Wrz 2010 14:25 Odpowiedzi: 144    Wyświetleń: 21118
  • FreeRTOS Cortex-M3 port.c GCC – szczegóły działania xPortPendSVHandler i asm context switch

    Chyba nie do końca, ponieważ adres powrotu jest jednak w LR ponieważ instrukcją wyjścia z tej procedury jest: bx r14. Ale coś w tym jest że poprzez instrukcję: orr r14, #0xd modyfikuje się dodatkowo tryb pracy. Ale nadal nie rozumiem jak w tym r14 pojawia się właściwy adres - adres nowego tasku - do którego został procesor przełączony. Rozumiałbym gdyby...

    Mikrokontrolery ARM   14 Paź 2010 19:54 Odpowiedzi: 3    Wyświetleń: 1498
  • Zastosowanie PWM dla różnych napięć i detekcja zera w sterowaniu fazowym

    Widać nie chce kolega przyjąć do wiadomości, że prolog i epilog przerwania w BASCOM-AVR jest bardziej rozbudowany. Dlatego przekładanie "żywcem" przerwań i ustwaień czasowych z języka C na nic się nie zda. Ten sposób sterowania w BASCOMie jest niestety wadliwy, a pisanie przerwania jako $ASM...$END ASM z klauzulą NO SAVE jest już wyższą szkołą jazdy....

    Mikrokontrolery AVR   16 Paź 2009 12:43 Odpowiedzi: 38    Wyświetleń: 9021
  • Pomysły na projekt automatyzacji procesu mechanicznego - szukam inspiracji

    Jeżeli projekt ma być abstrakcyjny i zupełnie poglądowy, to może być np. coś takiego: - popychacz (pneumatyczny np.) wypycha kolorowy klocek z pionowego podajnika na taśmociąg poruszający się z określoną prędkością. - klocek przesuwa się pod czujnikiem koloru, jeżeli jest czarny to jedzie dalej, jeżeli ma inny kolor to ramię robota zdejmuje go z taśmy...

    Automatyka Przemysłowa   16 Lut 2011 14:55 Odpowiedzi: 3    Wyświetleń: 2996
  • PIC vs AVR – różnice, zalety, wady, wyposażenie i cena mikrokontrolerów

    mikmas: a jednak wrzuciłeś esencje naszej rozmowy na forum... pic'e pracują nieco wolniej.. w większości piców 4 cykle zegara składają sie na 1 cykl maszynowy. poszczególne stany rdzenia są jednoznacznie identyfikowane. avr działają z szybkością 1:1 - 1 cykl zegara to 1 cykl maszynowy (w przypadku większości instrukcji prostych), ale poszczególne stany...

    Mikrokontrolery   29 Lis 2005 22:50 Odpowiedzi: 6    Wyświetleń: 5675