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



Teraz jest 10 mar 2025, o 10:13


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 
Autor Wiadomość
PostNapisane: 25 gru 2016, o 10:03 
Offline
Nowy

Dołączył(a): 19 lut 2015
Posty: 5
Pomógł: 0

Witam starszych i bardziej doświadczonych kolegów.
Piszę, a w zasadzie próbuję napisać swój własny kod obsługi czujnika HC-SR04. Chciałem to zrobić stopniowo i po kolei, aby sprawdzić działanie poszczególnych fragmentów kodu. Niestety napotkałem na problem.
Program ma działać w następujący sposób:po wykryciu zbocza narastającego na INT0 czyli PD2 program przeskakuje do procedury obsługi przerwania.Ten fakt jest sygnalizowany zaświeceniem diody LED na PB1. Następnie jeśli wyzwalanie od INT0 jest ustawione na zbocze narastające (tak jak to jest ustawione na początku), to ma to być zasygnalizowane diodą LED na PB2, a wyzwalanie na INT0 zostaje ustawione na zbocze opadające. Dalej, jeśli ustawiony jest tylko bit ISC00-reakcja na zbocze opadające, zaświecić się ma dioda LED na PB3, a wyzwalanie na INT0 zostaje znów ustawione na zbocze narastające.
Obecnie program działa tak, że zaświeca się tylko dioda LED na PB1. Co jest nie tak w tym kodzie? Do testów pod PD2 podpięty jest switch z rezystorem podciągającym do VCC. A na PORT B podpięte są diody LED. Wywołanie obsługi przerwania następuje po puszczeniu przycisku.

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



Ostatnio edytowano 25 gru 2016, o 10:40 przez leszcz84, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 gru 2016, o 10:09 
Offline
Moderator zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 18 lip 2012
Posty: 3219
Lokalizacja: Kraków - obok FAB5 ATMEL'a
Pomógł: 91

topic7402.html

_________________
http://www.jaglarz.info



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 gru 2016, o 11:45 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 maja 2012
Posty: 471
Lokalizacja: ZGY/ZS
Pomógł: 30

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

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


Autor postu otrzymał pochwałę

_________________
eDiyCraft.blogspot.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 gru 2016, o 12:13 
Offline
Nowy

Dołączył(a): 19 lut 2015
Posty: 5
Pomógł: 0

Super!
To zadziałało. Teraz świecą się diody LED na PB1 i PB2, czyli następuje przerwanie od INT0 i wykonuje się pierwszy warunek. Pytanie tylko czemu teraz nie jest wykonywana druga funkcja skoro w pierwszej funkcji bit ISC01 jest zerowany?Czyżby podczas wywołania przerwania w pierwszej funkcji bit ISC01 nie był zerowany? To chyba nie możliwe, gdyż sprawdziłem to ustawiając tylko bit ISC00 na początku programu-podczas konfiguracji przerwania. Druga funkcja w przerwaniu i tak nie jest realizowana(LED na PB3 nie zaświeca się). Dodam, że połączenia są ok, bo je sprawdzałem.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 gru 2016, o 12:44 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

Spróbuj z użyciem flagi, nie mam jak przetestować, ale powinno zadziałać.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 gru 2016, o 12:56 
Offline
Nowy

Dołączył(a): 19 lut 2015
Posty: 5
Pomógł: 0

O qrcze!!!Zadziałało:) Wielkie dzięki, za pomoc i rozwiązanie problemu. A swoją drogą....czemu to nie chciało wcześniej działać?
Jeszcze raz wielkie dzięki i Wesołych Świąt życzę!!!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 gru 2016, o 08:24 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 maja 2012
Posty: 471
Lokalizacja: ZGY/ZS
Pomógł: 30

Nie działało ci ponieważ w ifie podales co chcesz sprawdzić ale nie podałeś w czym (jakim rejestrze). Więc zamiast
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Mogłoby 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.

_________________
eDiyCraft.blogspot.com



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 4 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