Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 19 kwi 2024, o 19:25


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 
Autor Wiadomość
PostNapisane: 5 cze 2017, o 21:54 
Offline
Użytkownik

Dołączył(a): 01 sty 2015
Posty: 31
Pomógł: 0

Cześć zwracam się do Was po raz kolejny z prośbą o pomoc.

Zaczniemy może od przerwań.

Na przykładzie timera jak ja to rozumiem.

Timer generuje fale prostokątną i to jaki jest współczynnik wypełnienia tej fali zależy od tego jak skonfigurujemy sobie Timer.
Czyli dzięki temu uzyskamy sygnał powtarzający się co pewien okres i rozumiem, że co ten właśnie okres będzie generowane przerwanie. I o co chodzi tutaj w tym przerwaniu co to znaczy, że jest generowane przerwanie, jak to się dzieje ? rozumiem, że to się dzieje samo ja nic nie muszę robić ?

I teraz tak tutaj w kodzie z jednym moich programów mam metodę która służy właśnie obsłudze przerwania? nie wiem.


Składnia: [ Pobierz ] [ Ukryj ]
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


bardzo proszę o wytłumaczenie tego kodu o co tu chodzi. Powyższy fragment kodu jest z programu który zliczał ile jest naciśnięty przycisk, czyli przypuszczam że to przerwanie jest wywołane jak się ten przycisk puści. Jak to się dzieje, w jaki sposób takie przerwanie jest wywołane, co musi się stać ?

Przeczytałem też że w każdej obsłudze przerwania trzeba kasować pending request bo obsługa przerwania się zapętli chyba (czy w powyzszym kodzie kasowane jest pending request? ).

W kodzie w assemblerze do obsługi przerwań używaliśmy też czegoś takiego: TIM3_IRQHandler i EXTI0_IRQHandler. Nie wiem jakie to ma znaczenie w użyciu.


Część 2 -> banały

Mam taki kod

Kod:

            1. CMP      R5,#255 ;
            2. ITE      EQ ;
            3. MOVEQ           R1,#1<<13
            4. MOVNE           R1,#1<<29 ;reset jest na 29
            5. STR      R1,[R0]



1. Porównuje wartość w rejestrze R5 z 255. Jeżeli jest taka sama ustawia się flaga Z = 1
2. Jeżeli Z == 1 to wykona sie linijka 3, jeżeli nie to wykona się linijka 4.

PYTANIE 1. Po co piszę MOVEQ / MOVNE ?? Równie dobrze mogę wywalić linijkę nr 2 ( ITE ) i też będzie chyba działać.

PYTANIE 2. Co oznaczają te przesunięcia bitowe w R1 (linijka 3 i 4) po co takie coś się tutaj robi?

PYTANIE 3. Co to znaczy ze na jakimś porcie robimy maskę na jakiejś pozycji. Np zadanie że mam liczbę np 1011 i chcę wyzerować jakaś pozycję -> robię maskę z jedynkami/zerami na tej pozycji którą chce zmienić. Czy byłby ktoś w stanie mi pokazać przykład jak takie zadanko należy zrobić?

PYTANIE 4. Instrukcja STR

Powiedzmy, że mam:

LDR R1,[R0]
STR R1,[R0]

Wiem, że STR zapisuje wartość rejestru w pamięci w przeciwieństwie do LDR który to ładuje wartość rejestru z pamięci.

Tylko, że ja nie rozumiem czym to się różni.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 cze 2017, o 20:53 
Offline
Użytkownik

Dołączył(a): 01 sty 2015
Posty: 31
Pomógł: 0

Mam kolejne proste pytanie.

Instrukcja TST

Składnia: [ Pobierz ] [ Ukryj ]
język asm
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


W jakim przypadku ustawiana jest flaga?

Jeżli do rejestru R1 wrzucę 0x01 to się nie ustawia. a już dla R1 = 0x02 tak. Czyli żeby ustawiła się flaga wynikiem muszą być same zera ?

TST to operacja AND czyli
dla R1 = 0x01 mam 01 & 01 = 01
dla R1 = 0x02 mam 10 & 01 = 00



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 cze 2017, o 19:18 
Offline
Użytkownik

Dołączył(a): 01 sty 2015
Posty: 31
Pomógł: 0

Pomoże ktoś ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO