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



Teraz jest 10 lis 2025, o 12:37


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 
Autor Wiadomość
PostNapisane: 5 sty 2017, o 17:40 
Offline
Nowy

Dołączył(a): 05 sty 2017
Posty: 2
Pomógł: 0

Witam :) . Chciałem napisać program który będzie mi zapalał diody od PD0 do PD7 pozostawiając poprzednią zapaloną czyli:
0b00000001
0b00000011
0b00000111
..........
0b11111111

,a następnie gasząc od PD0 do PD7 czyli
0b11111110
0b11111100
0b11111000
...........
0b00000000
Diody podłączone katodami (zdaję sobie sprawę, że przedstawienie binarne powinno być zanegowane ;) ) do Atmegi. Chciałbym to zrobić bez użycia tablic i o ile 1 część poszła bardzo sprawnie, o tyle 2 jest zagadką.

Ten kod to efekt najbliższy pożądanemu : diody zaświecają się od PD0do PD7 (czyli ok), jednak gasną od PD7 do PD0 zamiast od PD0-PD7.
Będę bardzo wdzięczny za każdą wskazówkę.




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


uint8_t i,k=1;


int main(void)
{
DDRD=0xff;
PORTD=0xff;
while(1)
{
for(i=0;i<8;i++)
{
PORTD=~k;
k=2*k+1;
_delay_ms(100);
}


for(i=0;i<8;i++)
{
PORTD=~k;
k=k/2;
_delay_ms(100);

}
}
}



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 sty 2017, o 17:54 
Offline
Użytkownik

Dołączył(a): 06 maja 2014
Posty: 415
Lokalizacja: Kraków
Pomógł: 26

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


Proszę bardzo, powinno działać.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 sty 2017, o 19:46 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 16 mar 2014
Posty: 745
Lokalizacja: Warszawa
Pomógł: 32

Kolega krzysssztof podsunął piękne rozwiązanie.
Co do Twojego pytania
Komparator napisał(a):
jednak gasną od PD7 do PD0 zamiast od PD0-PD7.
to popatrz na swoją drugą pętle "gaszącą" diody.
Rozpisz sobie jakie wartości przyjmuje zmienna k w kolejnych obiegach pętli i przełóż to na wartości binarne to zobaczysz czemu gasną w odwrotnej kolejności :-)

_________________
.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 sty 2017, o 21:05 
Offline
Nowy

Dołączył(a): 05 sty 2017
Posty: 2
Pomógł: 0

Bardzo dziękuję za pomoc :)



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