Aktyw Forum

Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.

Sprawdź punkty Zarejestruj się

Zbyt łatwe wywoływanie przerwań Int0/1

Yoshi_80
-
-
Posty:11
Rejestracja:13 maja 2005, o 18:50
Lokalizacja:Żary
Zbyt łatwe wywoływanie przerwań Int0/1

Postautor: Yoshi_80 » 21 paź 2007, o 20:33

Witam

Mam pewnien problem z wywoływaniem przerwań Itn0 i 1 , do których podłaczyłem enkoder obrotowy. Wywyłoywanie przerwań odbywa się zboczem (narast i opad), timerem chciałem mierzyć czas przerwania aby ustalić prędkość obrotową enkodera.

Problem tkwi w tym, ze przerwania wywoluja sie zbyt łatwo, tzn praktycznie losowo po lekkim dotkięciu ośki enkodera a zmierzone czasy są całkowicie dowolne :/ .

Nie wiem czy problem ktwi w kwesti programowej czy sprzętowej, programowo konfig portów wygląda tak :

Config Portd = &B00110000
Portd = &B00001111
Config Portb = Output
Portb = 0
Config Portc = Input
Portc = 0

Sprzetowo wejścia są podciagniete rezystorami 100k do zasilania enkoder wywołuje przerwanie zwierajac wejście do masy. Poradźcie coś

Awatar użytkownika
pajaczek
Moderator
Moderator
Posty:2653
Rejestracja:24 sty 2005, o 00:39
Lokalizacja:Winny gród

Re: Zbyt łatwe wywoływanie przerwań Int0/1

Postautor: pajaczek » 21 paź 2007, o 20:47

Nie wiem czy problem ktwi w kwesti programowej czy sprzętowej,
Problem (prawdopodobnie) tkwi w tzw. drganiu stykow. Czy wyeliminujesz to sprzetowo czy programowo...

Hasla do zapoznania sie, "drganie stykow", "debouncer"... jak juz cos wybierzesz, to bedzie mozna zaradzic Twoim problemom.

Yoshi_80
-
-
Posty:11
Rejestracja:13 maja 2005, o 18:50
Lokalizacja:Żary

Postautor: Yoshi_80 » 21 paź 2007, o 21:36

Witam ponownie

Problem już częściowo rozwiazałem programowo w dość dziwny sposób, mianowicie skonfigurowałem wyjścia portu najpier jako całość a poźniej poszczególne wejścia niezależnie :

Config Portd = Output
Portd = 0
Config Pind.0 = Input
Config Pind.1 = Input
Config Pind.2 = Input
Config Pind.3 = Input
Portd.0 = 1
Portd.1 = 1
Portd.2 = 1
Portd.3 = 1

Program jakby pracował stabilniej , nie wywołuje tak czesto przerawnia chociaż i tak nie jest do końca dobrze. Wcześniej trudno było mówić o drganiach styków kiery ja tylko dotykałem ośki i już miałem przerwanie nie kręcąc nią w ogóle. Nawet na oscyloskopie wówczas było "czysto".

Fredy
-
-
Posty:141
Rejestracja:27 mar 2005, o 21:45
Lokalizacja:Małopolska

Postautor: Fredy » 22 paź 2007, o 19:02

nie łatwiej liczyć impulsy np. w ciągu 1 sek?
Na tej podstawie masz infirmację o prędkości.

sablik
-
-
Posty:101
Rejestracja:7 lip 2004, o 06:18
Lokalizacja:Czaniec
Kontaktowanie:

Postautor: sablik » 23 paź 2007, o 09:01

z tego co widzę to poprostu musisz podciągnąć styki do plusa ale może 10 k, jeśli chodzi o pomiar prędkości to racje ma kolega Fredy licz impulsy w określonym czasie
pozdr AS

Wróć do „Projektowanie PCB, programy EDA, CAD, narzędziowe”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 0 gości