Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 12 mar 2026, o 17:39


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
Autor Wiadomość
PostNapisane: 9 mar 2014, o 02:05 
Offline
Nowy

Dołączył(a): 09 mar 2014
Posty: 9
Pomógł: 0

pierwszy post więc witam wszystkich!
mam taki problem walczę z nim już od kilku dni i jestem bliski kapitulacji, a jak znam życie to problemem jakaś bzdura..

Buduję układ który bedzie sterował wentylatorem zależnie od wilgotności i temperatury, układ sterowany pilotem.

Problem polega na tym że układ "resetuje" się gdy odczytuję rejestr OCR2, bez znaczenia czy przerwania są włączone czy timer2 działa ani tryb jego działania(problemu nie ma dla innych rejestrów OCR). Problem również występuję dla niektórych przycisków pilota, np. przycisk o kodzie 98 powoduje reset, a 132 już nie.

wyjaśnie jeszcze na czym polega ten "reset". Nie jest to reset sprzętowy rejestr MCUCSR jest pusty, wygląda to tak jak by procesor rozpoczynał program od początku main().

schemat:
Obrazek

kod:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Obrazki umieszczamy w/g zaleceń topic44.html
Różowo-zielony (czyli sraczkowy) J.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 mar 2014, o 02:15 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27450
Lokalizacja: Szczecin
Pomógł: 1045

Tak na początek - nie rób tego:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


czyli takich "ala" deklaracji procedur obsługi przerwań bo to kompletnie niepotrzebne :( ... to już jest w pliku nagłówkowym <avr/interrupts.h> - ok ?

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 mar 2014, o 09:02 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 gru 2013
Posty: 202
Lokalizacja: Koszalin
Pomógł: 22

Na schemacie masz jeszcze mały błąd z oznaczeniem zasilania
Obrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 mar 2014, o 14:41 
Offline
Nowy

Dołączył(a): 09 mar 2014
Posty: 9
Pomógł: 0

dzięki za wskazówki!
tak zauważyłem ten błąd na schemacie, ale juz po napisaniu posta.
dodadkowa obserwacja:
samo "testowa=OCR2;" nie powoduje problemów dopiero wyświetlenie wartości "testowa" na LCD powoduje reset, ale nie za każdym razem.
natomiast reset powodowany przez pilota jest niezależny od wyświetlenia kodu.

edit:
poddaję się.. zaczynam od początku.

zredukowałem kod do minimum, a układ ciągle wariuje, pewnie problemem jest obsługa lcd
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


edit2:

problemem jest LCD. Podłączyłem diode do PB1 którą zapalam przed wejściem do while() i gasze w while(). jeśli układ się resetuje to dioda miga, jeśli działa to układ pracuje poprawnie.
w pustym programie było ok, uruchomiłem program sterownika bez funkcji wyświetlania i dioda pozostaje zgaszona!

dziwne, w ten sam sposób obsługuje wyświetlacz w innym użądzeniu i pracuje poprawnie.


Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


edit3:
problem rozwiązany!
uszkodzona płytka stykowa...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 mar 2014, o 22:19 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27450
Lokalizacja: Szczecin
Pomógł: 1045

Antystatyczny napisał(a):
Mam jeszcze taką sugestię, byś nie includował plików źródłowych, a jedynie nagłówkowe. Tak więc w Twoim przypadku includujesz HD44780.h, a nie HD44780.c, ok? :)

Pozdrawiam


O kurczę Anty - masz sokole oko - ja nawet nie zauważyłem tego - a może nawet się nie spodziewałem wręcz aż takiego błędu ....

a to jest tragiczny błąd w C - jeśli chodzi o ścisłość.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO