piotrva napisał: Dalej nie Stop Ac, ale chyba miałeś na myśli Config ACI = Off.
Według pomocy Bascoma, to polecenie wyłącza komparator w uP.
Saabotaz napisał: Ustawiłeś nowym procesorom BODLEVEL na 2.7V (czy jakoś tak) i BDOEN = enable?
Nie. Spróbuję ustawić.
Saabotaz napisał: Disable INT0 w przerwaniu nic złego nie zrobi.
piotrva napisał: W dodatku jeszcze to Disable INT0 wewnątrz samego przerwania INT0 (w Bascomie takie operacje === problemy).
Raczej nigdy takich problemów nie miałem - w książce Bascom M.Wiązani takie wstawki są w przerwaniach często spotykane.
piotrva napisał: Co do nadawania RC5 to ten rozrzut czasowy nie jest aż taki, żeby wyjść poza zakres tolerancji raczej, a z przysiadaniem napięcia to niech autor pokaże schemat - nie wiadomo czy i jaki wzmacniacz siedzi między procesorem i diodą IR.
Schemat jest w moim 2 poście. Jeżeli procesor się "zawiesza" to żadne ramki danych nie są wysyłane - przez diodę nie przepływa prąd i nie świeci (sprawdzone kamerą) - tranzystor jest zatkany.
Saabotaz napisał: To że baterie dają ze 3,2V to nie znaczy że tyle jest podczas włączonej LED IR, bo napięcie może przysiadać.
Tak jak napisałem wcześniej - w czasie nadawania napięcie spada max. o 0.2-0.3V. Baterie nowe.
piotrva napisał: PS. Nie zna Kolega składni CONFIG PORTB = INPUT zamiast konfigurowania 8 razy poszczególnych pinów?
Znam, ale ja tam wole tak konfigurować porty
Saabotaz napisał: ) Jesli procesor nie chce czasem wyjść z powerdown to zrób test - odepnij wyjście bramki od int, ręcznie kabelkiem wymuś stan niski na int i zobacz czy procesor wystartuje
Próbowałem - to samo.
piotrva napisał: Powinieneś tak czy inaczej to nadawanie dać do pętli głównej i np. zrobić to tak:
Kod:
(...)
Do
Enable INT0
Powerdown
DISisable INT0
'tu sprawdzamy te przyciski, który wciśnięty i nadajemy rc5
Loop
Próbowałem w taki sposób, i niestety to samo.
----------------------------------------------------------
Informacja:
Jeżeli wywalę polecenie Powerdown to układ zawsze działa prawidłowo - niezależnie od użytego egzemplarza procesora ATMEGA8.
----------------------------------------------------------
piotrva napisał: Dalej obstaję, że lepszym rozwiązaniem byłoby przerzucenie tego całego sedna programu do pętli głównej, a przerwanie wykorzystywać tylko do budzenia kości.
Próbowałem, jak pisałem. Program działa gdy nie ma polecenia Powerdown.
Dołożyłem dodatkowo kondensatory tłumiące drgania styków przy przyciskach - bez skutku.
Saabotaz napisał: Nadawanie RC5 też nie może się rozjechać czasowo. Wewnętrzny generator RC też ma swój rozrzut i to inny w każdej sztuce procesora.
Bez Polecenia POWERDOWN w programie, układ niezależnie od egz. procesora działa dobrze i rozrzut jest na tyle mały, że bez problemu komendy rozpoznaje TV.
Czemu zatem tak jest, że gdy dołączę do programu polecenie POWERDOWN - procesor "wariuje"?
Dodano po 8 [minuty]:
Aktualny kod:
Zaloguj się, aby zobaczyć kod
Dodano po 3 [minuty]:
piotrva napisał: Niestety moim zdaniem program jest zły, bo w przerwaniu (z tego co kiedyś ostro testowałem) nie ma sensu wyłączać samego siebie, gdyż ustawienie flagi i tak blokuje kolejne wystąpienia przerwania do momentu zakończenia jego obsługi. Za to takie operacje podczas moich testów (TYLKO PRZERWANIA, były tylko przerwania i miganie ledami) prowadziły czasem do dziwnych efektów.
Pytanie dodatkowe:
Czy jeżeli zostaje wywołane przerwanie np INT0 - to po jego wywołaniu jest wyłączany tylko globalny system przerwań, a po jego ukończeniu - włączany?