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

[ATmega8] [ATmega8][Bascom] Sterownik IR: problem z instrukcją case i kanałami PWM

jacek1987-1987 22 Cze 2012 13:33 6423 36
REKLAMA
  • Pomocny post
    #31 11058516
    arktik1
    Poziom 27  
    Posty: 1276
    Pomógł: 61
    Ocena: 39
    Podejrzewam że problem jest z odbiorem danych z pilota.
    BASCOM i GETRC5 nie za bardzo sobie z tym radzi.
    No i czy masz na pewno pilota RC5?

    Dodano po 1 [godziny] 39 [minuty]:

    Zobacz to:
    Kod: text
    Zaloguj się, aby zobaczyć kod

    Zmiany dotyczą tylko wyświetlania , potem można to pokasować i zrobić jak było.
    Temperatura będzie widoczna bez przecinka.
    20,0 stopni będzie wyświetlone jako 200.
  • REKLAMA
  • #32 11061961
    jacek1987-1987
    Poziom 11  
    Posty: 99
    Ocena: 15
    Pilot na pewno jest w standardzie RC5 bo już go używałem wcześniej wykorzystując ten standard. Spróbowałem ten program wgrać tak żeby sprawdzić swoje czujniki temperatury ale na wyświetlaczu pojawia się za każdym razem napis temperatura i wartość 0. Próbowałem wszystkie czujniki jakie mam. Dwa są na pewno dobre bo działają w innym układzie. Próbowałem również programy do obsługi czujników DS18B20 z książek- Piotr Górecki "mikrokontrolery dla początkujących" oraz Marcin Wiązania "Programowanie mikrokontrolerów AVR w języku Bascom" i nie działały tak samo jak inne programy znalezione w internecie. Nie wiem czy to ważne ale wszystkie programy najpierw testuje na płytce ewaluacyjnej ZL2AVR z kwarcem 8MHz. Oczywiście w programie wpisuje $crystal=8000000, próbowałem ustawić te fuse bity tak żeby uwzględnić zewnętrzny rezonator kwarcowy i chyba zablokowałem ATmege. Co teraz mogę zrobić żeby odblokować tą ATmege? Wcześniej od samego początku gdy zacząłem działać na tej płytce ewaluacyjnej nie przestawiałem fuse bitów na ATmedze włożonej do płytki i zawsze deklaruje $crystal=8000000. I inne programy działają bez problemu na fuse bitach tak ustawionych jak na zdjęciu wyżej. Tak ustawiłem fuse bity w programie Burn-O-Mata
    [ATmega8] [ATmega8][Bascom] Sterownik IR: problem z instrukcją case i kanałami PWM
    i zablokowała się ATmega. Czemu przez takie ustawienie tych fuse bitów mogło dojść do zablokowania ATmegi. Jak by wyglądała deklaracja w programie wewnętrznego rezonatora tego 1MHz na który jest fabrycznie ustawiona ATmega8 bo nigdy nie używałem świadomie wewnętrznego rezonatora zawsze dołączony mam do układu kwarc zewnętrzny 8MHz i nie bawiłem się z tymi fuse bitami.
  • REKLAMA
  • #33 11063231
    jacek1987-1987
    Poziom 11  
    Posty: 99
    Ocena: 15
    Po próbach okazało się że ATmega jednak nie jest zablokowana tylko był problem z przesyłaniem programu przez programator do pamięci flash. Było to spowodowane jakimś problemem po zmianie fuse bitów tak żeby uwzględnić zewnętrzny kwarc 8MHz. Na wewnętrznym 1MHz wszystko działała elegancko. Co może być przyczyną wystąpienia takiego problemu po zmianie fuse bitów na zewnętrzny kwarc 8MHz?
  • #34 11063281
    LordBlick
    VIP Zasłużony dla elektroda
    Posty: 5438
    Pomógł: 549
    Ocena: 69
    jacek1987-1987 napisał:
    Było to spowodowane jakimś problemem po zmianie fuse bitów
    A taki sobie praktycznie drobny problem... :P
    jacek1987-1987 napisał:
    Co może być przyczyną wystąpienia takiego problemu po zmianie fuse bitów na zewnętrzny kwarc 8MHz?
    Na przykład nie stosowanie się do zawartości not katalogowych...
    A tak w ogóle to jakiś opis podłączeń(schemat/zdjęcie) wrzucisz, czy mamy wróżyć ?
  • REKLAMA
  • #35 11065066
    jacek1987-1987
    Poziom 11  
    Posty: 99
    Ocena: 15
    Kwarc jest podłączony w taki sposób jak na zdjęciu
    [ATmega8] [ATmega8][Bascom] Sterownik IR: problem z instrukcją case i kanałami PWM
    Taki schemat znalazłem na internecie z tym że w moim przypadku jest 8MHz, a nie 4MHz.
  • REKLAMA
  • #36 11065174
    LordBlick
    VIP Zasłużony dla elektroda
    Posty: 5438
    Pomógł: 549
    Ocena: 69
    Zadanie domowe: Podłącz wszystkie piny zasilania (opis pinów jest w nocie katalogowej na stronie 2) i podłącz kondensator 100nF równolegle do zasilania oraz podciągnij reset do Vcc przy pomocy rezystora 10kΩ. ;)
    Przy rezonatorach kwarcowych >=8MHz warto mieć zaprogramowany fusebit CKOPT.
    Trzeba też wykluczyć niesprawność rezonatora kwarcowego.
    P.S. Mam prośbę: wywal to "prośba" z tytułu edytując pierwszy post tematu i wpisz coś sensowniej opisującego twój problem np. "[ATmega8][Bascom] Sterownik na podczerwień"
  • #37 11071657
    jacek1987-1987
    Poziom 11  
    Posty: 99
    Ocena: 15
    Okazało że jednak coś wariuje mi ATmega mianowicie po zmianie fuse bitów na ten zewnętrzny kwarc wszystko działało w płytce ewaluacyjnej zl2AVR. Jednak jak dzisiaj próbowałem wgrać do tej samej ATmegi włożonej do tej płytki ewaluacyjnej jakiś inny program to wystąpił mi błąd zapisu pamięci flash, nie mogę zmienić ustawień fuse bitów na inne i ponownie zapisać bo również wyskakuje błąd zapisu. Próbowałem na innej ATmedze zmienić fuse bity na zewnętrzny kwarc i wgrać program i ta sama sytuacja nie mogę wgrać żadnego programu. Nie rozumiem co może być przyczyną takiego działania tej pierwszej ATmegi że wczoraj działała na zewnętrznym kwarcu i mogłem wgrywać programy a dzisiaj już nie chce działać. Spotkał się ktoś może kiedyś z czymś podobnym? I ewentualnie jak odblokować zablokowaną ATmege? Szukałem na necie tego jak to zrobić ale nie podziałały tamte układy i nadal uC jest zablokowany.

    Pod tym linkiem jest schemat oraz opis tej płytki zl2AVR
    Link

Podsumowanie tematu

✨ W dyskusji poruszono problem z programowaniem sterownika na podczerwień opartego na ATmega8, który ma 12 kanałów binarnych oraz 2 kanały PWM. Użytkownik napotkał trudności z działaniem instrukcji `Select Case` w BASCOM, co uniemożliwiało poprawne sterowanie kanałami. Po usunięciu tej instrukcji, program działał, ale nie w pełni. Uczestnicy dyskusji sugerowali różne podejścia do rozwiązania problemu, w tym przeniesienie obsługi przycisków do pętli głównej oraz poprawę konfiguracji portów. Wskazano również na konieczność poprawnego ustawienia fuse bitów, aby zapewnić zgodność z używanym kwarcem. Użytkownik próbował również zrealizować odczyt temperatury z czujnika DS18B20, jednak napotkał problemy z jego działaniem. Ostatecznie, po wprowadzeniu poprawek, użytkownik uzyskał działający kod, ale nadal miał trudności z odczytem temperatury i stabilnością działania programu.
Wygenerowane przez model językowy.
REKLAMA