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



Teraz jest 3 sty 2025, o 11:49


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 8 ] 
Autor Wiadomość
 Tytuł: STM32F103 EXIT
PostNapisane: 6 sty 2015, o 18:33 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 sie 2013
Posty: 116
Pomógł: 0

Witam
Mam taki problem: używam modułu enc28j60 i działa świetnie poza przerwaniami EXIT a mianowicie nie odbieram nic, pomimo że moduł jest skonfigurowany poprawnie.

Wydaje mi się że to wina mojego przerwania EXIT poniżej zamieszczam funkcje prze zemnie napisane i proszę o komentarz czy dobrze to robię.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

ponadto pin jest skonfigurowany jaki wejście pływające.

Co Wy na to?

Z góry dzięki



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 sty 2015, o 18:42 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 18 maja 2014
Posty: 126
Pomógł: 12

Masz gdzieś kod odpalający przerwanie? Coś w ten deseń, tylko z twoją nazwą przerwania:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
Pozdrawiam, Adrian.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 sty 2015, o 18:50 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 sie 2013
Posty: 116
Pomógł: 0

a tak zapomniałem tego wkleić, wszystko jest. ;p
Przerwanie jest wywoływane zaraz po jego inicjalizacji i tylko wtedy.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 sty 2015, o 19:00 

Pomógł: 0

Straszny bałagan :)

Przerwania to rejestr IMR (Interrupt Mask Register), rejestr EMR (Event Mask Register) dotyczy zdarzeń - jeśli nie wykorzystujesz zdarzeń np. do wybudzania procka (a nic o tym nie piszesz) to zostaw EMR w spokoju.

Rejestr SWIER (Software Interrupt/Event Register) umożliwia programowe wymuszenie przerwania/zdarzenia - więc chyba też nie o to Ci chodzi ;) Zresztą stąd jest Twoje wywołanie jeden raz po konfiguracji" - wymuszasz je programowo.

Przyłączam się do pytania przedmówcy - czy włączyłeś przerwanie w NVIC'u. Priorytetu nie musisz ruszać - może zostać tak jak jest.

Pytanie2: włączasz zegar dla portu i AFIO? Brakuje konfiguracji rejestru AFIO->EXTIx.

Działający przykład (PD3):
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 6 sty 2015, o 22:24 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 sie 2013
Posty: 116
Pomógł: 0

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


zapomniałem o AFIO i zegary dla portów są ustawione, usunąłem część jednak zachowanie jest wciąż takie same.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 sty 2015, o 23:23 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 18 maja 2014
Posty: 126
Pomógł: 12

Sprawdź jeszcze dokładnie w nocie czy nie pomyliłeś gdzieś któregoś rejestru/bitu/nazwy przerwania. Mam gotowca, który działa, ale na F0, więc trochę się różni. Sprawdziłeś diodą albo oscyloskopem czy rzeczywiście nie masz przerwania czy może coś nie tak jest z funkcją odbioru?

_________________
Pozdrawiam, Adrian.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 sty 2015, o 23:37 

Pomógł: 0

gronoarona napisał(a):
zapomniałem o AFIO i zegary dla portów są ustawione
z Twojego postu to nie wynika na 100% - czy zegar dla AFIO jest też włączony?

Przykład przerwania od PC13 dla stm32f103. Przerwanie (gwałcąc wszelkie de-bouncingi itp pierdoły) zmienia stan diody (PB0) - chodziło mi tylko o to aby zobaczyć czy działa ;) To jest cały kod programu i działa na żywym organizmie. Wcześniej jest tylko "startup" (ustawienie stosów, wyzerowanie sekcji bss, skopiowanie data itd..).

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



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 6 sty 2015, o 23:49 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 sie 2013
Posty: 116
Pomógł: 0

Wszystko jest ustawione tak jak mówicie i przerwanie czasem reaguje ( a czasem nie) szkoda że nie mogę tego sprawdzić wybiórczo bo płytkę mam już gotową i nie mam możliwości podpięcia tam czegoś. No ale przerwanie czasem się wywołuje więc wydaje mi się że to może być jednak wina ENC zwłaszcza że w erracie jest info że czasem może się gubić.



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: 8 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

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


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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO