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



Teraz jest 18 kwi 2024, o 11:36


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 
Autor Wiadomość
PostNapisane: 25 lip 2021, o 11:52 
Offline
Użytkownik

Dołączył(a): 25 lip 2021
Posty: 93
Pomógł: 0

Witam, 2 dzień męczę się z pozornie prostym zadaniem. Otóż chcę, po wciśnięciu switcha zapalić diodę, a jak puszcze to ma się zgasić. Nie wiem, gdzie jest mój błąd w rozumowaniu,w kodzie.

pod PB0 podłączyłem microswitch do masy, a do PD1 LED. Po załadowaniu programu dioda świeci się cały czas, nie reaguje na przycisk jakby procek widzial ciągle stan niski na PB0.

#include <avr/io.h>
#include <util/delay.h>


int main (){
DDRB &=~(1<<0); // Ustawiam PB0 jakos wejscie
DDRD |= (1<<1); // Ustawiam PD1 jako wyjscie
PORTB |= (1<<0); // Podciagam wew. rezystorem do vcc switch

if (!(PINB & (1<<0))) { // Jesli odczytana wartosc PB0 to 0
PORTD |= (1<<1); // Zapal diode na PD1
}else{ // jesli jest inaczej
PORTD &=~(1<<1); // Zgas diode na PD1


}
}

Co ciekawe zauwazylem, ze wgrywajac program kilka razy pod rząd dioda raz świeci, raz nie świeci, jest to losowe

Edit: ... W koncu działa... Zapomniałem o tym, że program powinien wykonywać się w nieskończonej pętli.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 lip 2021, o 16:00 
Offline
Użytkownik

Dołączył(a): 13 paź 2015
Posty: 303
Lokalizacja: Rybnik
Pomógł: 10

Super, że się zorientowałeś ;) A tak na przyszłość pamiętaj o prawidłowym wstawianiu kodu, żeby się lepiej czytało:
https://forum.atnel.pl/topic7402.html


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 lip 2021, o 16:49 
Offline
Użytkownik

Dołączył(a): 25 lip 2021
Posty: 93
Pomógł: 0

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


Ok, będe wiedział na przyszłość



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 lip 2021, o 21:31 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1960
Lokalizacja: Lipsko
Pomógł: 125

A jak już chcesz być tak dokładny to proponuję zamiast, np. (1<<1) pisz (1<<PB1). Lepiej się wtedy na to patrzy :)

_________________
http://www.sylwekkuna.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: 4 ] 

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