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

Atmega 16 Złe taktkowanie procesora

matigi12 23 Gru 2011 15:15 1089 12
  • #1 10295591
    matigi12
    Poziom 12  
    Witam otóż mam taki dziwny błąd, gdyż gdy chcę wywołać migotanie diod np co pół sek. to one mi działają co kilka sekund tak jakby wykonywało się to dużo wolniej i na jednej z nóżek mam cały czas 1.8V mimo że jest ustawiona wyjście i stan niski.

    Podejrzewam że to procesor jest uszkodzony, ale nie jestem pewien bo był nowy :]
  • #3 10295835
    matigi12
    Poziom 12  
    W zależności jak ustawie taktowanie od 8 do 1 MHz to jego precyzyjność wzrasta o dziwo, jeśli uruchomię timer 0 to działa i tak za wolno przy 8MHz około 20 razy za wolno a przy 1 MHz około 4 razy za wolno. Z czego to wynika to nie jestem pewien, ale na kilku portach jest cały czas napięcie 1.8V a powinno być 0.
  • #5 10295944
    matigi12
    Poziom 12  
    To tak
    Kod :
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Schemat chyba logiczny pod piny po rezystorach ledy.

    Przy ustawieniu taktowania na 8 MHz przerwa która powinna trwać 500 ms (_delay_ms(500) wynosi około 8-10 sekund, natomiast gdy taktowanie ustawie na 1 MHz to ten czas jest już zbliżony ale jednak odległy bo około sekundy.
    Kilka nóżek zachowuje się jak gdyby był procek uszkodzony, ale nie wiem.
    Fusebity były nie ruszane a procek jest nowy, być może podczas wlutowywania hot airem z odpowiednią końcówką się przegrzał, ale moim zdaniem wcale by nie pracował.
  • #6 10296231
    dondu
    Moderator na urlopie...
    matigi12 napisał:
    Schemat chyba logiczny pod piny po rezystorach ledy.

    Kilka nóżek zachowuje się jak gdyby był procek uszkodzony, ale nie wiem.

    Skoro masz problem i dużo czasu na jego szukanie to masz rację, schemat nie jest potrzebny :)

    Jak informujesz kompilator o częstotliwości zegara?
  • #7 10296271
    zumek
    Poziom 39  
    matigi12 napisał:
    ...Kilka nóżek zachowuje się jak gdyby był procek uszkodzony, ale nie wiem.Fusebity były nie ruszane a procek jest nowy ...

    No to najwyższy czas, zajrzeć do dokumentacji uC :!:
    Hasło: JTAG
  • #8 10296338
    kriss68
    Poziom 20  
    Piszesz, że nie ruszałeś fusów to jak w takim razie zmieniasz częstotliwość? Zapewne tylko okłamujesz kompilator wpisując inną wartość (masz pewnie wewnętrzne 1MHz a zmiana wartości w makefile nie przestawi Ci przecież fusów). Inna sprawa juz wspomniana to wyłączenie JTAG'a.
  • #9 10296786
    matigi12
    Poziom 12  
    W makefile zmieniam częstotliwość. A tego JTAG'a zaraz sprawdzę ;]
  • #10 10296813
    kiziu13
    Poziom 17  
    W Makefile'u może i ją zmieniasz, ale nie ma to nic wspólnego z częstotliwością procesora, a jest tylko informacją dla kompilatora i funkcji, które używają tę częstotliwość do obliczania np. opóźnień. Tak jak pisali już przedmówcy, częstotliwość zmień w fusebitach.
  • #11 10296850
    matigi12
    Poziom 12  
    Gdybym wiedział jak to by było łatwiej ;]
  • #13 10297385
    matigi12
    Poziom 12  
    Ok to był ten nie szczęsny JTAG dzięki ;]
REKLAMA