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

RC5: Programowanie AT89C2051 z TSOP1736 - brak reakcji na pilota

Asteroid 12 Lut 2007 21:11 1509 9
REKLAMA
  • #1 3561701
    Asteroid
    Poziom 20  
    Posty: 549
    Pomógł: 18
    Ocena: 188
    Witam jestem początkujący w programowaniu ! Mam taki problem napisałem prosty program do załączenia i wyłączenia dowolnym przyciskiem na pilota w kodzie rc5 ! Zaprogramowałem i nie działa.
    (inne proste programy działały miganie dod itp.) Procesor to AT89c2051 a odbiornik to TSOP 1736 (podłączony zgonie z notą katalogową) a poniżej program ! Prosze Was fachowców o Pomoc :cry:

    Dim Kod As Bit
    Dim Command As Byte , Subadress As Byte
    Enable Int0
    Enable Interrupts
    Reset Tcon.0

    On Int0 Sprawdzanie

    Do
    If Kod = 1 And P1.7 = 0 Then
    Disable Int0
    Gosub Zgas
    Kod = 0
    Enable Int0
    End If
    If Kod = 1 And P1.7 = 1 Then
    Disable Int0
    Gosub Zapal

    Kod = 0
    Enable Int0



    End If
    Loop
    Sprawdzanie:
    Getrc5(subadress , Command)
    Kod = 1
    Return



    Zapal:
    P1.7 = 0
    Return

    Zgas:
    P1.7 = 1
    Return
  • REKLAMA
  • #2 3564134
    Asteroid
    Poziom 20  
    Posty: 549
    Pomógł: 18
    Ocena: 188
    Jeżeli ktoś ma albo mógłby poprawic mój program, ewentualnie napisac jakiś prosty programik działający (załączenie i wyłączenie diody rc5 obojętnie jakim klawiszem pilota) abym mógł się czegoś nauczyc ! Prosze Was koledzy już niemam pomysłów !
  • REKLAMA
  • #3 3564239
    redart
    Poziom 23  
    Posty: 529
    Pomógł: 51
    Ocena: 30
    Może teraz :D:
    $crystal = 12000000    'Należy podać częstotliwość kwarcu
    Dim Kod As Bit
    Dim Command As Byte , Subadress As Byte
    Reset Tcon.0
    On Int0 Sprawdzanie
    Enable Int0
    Enable Interrupts
    Set P1.7
    Do
       If Kod = 1 Then
          Disable Int0
          If P1.7 = 1 Then
             Gosub Zapal
          Else
             Gosub Zgas
          End If
          Kod = 0
          Enable Int0
       End If
    Loop
    
    Sprawdzanie:
       Getrc5(subadress , Command)
       Kod = 1
    Return
    
    Zapal:
       P1.7 = 0
    Return
    Zgas:
       P1.7 = 1
    Return


    W załączniku program testera do RC5. Wyświetlacz podłączyć wedle uznania. Np tak:
    Config Lcdpin = Pin , Db4 = P1.2 , Db5 = P1.3 , Db6 = P1.4 , Db7 = P1.5 , E = P1.6 , Rs = P1.7
    Załączniki:
    • GetRC5 mini.zip (466 Bajtów) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • #4 3564283
    Tomasz.W
    Poziom 35  
    Posty: 2315
    Pomógł: 263
    Ocena: 161
    Jeżeli chcesz dowolnym klawiszem pilota zapalić i zgasić leda to polecenie GETRC5 nie jest Ci potrzebne . No bo niby do czego ? Program ma tylko stwierdzić obecność sygnału i nic więcej . Do tego służy właśnie przerwanie INT0 . A co to jest to P1.7 ?
  • REKLAMA
  • #5 3564305
    john_t
    Poziom 29  
    Posty: 1070
    Pomógł: 127
    Ocena: 89
    Asteroid napisał:
    Jeżeli ktoś ma albo mógłby poprawic mój program, ewentualnie napisac jakiś prosty programik działający (załączenie i wyłączenie diody rc5 obojętnie jakim klawiszem pilota) abym mógł się czegoś nauczyc ! Prosze Was koledzy już niemam pomysłów !

    A czy dał się skompilować? Bo u mnie tak i na symulatorze działa OK. Twój program jest poprawny...
    Sprwadź ustawienia w Bascomie Wejdź na zakładkę "Option" i sprawdź jaki pin jest przydzielony dla odbioru RC5 oraz jaki zadeklarowany procesor.
    Do redart Nie trzeba deklarować częstotliwości kwarcu (sprawdzone)
    Pozdrawiam.
  • #6 3564336
    Asteroid
    Poziom 20  
    Posty: 549
    Pomógł: 18
    Ocena: 188
    Spróbuje na programiku redart i dam znac czy chodzi !
    A mój programik w symulatorze chodzi poprawnie wiec niewiem czemu normalnie niechce ! Używałem juz różnych pilotów np. od telewizora unimor siesta 2, od wieży technics scech-500, od cd romu creativa i nic ! Przecież któryś powinien załapac !
  • #7 3564345
    redart
    Poziom 23  
    Posty: 529
    Pomógł: 51
    Ocena: 30
    john_t napisał:
    A czy dał się skompilować? Bo u mnie tak i na symulatorze działa OK. Twój program jest poprawny...


    Odczytuje Ci RC5 w symulacji? Czy tylko uruchamia się w symulatorze po skompilowaniu :D?

    Cytat:
    Do redart Nie trzeba deklarować częstotliwości kwarcu (sprawdzone)

    Jeśli będzie rozbieżność pomiędzy częstotliwością w zakładce a faktycznie podłączonym kwarcem, to życzę sukcesów :wink: .
    Pzdr.
  • #9 3564489
    redart
    Poziom 23  
    Posty: 529
    Pomógł: 51
    Ocena: 30
    A ustawiłeś port dla RC5?
    Skonfiguruj to tak: Options > Compiler > I2C w dolnym okienku masz RC5-port - wybierz P3.2 i wciśnij OK. Bez tego na pewno nie ruszy.
    Pzdr.
  • #10 3564931
    Asteroid
    Poziom 20  
    Posty: 549
    Pomógł: 18
    Ocena: 188
    Redart ustawione wszystko prawidłowo P3.2 tak jak mówiłęś sprawdziłem ! Procek zaprogramowany i nadal nie działa tsop-a 1736 już podmieniałem i nic nadal niedziała ! Czyżby te piloty nie nadawały w RC5 już sam niewiem ?:cry:

Podsumowanie tematu

LABEL_AI_GENERATED
Problem dotyczy programowania mikrokontrolera AT89C2051 do odbioru sygnału RC5 z pilota za pomocą odbiornika TSOP1736. Autor napisał prosty program do załączania i wyłączania diody LED dowolnym przyciskiem pilota, jednak program nie działa na rzeczywistym układzie mimo poprawnej symulacji. W dyskusji zwrócono uwagę na konieczność prawidłowej konfiguracji portu odbioru RC5 (P3.2) w opcjach kompilatora Bascom oraz na zgodność ustawienia częstotliwości kwarcu (12 MHz) z rzeczywistym kwarcem. Zasugerowano, że do wykrywania obecności sygnału RC5 nie jest konieczne wywoływanie funkcji Getrc5, a wystarczy obsługa przerwania INT0. Podano poprawiony przykład programu z uwzględnieniem tych uwag. Pomimo tych wskazówek i wymiany odbiorników TSOP1736 problem nadal występuje, co rodzi wątpliwości co do kompatybilności pilotów z kodem RC5 lub konfiguracji sprzętowej.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA