Skocz do zawartości

Dodanie przycisku "Reset"


lukaszsl

Pomocna odpowiedź

Cześć, zaczynam dopiero z STM32, mam teraz wstęp na studiach, ale postanowiłem nauczyć się czegoś więcej. Na razie jestem po #3 części kursu i zabrałem się za zadania domowe. Co do pierwszego (Wróć do przykładu, w którym dioda włączała się na 200 ms i gasła na 800 ms. Zastanów się, jak odwrócić działanie tego programu bez zmieniania jego kodu. ),

	  HAL_GPIO_WritePin(LED[1].port, LED[0].pin, GPIO_PIN_SET);
	  HAL_Delay(200);
	  HAL_GPIO_WritePin(LED[1].port, LED[0].pin, GPIO_PIN_RESET);
	  HAL_Delay(800);

 mam pomysł, żeby zmienić wyjście na aktywne stanem niskim, ale nie mogę znaleźć tej opcji.

Zadanie 3. Dodaj do programu kolejny przycisk, który będzie resetował linijkę. 

Podpięcie przycisku bez problemów, dodanie go do pinu na płytkę też, ale prosiłbym o pomoc z samym kodem - gdzie szukać w jaki sposób napisać funkcję, która zresetuje. 

 

Dzięki za pomoc!

Link do komentarza
Share on other sites

13 godzin temu, lukaszsl napisał:

mam pomysł, żeby zmienić wyjście na aktywne stanem niskim, ale nie mogę znaleźć tej opcji.

To byłby już zmianą programu. Zastanów się czy nie można tego jakoś zmienić ingerencją w podłączenie diody do układu.

13 godzin temu, lukaszsl napisał:

Podpięcie przycisku bez problemów, dodanie go do pinu na płytkę też, ale prosiłbym o pomoc z samym kodem - gdzie szukać w jaki sposób napisać funkcję, która zresetuje. 

Dla jasności - tu nie chodzi o reset całego układu tylko wskazania linijki. Co trzeba zrobić, aby wróciła do stanu początkowego?

Link do komentarza
Share on other sites

2 godziny temu, Treker napisał:

Dla jasności - tu nie chodzi o reset całego układu tylko wskazania linijki. Co trzeba zrobić, aby wróciła do stanu początkowego?

Ok, to jesli chodzi o reset układu to zrobiłem w ten sposób

if(is_button_pressed(2)){
		NVIC_SystemReset();
	}

Jeżeli chodzi o reset wskazania linijki to tak:

	if(is_button_pressed(2)){
		led_set(led, false);
		led = 0;
		led_set(led, true);
		while(is_button_pressed(2)){}

		HAL_Delay(20);

	}
2 godziny temu, Treker napisał:

To byłby już zmianą programu. Zastanów się czy nie można tego jakoś zmienić ingerencją w podłączenie diody do układu.

Z elektroniki u mnie krucho, bo tylko jeden semestr zajęć z którego nie wyniosłem za dużo, ale czy chodzi o podłączenie diody odwrotnie? Tzn. anodą do masy? Dioda się wtedy nie spali, czy to za małe napięcie?

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.