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



Teraz jest 20 kwi 2024, o 12:47


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 27 ] 
Autor Wiadomość
PostNapisane: 15 gru 2014, o 15:59 
Offline
Nowy

Dołączył(a): 11 gru 2014
Posty: 9
Pomógł: 0

Witam,
Ostatnio zakupiłem moduł BT Kamodbtm222. I teraz mam problem z jego obsługą. Moduł jest przylutowany w następujący sposób: RXI > PD1(TXD), TXO > PD0(RXD), nRES > PD3.
Po podłączeniu zasilania moduł uruchamia się poprawnie, a PuTTY wyświetla "martwą" konsole. Czyli moduł jest sprawny. Chciałem pujść dalej i wgrałem do uC program który udostępnia producent. Tutaj zaczęły się problemy. Program zatrzymuje się na wyświetleniu "Initialize" na lcd uC i nic więcej się nie dzieje. Co jest powodem takiego stanu rzeczy? Proszę o pomoc. Dodam że używany prze zemnie uC to ATmega16a i programuje w języku C.

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

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

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 gru 2014, o 16:11 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 kwi 2013
Posty: 418
Lokalizacja: Rzeszów
Pomógł: 102

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

Takie zapisy w kodzie programu mogą powodować problemy i najlepiej przenieść te definicje do makefile'a.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 gru 2014, o 16:16 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

W eclipse samo wpisuje sie do mkfile w as nie wiem bynajmniej nie tak definiuje sie kwarc. A jak masz problem z kupnym modulem to moze lepiej napisac do producenta ze sa z nim problemy?

Namazane ze smarta.

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 gru 2014, o 17:17 
Offline
Nowy

Dołączył(a): 11 gru 2014
Posty: 9
Pomógł: 0

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

To nie pomogło. Mogę się skontaktować z producentem, ale osobiście uważam że to ja gdzieś błąd robię, np. w kodzie, albo źle podłączyłem. Dlatego pytam.



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

Dołączył(a): 11 sty 2013
Posty: 1760
Pomógł: 196

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

nie powinny być z rozszerzeniem *.h ?

Pozdr.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 gru 2014, o 20:44 
Offline
Nowy

Dołączył(a): 11 gru 2014
Posty: 9
Pomógł: 0

Właśnie też mi się tak wydawało, ale jak dam .h to wywala mnóstwo błędów undeclared function.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 gru 2014, o 20:48 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 lut 2013
Posty: 600
Pomógł: 47

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

w main.c

_________________
https://www.instagram.com/myfirstquadcopter/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 gru 2014, o 20:50 
Offline
Użytkownik

Dołączył(a): 29 mar 2012
Posty: 595
Lokalizacja: Jaworzno
Pomógł: 39

beq1993 napisał(a):
Właśnie też mi się tak wydawało, ale jak dam .h to wywala mnóstwo błędów undeclared function.

Wg mnie to nawet dobrze, że wywala. Przynajmniej można się zorientować o co 'jemu' się rozchodzi ;-) . Tylko, że dalej nikt z nas nie wie co wywala więc trudno Ci pomóc.

_________________
Pozdrawiam
PP



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 gru 2014, o 01:29 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 sty 2013
Posty: 1760
Pomógł: 196

Witam
M.in w pliku KAmodBTM222.h brakuje deklaracji dwóch funkcji - o tym mówi kompilator gdy nie jest uciszony przez podmianę *.h na *.c

Pozdr.



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

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

Kolego nigdy nie includujemy plikow.c a pliki.h wiec zmien to i podaj co isze w console.

Namazane ze smarta.

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 gru 2014, o 13:40 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 29 maja 2013
Posty: 432
Lokalizacja: Gostyń / Poznań
Pomógł: 25

a w pliku .h dodaj jeszcze

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


O czym ci napisał kolega @kicajek

_________________
Podpis...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 gru 2014, o 15:22 
Offline
Nowy

Dołączył(a): 11 gru 2014
Posty: 9
Pomógł: 0

Ok zmieniłem na .h. Przepraszam za błąd, ale dopiero przesiadłem się z Asembler'a na C. Dodałem także definicje jak kazał @kicajek i @eMCe2. Oto co wyświetla konsola:
Kod:
**** Build of configuration Release for project Wys ****

make all
Building file: ../main.c
Invoking: AVR Compiler
avr-gcc -Wall -Os -fpack-struct -fshort-enums -ffunction-sections -fdata-sections -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega16 -DF_CPU=16000000UL -MMD -MP -MF"main.d" -MT"main.d" -c -o "main.o" "../main.c"
../main.c: In function 'main':
../main.c:126: warning: implicit declaration of function 'sprintf'
../main.c:126: warning: incompatible implicit declaration of built-in function 'sprintf'
Finished building: ../main.c
 
Building target: Wys.elf
Invoking: AVR C Linker
avr-gcc -Wl,-Map,Wys.map -mmcu=atmega16 -o "Wys.elf"  ./main.o   
./main.o: In function `main':
main.c:(.text.main+0x20): undefined reference to `LCD_Initialize'
main.c:(.text.main+0x28): undefined reference to `LCD_GoTo'
main.c:(.text.main+0x30): undefined reference to `LCD_WriteText'
main.c:(.text.main+0x38): undefined reference to `LCD_GoTo'
main.c:(.text.main+0x40): undefined reference to `LCD_WriteText'
main.c:(.text.main+0x5a): undefined reference to `LCD_GoTo'
main.c:(.text.main+0x62): undefined reference to `LCD_WriteText'
main.c:(.text.main+0x66): undefined reference to `KAmodBT_Initialize'
main.c:(.text.main+0x72): undefined reference to `LCD_GoTo'
main.c:(.text.main+0x7a): undefined reference to `LCD_WriteText'
main.c:(.text.main+0x80): undefined reference to `KAmodBT_EnterATMode'
main.c:(.text.main+0x8c): undefined reference to `LCD_GoTo'
main.c:(.text.main+0x94): undefined reference to `LCD_WriteText'
main.c:(.text.main+0x9c): undefined reference to `LCD_GoTo'
main.c:(.text.main+0xa4): undefined reference to `LCD_WriteText'
main.c:(.text.main+0xac): undefined reference to `KAmodBT_SetName'
main.c:(.text.main+0xb8): undefined reference to `LCD_GoTo'
main.c:(.text.main+0xc0): undefined reference to `LCD_WriteText'
main.c:(.text.main+0xc8): undefined reference to `LCD_GoTo'
main.c:(.text.main+0xd0): undefined reference to `LCD_WriteText'
main.c:(.text.main+0xd8): undefined reference to `LCD_GoTo'
main.c:(.text.main+0xe0): undefined reference to `LCD_WriteText'
main.c:(.text.main+0xee): undefined reference to `KAmodBT_GetPin'
main.c:(.text.main+0x134): undefined reference to `LCD_GoTo'
main.c:(.text.main+0x13a): undefined reference to `LCD_WriteText'
main.c:(.text.main+0x140): undefined reference to `KAmodBT_GetName'
main.c:(.text.main+0x148): undefined reference to `LCD_GoTo'
main.c:(.text.main+0x14e): undefined reference to `LCD_WriteText'
main.c:(.text.main+0x152): undefined reference to `KAmodBT_Reset'
main.c:(.text.main+0x170): undefined reference to `KAmodBT_SendBuffer'
make: *** [Wys.elf] Error 1

**** Build Finished ****



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

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

Pomaz includy z main.c bo brak tam na pewno includa od sprintf i od libsa z lcd. Dodatkowo brak ci deklatacji 2 funkcji w kamod.....h

Namazane ze smarta.

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 gru 2014, o 15:44 
Offline
Moderator
Avatar użytkownika

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

beq1993 ---> szanowny panie kolego ..... polecam jednak zacząć od książki:

http://atnel.pl/mikrokontrolery-avr-jezyk-c.html

i poczytać o PODSTAWACH języka C ... bo widać, że od samego początku twój problem to właśnie brak podstaw ... czyli jak dzieli się projekt na pliki nagłówkowe i źródłowe, jak działa kompilacja , jak się korzysta z funkcji itp itd

_________________
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: 16 gru 2014, o 15:45 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 29 maja 2013
Posty: 432
Lokalizacja: Gostyń / Poznań
Pomógł: 25

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


Zmien to z .c na .h i bedzie git

_________________
Podpis...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 gru 2014, o 16:17 
Offline
Nowy

Dołączył(a): 11 gru 2014
Posty: 9
Pomógł: 0

Ok wszystko pozmieniane, ale konsola wyświetla to samo. Wstawiam kody po poprawkach:
main.c
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

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

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

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

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


@mirekk36 Chętnie zakupiłbym książkę, ale mieszkam za granicą. 70 zł wysyłki to jest dla mnie zbyt duża suma. Zauważając że sama książka kosztuje 115 zł.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 gru 2014, o 23:17 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 sty 2013
Posty: 1760
Pomógł: 196

beq1993 napisał(a):
Ok wszystko pozmieniane, ale konsola wyświetla to samo. Wstawiam kody po poprawkach:


kurnachatka napisał(a):
Wydaje mi się że brakuje ci też:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

w main.c

...chyba nie wszystko.
Myślę, że masz bałagan w rozmieszczeniu plików. Czy Twoje "drzewko" wygląda tak?
Obrazek

Pozdr.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 gru 2014, o 21:27 
Offline
Nowy

Dołączył(a): 11 gru 2014
Posty: 9
Pomógł: 0

Dobra teraz już wszystko ogarnąłem w Eclipse. Program się kompiluje i nie wywala żadnych ostrzeżeń. Tylko nadal jest ten sam problem program staje na wyświetleniu "Initialization". Czy na pewno wszystko dobrze przylutowałem, do dobrych Pinów?
Jeszcze raz wstawię kody po wszystkich przeróbkach:
Main.c
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

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

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

A tak wygląda moje drzewko:
Obrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 gru 2014, o 23:04 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 sty 2013
Posty: 1760
Pomógł: 196

Witam
beq1993 napisał(a):
...Czy na pewno wszystko dobrze przylutowałem, do dobrych Pinów?

...takie pytanie na forum ;)
W oryginalnym main.c podane są PIN'y PD1, PD0 i PB1 - nie wiem jak podłączyłeś a jak masz w programie.

Pozdr.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 gru 2014, o 19:36 
Offline
Nowy

Dołączył(a): 11 gru 2014
Posty: 9
Pomógł: 0

Trochę pokombinowałem. Wszystko sprawdziłem i wszystko jest dobrze zlutowane i na dobrych PIN'ach, ale program niestety nadal nie działa. Ma ktoś jeszcze jakieś propozycje na ten temat?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 gru 2014, o 19:53 
Offline
Użytkownik

Dołączył(a): 29 mar 2012
Posty: 595
Lokalizacja: Jaworzno
Pomógł: 39

Kolego beq1993. Zadając pytanie należało by podać jakiego procka używasz, i jakiś schemat jak masz to połączone.

_________________
Pozdrawiam
PP



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

Dołączył(a): 11 sty 2013
Posty: 1760
Pomógł: 196

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

wygląda dziwnie - 3<<UCSZ0 - ale to tak "wzrokowo"
beq1993 napisał(a):
Dodam że używany prze zemnie uC to ATmega16a


Pozdr.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 gru 2014, o 20:15 
Offline
Nowy

Dołączył(a): 11 gru 2014
Posty: 9
Pomógł: 0

Tak jak już napisałem używam ATmega16a. A połączenia to TXO> PD0, RXD>PD1 i nRES>PD7. Oczywiście zmieniłem w pliku KAmodBTM222.h
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


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

Ten kod jest poprawny czy nie? Wydaje mi się że tak.



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

Dołączył(a): 11 sty 2013
Posty: 1760
Pomógł: 196

beq1993 napisał(a):
Ten kod jest poprawny czy nie? Wydaje mi się że tak

...nie wiem czy jest poprawny, ale spróbuj sobie to rozpisać binarnie - wyjdzie Ci taki koszmarek.
Być może jest to prawidłowy zapis, tylko na ogół chcąc coś zapisać do danego rejestru podajemy na którym miejscu ma znaleźć się jedynka a nie trójka. To jest tylko mój tok rozumowania; niekoniecznie poprawny.

Pozdr.



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

Dołączył(a): 29 sty 2012
Posty: 777
Lokalizacja: Karpicko k. Wolsztyna
Pomógł: 197

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


UCSZ0 ma wartość jeden więc (3<<1) przesunie nam liczbę trzy o jedno miejsce w lewo
0b00000011<<1 = 0b00000110

W rezultacie ten zapis ustawi nam bity UCSZ1 i UCSZ0.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 gru 2014, o 20:57 
Offline
Nowy

Dołączył(a): 11 gru 2014
Posty: 9
Pomógł: 0

Czyli co może być problemem?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 gru 2014, o 21:42 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 sty 2013
Posty: 1760
Pomógł: 196

jacekk232 napisał(a):
Taki zapis jest poprawny

...oczywiście; poprzednio źle się wyraziłem - każdą liczbę , nie tylko jedynkę da się przesunąć lecz taki zapis jest troszkę zagmatwany.
Czytelniej by było:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

W tym ustawieniu masz 8 bit danych - chyba dobrze.

Pozdr.



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

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