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

Czytnik RC5 w BASCOMie nie działa na zewnętrznym kwarcu

xixin 30 Sie 2010 19:41 1808 10
  • #1 8457201
    xixin
    Poziom 14  
    Chciałbym zaprzęgnąć pilota od TV standardu RC5 do sterowania Atmegą8
    Wszystko działa ale na wewnętrznym kwarcu 8MHz gdy tylko w Fusebitach przestawię na 16MHz i zewnętrzny kwarc to "kiszka stolcowa" wyświetlacz głupieje, procesor się resetuje itd. Inne programy nie związane z RC5 działają dobrze.
    Dodam, że w kompilatorze Bascoma przestawiam procesor na 16MHz bo taki mam podłączony i przez 2 kondensatory 27pF do masy.
    Poniżej program na którym testuje RC5
    
    Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portd.0 , Db7 = Portd.1 , E = Portc.3 , Rs = Portc.2
    Config Lcd = 20 * 2
    
    
    Config Rc5 = Pind.2
    Config Pinb.1 = Output
    
    Dim Address As Byte , Command As Byte , Togbit As Byte
    Enable Interrupts
    
    
    
    
    
     Do
    
       Getrc5(address , Command)
       if Address <> 255 then
         Command = Command And &B01111111
         Cls
         Lcd "Adres: " ; Address
         Lowerline
         Lcd "Komenda: " ; Command
       end if
    
    
    
    Loop
    
    End


    po przestawieniu w Fusebitach i kompilatorze kwarcu na 8Mhz wewnętrzny, wszystko działa ok.
    Jaka może być tego przyczyna
    Wyświetlacz LCD podłączony jak w konfiguracji
  • #3 8457396
    xixin
    Poziom 14  
    Czytnik RC5 w BASCOMie nie działa na zewnętrznym kwarcu

    Dodam jeszcze, że moja Atmega to: ATMEGA8-16PU
  • #5 8457602
    rpal
    Poziom 27  
    Dokładnie nie wiem jak w tym swoim Bascom-e masz zrealizowaną procedurę obsługi pilota ale powiązane to ściśle z prędkością zegara bo program w ściśle określonych przedziałach czasowy sprawdza stan wyjścia odbiornika RC5. Więc zmiana częstotliwości taktowania bez zmiany tych zależności czasowych spowoduję błędy odczytu. Musisz sobie zmienić wartości licznika odpowiedzialnego za odliczanie czasu tak aby wyjść z powrotem na taktowanie 8MHz albo zakupić kwarc 8 MHz.
  • #6 8457730
    janbernat
    Poziom 38  
    $crystal = 16000000
  • #8 8459558
    xixin
    Poziom 14  
    Witam ponownie i dziękuje za zainteresowanie moim problemem, który nadal trwa.
    Przestawiałem CKOPT na 0 lub 1 bez poprawy.

    kombinowałem również z komendą
    $crystal = 16000000
    dopisując ją do programu, też bez rezultatu.

    Kolego rpal przestawiając kwarc w kompilatorze lub dopisując linijkę jak wyżej kompilator sam dostosuje prędkości do RC5

    Wygląda mi to na uszkodzenie kwarcu ale jak na razie nie mam możliwości dokładniejszego przetestowania
  • #9 8461371
    janbernat
    Poziom 38  
    A może to nie jest kwarc 16MHz?
    Bo skoro głupieje tylko RC5 i wyświetlacz- a one są zależne od częstotliwości- a inne programy chodzą to tak może być.
    Może kwarc ma 12MHz albo inną.
  • #10 8461439
    landy13
    Poziom 31  
    Albo 1.6MHz? Może naliczyłeś za dużo zer?
  • #11 8461780
    xixin
    Poziom 14  
    Przyczyną zaistniałej sytuacji był kwarc.
    Co ciekawe kwarc był nowy prosto ze sklepu.
    Po podłączeniu oscyloskopu do generatora zbudowanego na tym kwarcu dało się zauważyć, że impulsy nie są równomierne tzn różne wypełnienie.
    Przy obsłudze wyświetlacza powyższa wada nie przeszkadzała ale RC5 wymaga dość stabilnego sygnału do prawidłowego funkcjonowania.

    Na szczęście miałem zapasowy i po podmianie działa wyśmienicie.

    Powyższe jest przestrogą dla kupców zwanych "mrówkami", którzy to kupują po jednej szt. elementy elektroniczne.
REKLAMA