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



Teraz jest 24 maja 2026, o 03:30


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 
Autor Wiadomość
PostNapisane: 16 lut 2015, o 15:19 
Offline
Nowy

Dołączył(a): 16 lut 2015
Posty: 12
Pomógł: 0

Witam,

Buduje projekt oparty o mikrokontroler AtTiny2313. Program jest dosyć prosty, składa się z głównej funkcji oraz dwóch dodatkowych funkcji.
Funkcja main składa się z jednej funkcji IF. Pin PB0 ustawiony jest jako wejście, jeden przewód podłączony jest do linii VCC, drugi właśnie do pinu PB0, między nimi jest wyłącznik.

Chciałbym, żeby zaczęła się wykonywać funkcja tryb_dzienny() kiedy wyłącznik przewodzi, a funkcja tryb_nocny() kiedy wyłącznik nie przewodzi. Niestety program działa w ten sposób, że niezależnie od stanu wyłącznika wykonuje się zawsze funkcja zapisana za IF, program w ogóle nie przechodzi do tego co dzieje się za ElSE.

Proszę o pomoc.

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 16 lut 2015, o 15:46 przez mateuszc, łącznie edytowano 2 razy

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 lut 2015, o 15:29 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 mar 2013
Posty: 739
Lokalizacja: Poznań
Pomógł: 84

Najpierw umieść kod w znacznikach syntax=c
W programie podciągasz PB0 do VCC tą linią
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

i nigdy na nim nie będziesz miał stanu niskiego
jeśli nie będziesz zwierał PB0 do masy przez włącznik.

Druga rada wstawiaj schemat połączeń a nie opis słowny mimo tak prostych połączeń
rysunek zawsze jest jednoznaczny



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 lut 2015, o 15:33 
Offline
Użytkownik

Dołączył(a): 05 lut 2014
Posty: 252
Lokalizacja: obok Częstochowy
Pomógł: 14

Skoro PB0 masz podciągnięte ciągle do VCC to nic nie zmieni, że kabelkiem znowu zewrzesz do VCC. Albo zmieniaj stan PB0 zwierając do GND, albo podciągnij rezystorem do GND, ale wtegy wyłącz podciąganie do VCC.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 lut 2015, o 15:34 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 sty 2014
Posty: 448
Lokalizacja: DKL
Pomógł: 53

mateuszc napisał(a):
jeden przewód podłączony jest do linii VCC, drugi właśnie do pinu PB0
do tego włączyłeś jeszcze podciągnięcie tego wejścia na Pinie PB0 do VCC, dlatego pierwszy warunek będzie zawsze spełniony.

Lepiej twój włącznik zwierać do masy, wówczas będzie działać poprawnie.

_________________
Migracja z punktu B do punktu C
Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 lut 2015, o 15:57 
Offline
Nowy

Dołączył(a): 16 lut 2015
Posty: 12
Pomógł: 0

Zmieniłem znacznik na syntax=c, ale chyba to nie zadziałało.

Dziękuję za szybkie odpowiedzi, przełączyłem jeden kabelek z VCC do GND, ale niestety zmieniło się tylko tyle, że teraz cały czas warunek jest niespełniony (niezależnie od stanu wyłącznika) i jesteśmy w funkcji tryb nocny().

Czy istnieje możliwość, żeby na pinie PB0 był raz stan niski, a po przyciśnięciu wyłącznika stan wysoki?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 lut 2015, o 15:59 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 sty 2014
Posty: 448
Lokalizacja: DKL
Pomógł: 53

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

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


Polecam dodatkowo to przestudiować: http://mirekk36.blogspot.com/2012/01/av ... stawy.html

_________________
Migracja z punktu B do punktu C
Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 lut 2015, o 16:00 
Offline
Moderator
Avatar użytkownika

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

mateuszc napisał(a):
Czy istnieje możliwość, żeby na pinie PB0 był raz stan niski, a po przyciśnięciu wyłącznika stan wysoki?

Pewnie że istnieje ale najpierw sięgnij po lepsze metody obsługi klawiszy ;) np zaglądaj na mojego bloga
http://mirekk36.blogspot.com/2012/10/ob ... w-cd2.html

_________________
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: 16 lut 2015, o 16:20 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 mar 2013
Posty: 739
Lokalizacja: Poznań
Pomógł: 84

kolego @mateuszc czy masz przycisk podłączony w ten sposób
Obrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 mar 2015, o 15:26 
Offline
Nowy

Dołączył(a): 16 lut 2015
Posty: 12
Pomógł: 0

Witam ponownie,

Dziękuję za wszystkie podpowiedzi. Nieco zmieniłem sposób działania, przejściem do trybu nocnego/dziennego będzie sterował czujnik zmierzchu. Chciałbym jeszcze przyciskiem uruchamiać 'tryb wyjazd'.

Tym samym do PB0 podłączam sygnał z czujnika zmierzchu, a np. do PB1 manualny przycisk.

Chciałbym, żeby urządzenia działały automatycznie, a po włączeniu przycisku podłączonego do PB1 włączył się 'tryb wyjazd'.

Czy można zrobić to za pomocą 'switch'?



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

Strefa czasowa: UTC + 1


Kto przegląda forum

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