View Full Version : برنامه نویسی برای سخت افزار ها
میلاد قاضی پور
چهارشنبه 10 شهریور 1389, 14:13 عصر
سلام. دوستان کسی میدونه چطوری برای سخت افزارها برنامه نوشته میشه؟ مثلا ماشین لباسشوئی دستورالعملهارو کجاش ذخیره میکنه ؟
اصلا چطوری با استفاده از زبان برنامه نویسی میشه با سخت افزار ها ارتباط برقرار کرد ؟
چیپست ها دقیقا چیکار انجام میدن ؟
aminghaderi
چهارشنبه 10 شهریور 1389, 18:18 عصر
سلام. دوستان کسی میدونه چطوری برای سخت افزارها برنامه نوشته میشه؟ مثلا ماشین لباسشوئی دستورالعملهارو کجاش ذخیره میکنه ؟
اصلا چطوری با استفاده از زبان برنامه نویسی میشه با سخت افزار ها ارتباط برقرار کرد ؟
چیپست ها دقیقا چیکار انجام میدن ؟
معمولا c یا cpp هست که توسط یه محیطی که اسمش رو فراموش کردم می نویسند و توسط یه دستگاهی که متاسفانه اسمش رو اطلاع ندارم ، بروی قطعات الکترونیکی (IC) برنامه می نویسند و برنامه های اونها بیشتر منطقی هست و بیشتر حلقه ها و شرط هایی هست که برای گیت های داخل IC نوشته می شوند.
برای اطلاعات بیشتر به بچه های رشته الکترونیک مراجعه کنید.
موفق باشی.
حجتی نیا
چهارشنبه 10 شهریور 1389, 18:29 عصر
سلام. دوستان کسی میدونه چطوری برای سخت افزارها برنامه نوشته میشه؟ مثلا ماشین لباسشوئی دستورالعملهارو کجاش ذخیره میکنه ؟
اصلا چطوری با استفاده از زبان برنامه نویسی میشه با سخت افزار ها ارتباط برقرار کرد ؟
چیپست ها دقیقا چیکار انجام میدن ؟ برو به http://barnamenevis.org/forum/forumdisplay.php?f=119
مقالات خوبی توش هست
و http://www.electronica.ir
Felony
چهارشنبه 10 شهریور 1389, 22:28 عصر
سلام. دوستان کسی میدونه چطوری برای سخت افزارها برنامه نوشته میشه؟ مثلا ماشین لباسشوئی دستورالعملهارو کجاش ذخیره میکنه ؟
اصلا چطوری با استفاده از زبان برنامه نویسی میشه با سخت افزار ها ارتباط برقرار کرد ؟
چیپست ها دقیقا چیکار انجام میدن ؟
به وسیله زبانهایی مثل C که IDE برنامه نویسی اون برای IC ها CodeVision نام داره یا زبان Basic که IDE اون Basecom نام داره یا اسمبلی ، شما کدتون رو در این زبانها مینویسید و کامپایلر این زبانها کد رو به هگز تبدیل میکنه ( IC ها این نوع کد رو پردازش میکنن ) ، حالا به وسیله یک دستگاه که programmer نام داره کد تولید شده رو به IC انتقال میدن و از اینجا به بعد کار سخت افزاری میشه ( ارتباط دکمه ها ، سنسورها ، موتورها ، LCD و ... با IC ) .
چیپست ها در حقیقت یک پردازنده خیلی کوچیک هستند که داخل خودشون حافظه دائم ( برای ذخیره کد های هگز ) و حافظه موقت ( برای ذخیره داده ها موقت و پردازش ها ) دارن ولی در مقیاس خیلی کوچیکتر از CPU و RAM در کامپیوتر .
میلاد قاضی پور
چهارشنبه 10 شهریور 1389, 22:39 عصر
خیلی هیجان انگیزه . کاش مفصل تر بحث میشد .
Saeed_m_Farid
پنج شنبه 11 شهریور 1389, 00:46 صبح
خیلی هیجان انگیزه . کاش مفصل تر بحث میشد .
کجاش هیجان انگیزه؟ واسه کسی که با VS، دلفی یا حتی BCB و MFC هم کار میکنه (فکر کنم شما هم C# کارید) این کامپایلرها واقعاً ناقص ناقص بنظر میرسن و یکبار که باهاش کد بنویسید، تمام هیجان تون از بین میره! اسمبلی نوشتن راحت تره، اینکه دوستان میگن به زبان C من که حتی خیلی از توابع ساده C رو هم موقعی که لازم میشد ندیدم! فکر کنم Embedded C هست زبونشون و تو همه چی محدودیت دارین، مثلاً هرجا دلتون خواست Breakpoint بذارید یا به دلخواه متغیر تعریف کنید و اشاره گرها رو به راحتی استفاده کنید، کلاس بنویسید و ...؛ Code compietion و اینا که بماند!
ضمناً معمولاً مجبور خواهید بود با دو سه تا کامپایلر (یا نرم افزار) همزمان کار کنید.
ولی برای مثالی که خودتون زدید (مثلاً برای ماشین لباسشویی)، خیلی کم الان کسی با CodeVision یا کامپایلرهای Embedded ای که برای IC ها یا میکروکنترلرها کاربرد دارن، کد مینویسه؛ معمولاً سینتکس های نزدیک به زبان عامیانه براش طراحی شدند نمونه اش SWIFTX (http://www.forth.com/embedded/index.html)، که نمونه یک برنامه به این زبان رو پایین میتونید ببینید :
( Washing Machine Embedded Application )
\ Port assignments
01 CONSTANT PORT
\ bit-mask name bit-mask name
1 CONSTANT MOTOR 8 CONSTANT FAUCETS
2 CONSTANT CLUTCH 16 CONSTANT DETERGENT
4 CONSTANT PUMP 32 CONSTANT LEVEL A colon begins a new definition.
\ Device control
: ON ( mask -- ) PORT C@ OR PORT C! ;
: OFF ( mask -- ) INVERT PORT C@ AND PORT C! ; Definitions can contain generic SwiftX words and any others you've defined…
\Timing functions
: SECONDS ( n -- ) 0 ?DO 1000 MS LOOP ;
: MINUTES ( n -- ) 60 * SECONDS ;
: TILL-FULL ( -- ) \ Wait till level switch is on
BEGIN PORT C@ LEVEL AND UNTIL ; …so, application-specific functions are defined in terms of previous definitions…
\ Washing machine functions
: ADD ( port -- ) DUP ON 10 SECONDS OFF ;
: DRAIN ( -- ) PUMP ON 3 MINUTES ;
: AGITATE ( -- ) MOTOR ON 10 MINUTES MOTOR OFF ;
: SPIN ( -- ) CLUTCH ON MOTOR ON
5 MINUTES MOTOR OFF CLUTCH OFF PUMP OFF ;
: FILL-TUB ( -- ) FAUCETS ON TILL-FULL FAUCETS OFF ;
\ Wash cycles
: WASH ( -- ) FILL-TUB DETERGENT ADD AGITATE DRAIN ;
: RINSE ( -- ) FILL-TUB AGITATE DRAIN ; …until you reach the main application definition.
\ Top-level control
: WASHER ( -- ) WASH SPIN RINSE SPIN ;
کلمات درون پرانتز و بعد / کامنت هستند.
http://www.forth.com/images/products/embedded-systems-example-code.gif
در ضمن برای سیستمهای پیشرفته دیگه نمیشه مثل قبل تمام رخدادها و حالت ها رو پیش بینی کرد و باید از منطق فازی (Fuzzy Logic) استفاده بشه که همونطورکه میدونید پیچیده تر از اونی هست که امثال من ازش سر در بیاریم!
میلاد قاضی پور
پنج شنبه 11 شهریور 1389, 00:54 صبح
خیلی جالب بود . بحث داغ شد !
nima898
پنج شنبه 11 شهریور 1389, 09:28 صبح
اینکه برنامه به چه زبانی نوشته بشه تو نتیجه کار زیاد فرقی نداره در هر صورت برنامه به صورت کدهای قابل خوندن توسط میکرو کنترلر میشه که میشه به اسمبلی تبدیلش کرد
واسه کسی که با VS، دلفی یا حتی BCB و MFC هم کار میکنه (فکر کنم شما هم C# کارید) این کامپایلرها واقعاً ناقص ناقص بنظر میرسن و یکبار که باهاش کد بنویسید، تمام هیجان تون از بین میره!برای من هیچ وقت هیجانش از بین نمیره از برنامه نویسی با کامپیوتر لذت بخش تره
متاسفانه بخش برنامه نویسی سیستم های Embedded (http://www.barnamenevis.org/forum/forumdisplay.php?f=119) زیاد فعال نیست
Saeed_m_Farid
پنج شنبه 11 شهریور 1389, 11:09 صبح
برای من هیچ وقت هیجانش از بین نمیره از برنامه نویسی با کامپیوتر لذت بخش تره
برای اینکه به احتمال زیاد شما کارتون با برنامه نویسی سیستم های Embedded هست و برای تفریح با سایر زبانها کار می کنید، من عرض کردم برای "کسی که با VS، دلفی یا حتی BCB و MFC هم کار میکنه" که خدا رو شکر در رسته کاری شما نیست مگر در مواقع لزوم؛ بنده یک قضیه کلی رو گفتم و نه هر برنامه نویسی.
اینم میدونم اگه افراد علاقمند مثل شما نباشند که دیگه IC، میکروکنترلر، سنسورها و ... برای امثال من با قوطی کبریت فرقی نمیکنه! راستش زمان دانشگاه یکبار برای همکاری با یکی دو تا از دوستان سخت افزار که روی یک FPGA (فکر کنم مال Xilinx بود) کار میکردیم فقط یه اشتباه 0و1 کردم آی سی آشغال سوخت! اونموقع هم دانشجو بودیم و درآمدی نداشتیم، از هرچی VHDL و ... بود بدم اومد؛ البته همون موقع هم با BCB6 و اسمبلی به پایه های آی سی بیت ها رو ارسال میکردم و زیر بار VHDL نرفتم! :لبخند:
موفق باشید.
morrning
پنج شنبه 11 شهریور 1389, 22:42 عصر
فکر کنم مباحث مربوط به میکرو کنترلر ها و میکرو پروسسور ها رو مطالعه کنید خیلی بهتون کمک میکنه
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.