logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[ATtiny2313] Jak uzyskać płynne sterowanie silnikiem potencjometru głośności ATtiny2313?

mkpl 19 Paź 2012 20:08 1767 11
  • #1 11429249
    mkpl
    Poziom 37  
    Kod: text
    Zaloguj się, aby zobaczyć kod


    Witam

    Mam problem z obsługa RC5. Generalnie chciałem sterować silnikiem potencjometru głośności i niby wszystko działa ale silnik pracuje "krokami" zamiast płynnie.

    Program poprawnie działa jedynie wtedy gdy odczyt RC5 mam w pętli głównej. Próbowałem zrobić to tak jak tutaj w temacie: https://www.elektroda.pl/rtvforum/topic1284915.html

    ale układ w ogóle nie reagował na pilota.

    Pytanie drugie. Która instrukcja jest szybsza jeśli chodzi o "skan" kodów pilota? IF czy Select case?
  • #2 11431199
    Konto nie istnieje
    Konto nie istnieje  
  • #3 11431227
    mkpl
    Poziom 37  
    Zrobiłem na piechotę (kod z elektrody) gdzie jest to normalnie na licznikach zrobione ale kod mimo, że się kompiluje nie chce działać.


    Kod: text
    Zaloguj się, aby zobaczyć kod
  • #4 11431255
    Konto nie istnieje
    Konto nie istnieje  
  • #5 11431350
    mkpl
    Poziom 37  
    To tak ma być. Na porcie B tworzę taką małą magistralę na której albo będzie wystawiony stan Hiz (wejście wysokiej impedancji) a wystawiając w ten rejestr 1 zmieniam go na wyjście w stanie niskim i działa mi to w 2 programie w którym odczyt rc5 mam w pętli głównej.

    Tak czy siak nie działa mi przerwanie od Int1 (int0 nie mam jak sprawdzić bo układ jest na gotowej docelowej pcb)

    Int1 jest podciągnięty fizycznie do VCC przez 4.7k
  • #6 11431414
    Konto nie istnieje
    Konto nie istnieje  
  • #7 11431427
    mkpl
    Poziom 37  
    Tak. Tak jak pisałem wcześniej HW jest kompletne skończone i działające (program z Gertc5 w pętli głównej). Układ po prostu na podstawie kodu z RC5 zwiera na masę odpowiednie rezystory przez co symuluje pilota z kierownicy samochodowej) dlatego nie mogę na porty wystawiać napięcia a tylko zwierać na masę.

    Proc pracuje na wewnętrznym 8mhz podział wyłączony. Próbowałem też na port B wystawiać 1 ale nic się nie dzieje.
  • #8 11431490
    Konto nie istnieje
    Konto nie istnieje  
  • #9 11433233
    mkpl
    Poziom 37  
    Sprawdzałem z funkcja getrc5 w przerwaniu (przykład z książki Marcina Wiązani) i też nie działa. Coś skutecznie blokuje przerwania
  • #10 11433986
    Konto nie istnieje
    Konto nie istnieje  
  • #11 11434028
    mkpl
    Poziom 37  
    Dioda na Tsop mryga. Sygnał podłączyłem pod port d3 czyli int1 (ten z którego chce wywołać przerwanie) przerwanie testowałem na poziom niski jak i na zbocze ale nic nie zmienia
  • #12 11434061
    Konto nie istnieje
    Konto nie istnieje  
REKLAMA