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



Teraz jest 1 sie 2026, o 20:24


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 13 ] 
Autor Wiadomość
PostNapisane: 5 lip 2016, o 19:07 
Offline
Nowy

Dołączył(a): 26 maja 2016
Posty: 18
Pomógł: 0

Witam. Od już dłuższego czasu zajmuję się tajnikami procesorów AVR, albo raczej są to próby nauczenia się ich :lol:

Od początku chciałem robić duże projekty od razu przechodzić do jakiś konkretnych rzeczy, ale zaczeły wychodzić braki podstaw języka C, których nie przerobiłem. Zaopatrzyłem się w BB i zestaw ATB. Postanowiłem po kolei wszystkie przykłady pisać i starać się zrozumieć dlaczego tak a nie inaczej. Inaczej mówiąc naprawiam wcześniejsze błędy :D

No i jestem przy warunku if. Napisałem taki kod:


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


Nie rozumiem dlaczego dioda Led jest załączona skoro warunek jest nie spełniony :?: Jeśli użyję:

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


to działa prawidłowo. Hmmm...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 lip 2016, o 19:15 
Offline
Użytkownik

Dołączył(a): 02 gru 2015
Posty: 568
Pomógł: 28

a może masz diodę źle podpiętą.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 lip 2016, o 19:16 
Offline
Użytkownik

Dołączył(a): 08 lut 2015
Posty: 132
Pomógł: 4

Podłączasz diodę anodą czy katodą do portu uC ?



Ostatnio edytowano 5 lip 2016, o 19:25 przez drewpol, łącznie edytowano 2 razy

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 lip 2016, o 19:22 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

cześć,
zostawiasz od początku stan niski na portach. brak wpisu PORT... ;).



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 lip 2016, o 19:24 
Offline
Nowy

Dołączył(a): 26 maja 2016
Posty: 18
Pomógł: 0

Mam zestaw ATB 1.04, diodę żeby wysterować należy podać stan niski na jej katodę.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 lip 2016, o 19:25 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

no tak, robisz to w led_on... off.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 lip 2016, o 19:25 
Offline
Nowy

Dołączył(a): 26 maja 2016
Posty: 18
Pomógł: 0

Czyli dokładnie jak w tym makrze:
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: 5 lip 2016, o 19:26 
Offline
Użytkownik
Avatar użytkownika

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

Dlatego, że diody LED w zestawie masz podłączone katodami do pinów procesora, czyli oznacza to, że gdy podasz tam stan niski to diody będę świeciły, prawda?
Tutaj ustawiasz PC7 jako wyjście:
DDRC |= (1<<PC7);
Lecz po włączeniu zasilania procesora na wszystkich pinach domyślnie będzie występował stan niski, na PC7 też. Dlatego dioda świeci.
Aby to wyeliminować musisz tą diodę zgasić, możesz użyć makro: LED_OFF;
Twój kod po tej drobnej "modyfikacji" powinien wyglądać tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Przetestuj sobie. ;)


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 lip 2016, o 19:27 
Offline
Użytkownik

Dołączył(a): 02 gru 2015
Posty: 568
Pomógł: 28

najlepiej to sprawdzić czy jak spełni się warunek w if czy dioda zgaśnie jak tak to źle podłączona.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 lip 2016, o 19:28 
Offline
Użytkownik

Dołączył(a): 21 lip 2014
Posty: 28
Pomógł: 4

Na stronie 515 BB, masz fajny przykład jak, zacytuję, "banglować" bitami


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 lip 2016, o 19:29 
Offline
Użytkownik

Dołączył(a): 08 lut 2015
Posty: 132
Pomógł: 4

Po ustawieniu kierunku wyjść powinieneś od razu ustawić stan, bo domyślnie jest ustawiany na niski, dlatego warunek się nie spełnia, a dioda świeci.

Zrób tak:

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: 5 lip 2016, o 19:29 
Offline
Nowy

Dołączył(a): 26 maja 2016
Posty: 18
Pomógł: 0

Ahh no tak nie zauważyłem, kolega Daro69 miał rację. Dzięki :)

------------------------ [ Dodano po: 3 minutach ]

No i parę innych osób :P Dzięki jeszcze raz :D



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 lip 2016, o 19:34 
Offline
Użytkownik

Dołączył(a): 08 lut 2015
Posty: 132
Pomógł: 4

Najlepiej po ustawianiu kierunku WE/WY od razu ustawiać stan. Wtedy nie ma problemów z działaniem programu w czasie inicjalizacji uC. Wyobraź sobie co by się stało gdybyś sterował silnikiem krokowym i zasilił tak wszystkie wyprowadzenie uzwojeń na raz ;(



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