-
1. Data: 2009-05-22 18:36:28
Temat: Wróżenie z fusów - ATtiny24
Od: TomaszB <b...@g...pl>
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ć?
-
2. Data: 2009-05-22 19:03:13
Temat: Re: Wróżenie z fusów - ATtiny24
Od: Dariusz Zolna <a...@u...com>
TomaszB pisze:
> 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.
I to my mamy wróżyć? Skąd możemy wiedzieć w jaki sposób sterujesz tym
przekaźnikiem?
Dariusz Żołna
-
3. Data: 2009-05-24 19:56:10
Temat: Re: Wróżenie z fusów - ATtiny24
Od: TomaszB <b...@g...pl>
Dariusz Zolna pisze:
> I to my mamy wróżyć? Skąd możemy wiedzieć w jaki sposób sterujesz tym
> przekaźnikiem?
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.
-
4. Data: 2009-05-24 20:17:07
Temat: Re: Wróżenie z fusów - ATtiny24
Od: Adam Dybkowski <a...@4...pl>
TomaszB pisze:
> 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.
A odpowiednio filtrujesz drgania tego przycisku?
--
Adam Dybkowski
http://dybkowski.net/
Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.
-
5. Data: 2009-05-24 21:00:17
Temat: Re: Wróżenie z fusów - ATtiny24
Od: Dariusz Zolna <a...@u...com>
TomaszB pisze:
> Dariusz Zolna pisze:
>> I to my mamy wróżyć? Skąd możemy wiedzieć w jaki sposób sterujesz tym
>> przekaźnikiem?
>
> 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.
A to przerwanie ma być wywoływane przez jakie zdarzenie?
Spróbuj opisać co i w jakiej sytuacji powinno się dziać, a co się dzieje.
Dariusz Żołna
-
6. Data: 2009-05-25 06:34:39
Temat: Re: Wróżenie z fusów - ATtiny24
Od: TomaszB <b...@g...pl>
Dariusz Zolna pisze:
> A to przerwanie ma być wywoływane przez jakie zdarzenie?
> Spróbuj opisać co i w jakiej sytuacji powinno się dziać, a co się dzieje.
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.
-
7. Data: 2009-05-25 07:57:41
Temat: Re: Wróżenie z fusów - ATtiny24
Od: Dariusz Zolna <a...@u...com>
TomaszB pisze:
> 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.
A nie masz przypadkiem jakiegoś problemu z nachodzeniem na siebie
zmiennych w pamięci? Jednej, która trzyma odczyt z ADC, a drugiej ze
stanem przekaźnika? Trochę to tak wygląda jakby miało związek ze zmianą
młodszego bitu, drugiego bajtu z ADC.
Dariusz Żołna
-
8. Data: 2009-05-25 19:37:04
Temat: Re: Wróżenie z fusów - ATtiny24
Od: Paweł Hadam <h...@g...spam.com>
TomaszB pisze:
> 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.
A może źle skonfigurowałeś układ przerwań i te procedury wywoływane są
zmianem stanu logicznego na dowolnym pinie?
PH
-
9. Data: 2009-05-26 06:37:51
Temat: Re: Wróżenie z fusów - ATtiny24
Od: TomaszB <b...@g...pl>
Paweł Hadam pisze:
> A może źle skonfigurowałeś układ przerwań i te procedury wywoływane są
> zmianem stanu logicznego na dowolnym pinie?
>
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
-
10. Data: 2009-06-03 17:55:29
Temat: Re: Wróżenie z fusów - ATtiny24
Od: TomaszB <b...@g...pl>
Paweł Hadam pisze:
> A może źle skonfigurowałeś układ przerwań i te procedury wywoływane są
> zmianem stanu logicznego na dowolnym pinie?
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