سلام
من در روش برنامه نویسی معمولی (بدون سیستم عامل) مثلا وقتی می خوام یک آرایه 30 بایتی رو به پورت سریال ارسال کنم اینطوری می نویسم:
کد:
void sendchar0(char c)
{
while (!(LPC_UART0->LSR & 0x20));
LPC_UART0->THR = c;
}
for(i=0;i<30;i++)
sendchar0(buffer[i]);
حالا فرض کنید من می خوام برنامم رو با RTX بنویسم و این کار رو داخل یک تسک انجام بدم
همونطور که می دونید ارسال شدن اطلاعات از پورت سریال بسته به Baud Rate، زمان مشخصی مصرف می کنه و میکرو مقدار زیادی از وقتش در
کد:
while (!(LPC_UART0->LSR & 0x20));
تلف میشه
می خوام بپرسم به نظر شما بهترین روشی که می شه اشغال بودن پریفرال توسط این تسک، یا تسک دیگه رو تشخیص داد و به کارهای دیگه رسید چیه؟
ممنون