چطور ميتونم بيت به بيت يك بايت را استخراج كنم و روي يك پايه با تاخيرهاي زماني مناسب قرار بدم؟
مشكل من در استخراج بيت هست. C, codvision, mega16
Printable View
چطور ميتونم بيت به بيت يك بايت را استخراج كنم و روي يك پايه با تاخيرهاي زماني مناسب قرار بدم؟
مشكل من در استخراج بيت هست. C, codvision, mega16
برای استخراج یک یا چند بیت می تونید مقدار ماسک مناسبی درست کنید و با بایت موردنظر AND کنید.
مثلا برای بیت سوم متغییر X اینطوری میشه:
Y= X & 0x04
تو این حالت 0x04 همو ماسک شماست که باعث میشه فقط بیت سوم (0100 0000 ) تو متغییر Y ریخته یشه.
یه مرحله دیگه ای که میشه انجام داد، شیفت دادن هست (ضروری نیست):
Y= (X & 0x04) >> 2
اینطوری اون بیت مورد نظر شما میاد اول بایت و راحت تر می تونید ازش استفاده کنید (0100 0000 میشه 0001 0000 )