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



Teraz jest 23 mar 2026, o 04:18


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 8 ] 
Autor Wiadomość
PostNapisane: 7 cze 2014, o 19:32 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 15 lut 2014
Posty: 30
Pomógł: 0

Cześć,
tym razem zmagam się ze zrobieniem małej stacji pogodowej opartej na DS'ach18b20, wyświetlaczu PCD8544, fotorezystorze(sprawdzanie jasności, niezaimplementowane jeszcze) i DHT-11 (także jeszcze nie zrobione), a to wszystko okraszone wysyłaniem danych po UART'cie. Procesor jaki wybrałem to ATMega328P, a wyświetlacz jest od Nokii 5110.
Korzystam z bibliotek p. Mirka do UART'a odpowiednio przerobionej z BB i SunRivera do wyświetlacza: http://forum.atnel.pl/topic2115.html
Podstawą programu jest projekt termometru 1Wire z BB także.

Problem jest taki, że po dodaniu jakiegokolwiek polecenia procesor się zatrzymuje (w miejscu dodania), przerwanie, tykające sobie w tle, także. Nie dotyczy to oczywiście inicjalizacji, bo ona chyba jakoś idzie. Bez używania UART'a całe wyświetlanie działa poprawnie i nie mam co do tego zastrzeżeń. O co więc może tutaj chodzić?

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


Będę wdzięczny za udzieloną mi pomoc.
Pozdrawiam.



Ostatnio edytowano 9 cze 2014, o 19:07 przez ReaBooK, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 cze 2014, o 19:43 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Zrób Clean projektu potem Build i wrzuć tutaj ostrzeżenia z konsoli.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 cze 2014, o 19:45 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 15 lut 2014
Posty: 30
Pomógł: 0

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


Wyrzuca te warningi, ale wyświetlanie działa ;_; Miałem zabrać się za to, ale jakoś nie miałem weny, żeby majstrować przy tym.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 cze 2014, o 20:02 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Jak to wszystko to trop mi się urwał (myślałem, że może coś nie tak z nazwami przerwań). Możesz zrobić jeszcze 2 rzeczy.
1. Sprawdź czy tą linię masz "zakomentowaną" w pliku mkuart.h:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

2. Uruchom tylko uart.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 cze 2014, o 20:12 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 15 lut 2014
Posty: 30
Pomógł: 0

Hmm...
Linijkę mam zakomentowaną, a UART samodzielnie działa na innym programie.
Wyrzuciłem obsługę wyświetlacza, a wtedy też UART już nie działa. Czyżby to 1Wire i UART nie mogły się zakolegować?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 cze 2014, o 20:42 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Przy obsłudze 1-Wire przerwania są na chwilę wyłączane. Nie sądzę, aby to był problem. Przygotuj jakiś prosty plik main z obsługą 1-Wire i usart, ale bez wyświetlacza PCD8544 to będzie można sprawdzić taki kod.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 cze 2014, o 06:47 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 15 lut 2014
Posty: 30
Pomógł: 0

Ograniczyłem kod i... działa. No już nie wiem o co chodzi tej ATMedze.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Sprawdzałem wcześniej pierwotny kod i wszystko zatrzymywało się dopiero przy sprawdzeniu czy dana rzecz została jest wysłana (sprawdzanie stanu rejestru w pętli while). Wydaje mi się to nieco dziwne.

[offtop] Chciałbym się jeszcze przy okazji dopytać, czy można dostosować bibliotekę do AVR'a na podstawie jakiejś predefiniowanej wartości jak z F_CPU?[/offtop]

/***********************************************/

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


Działa, ale tylko bezpośrednio po wgraniu kodu. Każdy restart lub wyłączenie zasilania powoduje zacinanie się kodu na głównej pętli, przerwanie, które ustawia s1_flag na 1, juz się nie wykonuje.
Nie wiem jak to racjonalnie wytłumaczyć, jak zawsze u mnie działa magia i zjawiska paranormalne.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 cze 2014, o 19:37 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 15 lut 2014
Posty: 30
Pomógł: 0

Pozwolę sobie napisać nowy post.

Pogrzebałem coś w kodzie, pozamieniałem ATmegi i wszystko zaczęło się ruszać. Odczytywanie temperatury z dwóch czujników, wilgotności, jasności, a to wszystko okraszone wysyłaniem tych informacji przez Bluetooth'a. Dodaję zdjęcia z mojego lamerskiego polutowania płytki. Zostało mi jeszcze zrobić gniazdko na moduł BT i będzie gotowe :)

ObrazekObrazekObrazek

Ach no tak, zapomniałem jeszcze kondensatorki dolutować do kwarcu ;_;



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: 8 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

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


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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO