رجیستر USART_BRR
این رجیستر از دو بخش عدد و اعشار تشکیل شده در واقع همونطوری که قبلا در تصویر رجیستر ها مشاهده شد 12 بیت Mantissa یا عدد اصلی و 4 بیت fraction یا اعشار تشکیل شده
برای درک بهتر مثالی میزنیم
در صورتی که در رجیستر USART_BRR مقدار 0x1BC قرار گرفته بشه 12 بیت پر ارزش اون میشه Mantissa که برابر با عدد 27 خواهید بود و 4 بیت کم ارزش Fraction هست که برابر عدد 12/16 یا 0.75 خواهد بود که با هم میشن 27.75
مثال بعدی
در صورتی که بخواهیم در رجیستر USARTDIV به عدد 25.62 برسیم
مقدار 16 رو ضرب در مقدار اعشار عدد یعنی 0.62 میکنیم که میشه مقدار 9.92 یعنی حدود 10 و مقدار هگز این عدد میشه برابر با 0xA
و از طرفی مقدار هگز بخش ثابت عدد یعنی 25 برابر میشه با مقدار 0x19 که با هم میشه 0x19A یعنی مقدار 25.625
مثال سوم
میخواهیم در رجیستر به عدد 50.99 برسیم برای 4 بیت DIV_Fraction بخش اعشار عدد یعنی 0.99 رو ضرب در 16 میکنیم که میشه مقدار 15.84 یا حدود 16 چون این مقدار در 4 بیت نمیتونه جابشه یک واحد به بخش DIV_Mantissa اضافه میکنیم و مقدار رو صفر در نظر میگیریم
حالا مقدار محاسبه مقدار بخش DIV_Mantissa هگز عدد 50+1 = 51 میشه 0x33
پس باید در بخش DIV_Mantissa مقدار 0x33 و در بخش DIV_Fraction مقدار 0x0 بنویسیم که با هم میشه عدد 0x330
Post #1411
959