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



Teraz jest 8 sty 2025, o 09:25


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
Autor Wiadomość
PostNapisane: 18 sty 2015, o 02:49 
Offline
Nowy

Dołączył(a): 29 lis 2014
Posty: 5
Pomógł: 0

Witam wszystkich,

Jestem laikiem w programowaniu mikrokontrolerów, ale staram się ogarniać wszystko co się da od początku niebieskiej książki. Nie ruszam się dalej z zadaniami dopóki nie rozwiążę problemu jaki sobie postawiłem. Tak więc wiem ustawiać bity rejestrów dla przycisków oraz diod i wymyśliłem sobie takie zadanie:

Podłączone diody: 8
Podłączone przyciski: 2

Na start po wgraniu programu do AVR'ki świecą się dwie skrajne diody 1 i 8. Teraz chciałbym, aby:
1. Po naciśnięciu pierwszego przycisku dioda nr 1 przesunęła się na pozycję nr 7 czyli mają pozostać dwie diody zapalone,
2. Po naciśnięciu przycisku nr 2 obie diody z pozycji 8 i 7 przesunęły się na pozycje 2 i 1.

Planuję zaprogramować jeszcze inne "akcje", ale na chwilę obecną nie mogę zrobić tak, aby wykonywały się dwie rzeczy jednocześnie, w tym przypadku: cały czas świeciła się dioda nr 7 i przesuwała dioda nr 1. Kiedy daną akcje wykonać przesunięcie się wykonuje, lecz dioda, która ma cały czas świecić i nie ulegać przesunięciu - gaśnie. Poniżej wrzucam "szkielet" programu:

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


*Kroki pętli for mogą być na chwilę obecną nie poprawne, gdyż testowałem różne rzeczy.

Listingi programów wklejamy według opisu stąd: topic7402.html



Ostatnio edytowano 18 sty 2015, o 17:35 przez darnok90, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 sty 2015, o 09:18 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

darnok90 napisał(a):
1. Po naciśnięciu pierwszego przycisku dioda nr 1 przesunęła się na pozycję nr 7 czyli mają pozostać dwie diody zapalone,

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

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


darnok90 napisał(a):
2. Po naciśnięciu przycisku nr 2 obie diody z pozycji 8 i 7 przesunęły się na pozycje 2 i 1.

Napisz sobie funkcję, która odwraca kierunek bitów w bajcie:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

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

Zobacz też to:
Wstawianie listingów programów w postach.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 sty 2015, o 11:37 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 08 mar 2014
Posty: 162
Pomógł: 6

darnok90 napisał(a):
..Planuję zaprogramować jeszcze inne "akcje", ale na chwilę obecną nie mogę zrobić tak, aby wykonywały się dwie rzeczy jednocześnie, w tym przypadku: cały czas świeciła się dioda nr 7 i przesuwała dioda nr 1...


Cześć.
Zapoznaj się z tym poradnikiem Mirka http://mirekk36.blogspot.co.uk/2012/10/ ... skowa.html
i z przesunięciami bitowymi w BB.
Myślę że to wszystko ułatwi ci obsługę diod LED i zmieni tok myślenia w C
Pozdrawiam,Piotr.

_________________
1+1=10



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 sty 2015, o 17:41 
Offline
Nowy

Dołączył(a): 29 lis 2014
Posty: 5
Pomógł: 0

No tak jak zastosuję operację bitową AND (&) to faktycznie bit, który chciałem aby cały czas świecił - świeci! :) dziękuję. Właśnie łapie się na takich prostych niedopatrzeniach, ale to pewnie przez brak doświadczenie w korzystaniu z operacji bitowych.

#Krauser co do funkcji zmieniającej kolejność bitów to zrobić ją za pomocą tablicy ? Czy jest prostszy sposób ?
# sredni mam dzisiaj wolny wieczór to zapoznam się z poradnikiem, który przesłałeś.

Ps. Przepraszam za źle wklejony kod. Poprawiłem się :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 sty 2015, o 18:53 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Cytuj:
#Krauser co do funkcji zmieniającej kolejność bitów to zrobić ją za pomocą tablicy ? Czy jest prostszy sposób ?

Sposobów jest wiele. Tu są przykłady:
IR - odwracanie bitów
Polecam jednak samemu się nad tym pochylić.

_________________
Dragonus Cracovus: Biomagia



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

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