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



Teraz jest 21 mar 2026, o 12:16


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 21 ] 
Autor Wiadomość
PostNapisane: 21 lis 2013, o 23:20 
Offline
Użytkownik

Dołączył(a): 30 paź 2013
Posty: 32
Pomógł: 0

Witam

Pierwszy post tutaj z malym problemem.

Chce stworzyc uklad sterujacy dwoma przekaznikami za pomoca smartfona.

To sa moje pierwsze kroki uC tazke prosze o wyrozumialosc.

Calosc na poczatek chcialbym postawic na atb 1.04 plus btm222.

program na appinventorze pod androida poszedl bez problemu. tak samo konfiguracja przez at btm'a. programowanie samego procka, fusy itd. tez juz ogarniete.

Ale dalej trafilem na mala sciane.

Zalozenie mam takie ze program smartfonowy poda na TX wartosc jeden lub dwa, atmega32 to przeczyta i wysle na port b sygnal ktory wysteruje tranzystor a nastepnie przekaznik.

problem mam z inicjalizacja uarta.

na razie popelnilem cos takiego:

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


baud na 19200 , osiem bitow , bez parzystosci , jeden bit koncowy.
wg. tabelki bedzie blad 0,2 % czyli chyba git.
probowalem tez ubrll=51 ale to tez nie dziala.

zdaje sobie sprawe ze to moze byc bardzo glupi problem dla ogarnietej czesci forumowiczow ale kazdy od czegos zaczynal;).

prosze o pomoc. bede wdzieczny - moge pomoc forumowiczom w kazdym zagadnieniu zwiazanym z samochodami.

pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 lis 2013, o 00:02 
Offline
Moderator
Avatar użytkownika

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

kłopot w tym, że to co kolega tu napisał nawet nigdy się nie skompiluje :( niestety same błędy ...

podstawowy to taki, że kolega nie wie na razie w ogóle co to są funkcje i jak się zaczyna pisać jakiś najprostszy program. Dlaczego to piszę ? no bo kolega umieszcze funkcję w funkcji

nie dość tego - to nawet nie jest cały kod go gdzie jest np funkcja odbierz() ? czy jej w ogóle nie ma ?

ja nieśmiało zaproponowałbym jednak aby wystartować od książki:

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

wtedy się naprawdę DUŻO wyjaśni - bo tu kolega chyba pozbierał tak na czuja z różnych stron, różne fragmenty jakichś kodów i tak złożył na zasadzie, że może się uda - dobrze myślę ?

A książka pomoże krok po kroku zrozumieć co trzeba robić i jak zaczynać - w tym kodzie nie da rady powiedzieć żeby np poprawić coś tam w linijce tej czy siamtej - bo wszystko jest źle

kolega nie mógł nic próbować z tym "ubrll=51" jak piszesz wyżej - bo taki kod nie jest się nawet w stanie skompilować :(

_________________
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: 22 lis 2013, o 01:26 
Offline
Moderator
Avatar użytkownika

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

Może jeszcze coś - napisz dokładnie

jakiego środowiska używasz ? (Eclipse? Avr Studio? Atmel Studio? czy jeszcze coś innego)

napisz jakie błędy wyświetlają ci się przy kompilacji

pokaż ew jakieś zrzuty ekranu z tymi błędami

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: 22 lis 2013, o 02:48 
Offline
Użytkownik

Dołączył(a): 30 paź 2013
Posty: 32
Pomógł: 0

ksiazke oczywiscie mam - jednak przy praktycznej stronie "czacha dymi" , uwazam ze dalsze brnicie tylko w lekture bedzie duzo mniej efektywne niz rozpoczecie praktycznej strony razem z teoretyczna. oczywiscie moge sie mylic. informacji przyswojonych jest tak duzo ze przy pisaniu powstaje metlik w glowie.

kod ktory podalem jest wynikiem calodziennej flustracji i doskonale zdaje sobie sprawe ze program jest smieciem :D

moze napisze jak rozumiem kod ktory napisalem zeby nie bylo ze na pale cos z internetu przeklepalem:

#include <avr/io.h> // dyrektywa "dołaczajaca" biblioteke wejsc i wyjsc w standardowym miejscu bibliotek dla kompilatora

#define FOSC 8000000 // definicja taktowania procka 8mhz

#define BAUD 19200 // definicja baud rate na 19200

#define MYUBRR FOSC/16/BAUD-1 // definicja podstawowego wzoru na obliczenie ubrr dla u2x=0

dalej jest rzeczywiscie funkcja w funkcji

void USART_Init (unsigned int ubrr) // funkcja/implementacja usart ktora nie zwraca wartosci, potrzebuje argumentu bez podanego znaku ubrr czyli dodatni 0...65535


UBRRL = (unsigned char)ubrr; // przypisuje ubrrl wartosc ubrr i informuje ze to wartorsc bez zdefiniowanego znaku (czyli dodatni) -128...127

I wlasnie, spotkalem sie w internecie z zapisami tylko wartosci ubrll=x , gdzie x to wartosci z tabelki pdfa procka, dalej byla tylko deklaracja ile bitow danych i stopu - wnioskuje po odpowiedzi ze to jednak do niczego sie nie nadaje.

UCSRB=(1<<RXEN) |(1<<TXEN); //uaktywnia nadawanie i odbieranie danych po nozkach rx i tx

UCSRC=(1<<URSEL)| (1<<UCSZ1) | (1<<UCSZ0); // ucsz0 i ucsz1 to identyfikator ze bedzie 8 bitow danych a ursel ze bedziemy korzystac z rejestru ucsrc

i tutaj mialem watpliwosci czy teraz dopiero nie wejsc z int main (void) ;

DDRB=0xff ; //ustawia port b jako wyjscie

PORTB=0xff ; // przypisuje jedynke do portu b czyli stan wysoki?

uint8_t odebrano; //definiuje funkcje odebrano w zakresie 0-255

for(;;) // funcja for z pominieciem init, zapetlona bez warunku i bez zdefiniowanego kroku

funkcja odbierz= odebrano tez zbedna po w sumie po co mi zwracac

if (odebrano==0x31) {PORTB=0Xff; PORTB&=~_BV(1); nadajznak(odebrano);} //"1" // jesli odebrano rowna sie jeden (to niby ma wyslac btm) to ma wyslac stan wysoki na pb1 , nadajznak jest zbedne

if (odebrano==0x32) {PORTB=0xff; PORTB&=~_BV(2); nadajznak(odebrano);} //"2" // jesli odebrano dwa to port pb2

te dwie instrukcje skopiowalem z jakiegos programu sterujacego diodami tu sie przyznaje

brakuje jeszcze chyba instrukcji do odbierania sygnalow z uarta

moze rzeczywiscie powinienem jeszcze raz przeczytac bluebooka ale moze ktos poratuje jakims dzialajacym kodem ktory moglby mi posluzyc jako nauka praktyczna

dzieki za odpowiedz Mirek, nawet taka druzgoczaca - jestes super gosciu ze chce Ci sie odpowiadac na takie z twojego punkt widzenia idiotyzmy wszelakiej postaci.

------------------------ [ Dodano po: 5 minutach ]

pracuje z avr studio - tak aby bylo kompatybilnie z bluebookiem

wywala mi jeden blad przy kompilacji

Build started 22.11.2013 at 02:51:29
avr-gcc -mmcu=atmega32 -Wall -gdwarf-2 -Os -std=gnu99 -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT main.o -MF dep/main.o.d -c ../main.c
../main.c: In function 'main':
../main.c:10: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
make: *** [main.o] Error 1
Build failed with 1 errors and 0 warnings...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 lis 2013, o 03:22 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 lip 2013
Posty: 143
Pomógł: 1

corey napisał(a):
moze rzeczywiscie powinienem jeszcze raz przeczytac bluebooka ale moze ktos poratuje jakims dzialajacym kodem ktory moglby mi posluzyc jako nauka praktyczna


kod z rozdziału 5.8 się nada ;) . Na jaki mikrokontroler kolega pisze ?

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 lis 2013, o 10:18 
Offline
Moderator
Avatar użytkownika

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

corey napisał(a):
ksiazke oczywiscie mam - jednak przy praktycznej stronie "czacha dymi" , uwazam ze dalsze brnicie tylko w lekture bedzie duzo mniej efektywne niz rozpoczecie praktycznej strony razem z teoretyczna. oczywiscie moge sie mylic.
No na pewno nie tylko lektura i teoria - trzeba też praktyki - ale bez powrotu do książki się po prostu nie uda :(

corey napisał(a):
informacji przyswojonych jest tak duzo ze przy pisaniu powstaje metlik w glowie.

Tu nie ma co się dziwić - po prostu nie da się tak w jednej chwili wszystkiego opanować to wymaga czasu i podziału nauki na etapy ... mi się wydaje, że kolega przeskoczył po prostu ZA DALEKO - w ogóle nie ćwicząc podstaw C na zwykłych diodach LED i klawiszach itp nie ćwiczył podstawowych konstrukcji programowych - funkcji, typów - a to się ZDECYDOWANIE łatwiej robi gdy migami jedną lub dwoma diodami LED na początku niż od razu po lekturze teorii C wskoczyć na komunikację RS232 :(

corey napisał(a):
moze napisze jak rozumiem kod ktory napisalem zeby nie bylo ze na pale cos z internetu przeklepalem:
O! proszę i bardzo dobra decyzja - ale zaraz pokażę i udowodnię że jednak (może nie wszystko) ale wmieszał tu kolega pewne rzeczy z internetu i to bez 2 zdań i to takie rzeczy, które są tragiczne :( niestety ale już - po kolei:

corey napisał(a):
#include <avr/io.h> // dyrektywa "dołaczajaca" biblioteke wejsc i wyjsc w standardowym miejscu bibliotek dla kompilatora
BARDZO DOBRZE !

corey napisał(a):
#define FOSC 8000000 // definicja taktowania procka 8mhz
TO JUŻ MASAKRA z INTERNETU - proszę sobie w tym miejscu zajrzeć jak to jest opisane i pokazane w książce - widzi kolega jak łatwo dostrzec takie rzeczy ;) bo nic takiego w książce nie ma - jest ZDECYDOWANIE inaczej

corey napisał(a):
#define BAUD 19200 // definicja baud rate na 19200
#define MYUBRR FOSC/16/BAUD-1 // definicja podstawowego wzoru na obliczenie ubrr dla u2x=0
Jeśli kolega kupił teraz niedawno książkę II-wydanie w twardej oprawie to też czegoś takiego nie ma - a więc znowu odeślę do książki

dalej jest rzeczywiscie funkcja w funkcji

corey napisał(a):
void USART_Init (unsigned int ubrr) // funkcja/implementacja usart ktora nie zwraca wartosci, potrzebuje argumentu bez podanego znaku ubrr czyli dodatni 0...65535
Prawie dobrze ale uściślę, to nie jest żadna implementacja usart tylko jedna z funkcji do obsługi usart a konkretnie inicjalizacja modułu sprzętowego w procku. Przekazujemy do niej argument w postaci wyliczonej przez makro wyżej - który ma być wartością pary rejestrów UBRRH i UBRRL


corey napisał(a):
UBRRL = (unsigned char)ubrr; // przypisuje ubrrl wartosc ubrr i informuje ze to wartorsc bez zdefiniowanego znaku (czyli dodatni) -128...127
Uściślam - tak przypisuje wartość - ale nic nie informuje - tylko ew jest tu robione jawne rzutowanie na tym unsigned char. Przy czym jest to przykład z noty a dalej w książce używam i na DVD już typów zalecanych w AVR GCC czyli uint8_t


corey napisał(a):
UCSRB=(1<<RXEN) |(1<<TXEN); //uaktywnia nadawanie i odbieranie danych po nozkach rx i tx

UCSRC=(1<<URSEL)| (1<<UCSZ1) | (1<<UCSZ0); // ucsz0 i ucsz1 to identyfikator ze bedzie 8 bitow danych a ursel ze bedziemy korzystac z rejestru ucsrc
DOBRZE

corey napisał(a):
i tutaj mialem watpliwosci czy teraz dopiero nie wejsc z int main (void) ;

I TU LEŻY NAJWIĘKSZY BÓL kolegi - no brak fundamentalnych podstaw - które są opisane w książce - więc jak się ma wątpliwości co jest normalne - to się wraca na chwilę do książki do rozdziału o funkcjach aby zobaczyć o co z nimi chodzi - mi się wydaje że każdy tak robi z książką jak się czegoś uczy - przynajmniej ja zawsze tak traktuję książki. Więc polecam tu powrót do tego rozdziału bo inaczej kolega nie wybrnie. Ja przypomnę tylko że nie może być takich konstrukcji gdy weźmiemy np dwie funkcje o nazwach fun1() i fun2()

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


a niestety kolega coś takiego zrobił :( to musi być tak:

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




corey napisał(a):
DDRB=0xff ; //ustawia port b jako wyjscie
ok ale pamiętaj że wszystkie piny tego portu

corey napisał(a):
PORTB=0xff ; // przypisuje jedynke do portu b czyli stan wysoki?
Nie przypisuje jedynki do portu tylko przypisuje jedynkę do KAŻDEGO pinu portu, tak ustawia każdy pin w stan wysoki

corey napisał(a):
uint8_t odebrano; //definiuje funkcje odebrano w zakresie 0-255

No i tu już KOMPLETNA KLAPA :( ..... sorki - ale to oznacza - niech kolega sam zobaczy i tu puknie się w pierś - że TOTALNIE ale to TOTALNIE nie rozumie co to jest funkcja a co to jest zmienna w języku C. Ale nie załamuj się - tego dasz radę się nauczyć - tyle że wszystko po kolei ok ? na koniec podpowiem co to wg mnie znaczy po kolei

corey napisał(a):
for(;;) // funcja for z pominieciem init, zapetlona bez warunku i bez zdefiniowanego kroku

To już jest wynikiem masakry wyżej - więc nawet nie będę mówił jak źle - po prostu musi kolega poczytać co to są pętle a szczególnie pętla for() - opisana oczywiście w książce

corey napisał(a):
funkcja odbierz= odebrano tez zbedna po w sumie po co mi zwracac
???? tu dajmy spokój

corey napisał(a):
if (odebrano==0x31) {PORTB=0Xff; PORTB&=~_BV(1); nadajznak(odebrano);} //"1" // jesli odebrano rowna sie jeden (to niby ma wyslac btm) to ma wyslac stan wysoki na pb1 , nadajznak jest zbedne

Tak tak - gdyby "odebrano" to była funkcja i to dobrze napisana a nie zmienna to nawet ten cały opis miałby jakiś sens - tylko ciekaw jestem skąd tu się nagle pojawił SUPER KOCI zapis _BV(1) ??? ale ja wieeeeeem skąd i dlaczego on się pojawił ;) hehe ..... kolega uznał że kompletnie nie rozumie przesunięć bitowych i pewnie że nawet nie ma co się ich uczyć - a w internecie znalazł _BV() i hulaj dusza piekła nie ma :) ... no powiedz mi że się mylę ? ;) .... a tymczasem to twój największy błąd - że darowałeś sobie zrozumienie przesunięć bitowych - zapamiętaj - programując w C na procki bez zrozumienia tego - po prostu zginiesz - nie ma nawet sensu iść dalej .... Zamiast omijać problemy gdy czegoś nie rozumiesz jak czytasz książkę - to PYTAJ PYTAJ PYTAJ - po to jest to forum i pewnie nie tylko ja ale i każdy chętnie ci pomoże. A ty przeleciałeś jak rakieta przez teorię C której W OGÓLE jak widać ni w ząb nie poznałeś i zamiast ćwiczyć pierwsze proste przykłady na LED'ach rzuciłeś się nie na głęboką wodę ale od razu do rowu mariańskiego :(

corey napisał(a):
if (odebrano==0x32) {PORTB=0xff; PORTB&=~_BV(2); nadajznak(odebrano);} //"2" // jesli odebrano dwa to port pb2
.... sorki ale bez sensu

corey napisał(a):
te dwie instrukcje skopiowalem z jakiegos programu sterujacego diodami tu sie przyznaje
Ale nie musisz się przyznawać - uwierz to od razu widać ....

corey napisał(a):
brakuje jeszcze chyba instrukcji do odbierania sygnalow z uarta

Nie instrukcji tylko właśnie FUNKCJI - tyle że musisz poczytać co to są funkcje w C

corey napisał(a):
moze rzeczywiscie powinienem jeszcze raz przeczytac bluebooka

MOŻE ????? ;) panie kochany ty przede wszystkim źle zabierasz się za naukę - nie wiem w ogóle jak tak można? Pomyśl - czy jest ktoś na świecie kto weźmie jakąś książkę w łapki - RAZ albo nawet DWA ją przeczyta w całości (taką techniczną książkę) i nagle usiądzie do kompa i zacznie programować ? Czy jest ktoś na świecie taki ? podpowiem NIE MA. A ty tak próbujesz się nauczyć ? Kolego książka jest po to aby czytać i ćwiczyć .... czytać i ćwiczyć .... czytać i ćwiczyć .... czytać i ćwiczyć .... czytać i ćwiczyć .... czytać i ćwiczyć .... czytać i ćwiczyć .... czytać i ćwiczyć .... czytać i ćwiczyć .... czytać i ćwiczyć .... a nie po to żeby przeczytać i od razu umieć. Dlatego wejdź sobie teraz otwórz książkę na stronie 75 - rozdział 3. Podstawy języka C - i zacznij spokojnie czytać - a jak tylko się na czymś zatniesz, czegoś nie zrozumiesz - nawet jeśli będzie ci się wydawało głupie pytanie - to nie myśl tak - tylko pytaj bo to TRZEBA ZROZUMIEĆ

i nie myśl że wszystko i tak od razu zapamiętasz tak jak wiersz którego się dziecko uczy na pamięć w szkole. Tu podstawa to zrozumienie jak to działa - a później zawsze można wrócić do książki albo do internetu - np hmmmm eeeeh zapomniałem jak działa dokładnie pętla for() no to ciach strona 64 w książce i przypominam sobie i testuję - i migam z nią diodą

a nie to co ty tu wyżej piszesz że to jakaś funkcja ! :( ....


czytać i ćwiczyć ....ale moze ktos poratuje jakims dzialajacym kodem ktory moglby mi posluzyc jako nauka praktyczna[/quote]To zawsze mnie wprowadza w mega osłupienie gdy czytelnik Bluebooka tak pisze - no a co na DVD dołączonej do książki nie masz przykładowych kodów ? do KAŻDEJ lekcji praktycznej masz ... można ćwiczyć razem ze mną - z książką - tylko trzeba chcieć tam zajrzeć na tą płytę - panie kochany no ;)

corey napisał(a):
dzieki za odpowiedz Mirek, nawet taka druzgoczaca - jestes super gosciu ze chce Ci sie odpowiadac na takie z twojego punkt widzenia idiotyzmy wszelakiej postaci.

Jeśli to odebrałeś jako druzgocące to ja ciebie bardzo przepraszam - to wcale nie było moim celem - raczej chcę pokazać gdzie błędy robisz i naprowadzić na dobre tory - pokazać że można - a nie ....Poza tym to co piszesz to żadne idiotyzmy tylko kłopoty TOTALNIE początkującego - a bo to ty pierwszy albo ostatni ? A ja to nie byłem myślisz w takiej sytuacji ? Myślisz że ja jakiś geniusz jestem ? - mi bardzo długo idzie uczenie się takich rzeczy - bardzo długo .... tyle że niektórzy początkujący właśnie mają ten problem że im się wydaje że jak jest jakaś książka gdzie ludzie piszą np że jest dobra - to oznacza że raz przeczytam i HOP HOOOP ;) umiem programować ;) .... nie nie nie

------------------------ [ Dodano po: 5 minutach ]

corey napisał(a):
pracuje z avr studio - tak aby bylo kompatybilnie z bluebookiem
Widać że nawet jednego razu nie doczytałeś książki do końca - bo WYRAŹNIE w niej piszę o ECLIPSE - rzuć AVR Studio w choinkę - poczytaj mój blog a szczególnie to:

http://mirekk36.blogspot.com/2011/11/dl ... tudio.html



corey napisał(a):
wywala mi jeden blad przy kompilacji

Build started 22.11.2013 at 02:51:29
avr-gcc -mmcu=atmega32 -Wall -gdwarf-2 -Os -std=gnu99 -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT main.o -MF dep/main.o.d -c ../main.c
../main.c: In function 'main':
../main.c:10: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
make: *** [main.o] Error 1
Build failed with 1 errors and 0 warnings...


Teraz - czytając to wszystko wyżej już chyba się nie dziwisz dlaczego hmmm ? ;)

więc weź się w garść i zacznij PO KOLEI - małymi kroczkami - odpuść sobie na tym etapie zupełnie USART bo nie dasz rady - ale spokojnie dojdziesz i do tego

zacznij czytać od początku po kolei i pytać po kolei - co to są pętle, co to są zmienne, co to są typy danych, co to są przesunięcia bitowe i w końcu co to są funkcje

i nie proś kogoś o gotowy kod - bo i tak na tym etapie go nie zrozumiesz i nic ci nie da .... tym bardziej że masz gotowe kody na DVD w książce

powodzenia i czekam na pytania - ale te prawdziwe i od podstaw ;) 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: 22 lis 2013, o 15:25 
Offline
Użytkownik

Dołączył(a): 30 paź 2013
Posty: 32
Pomógł: 0

biore wszystko na klate i zaczynam od poczatku.

i maly problemik mam z programowaniem z poziomu eclipsa przy lekcji 6. mam programator isp adapter 2 zgodny z stk500v2.

z poziomu programu avrcalculator wszystko ladnie smiga i sie programuje - linia komend dla avr dude wyglada tak:
-p atmega32 -c stk500v2 -P com2 -V

w eclipsie natomiast to nie smiga - wyskakuje blad timeout a linia komend do avrdude wyglada tak:
-pm32 -cstk500v2 -PCOM2 -b9600

w sumie powinno chyba dzialac i tu i tu a tak nie jest.

jestem na szostej lekcji gdzie wgrywamy program do uarta z poleceniem osccal i dupa. wgrywalem tez sam plik 07_UART_kalibracja.hex przez avrcalculator - rozmiar wsadu zgadza sie z tym podanym po build (780b) a jednak po uruchomieniu terminala z putty nic sie nie dzieje, wczesniej korzystalem z puty do kalibracji btma bez zadnych problemow.

eclipse,winavr i avrdude zainstalowany zgodnie z wytycznymi w pierwszych lekcjach. jakis czeski blad sie pewnie gdzies wdal z mojej strony, moze ktos ma pomysl co to moze byc

------------------------ [ Dodano po: 17 minutach ]

zgralem wsad z procka i plik zgadza sie z tym ktory wczesniej zaupladowalem czyli procek sie prawidlowo zaprogramil.

ustawienia w putty mam takie : com 3 (tutaj jest podlaczony atb1.04) , 9600 , 8 bitow , bez parzystosci i kontroli przeplywu. dwie zolte zworki zwieram i rozwieram bez roznicy. a z btm222 lacze sie bez problemu. hmmm



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 lis 2013, o 16:25 
Offline
Moderator
Avatar użytkownika

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

ja jestem teraz na wyjeździe więc dopiero w pon pomogę 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: 23 lis 2013, o 03:36 
Offline
Użytkownik

Dołączył(a): 30 paź 2013
Posty: 32
Pomógł: 0

Po kilkunastu godzinach z ksiazka i cwiczeniami z diodami,stykami etc. to rzeczywiscie staszna kopą bylo to co wczesniej przedstawilem , bez ladu i skladu.


w tej chwili popelnilem cos takiego - kompiluje sie bez bledow i ostrzezen, moze ktos zerknie czy jesli po rx dostanie wartosc 1 to uruchomi sie PRZEK_ON i czy to ma szanse dzialac.

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 23 lis 2013, o 04:59 przez corey, łącznie edytowano 4 razy

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 lis 2013, o 04:19 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 lip 2013
Posty: 143
Pomógł: 1

niestety to nie komputer, nie możemy powiedzieć czy to będzie działać w oderwaniu od sprzętu :) Jak kolega steruje tym przekaźnikiem ? jakiś schemacik czy coś? Z programu wygląda mi to na pnp ale nie chcę źle doradzić :(. Tak na szybko to dziwnie kolega pisze program tak nie po "Mirkowemu" :) . Najpierw deklaracje potem pętla główna potem definicje. Jeśli kolega odbiera z uarta znak i zmienna dana jest typu znak to nie można porównać jej do 1 musi być dana=='1' BTW. Kod programu wstawiamy jako syntax C

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 lis 2013, o 05:06 
Offline
Użytkownik

Dołączył(a): 30 paź 2013
Posty: 32
Pomógł: 0

jesli wstawiam kod w syntax to robi sie jakas sieczka i ucina komendy.

sterowanie samym przekaznikiem to juz trywialna sprawa - z portu poplynie stan niski - uruchomi tranzystor a ten wysteruje przekaznik

aplikacja w androidzie wysyla jedynke komenda send number.

poprawilem apostrofy przy jedynce - dzieki

program napisalem nie po Mirkowemu ale naprawde bez premedytacji - to sa pierwsze moje kroki, powinienem sie wyrobic ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 lis 2013, o 12:47 
Offline
Użytkownik

Dołączył(a): 30 paź 2013
Posty: 32
Pomógł: 0

no i nie dziala

na plytce zwarlem kablami polaczenie tak aby sygnal tx z btm222 wchodzil w rx do atmegi.

nic sie nie dzieje, zastanawiam sie czy nie lepiej wykorzystac funkcji send one byte number = 1.

------------------------ [ Dodano po: 21 minutach ]

na send1bytenumber =1 tez dupa.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 lis 2013, o 13:56 
Offline
Moderator
Avatar użytkownika

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

masz błąd w inicjalizacji z przesunieciem ... no ale teraz to kod zaczyna miec rece i nogi gratulacje

jak nie dziala ci z btm to najpierw sprawdz pan z terminalem na windows i po kablu

_________________
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: 23 lis 2013, o 15:12 
Offline
Użytkownik

Dołączył(a): 30 paź 2013
Posty: 32
Pomógł: 0

no faktycznie mialem UBRRH = (ubrr_>8); zamiast UBRRH = (ubrr_>>8);

ale dalej nie trybi

przelutowalem btma w miejsce obok procka - nie potrzebuje wtedy mieszac kablami aby podlaczyc tx btma do rx procka,

jak sprawdzic czy btm podaje cos do atmegi ?

kiedy mialem podlaczonego go w miejscu obok ft232 podczas uruchamiania pierwszy raz aplikacji w momencie nacisniecia przycisku aby wysylal "1" migala niebieska dioda obok czerwonej zworki usb (to chyba ta od przelanczania zasilania usb-zewnetrzny zasilacz) - teraz juz sie tak nie dzieje.

podlaczylem jedna z diod z rezystorem do do nozki PD0 i tez sie nic nie dzieje jak klikam.

aplikacja przez blutuf ladnie paruje sie i laczy, diodka na btmie pali sie ciagle a sam rozkaz wyslanie jedynki jako jedno bajtowego znaku jest banalnie prosty i musi dzialac
nie mam juz powoli pomyslow



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 lis 2013, o 08:29 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 lip 2013
Posty: 143
Pomógł: 1

a wysłanie znaków do terminala działa??

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 lis 2013, o 10:16 
Offline
Moderator
Avatar użytkownika

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

krzysztof napisał(a):
a wysłanie znaków do terminala działa??


dokładnie - ja się wciąż dziwię, dlaczego kolega tego najpierw na terminalu po kablu nie przetestuje - a pisałem już o tym wcześniej. Potem byłoby już z górki jeśli chodzi o sam BTM

_________________
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: 28 lis 2013, o 02:51 
Offline
Użytkownik

Dołączył(a): 30 paź 2013
Posty: 32
Pomógł: 0

nie moge porozumiec sie terminalem z prockiem, , wpisanie kodu ze strony 259 razem z inicjalizacja nie wyswietla nic na putty ani HT, ustawione tak samo, zworki zwarte. caly czas swieci sie czerwona dioda rxd na plytce. co moge robic nie tak?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 lis 2013, o 10:43 
Offline
Użytkownik

Dołączył(a): 30 paź 2013
Posty: 32
Pomógł: 0

sprawdzone tez programem bray terminal i na innym komputerze, zmienione kable. dalej nie robi.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 lis 2013, o 21:16 
Offline
Użytkownik

Dołączył(a): 30 paź 2013
Posty: 32
Pomógł: 0

no i kto by pomyslal -zwarcie lini na plytce.

teraz komunikuje sie z prockiem, naciskam '1' na klawiaturze jak tez inne znaki a zespoly wykonawcze steruja jak nalezy. program trybi.

niestety btm 222 nie wysyla komend prawidlowo - podlaczajac sie do urzadzenia i wysylajac znak na konsoli terminala nic nie widac i nic sie nie uruchamia, komendy at dzialaja.

aplikacja napisana w appinventorze, wydaje sie prawidlowo, naciskajac komendy na telefonie mryga delikatnie niebieska dioda - cos sie wysyla?

co moze byc nie tak?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 lis 2013, o 00:55 
Offline
Moderator
Avatar użytkownika

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

corey napisał(a):
niestety btm 222 nie wysyla komend prawidlowo


Jakby BTM miał wysyłać jakieś komendy to ja bym zrozumiał ;) ale BTM nie wysyła ŻADNYCH komend ;) nigdy

_________________
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: 29 lis 2013, o 02:59 
Offline
Użytkownik

Dołączył(a): 30 paź 2013
Posty: 32
Pomógł: 0

inaczej

btm nie wysyla znaku w postaci liczby np jeden.

chce sie polaczyc komp przez terminal z karta usb dbt120 potem przez ustanowione polacznie przez blutuf z prockiem z programem jak w poradniku z cwiczeniami btm-222 i sprawdzic w ten sposob czy aplikacja android jest sprawna i przetestowac transmisje btm.

problem mam 2 porty com jeden tx drugi rx - nie polacze sie dwoma naraz z terminalem. laczyc sie tylko z jednym?



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

Strefa czasowa: UTC + 1


Kto przegląda forum

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