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



Teraz jest 23 kwi 2026, o 04:33


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 11 ] 
Autor Wiadomość
PostNapisane: 14 lut 2014, o 00:09 
Offline
Użytkownik

Dołączył(a): 20 lut 2012
Posty: 45
Pomógł: 0

Witam,
korzystam z kodu Pana Mirka dołączonego do zestawu.
Już mam wszytsko podłączone, uruchomione i działa :)
Teraz mam inny problem... siedze już dłuższa chwile i nie mogę wymyślić jak zrobić, żeby np. :
po naciśnięciu klawisza "1" kręcił sie w lewo przez 5s, a po naciśnięciu klawisz "2" 15s w prawo.
Gdy żaden nie wciśniety to silnik stoi.

Pozdrawiam i prosze o jakies podpowiedzi



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 lut 2014, o 08:31 
Offline
Użytkownik

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

krzysiek.el napisał(a):
Witam,
korzystam z kodu Pana Mirka dołączonego do zestawu.
Już mam wszytsko podłączone, uruchomione i działa :)
Teraz mam inny problem... siedze już dłuższa chwile i nie mogę wymyślić jak zrobić, żeby np. :
po naciśnięciu klawisza "1" kręcił sie w lewo przez 5s, a po naciśnięciu klawisz "2" 15s w prawo.
Gdy żaden nie wciśniety to silnik stoi.

Pozdrawiam i prosze o jakies podpowiedzi

A czy czutałeś o timerach programowych?
W najprostszej wersji:
odpalasz timer.
w pętli głównej badasz czy naciśnięto któryś przycisk
jeśli naciśnieto "1" ustawiasz flagę lewo i czas na 5 sek
piszesz if'a w którym sprawdzasz flagę lewo i jeśli jest ustawiona sterujesz silnikiem
zmniejszasz czas aż do zera i gdy czas zero gasisz flagę lewo
Tak samo postępujesz dla klawisza "2"
To taki najprostszy z najprostszych i na szybko napisanych algorytmów.
A można to zrealizować na dziesiątki innych sposobów

Ps. co ten temat ma wspólnego z DIY???
Może któryś zielony albo różowy albo jakiś inny kolorek przeniesie ;-)

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 lut 2014, o 10:53 
Offline
Użytkownik

Dołączył(a): 20 lut 2012
Posty: 45
Pomógł: 0

Kod:
   while(1)

      {
      if(OK)
      {
      if(ms2_flag) {

         if (dir==lewo) kroki_lewo();

         ms2_flag = 0;
      }


      if(s1_flag)
      {

         if (0==sekundy%5) dir = lewo;
         if (5==sekundy%6)

         {
            dir = stop;
            silnik_stop();
         }

         s1_flag = 0;
      }
      }
   }
}


Koledzy, co robie źle? Czytałem o tym w ksiązce ale trochę tego nie kapuje (ale to pewnie widać)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 lut 2014, o 13:14 
Offline
Użytkownik

Dołączył(a): 20 lut 2012
Posty: 45
Pomógł: 0

Jest ktoś w stanie podać dokładniejsze wskazówki?
Może na priv? Mam projekt do zrobienia a zatrzymałem się przy tym silniku.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 lut 2014, o 13:18 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

Co ci daje 0==sekundy z % modulo 5?

Wysłane z telefonu

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 lut 2014, o 13:47 
Offline
Użytkownik

Dołączył(a): 20 lut 2012
Posty: 45
Pomógł: 0

if (0==sekundy) dir = lewo;
if (5==sekundy)

??



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

Dołączył(a): 29 sty 2012
Posty: 777
Lokalizacja: Karpicko k. Wolsztyna
Pomógł: 197

Czy ten silnik ma się kręcić w czasie gdy przycisk jest wciąż wciśnięty czy po jednorazowym wciśnięciu?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 lut 2014, o 14:32 
Offline
Użytkownik

Dołączył(a): 20 lut 2012
Posty: 45
Pomógł: 0

tylko jak nacisne.
cały kod:

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



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


Kody wklejamy przy pomocy syntax=c - Różowy J.



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

Dołączył(a): 29 sty 2012
Posty: 777
Lokalizacja: Karpicko k. Wolsztyna
Pomógł: 197

Sprawdź ten programik i napisz czy o to ci chodziło
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


W programie wykorzystałem funkcję do obsługi klawiszy z Mirkowego bloga. A timer programowy z Bluebooka z rozdziałów "Wstęp do systemów czasu rzeczywistego" i "Superdebounce".

To tak na zachętę :-)


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 lut 2014, o 08:39 
Offline
Użytkownik

Dołączył(a): 20 lut 2012
Posty: 45
Pomógł: 0

Program działa. Wielkie dzięki za pomoc.
Ale jest jakiś drobny szczegół i nie wiem z czego może wynikać, a mianowicie:
co jakis czas silnik sam zaczyna się obracać ;) przez krótką chwile, czyli tak jakby atmega dostawałą sygnał z klawisza.



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

Dołączył(a): 29 sty 2012
Posty: 777
Lokalizacja: Karpicko k. Wolsztyna
Pomógł: 197

Czy silnik kręci się przez krótką chwilę czy przez czas 5s albo 15s?

Wgraj ten programik. Dodałem w nim dwa LED-y które zaświecają się na 500ms po każdym wciśnięciu klawiszy. Będzie widać czy program dostaję lewe sygnały z klawiszy i czy wchodzi w funkcje obsługi klawiszy
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Google Adsense [Bot] i 12 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