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



Teraz jest 2 kwi 2026, o 23:29


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 14 ] 
Autor Wiadomość
PostNapisane: 14 paź 2014, o 22:14 
Offline
Nowy

Dołączył(a): 14 paź 2014
Posty: 7
Pomógł: 0

Witam wszystkich
Chcę połączyć telefon z androidem z Atmegą644p za pomocą modułu HC-06. Korzystam z płytki EvB 5.1. Problem polega na tym, że kod nie reaguje na przerwania. Sprawdziłem nazwę przerwania od odczytu przez USART w pliku źródłowym "iom644pa.h" w katalogu WinAVR-20100110 oraz tutaj http://www.nongnu.org/avr-libc/user-man ... rupts.html, w nocie sprawdziłem i poprawiłem nazwy rejestrów i dalej nic. Wartość UBRR http://www.wormfood.net/avrbaudcalc.php dla taktowania kwarcem 16mHz.
Telefon wykrywa moduł i daje się z nim sparować (dioda HC-06 stale zapalona), po wysłaniu znaku do uC zapala się dioda na linii RXD układu FT232RL, ale nie ma przerwania i nie zmienia się rejestr UDR0.
Połączenia to VCC 3.3V oraz masa z płytki do HC oraz TXD z HC-06 do RXD z TF232RL. Czy ktoś mógłby rzucić okiem? Załączam kod i proszę o jakieś wskazówki. Z góry dzięki =)
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Ostatnio edytowano 14 paź 2014, o 22:57 przez nex232, łącznie edytowano 2 razy

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 paź 2014, o 22:22 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 mar 2013
Posty: 333
Pomógł: 10

Jaki to wyświetlacz? HD 4470? To czyszczenie wyświetlacza w przerwaniu według mnie nie jest dobre - to trochę trwa a przecież przerwania powinny się wykonywać jak najszybciej. Może w przerwaniu ustawiaj flagę którą będziesz sprawdzał w pętli głównej - i dopiero wtedy czyści ładnie LCD?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 paź 2014, o 22:25 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 mar 2013
Posty: 333
Pomógł: 10

Z doświadczenia wiem ze slimaczące się przerwania nie działają dobrze. Oczywiście funkcje wyświetlania wartości na LCD tez wywal do pętli głównej i steruj poprzez flagę.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 paź 2014, o 22:30 
Offline
Nowy

Dołączył(a): 14 paź 2014
Posty: 7
Pomógł: 0

Dzięki za odpowiedź. Wyświetlacz najzwyklejszy HD44780 2x16. Zostawiłem tylko pierwszą instrukcję w procedurze obsługi przerwania i dalej nic.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 paź 2014, o 22:37 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 mar 2013
Posty: 333
Pomógł: 10

Nie masz warning ów ? , zaincludowales plik interrupts.h?

Jesteś pewny ze przerwanie działa? Może wstaw do przerwania polecenie zapalenia diody - będziesz widział czy przerwanie działa.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 paź 2014, o 22:44 
Offline
Nowy

Dołączył(a): 14 paź 2014
Posty: 7
Pomógł: 0

Tak, interrupts.h na pokładzie. Warningów nie mam, Eclipse podkreśla tylko nazwy rejestrów ale miałem tak już poprzednio po zmianie nazw rejestrów na te odpowiednie dla atmegi644p i nie było problemów. No i właśnie nie mogę uzyskać żadnego dowodu na to, że przerwanie w ogóle się wykonuje. Dodałem zapalanie diody i bez efektów.

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



Ostatnio edytowano 14 paź 2014, o 22:56 przez nex232, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 paź 2014, o 22:54 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 mar 2013
Posty: 333
Pomógł: 10

Ustaw wklejony kod w znaczniki syntax c bo będzie jazda zaraz. Tutaj jest pokazane topic7402.html.

A co do sprawdzania diodą to tutaj jest opisane
http://mirekk36.blogspot.com/2014/04/pu ... ej.htmlHmm

Co do kodu to trochę inaczej zrobiłeś. Udało Ci się uzyskać jakakolwiek transmisję? Może najpierw wypróbuj przykładowego kodu usart z noty pdf?

------------------------ [ Dodano po: 3 minutach ]

W funkcji inicjalizacja usart coś Ci pozjadalo , zauważyłeś?

------------------------ [ Dodano po: 15 minutach ]

Wydaje mi się ze coś z inicjalizacją masz źle. Na stronie 170 w nocie masz przykład prawidłowej inicjalizacji . Na kolejnych stronach są przykładowe funkcje odbiorcze.

------------------------ [ Dodano po: 32 minutach ]

A spróbuj tak:

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


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 paź 2014, o 23:33 
Offline
Nowy

Dołączył(a): 14 paź 2014
Posty: 7
Pomógł: 0

Wartości bajtów w inicjalizacji są właściwie te same. Co do funkcji odbiorczej, teraz kazałem pętli głównej czekać na otrzymanie danych tak jak w funkcji z noty PDF a potem wypisać na LCD jeśli odbierze jakieś dane:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Zastanawiam się czy podpiąłem TxD z Bluetootha do właściwego pinu na płytce, mam go podać na RxD z układu FT232RL, czy wszystko pomieszałem? Chodzi o str. 7 z instrukcji:
http://and-tech.pl/wp-content/uploads/d ... 5.1-v1.pdf

------------------------ [ Dodano po: 6 minutach ]

Atmegowiec napisał(a):
A spróbuj tak:

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


Niestety ciągle nic



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 paź 2014, o 23:39 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 mar 2013
Posty: 333
Pomógł: 10

TX - RX
RX - TX

Może spróbuj na razie bez przerwania, tymi prostymi kodami z noty będziesz miał pewność czy masz prawidłowo skonfigurowane polaczenie



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 paź 2014, o 23:51 
Offline
Nowy

Dołączył(a): 14 paź 2014
Posty: 7
Pomógł: 0

Czyli TxD z Bluetootha bezpośrednio na pin TX z atmegi?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 paź 2014, o 10:46 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 13 maja 2013
Posty: 288
Ostrzeżenia: -2
Pomógł: 23

nex232 napisał(a):
Czyli TxD z Bluetootha bezpośrednio na pin TX z atmegi?


Nie łączy się lini Tx z liniami Tx tylko na krzyż Tx Rx. T - transmiter - Nadajnik , R- receiver - Odbiornik. Wiec jak sam widzisz nie może połączyć linii razem które chcę nadawać.

Proponuje abyś zaczął od początku małymi krokami. Czyli najpierw wystartować z transmisją uC ->PC (terminal) po kablu. Jak to pójdzie to dopiero bluetooth.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 paź 2014, o 13:44 
Offline
Nowy

Dołączył(a): 14 paź 2014
Posty: 7
Pomógł: 0

Tak, wiem że trzeba linie "skrzyżować", po prostu dalej nie ma komunikacji pomimo procedury inicjalizacji z noty PDF.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 paź 2014, o 14:24 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 13 maja 2013
Posty: 288
Ostrzeżenia: -2
Pomógł: 23

Ja bym zaczął od podstaw....
czyli odpalasz sobie Terminal w komputerze podłączasz swój zestaw kabelkiem USB.
Postępuj zgodnie z notą PDF zainicjalizuj UART wyślij znak do Terminala.

Pomocne będą Tobie:
http://mirekk36.blogspot.ie/2013/05/terminal-jako-kolorowy-wyswietlacz-lcd.html

oraz:
http://mirekk36.blogspot.ie/2013/01/rs232-ubrr-jak-prawidowo-obliczac-trick.html

Ponadto to co jest zastanawiające w tym zestawie to:

Cytuj:
Komunikacja zestawu EvB 5.1 z komputerem została zrealizowana za
pomocą konwertera USB-UART FT232RL (wirtualny port COM). Z układu FT232RL
do procesora zostały na stałe doprowadzone linie TXD, RXD oraz DTR
(wykorzystane jako reset procesora) dzięki czemu nie ma potrzeby ich łączenia.
Jednak w przypadku zaistnienia potrzeby odłączenia tych linii wystarczy
rozlutować zwory umieszczone przy układzie FT232RL


No i w takiej konfiguracji raczej nie zalecane jest podpięcie czegokolwiek pod linie procka (Tx, Rx) gdy te są podłączone pod FT232RL.



W ATB firmy Atnel są zworki dzięki czemu masz pełną funkcjonalność zestawu nie jak w Twoim przypadku.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 paź 2014, o 15:00 
Offline
Nowy

Dołączył(a): 14 paź 2014
Posty: 7
Pomógł: 0

bogdanc napisał(a):
No i w takiej konfiguracji raczej nie zalecane jest podpięcie czegokolwiek pod linie procka (Tx, Rx) gdy te są podłączone pod FT232RL.

Dzięki, że mi to wyjaśniłeś. Spróbuję tak jak mówisz najpierw po kablu i zobaczę co i jak, ale obecnie kiepsko u mnie z czasem =/. Na razie dzięki Wam obu za pomoc i wskazówki.



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 7 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