Aktyw Forum

Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.

Sprawdź punkty Zarejestruj się

dzielenie na '51/'52

SACZI
-
-
Posty:21
Rejestracja:21 mar 2004, o 18:51
Lokalizacja:Iwonicz Zdrój, woj podkarpackie
Kontaktowanie:
dzielenie na '51/'52

Postautor: SACZI » 21 cze 2004, o 18:08

Dokładnie chodzi o liczenie sredniej artytmetycznej 10 liczb typu char.
Zdaje sobie sprawę, że '52 za bardzo nie ma ochoty na wykonywanie dzielenia i dlatego kombinuję średnią arytmetyczną jako przesunięcie bitowe sumy 10 liczb, ale cos mi nie działa ...

Kod: Zaznacz cały

int suma; suma << 1;
a nastepnie

Kod: Zaznacz cały

SBUF = suma;
Czy musze dokonać konwersji zmiennej typu int do char ??

Awatar użytkownika
gawel
-
-
Posty:683
Rejestracja:24 lis 2003, o 11:19
Lokalizacja:Białystok

Postautor: gawel » 21 cze 2004, o 21:16

SACZI,
w kwestii punktu 2 to zależy co i gdzie chcesz wysłać (pomijając, że podstawienie SBUF=suma jest ważne tylko dla struktur jednobajtowych).
Jeżeli wyślesz wynik w postaci binarnej, to na drugim końcu uzyskasz wynik w postaci binarnej. Jeżeli chcesz zobrazować wynik przykładowo na terminalu znakowym, to musisz dokonać konwersji do postaci znakowej.
w kwesrii punktu 1 to podaj mi swój adr e-mail, to udostępnię ci prosty algorytm dzielenia przez 10 składający się wyłącznie z operacji przesuwania i dodawania.
Mój adres: an177@poczta.fm

SACZI
-
-
Posty:21
Rejestracja:21 mar 2004, o 18:51
Lokalizacja:Iwonicz Zdrój, woj podkarpackie
Kontaktowanie:

Postautor: SACZI » 22 cze 2004, o 10:55

Zgadza się, napisałem to troche niefortunnie:
SBUF=suma jest ważne tylko dla struktur jednobajtowych
Tak, wiem o tym dobrze, mój błąd w zapisie. Przed wysłaniem rozbijam zmienna int na dwie 8 bitowe.
Wczoraj doszedłemz kumplami do wniosku, że jednak będe dokonywał przesunięcia o 3 lub 4, co odpowiada dzieleniu przez 8 i 16 (kolejne potęgi 2).


PS Wspominłeś jeszcze o konwersji do postaci znakowej. Piszę program w C++ Builder na PC wg książki Daniluka "Programowanie RS232c ..." i niestety nie znalazłem w niej opisu (oprócz flagi dcb.fBinary = TRUE;) jak przestawić tryb odbioru ze znakowego w binarny (taka postać wyników również by mie zadowoliła) w celu zarejestrowania wyników.
Gdzie mogę sie takich rzeczy dowiedzieć ??

Mój adres:
ssuch@wp.pl lub ssuch@poczta.fm
Wysłałem Ci również meila o tej samej treści. Dzięki za odpowiedź i pomoc

Wróć do „8051”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 12 gości