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



Teraz jest 30 mar 2026, o 23:00


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 
Autor Wiadomość
PostNapisane: 29 gru 2013, o 18:41 
Offline
Użytkownik

Dołączył(a): 20 gru 2013
Posty: 28
Pomógł: 0

Mam programik do zmiany wypełnienia przebiegu PWM i chce wyświetlić nastawioną wartość wypełnienia w %.

Robię tak:

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


Wszystko działa super do momentu jak wynik "procent" jest dzielony przez 255, wtedy procek bardzo spowalnia, widać to jak się trzyma wciśnięty przycisk zliczania impulsów "i", a nie chciałbym robić obsługi przycisków na przerwaniach.

Jak można inaczej zamienić dzielenie przez 255 ? może jakieś przesuwanie bitów?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 gru 2013, o 19:04 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 lip 2012
Posty: 78
Lokalizacja: Grójec
Pomógł: 2

Może spróbuj tak to zapisać: procent = (100*i)/255



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 gru 2013, o 19:09 
Offline
Użytkownik

Dołączył(a): 20 gru 2013
Posty: 28
Pomógł: 0

Nie to też nie pomaga dalej liczy wolno.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 gru 2013, o 19:20 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 lip 2012
Posty: 78
Lokalizacja: Grójec
Pomógł: 2

hmm. To może pokaż jak obsługujesz klawisze.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 gru 2013, o 19:41 
Offline
Użytkownik

Dołączył(a): 20 gru 2013
Posty: 28
Pomógł: 0

klawisze (w przykładzie jeden) obsługuję tak:

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  
PostNapisane: 29 gru 2013, o 19:46 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1988
Lokalizacja: Lipsko
Pomógł: 125

A może przesuwaj wynik mnożenia i*100 o 8 miejsc w prawo (czyli dzielenie przez 256), a do końcowego wyniku ewentualnie dodawaj 1.

Przy takiej obsłudze klawiszy to blokujesz procka na wieczność! Znaczy aż 80ms, a to sporo...

_________________
http://www.sylwekkuna.com



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

Dołączył(a): 28 lip 2012
Posty: 78
Lokalizacja: Grójec
Pomógł: 2

No to może te opóźnienia wynikają ze zwłoki czasowej na drgania styków, a jeżeli tak to nie mam pojęcia jak to zrobić bez przerwań :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 gru 2013, o 19:59 
Offline
Użytkownik

Dołączył(a): 20 gru 2013
Posty: 28
Pomógł: 0

Tak już wiem problem tkwi w tych opóźnieniach i biblioteka util/delay.h, najlepiej było by je zastąpić jakąś pętelką albo przerwaniem z licznika, spróbuje z licznikiem. Ale z przesuwaniem miejsc o 8 - dobry pomysł też spróbuję - dzięki.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 gru 2013, o 09:44 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1988
Lokalizacja: Lipsko
Pomógł: 125

Przyciski w przerwaniach tak czy inaczej będziesz musiał kiedyś ogarnąć, a poniżej przykład mojej obsługi nieblokującego przycisku z filtrem antydrganiowym bez użycia przerwań:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

To uproszczona wersja tego co opisałem w tym temacie: http://forum.atnel.pl/topic4763.html

_________________
http://www.sylwekkuna.com



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


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