Wróżenie z fusów - ATtiny24

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From Polish to

Threaded View
Witam
Walczę z problemem i nie wiem o co chodzi, może przeoczyłem coś oczywistego.
ATTiny 24 w roli sterownika do silnika prądu stałego (zmiana kierunku
obrotów, miękki start itp. pierdoły)
Do procka przyłączone są dwa przekaźniki:
główny do portu A pin 3 lub 5
kierunkowy do portu B pin 1

Sterowanie obrotami za pomocą potencjometru, przetwornik AD
skonfigurowany z zewnętrznym napięciem odniesienia 5V przy działa z
rozdzielczością 10 bitów. Pomiar na Port A pin 2
Wynik pomiaru jest bezpośrednio wkładany do rejestru sterującego 10
bitowym PWM. Pwm działa na wyjściu portu A pin 6

Wszystko działa ładnie, do momentu przekroczenia przez potencjometr
progu 1V. Powyżej tego ATTiny wyłącza przekaźnik główny.
Wciśnięcie ponownie przycisku start powoduje załączenie przekaźnika na
moment i ponowne otwarcie. Sprawdzałem na dwóch pinach portu A. Takie
same objawy.
W tym samym czasie Port B działa tak jak powinien. Przekaźnik trzyma
kiedy trzeba, więc to nie reset procka.
O co może chodzić?

Re: Wróżenie z fusów - ATtiny24
TomaszB pisze:
Quoted text here. Click to load it
nika na20%
Quoted text here. Click to load it

I to my mamy wrF3%BFyE6%? SkB1%d moBF%emy wiedzieE6% w jaki sposF3%b ste=
rujesz tym20%
przekaBC%nikiem?

Dariusz AF%oB3%na

Re: Wróżenie z fusów - ATtiny24
Dariusz Zolna pisze:
Quoted text here. Click to load it

Sterowanie jest bardzo proste, mam dwie procedury:

.equ przek_gl_port = PORTA
.equ przek_gl_pin = 3

uruchom:
    sbi przek_gl_port,przek_gl_pin
    ret
zatrzymaj:
    cbi przek_gl_port,przek_gl_pin
    ret

Procedury są wywoływane odpowiednio na wciśniecie przycisku. Wywołanie
tych procedur jest tylko w obsłudze przerwanie zewnętrznego INT0.
W symulatorze AVRStudio wszystko działa jak trzeba.

Re: Wróżenie z fusów - ATtiny24
TomaszB pisze:

Quoted text here. Click to load it

A odpowiednio filtrujesz drgania tego przycisku?

--
Adam Dybkowski
        http://dybkowski.net /

We've slightly trimmed the long signature. Click to see the full one.
Re: Wróżenie z fusów - ATtiny24
TomaszB pisze:
Quoted text here. Click to load it

A to przerwanie ma byE6% wywoB3%ywane przez jakie zdarzenie?
SprF3%buj opisaE6% co i w jakiej sytuacji powinno siEA% dziaE6%, a co siEA%
 dzieje.

Dariusz AF%oB3%na

Re: Wróżenie z fusów - ATtiny24
Dariusz Zolna pisze:
Quoted text here. Click to load it

Zdarzenie jest wywoływane zboczem opadającym na pinie INT0 mikrokontrolera.
Cały układ klawiatury wygląda tak, że 3 piny są ustawione jako wejście z
podciąganiem i po wciśnięciu przycisku zwierają do masy.
Do każdego z przycisku, przez diodę jest podłączony pin INT0.
Wciśnięcie każdego powoduje wyzwolenie przerwania.
W przerwaniu najpierw czekam 100ms żeby upewnić się, że to jest
zamierzone wciśnięcie, na koniec czekam kolejnych 100ms, żeby upewnić
się, że puszczony. to działa jak powinno.
Bez wciśnięcia przycisku STOP żadna inna procedura nie wywołuje
rozłączenia przekaźnika.

Opis tego co się dzieje:
1. Potencjometr jest ustawiony w skrajnym, lewym położeniu. Mierzone
napięcie = 0.
2. Wciskam przycisk START/STOP i przekaźnik się załącza. Kolejne
wciśnięcie spowoduje jego rozłączenie, tak ma być
3. Przekręcenie potencjometru powyżej 1V powoduje automatyczne
rozłączenie przekaźnika (tak nie powinno być)

układ zachowuje się analogicznie, kiedy potencjometr jest ustawiony na
maksymalne prawe położenie, mierzone napięcie to 5V. Przy obniżaniu
napięcia o około 1V też następuje wyłączenie przekaźnika.

Re: Wróżenie z fusów - ATtiny24
TomaszB pisze:
Quoted text here. Click to load it
aniu20%
Quoted text here. Click to load it

A nie masz przypadkiem jakiegoB6% problemu z nachodzeniem na siebie20%
zmiennych w pamiEA%ci? Jednej, ktF3%ra trzyma odczyt z ADC, a drugiej ze =

stanem przekaBC%nika? TrochEA% to tak wyglB1%da jakby miaB3%o zwiB1%zek z=
e zmianB1%20
mB3%odszego bitu, drugiego bajtu z ADC.

Dariusz AF%oB3%na

Re: Wróżenie z fusów - ATtiny24
TomaszB pisze:

Quoted text here. Click to load it

A może źle skonfigurowałeś układ przerwań i te procedury wywoływane są
zmianem stanu logicznego na dowolnym pinie?

PH

Re: Wróżenie z fusów - ATtiny24
Paweł Hadam pisze:
Quoted text here. Click to load it

Procedura siedzi w przerwaniu INT0. Przerwania od zmiany stanu pinów
PCINT0 oraz PCINT1 są nieużywane.
Rejestry związane z przerwaniem od stanu pinów są wyzerowane: PCMSK0,
PCMSK1, GIFR (PCIF1, PCIF0).
To nie to.
Sprawdzę, ale nie wiem jeszcze jak, co ze zmiennymi.
Dzięki za podpowiedzi:)
Pozdrawiam

Re: Wróżenie z fusów - ATtiny24
Paweł Hadam pisze:
Quoted text here. Click to load it

Błąd był dużo prostszy i bardziej banalny.
W procedurze ustawiania prędkości, zamiast rjmp użyłem rcall.
Po zmianie wszystko działa jak trzeba :)
Pozdrawiam
TomaszB

Site Timeline