Programowanie pod Uc problem...

Mar 03, 2006 4 Replies

Witam!



Pisze program do sterowania sonarem i mam problem gdyz nie wiem jak za "scalic" liczbe pochodzacya z rejestrow : ICR1H i ICR1L...Chcialem ro zrobic tak:



... int t = 0x0000; ....



t = ICR1L; t = cos >> 8; t = ICR1H;



Ale mi cos nie wychodzi...



--------------------------------



Bo jak wiadomo aby otrzymac odlegosc z sonaru to obowiazuje wzor:



x = (t*V)/2 ,gdzie V=1200 m/s



a wiec potrzebuje miec "t" czyli wydaje mi sie ze musze scalic liczbe pochodzaca z tych dwoch rejeastrow ICR, czy to sie inaczej realizuje?



Pozdarwiam Rafal k.


Użytkownik ToR napisał:

t = ICR1;

Faktycznie :D, wielkie dzieki! Jednk mam jeszcze jedno male pytanie, czy wprowadzic jakas dodatkowa zmienna zliczajaca mi przekrecenie sie licznika? W sensie czy moze w ogule do tego dojsc...czy wszytko zalezy od kwantu plreskalera i odleglsoci od przeszkody?

Pozdrawiam, Rafal k.

Co ma robiæ "cos >> 8" ?

mo¿na te¿ zrobiæ tak : t = ICR1H << 16 + ICR1H;

Użytkownik Piotr Chmiel napisał:

Uppsss... chyba się Kolega trochę rozpędził z tymi 16-toma bitami w przesunieciu ;-) i dodawaniu drugi raz starszego bajtu rejestru ICR. Powyższy zapis możnaby zastąpić prostym t = ICR1H; (wyjdzie na to samo).

jeśli już to: t = ICR1H << 8 + ICR1L; lub t = ICR1H * 256 + ICR1L; (kompilator powinien to i tak zoptymalizować do przesunięcia bitowego)

ale tak jak pisałem wystarczy proste t = ICR1;

Pozdrawiam Grzegorz

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required