Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Atmega8 Bascom - polecenie wait / waitms dziwny objaw

siwekyhy 07 Maj 2013 22:36 1416 5
  • #1 07 Maj 2013 22:36
    siwekyhy
    Poziom 14  

    Witam

    Mam dziwny problem nigdy mi się tak nie zdarzyło z poleceniem Wait/ waitms w Bascomie. Chodzi o to, że mam nowy procek Atmega 8 ustawiony fabrycznie na 1 Mhz i powinien odmierzać dokładnie 1 s na takim ustawieniu fabrycznym a ja wpisuje w programie np. waitms 100 to dioda zapala się na 5 sekund... dziwne.

    Próbowałem na zestawie ZL2AVR , na innej płytce stykowej i dalej też nic...

    Napięcie zasilające stabilizowane przez 7805 i daje 5 V na wyjściu

    Próbowałem także z innym prockiem Atmega 8 ustawionym na wewnętrzny oscylator 1 Mhz i taki sam efekt , zmieniałem także wersje bascoma i dalej nic ...

    Nie wiem może wina programatora mam stk 200 na lpt win Xp hm używam już od paru lat bascoma i tego programatora i nigdy tak nie było hm

    pozdrawiam

    0 5
  • #2 07 Maj 2013 22:49
    jousto
    Poziom 16  

    waitms 100 - daje 100ms opóźnienia a nie 1s a tym bardziej 5s

    pokaż program i ustawienia fusebitów skąd masz pewność że jest fabryczie ustawiona na 1MHz?

    Czy o Twoja pierwsza Atmega8 którą programowałeś?

    0
  • #3 08 Maj 2013 08:26
    pawel_mr
    Poziom 14  

    siwekyhy napisał:
    Witam
    wpisuje w programie np. waitms 100 to dioda zapala się na 5 sekund... dziwne.
    pozdrawiam

    Jaką masz częstotliwość zadeklarowaną w programie (lub w opcjach kompilatora)? Kompilator musi wiedzieć z jaką częstotliwością będzie działał uC, jeśli masz zawyżoną to waitms się wydłuży. Swoją drogą to przy 100ms wydłużenie do 5 sekund jest bardzo dziwne, na pewno wpisujesz waitms 100 a nie waitms 1000?

    0
  • #4 08 Maj 2013 09:43
    SylwekK
    Poziom 28  
  • #5 08 Maj 2013 18:59
    siwekyhy
    Poziom 14  

    No właśnie problem tkwi w tym że zamiast program zatrzymać się ma na 100 ms to zatrzymuje się np. na 5 s przy wewnętrznym oscylatorze 1 Mhz .

    To nie jest mój pierwszy zaprogramowany mikro-kontroler parę małych projektów już zrobiłem wszystko działało do teraz ...

    Poniżej prosty program ma zapalać i gasić diody o odpowiednim czasie a tak nie jest

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod


    Na paru prockach próbowałem i dalej nic . Różne programy też nic ... hm

    Jeszcze sprawdzę później czy w Eclipse język C czy też tak się dzieje hm

    A tu jeszcze zrzut dla jasności.

    Proszę umieścić obrazek w/g instrukcji:
    https://www.elektroda.pl/rtvforum/topic2053101.html
    [zumek]

    0
  • #6 08 Maj 2013 19:04
    piotrva
    Moderator Mikrokontrolery

    Hmm, a patrzyłeś na to: https://www.elektroda.pl/rtvforum/viewtopic.php?p=12283960#12283960
    U Ciebie jest:

    Code:

    $crystal = 10000000
    '10 MHz

    a powinno być:
    Code:

    $crystal = 1000000
    '1MHz

    Ale co tam, nie łaska sprawdzić tego co napisał Kolega @SylwekK, co tam jedno zero w tę czy w tamtą ;)

    0