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



Teraz jest 5 lut 2026, o 04:53


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 
Autor Wiadomość
PostNapisane: 10 lut 2017, o 14:17 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

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

To program się w tym miejscu zatrzyma aż puścisz przycisk.
Dopiero wtedy wykona się tylko raz.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lut 2017, o 14:22 
Offline
Użytkownik

Dołączył(a): 18 kwi 2013
Posty: 183
Lokalizacja: Kraków
Pomógł: 30

Zamiast LED_TOG, napisz sobie makrodefinicje LED_ON i LED_OFF - czyli włączenia i wyłączenia LED. W funkcji obsługi przycisku włączasz diodę i uruchamiasz sobie jakiś licznik lub timer, który będzie odmierzał czas 10s. Po odmierzeniu czasu wyłączasz diodę. To wszystko



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lut 2017, o 14:32 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

No to zrozumiałem pytanie. :D
Sorka. Nie doczytałem w telefonie.
Teraz widzę że jest na dole funkcja z BB i nie tego dotyczy pytanie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lut 2017, o 16:49 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

Zobacz w tym wątku:
http://forum.atnel.pl/topic17569.html
Może ci się przyda. ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 lut 2017, o 11:19 
Offline
Użytkownik

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

multitask 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.



podpowiesz ja to ogarnąć
żeby po KEY_DOWN timery poszły od początku ?

Jeżeli chciałbyś je wszystkie wystartować od początku (co mnie osobiście wydaje się lekko nielogiczne, ale możesz mieć taką potrzebę)
to przecież możesz po sprawdzeniu czy klawisz został naciśnięty nakręcić je wszystkie od nowa czyli mniej więcej tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Chyba, że nie zrozumiałem pytania i nie o to Ci chodziło

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 lut 2017, o 12:16 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 mar 2015
Posty: 310
Pomógł: 18

Powrócę do pytania - po resecie dioda mignie. Ustawienie DDRD |= (1<<PD2) i brak ustawienia PORTD |=(1<<PD2) powoduje zaświecenie diody do czasu zmian w funkcji while(1). Jeśli while jest pusta - dioda ciągle świeci.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 lut 2017, o 13:02 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 mar 2015
Posty: 310
Pomógł: 18

multitask napisał(a):
Zrobiłem prawie tak jak radził zenekjar
poniżej wstępnie działa jak chce
jednak mam pytanie
czemu po restarcie dioda mignie (ew co poprawić żeby nie migała przy resecie)

Napisałem, że przed while trzeba dopisać "PORTD |=(1<<PD2)".



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 lut 2017, o 17:17 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 cze 2014
Posty: 855
Lokalizacja: pod Warszawą
Pomógł: 58

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

Ustawiasz timer na przerwanie co 10ms. Zmienna x1 po 100 przerwaniach czyli ok.1sek. jest zerowana a inkrementowana jest zmienna k (licznik sekund) która z kolei jest zerowana po 60sek. a inkrementowana jest k1(licznik minut)
Przy zmiennej k1 16-to bitowej masz czas równy 65535 minut. Dodając kolejną zmienną odliczać możesz godziny.....

_________________
Pomóżcie mi stanąć na nogi



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 lut 2017, o 12:12 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 cze 2014
Posty: 855
Lokalizacja: pod Warszawą
Pomógł: 58

W tym sposobie możesz osiągać dowolne czasy i to nawet przy zmiennych uint8_t
Wiedz tylko, ze to nie jest dokładny zegarek bo to zależy od wielu czynników i całego kodu ale w pewnych granicach możesz się pobawić wartością OCRx
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


miłej zabawy

_________________
Pomóżcie mi stanąć na nogi



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 lut 2017, o 12:35 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 sty 2015
Posty: 182
Pomógł: 0

Ja tak jeszcze może dodam że "przerwania" możesz robić nawet bez użycia wbudowanych timerów :) Mirek całkiem niedawno przedstawił takie poradniki jak "Modulo i wielozadaniowość".
Poniżej masz link do pierwszej części tego poradnika:

https://www.youtube.com/watch?v=8nvJeEfmxqw&t=596s



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 3 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