Skocz do zawartości
DiJo

[c] Ziekszanie Zmiennej O Jeden

Rekomendowane odpowiedzi

czesc

programuje atmege i pojawil mi sie pewien drobny problem... niewiem jak sprawić, aby zmienna sie zwiekszyła o 1 :|

 

Ja począku pliku są zadeklarowane dwie zmienne:

char steps_x = 1, steps_y = 1;

i kawałek dalej funkcja

/* * Silnik lewo-prawo (na poprzeczce) * dir = -1 krok w lewo * dir = 1 krok w prawo */void engine_x_step(int dir) {	//static int steps_x = 1;	uart_putchar((steps_x%8) + 'a');	if (steps_x % 8 == 0) {		PORTA = _BV(0) | _BV(1);	} else if (steps_x % 8 == 1) {		PORTA = _BV(0) | _BV(1) | _BV(3) | _BV(4);	} else if (steps_x % 8 == 2) {		PORTA = _BV(3) | _BV(4);	} else if (steps_x % 8 == 3) {		PORTA = _BV(3) | _BV(4) | _BV(0) | _BV(2);	} else if (steps_x % 8 == 4) {		PORTA = _BV(0) | _BV(2);	} else if (steps_x % 8 == 5) {		PORTA = _BV(0) | _BV(2) | _BV(3) | _BV(5);	} else if (steps_x % 8 == 6) {		PORTA = _BV(3) | _BV(5);	} else if (steps_x % 8 == 7) {		PORTA = _BV(3) | _BV(5) |  _BV(0) | _BV(1);	} else {		uart_putchar('1');	}		if (dir == 1) {		steps_x += 1;	} else {		steps_x -= 1;	}		//if (delay_x < engine_timeout_x) {		_delay_us(engine_timeout_x);		delay_y += engine_timeout_x;		delay_x = 0;	//}}
chodzi dokladnie o 5 linijek przed ostatnim if. Zamiast char, było już int, było też static int w funkcji, było ++ zamiast += i efekt zawsze taki sam :| Po zmienieniu PORTA=blablabla na set_pin i skompilowaniu na komputerze działa dobrze w każdej wersji. Co może być jeszcze nie tak? :|

 

Procesorek atmega162, kompilator avr-gcc

 

-- edit --

 

dobra, juz wiem ;) nie dzialaja zmienne globalne

Edytowane przez DiJo

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...