albercik506 Lipiec 11, 2011 Udostępnij Lipiec 11, 2011 tak sprawdzam przy wypietym programatorze, wtedy sa sygnaly jakies przypadkowe na porcie a jak wypne to nic nie ma ponizej jest schemat [ Dodano: 11-07-2011, 12:24 ] dodam ze zapomnialem na schemacie podczepic ss, normalnie jest podłączone do masy na slave a na master wisi w powietrzu, ustawiam programowo stan wysoki Cytuj Link do komentarza Share on other sites More sharing options...
Grzesieq94 Sierpień 10, 2011 Udostępnij Sierpień 10, 2011 Testowałeś w ogóle ten kod? Jak ja wrzucam kod dla Slave'a to od razu mi pojawia się na LCD pustka lub ciąg losowych znaków... A Master na nic nie reaguje :/ Działa ten kod komuś? Cytuj Link do komentarza Share on other sites More sharing options...
Jar0 Sierpień 16, 2011 Udostępnij Sierpień 16, 2011 Ja sprawdzałem dokładnie przekopiowany ten kod (+ zmiana innych portów) i wszystko działa jak powinno. Sprawdź dokładnie wszystkie połączenia. Zamiast do LCD podłącz sobie ledy i sprawdzaj czy bajty dobrze przechodzą. LCD to kolejne miejsce gdzie może być błąd ; ) Cytuj Link do komentarza Share on other sites More sharing options...
Grzesieq94 Sierpień 16, 2011 Udostępnij Sierpień 16, 2011 Już mi działało, ale i tak przesiadłem się chwilowo na usart 😃 Cytuj Link do komentarza Share on other sites More sharing options...
Polecacz 101 Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Produkcja i montaż PCB - wybierz sprawdzone PCBWay! • Darmowe płytki dla studentów i projektów non-profit • Tylko 5$ za 10 prototypów PCB w 24 godziny • Usługa projektowania PCB na zlecenie • Montaż PCB od 30$ + bezpłatna dostawa i szablony • Darmowe narzędzie do podglądu plików Gerber Zobacz również » Film z fabryki PCBWay
mario246 Listopad 23, 2013 Udostępnij Listopad 23, 2013 Mam pytanie czy lepszym pomysłałem jest zaangażować przerwanie? czy po prostu w while odbierać te dane? Mam problem właśnie z przerwaniem dla atmegii 32 a odnośnie PCMSK0|=_BV(PCINT0); //Odblokuj przerwanie PCINT0 PCICR|=_BV(PCIE0); komplikator pyskuję że funkcję sąnie zadeklarowane, na atmedze 8 działa to natomiast na 32 nie i nie bardzo wiem o co biega. Cytuj Link do komentarza Share on other sites More sharing options...
MirekCz Listopad 23, 2013 Udostępnij Listopad 23, 2013 1. Przerwanie 2. A kod błędu jest...? Nie pamiętam dokładnie, ale czy przypadkiem atmega32 nie ma więcej rejestrów / trochę inaczej nazwanych? Nie przeniesiesz tego kodu bez drobnych zmian... Cytuj Link do komentarza Share on other sites More sharing options...
mario246 Listopad 23, 2013 Udostępnij Listopad 23, 2013 Udało mi się z tym uporać, wywaliłem to wql ale mam inne pyatnie, odnośnie tej opcji z przerwaniem. Zakładam że master co 0,5 sekundy wysyła dane, i ja sobie w slave zapisuje je do zmniennej a, to jeśli w while mam parę funkcji z if np że jeśli a=1 to zrób to, jeśli a=2 to zrób to itd. więc jeśli on nie zdąży wykonać warunku w czasie 0,5 sek to co będzie? nie potrzeba jakieś instrukcji która zablokuje przerwanie i zezwoli na jego odblokowanie po wykonaniu funcji if? Cytuj Link do komentarza Share on other sites More sharing options...
piotrk Sierpień 24, 2015 Udostępnij Sierpień 24, 2015 Poruszyłeś ważną kwestię. Najczęściej w SLAVE deklaruje się tablicę bajtów unsigned char bufor[10]; a następnie w pętli odbierającej dane z SPI odkładamy kolejne dane do tablicy. Po każdym odebraniu zwiększamy indeks w tablicy, tak by nowa dana wpadała nam na następne pole. Potrzebujemy jeszcze drugi indeks mówiący którą daną aktualnie przetwarzamy. Oczywiście nie możemy zapomnieć o warunku, na wypadek gdy indeks będzie większy od 10, to że ma stać się znowu 0. Tak po krótce się to robi. Oczywiście jest tu wiele miejsc gdzie mogą wystąpić błędy, ale do podstawowego działania w wolnych systemach wystarczy w zupełności i nie będzie problemu. __________ Komentarz dodany przez: Treker Delikatny odkop tematu sprzed 2 lat, ale merytoryczny, więc niech zostanie 🙂 Cytuj Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
Dołącz do dyskusji, napisz odpowiedź!
Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!