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



Teraz jest 29 mar 2024, o 16:15


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 13 ] 
Autor Wiadomość
PostNapisane: 27 cze 2021, o 13:59 
Offline
Użytkownik

Dołączył(a): 05 gru 2017
Posty: 29
Pomógł: 0

Witam wszystkich mam mały problem, kiedyś Pan Mirek przedstawił takie fajne rozwiązanie z flagą na INT
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

To mi działa, a chciałem tak samo zrobić z PCINT0
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

A to mi nie chce działać



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 cze 2021, o 14:11 
Offline
Użytkownik

Dołączył(a): 02 gru 2015
Posty: 544
Pomógł: 27

Cytuj:
kiedyś Pan Mirek przedstawił takie fajne rozwiązanie z flagą na INT

Mirek przedstawił to nieco inaczej tak:
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
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 cze 2021, o 15:58 
Offline
Użytkownik

Dołączył(a): 05 gru 2017
Posty: 29
Pomógł: 0

No toć napisałem że INT mi dział, ale chodzi mi czy można zastosować takie rozwiązanie do PCINT?

------------------------ [ Dodano po: 6 minutach ]

I sprawdź sobie kolega jak przedstawił to Pan Mirek z tego linku
http://mirekk36.blogspot.com/2013/11/rt ... ek-na.html



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 cze 2021, o 17:48 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 mar 2015
Posty: 310
Pomógł: 18

Piotrek801027 napisał(a):
I sprawdź sobie kolega jak przedstawił to Pan Mirek z tego linku
http://mirekk36.blogspot.com/2013/11/rt ... ek-na.html

Pan Mirek wyjaśnił tą sprawę w komentarzach:
"mirekk36 27 października 2015 17:49

Ależ oczywiście, że kolega ma 100 a nawet 1000% racji, ma być:

GIFR = (1<<INTF0);

bez tej operacji OR - zdecydowanie."



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 cze 2021, o 19:07 
Offline
Użytkownik

Dołączył(a): 05 gru 2017
Posty: 29
Pomógł: 0

Spoko przyznaje rację mój błąd nie czytałem komentarz ale to nie zmienia faktu że PCINT nie chce działać
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
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 cze 2021, o 20:03 
Offline
Użytkownik

Dołączył(a): 02 gru 2015
Posty: 544
Pomógł: 27

Nigdy tak z PCINT nie robiłem ale z noty wynika że powinno działać tylko kolega nie ustawił z którego pinu ma być flaga.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


i dopiero teraz powinno zadziałać.

------------------------ [ Dodano po: 4 minutach ]

oczywiście masz w main.c wywołaną funkcję sei();



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 cze 2021, o 16:19 
Offline
Użytkownik

Dołączył(a): 05 gru 2017
Posty: 29
Pomógł: 0

Niestety nie działa :(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 cze 2021, o 23:38 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27212
Lokalizacja: Szczecin
Pomógł: 1041

Piotrek801027 napisał(a):
Niestety nie działa :(

Zamiast takie rzeczy pisać - to weź Pan zawsze wklej swój cały poprawiony kod - bo kto ci pomoże jak nie widać co robisz i jak poprawiasz.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 cze 2021, o 16:28 
Offline
Użytkownik

Dołączył(a): 05 gru 2017
Posty: 29
Pomógł: 0

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

ten właśnie nie chce chodzić
na tym porcie mam cztery klawisze, diodę, odbiornik radiowy i ds.
i właśnie chodzi o przerwanie od desa żeby nie blokowało przerwania od odbiornika radiowego

------------------------ [ Dodano po: 2 minutach ]

i tak też prubowałem
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
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 cze 2021, o 18:37 
Offline
Użytkownik

Dołączył(a): 02 gru 2015
Posty: 544
Pomógł: 27

A nie może być tak:
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
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 cze 2021, o 19:32 
Offline
Użytkownik

Dołączył(a): 05 gru 2017
Posty: 29
Pomógł: 0

tak nie może być bo mam : dwukropek na 7 segment więc musi migać co sekundę ale już sobie poradziłem więc temat zamykam POZDRAWIAM I DZIĘKI ZA POMOC



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 cze 2021, o 19:45 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27212
Lokalizacja: Szczecin
Pomógł: 1041

W swoim pierwszym poście napisałeś sobie takie coś .... dziwnego
Piotrek801027 napisał(a):
void PCINT0_init( void ) {
    PORTB |= ( 1 << PB7 );
    PCICR |= ( 1 << PCIE0 );
}
if( PCIFR & ( 1 << PCIF0 ) ) {
               
     Mój kod                                                                                                  
 
     PCIFR |= ( 1 << PCIF0 );
 
}


1. To w ogóle nie jest zainicjalizowane poprawnie przerwanie żeby mogło działać z PCINT0 i nigdy nie zadziała w takiej postaci ten IF w pętli głównej
2. Pomijam ten znak | przy kasowaniu flagi bo to już się wyjaśniło

Później piszesz niby swój poprawiony kod i on wygląda teraz jak ?


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


No ok w końcu prawidłowo zaincjalizowane przerwanie PCIE0, ale za to teraz w nagrodę zapodałeś sobie czarcią zapadkę w IF'ie


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


Powiedz mi - skoro walczysz - to po choinkę teraz wpeklowałeś tego if'a z tym jakimś mu==0 ? Wywal to w diabły i doprowadź kod do podstawowego stanu testowego czyli użyj Debugera na JEDNEJ diodzie LED. Tym bardziej, że twoje opisy są bardzo mało precyzyjne bo piszesz np że próbowałem nawet TAK podając, właśnie ten przykład inicjalizacji poprawnej wyżej, tak jakbyś uznawał że nie ma to znaczenia czy jest ta linia PCMSK0 |= ( 1 << PCINT7 ); czy jej nie ma ... No bez niej w ogóle nie może to działać, więc jeśli ci nie działa to znaczy, że błąd masz dalej i naucz się go właśnie szukać doprowadzając kod do najprostszej postaci jak niżej



czyli :

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


Teraz jak zrozumiesz z poradnika wideo o debugerze na jednej diodzie LED o co chodzi, to w tym przykładowym kodzie sam zaobserwujesz czy zapala się i gasi ci ta dioda czy nie w tym IF'ie ! Więc sprawdź - bo jak będzie migać to wtedy wiesz, że przerwanie prawidłowo działa - a ty sobie analizuj dalej swój if( mu==0 ) ....

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 cze 2021, o 10:47 
Offline
Użytkownik

Dołączył(a): 05 gru 2017
Posty: 29
Pomógł: 0

Panie Mirku zrobiłem to tak i śmiga aż miło dziękuje za wyjaśnienie.
Pozdrawiam.
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
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 13 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 7 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:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO