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

Mega8, BASCOM i czas. Dlaczego czeka 5 s zamiast 1s?

rokoko 21 Wrz 2006 09:57 1266 6
REKLAMA
  • #1 3041790
    rokoko
    Poziom 20  
    Posty: 484
    Pomógł: 6
    Ocena: 57
    Witam!
    Mam problem stary jak swiat, jednak nie umiem znalezc odpowiedzi..... w kodzie BASCOMu jest ustawione $crystal=1000000, wewnetrzny ioscylator M8 na 1MHz a kontroler na polecenie wait 1 czeka 5s zamiast 1. Zalaczam konfiguracje bitów.... prosze pomozcie!
    Mega8, BASCOM i czas. Dlaczego czeka 5 s zamiast 1s?
  • REKLAMA
  • #2 3041857
    Bęben
    Poziom 16  
    Posty: 180
    Pomógł: 12
    Ocena: 13
    A czy w programie uzywasz jakichs przerwan?
    np od licznikow?
    Naturalnym jest ze czas moze sie wtedy znacznie wydluzyc.
    Ta instrukcja nie sluzy do odmierzania dokladnego czasu, tylko przyblizona. (zajrzyj do pliku pomocy, jest tam to opisane)
  • REKLAMA
  • #3 3041900
    rokoko
    Poziom 20  
    Posty: 484
    Pomógł: 6
    Ocena: 57
    W programie nie uzywam zadnych przerwan, licznikow ani niczego podobnego. Zadanie uC jest kolejne zalaczanie tranzystorow...... w zaleznosci od tego ktore wejscie zostanie pobudzone. Wiem, ze wait nie odmierza dokladnie czasu ale do tej pory jej dokladnosc w zupelnosci wystarczala...... Rozumiem ze komenda wait 1 moze wymusci oczekiwanie np. 1,5 s ale 5s to lekka przesada. A moze przestawic oscylator wew. na np 8Mhz??
  • REKLAMA
  • #4 3042248
    M. S.
    Poziom 34  
    Posty: 2107
    Pomógł: 259
    Ocena: 680
    Wyglada, że uC ma skopany generator wewnętrzny. Sprawdziłbym na innym uC lub podłączyłbym zwenętrzny kwarc żeby się przekonać co jest nie tak. Używam Bascoma dość długo i nie miałem problemów z wait'em.
  • REKLAMA
  • #5 3042459
    rokoko
    Poziom 20  
    Posty: 484
    Pomógł: 6
    Ocena: 57
    A jesli chodzi o bity konfiguracyjne Megi8 to nie maja nic do rzeczy?? Mialem taki przypadek z ATTINI 2313-ten uC ma mozliwosc wlaczenia prescalera w bitach konfiguracjii.
  • #7 3566310
    rokoko
    Poziom 20  
    Posty: 484
    Pomógł: 6
    Ocena: 57
    Przyczyna problemow byl uszkodzony uC, po wymianie na nowy wzystko wrocilo do normy. Pozdrawiam i dziekuje za zainteresowanie

Podsumowanie tematu

✨ Problem dotyczył nieprawidłowego działania funkcji wait w BASCOM dla mikrokontrolera ATmega8 z wewnętrznym oscylatorem ustawionym na 1 MHz. Pomimo ustawienia $crystal=1000000, komenda wait 1 powodowała oczekiwanie około 5 sekund zamiast 1 sekundy. Dyskusja wskazała, że funkcja wait nie jest precyzyjna i może być wydłużona przez przerwania lub liczniki, jednak w tym przypadku nie były one używane. Podejrzewano uszkodzenie generatora wewnętrznego lub błędną konfigurację bitów, jednak ATmega8 nie posiada prescalera w bitach konfiguracyjnych, w przeciwieństwie do ATTINY2313. Ostatecznie przyczyną problemu okazał się uszkodzony mikrokontroler, a po jego wymianie funkcja wait działała poprawnie.
Podsumowanie wygenerowane przez AI na podstawie treści dyskusji.
REKLAMA