توابع و الزامات کاربردی زبان C در برنامه نویسی برای STM8
برنامه نویسی برای STM8
بخش مقدمه و آشنایی با میکرو های STM8 در قسمت های گذشته به پایان رسید.
این فصل وارد برنامه نویسی برای STM8 میشویم و درواقع فصل یک ستون اصلی مطالب را تشکیل میدهد که با توجه به حجم بسیار گسترده مطالب ، تلاش خواهد گردید که هر موضوع و ابزار کاربردی در میکروکنترولر STM8 همراه با پروژه های ساده همراه گردد که درک مطلب تسهیل گردد.
1. معرفی برخی از توابع و الزامات کاربردی در زبان برنامه نویسی C
2. پیکربندی و تنظیمات پایه های کاربردی ( پورت های عمومی )
3. تایمر و کانتر
4. کنترل منابع وقفه
5. مبدل آنالوگ به دیجیتال
6. اتصال ابزار های جانبی
معرفی برخی از توابع و الزامات کاربردی در زبان برنامه نویسی C
با توجه به این که آموزش زبان C در وبسایت قرار گرفته است ، در این بخش قصد ما آموزش زبان برنامه نویسی C نمیباشد و تنها برخی از توابع پرکاربرد و احتمالاً فراموش شده را فقط مرور خواهیم کرد.
کلمات کلیدی زبان C
( از این عناوین به هیچ عنوان در برنامه برای نامگذاری ها استفاده نمیشود)
Auto | Double | Int | Struct |
Break | Else | Long | Switch |
Case | Enum | Register | Typeof |
Char | Extern | Return | Union |
Const | Float | Short | Unsigned |
Continue | For | Signed | Void |
Default | Goto | Sizeof | Volatile |
Do | If | Static | while |
انواع داده و مقادیر قابل قبول
نوع داده | اندازه به بیت | بازه قابل قبول |
char | 8 | -127 تا 127 |
unsigned char | 8 | 0 تا 255 |
signed char | 8 | -127 تا 127 |
int | 16 – 32 | -32767 تا 32767 |
unsigned int | 16 – 32 | 0 تا 65535 |
signed int | 16-32 | -32767 تا 32767 |
short int | 16 | -32767 تا 32767 |
long int | 32 | -214748364 تا 2147483647 |
float | 32 | هفت رقم اعشار |
double | 64 | پانزده رقم دقت |
long double | 80 | 19 رقم دقت |
عملگرهای ترکیبی
عملگر | نام | مثال | معادل |
=+ | انتساب جمع | X+=Y | X=X+Y |
=- | انتساب تفریق | X-=Y | X=X-Y |
=* | انتساب ضرب | X*=Y | X=X*Y |
=/ | انتساب تقسیم | X/=Y | X=X/Y |
=% | انتساب باقیمانده تقسیم | X %= Y | X=X % Y |
تابع Printf
1 |
Printf("عبارت اول,"عبارت دوم) |
عبارت دوم ، اطلاعاتی است که باید به خروجی منتقل گردد و عبارت اول می تواند تعیین کننده فرمت اطلاعات خروجی باشد.
کاراکترهای فرمت با علامت % شروع میشوند که در جداول مقادیر آن مشاهده میگردد.
و همچنین عبارت دوم میتوان به عنوان کارکتر کنترلی نیز به کار گرفته شود که آیا تمام اطلاعات در یک سطر چاپ شود و با فاصله باشند و سایر وضعیت های ممکن .
کاراکترهای کنترلی با علامت \ شروع میشوند.
در کل حتی میتوان عبارت دوم را نداشت که اطلاعات فقط چاپ شود.
کاراکتر های فرمت در C
کاراکتر | نوع اطلاعاتی که باید به خروجی برود |
%C | یک کاراکتر |
%d | اعداد صحیح دهدهی مثبت و منفی |
%i | اعداد صحیح دهدهی مثبت و منفی |
%e | نمایش علمی عدد همراه با حرف e |
%E | نمایش علمی اعداد همراه با حرف E |
%f | عدد اعشاری ممیز شناور |
%g | اعداد اعشاری ممیز شناور |
%G | اعداد اعشاری ممیز شناور |
%o | اعداد مبنای 8 مثبت |
%s | رشتهای از کارکترهای ( عبارت رشتهای) |
%u | اعداد صحیح بدون علامت ( مثبت) |
%x | اعداد مبنای 16 مثبت با حروف کوچک |
%X | اعداد مبنای 16 مثبت با حروف بزرگ |
%p | Pointer ( اشارهگر) |
%n | تعداد کارکترهای که قبل از این به خروجی منتقل شدهاند شمارش شده در پارامتر متناظر با آن قرار گیرد. |
%% | علامت % |
کاراکترهای کنترلی در C
کاراکتر | عملی که باید انجام شود |
f\ | موجب انتقال کنترل به صفحه جدید میشود |
n\ | موجب انتقال کنترل به خط جدید میشود |
t\ | انتقال به 8 محل بعدی صفحه نمایش |
”\ | چاپ کوتیشن(“) |
’\ | چاپ کوتیشن(‘) |
\ | Null ( رشته تهی ) |
\\ | Back Slash |
N\ | ثابت های مبنای 8 ( N عدد مبنای 8 است) |
xN\ | ثابتهای مبنای 16(N عدد مبنای 16 است) |
r\ | در بعضی دستورات بکار برده میشود و علامت Enter است |
مثال:
1 2 3 4 |
int x=10; float y=15.50; char ch=a; Printf("\n x=%d , y=%f , ch=%c",x,y,ch); |
خروجی:
x=10 , y=15.500000 , ch=a
تابع scanf
این تابع برای ورود اطلاعات از صفحه کلید مورد استفاده قرار میگیرد و یک تابع همه منظوره در ورود داده ها است .
1 2 |
Scanf("عبارت یکم,"عبارت دوم) Scanf("فرمت خواندن, "متغیرهای ورودی); |
عبارت دوم آدرس متغیرهایی است که باید خوانده شوند و عبارت یکم مشخص میکند که مقادیر ورودی چگونه باید خوانده شوند که سه شکل اصلی دارد:
1. کارکتر فرمت که تعیین کننده این است که چه نوع اطلاعاتی باید خوانده شود و با % شروع میشوند.
2. کاراکترهای فضای خالی که وجود فضای خالی در عبارت یکم موجب میشود که تابع Scanf از فضای خالی موجود در ابتدای اطلاعات ورودی صرفنظر نماید
3. کاراکترهای غیر از فضای خالی و فرمت ، وجود چنین کاراکتری موجب میشود تا چنانچه همان کاراکتر در رشته ورودی وجود داشته باشد ، آن را خوانده واز آن صرفنظر نماید به عنوان مثال “d,%d%” موجب میشود تا یک عدد صحیح خوانده شود و سپس یک کاما خوانده شود و از آن صرفنظر شود و سپس عدد صحیح دیگری خوانده شود ، اگر کاراکترمشخص شده در عبارت یکم در رشته ورودی وجود نداشته باشد تابع scanf خاتمه می یابد، برای خواندن و سپس صرفنظر از علامت % باید %% را در عبارت یکم بکار ببریم.
وقتی دستور scanf اجرا میشود منتظر می ماند تا داده ها را از صفحه کلید دریافت نماید ، هنگام وارد کردن داده ها هر یک از اقلام داده را با یک فاصله یا کاما (,) از هم جدا کنید و پس از ورود داده ها Enter را فشار دهید.
کاراکترهای فرمت در تابع scanf
کاراکتر | اطلاعاتی که خوانده میشود | کاراکتر | اطلاعاتی که خوانده میشود |
%c | یک کارکتر | %o | عدد مبنای 8 |
%d | یک عددصحیح دهدهی | %x | عدد مبنای 16 |
%i | یک عدد صحیح دهدهی | %p | یک اشارهگر |
%e | عدد اعشاری ممیز شناور | %f | عدد اعشاری ممیز شناور |
%g | عدد اعشاری ممیز شناور | %u | عدد صحیح مثبت |
%s | رشته ها | %n | تعداد کارکترهایی که تا %n از ورودی خوانده شده |
در آخر هر مقدار که با زبان C و الگوریتم نویسی آشنایی بیشتری داشته باشید کار برای شما در برنامه نویسی برای STM8 ساده تر خواهد بود پس فارغ از این جلسه اگر سطح آشنایی شما با این زبان پایین است حتما آموزش زبان C را مطالعه کنید.