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 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 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.htmlcorey 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?