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



Teraz jest 4 gru 2024, o 19:44


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
Autor Wiadomość
PostNapisane: 19 lis 2015, o 18:47 
Offline
Nowy

Dołączył(a): 19 lis 2015
Posty: 6
Pomógł: 0

Witma,
Mam taki problem i nie wiem z czego on wynika. W pętli for czytam kolejno liczby z tablicy (jak w kodzie). Jeśli chcę przeczytać do 7 znaków jest wszystko ok ale jeśli juz 8 lub 9 to pętla idzie znowu od początku i tak w nieskończoność. Zauważyłem też, że są problemy z wystawienie 8 jedynek na port. Z czego to może wynikać, problem z kodem czy cośna stykach?
#include <avr/io.h>
#include <util/delay.h>

uint8_t tab[] ={ 1,3,7,15,31,63,127,128,0 };
int main(void){

DDRA = 0xff;
PORTA = 0xff;
int i;

for (i=0; i<8; ++i)
{
_delay_ms( 500 );
PORTA = ~tab[ i ];
_delay_ms( 500 );
}
}



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lis 2015, o 19:45 
Offline
Użytkownik

Dołączył(a): 24 sty 2012
Posty: 1469
Pomógł: 56

umieść kod w znacznikach.
a może Ci się tylko wydaje, że program się źle wykonuje?
Przed ostatnią klamerką wpisz jeszcze
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
Jestem początkujący i moje porady mogą być błędne



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lis 2015, o 19:48 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 18 lip 2012
Posty: 208
Lokalizacja: Kraków
Pomógł: 16

128 zmień na 255



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lis 2015, o 20:39 
Offline
Nowy

Dołączył(a): 26 mar 2014
Posty: 18
Pomógł: 0

Zmien warunek na i<9 i zobacz



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lis 2015, o 22:40 
Offline
Użytkownik

Dołączył(a): 16 maja 2012
Posty: 349
Lokalizacja: Legnica
Zbananowany użytkownik

Pomógł: 23

Brak pętli nieskończonej powoduje że program po wykonaniu for - nie wiem tego na pewno ale chyba skacze pod zerowy adres albo robi reset. Trzeba by zerknąć do pliku lss np. coś koło tego
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Poza tym for(i=0;i<8;i++) przegląda elementy tablicy od 0 do 7 więc nie ma prawa pobrać elementu 8 i dalszych. A że kręci się w kółko no bo pewnie się resetuje.

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 lis 2015, o 10:12 
Offline
Użytkownik

Dołączył(a): 11 wrz 2013
Posty: 709
Zbananowany użytkownik

Pomógł: 23

A gdzie w Twojej tablicy jest te osiem jedynek?

--
Grzegorz...



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

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:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO