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

ATmega8L - dioda miga co 8s zamiast 1s, błąd w kodzie?

waldez 13 Paź 2006 23:36 1134 3
REKLAMA
  • #1 3114525
    waldez
    Poziom 12  
    Posty: 30
    Witam,
    zaprogramowałem sobie ATmegę8L takim oto kodem:
    
    $regfile = "m8def.dat"
    $crystal = 8000000
    'Config Portd = &B00000100
    'Portd = &B00110011
    Config Portd = Output
    Config Portb = Output
    Config Portc = Output
    
    '--------------------Ustawienie LCD------------------
    Config Lcd = 16 * 2
    Config Lcdpin = Pin , Db4 = Pb.2 , Db5 = Pb.3 , Db6 = Pb.4 , Db7 = Pb.5 , E = Pb.1 , Rs = Pb.0
    Cls
    Cursor Off
    '----------------------------------------------------
    Dim I As Word
    Config Timer1 = Timer , Prescale = 256
    On Timer1 Times
    Enable Interrupts
    Enable Timer1
    Timer1 = 34286
    Do
    Loop
    End
    
    Times:
    Timer1 = 34286
    Incr I
    Locate 1 , 1
    Lcd I
    Toggle Portc.5
    Return
    

    program powinien mi zapalać/gasić diodę co 1s
    z tym że robi to co 8s, nie wiem co to może być, czy wina procka ??
    nie mam 2 megi na stanie co by sprawdzić.

    Pozdrawiam,
    Waldek.
  • REKLAMA
  • Pomocny post
    #2 3114612
    SP1AQU
    Poziom 21  
    Posty: 407
    Pomógł: 29
    Ocena: 33
    Zapewne podczas programowania nie wybrałeś przy pomocy FuseBits zewnętrznego rezonatora kwarcowego. Domyślnie ATMega8 korzysta z wewnętrznego oscylatora RC 1 MHz.
  • REKLAMA
  • Pomocny post
    #3 3114660
    M. S.
    Poziom 34  
    Posty: 2107
    Pomógł: 259
    Ocena: 680
    Zatem $crystal = 8000000 zmień na $crystal = 1000000 i bedzie ok. Możesz też wybrać częstotliwość wewnętrznego generatora 8MHz. (są jeszcze opcje 2 i 4MHz), lub podłączyć kwarc - w tym przypadku też trzeba przestawić "fusy".
  • #4 3115009
    waldez
    Poziom 12  
    Posty: 30
    Dzięki, przestawiłem i działa.
REKLAMA