اطلاعیه

Collapse
No announcement yet.

مشکل در keil

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    مشکل در keil

    سلام، این اولین تاپیکی هست که من باز میکنم!
    من چندوقتی هست که با میکرو کنترلر کار میکنم اکثرا هم با 89c51 ولی واقا" از اسمبلی خسته شدم و رفتم سراغ c و کتاب c-51 رو خریدم البته خودم c++ بلدم ولی فقط برای کامپیوتر نه برای میکرو من این کتاب رو خوندم ولی توش خیلی مشکل دارم در واقع بهتره بگم توی کار با keil uViosion مشکل دارم. :(
    اول از همه اینکه در قسمت include ها چی باید بذارم. (keil uVision) من وقتی میزارم AT89c51.H یهو 63 تا error پیدا میکنه (واسه یه برنامه 4-5 خطی!) وقتی AT89c51.h رو حذف میکنم و بجاش reg51.h رو میزارم دیگه error نمیده ولی بعضی چیزا رو نمیشناسه مثلا این یه نمونه خیلی ساده:
    #Include <reg51.h>
    Main() {
    int i;
    P1^1 = 1;
    P1^1 = 0;
    }

    که بعد error میده:

    error C141: syntax error near '='
    error C141: syntax error near '='

    (البته اینجا حروف اینور اونور شدن ولی باز قابل خوندنه)
    ولی اگه بجای P1^1 فقط بذارم P1 (یعنی یک بایت کامل) دیگه error نمیده
    والا ما که کمپلت گیج شدیم مشکل از کجاست؟
    سایت صغیر این بنده حقیر منتظر بازدید و نظرات شما دوستان کبیر میباشد
    www.best-circuits.com
    (زبان فارسی به سایت اضافه شد)

    #2
    مشکل در keil

    سلام . خوبی دوست عزیز؟
    ببینید keil یه مقدار حرفه ای هست . نرم افزاری هست به نام فرانکلین که توی قسمت دانلود نرم افزارهای تخصصی میتونید دانلودش کنید آموزشش هم توی قسمت نرما فزارهای آنالیز و شبیه ساز هست اونها رو دانلود کنید بخونید خیلی راحت میشه با این نرم افزار کار کرد.
    در مورد سوالتون من خودم زیاد با Keil کار نکردم امیدوارم بقیه دوستان بتونن کمکی کنن .
    موفق باشید .
    شأن انسان در ایمان و هجرت و جهاد است و هجرت، مقدمهآ‌ی جهاد فیآ‌سبیلآ‌الله.
    هجرت، هجرت از سنگینیآ‌هاست و جاذبهآ‌هایی که تو را به خاک میآ‌چسباند.
    چکمهآ‌هایت را بپوش، رهآ‌توشهآ‌ات را بردار و هجرت کن.

    دیدگاه


      #3
      مشکل در keil

      دستتون درد نکنه. من رفتم اونجا (دانلود نرم افزارهای...) ولی مثل اینکه نوشته بودید فرانکلین برای برنامه های بزرگ قابل اعتماد نیست و در ضمن keil هم بهینه شده هست و hex کمتری تولید میکنه. خوب فکر کنم اگه بتونم با همین keil کار بکنم خیلی بهتر باشه حالا حرفه ای هست خوب بهتر ولی خوب دلیل نمیشه که یه کد به این راحتی رو نتونه compile کنه :?
      اگر keil حرفه ای هست باید دستورات بیشتری داشته باشه و نه کمتر فقط باید ببینم که مشکلش چیه؟
      راستی اون که گفتم 63 تا error پیدا میکنه مشکل از من بود چون reg51.h و at89x51.h رو با هم مینوشتم ولی هنوزم مشکلم مثل قبلا پا بر جاست :cry:
      حالا کسی با keil کار کرده؟ :?:
      سایت صغیر این بنده حقیر منتظر بازدید و نظرات شما دوستان کبیر میباشد
      www.best-circuits.com
      (زبان فارسی به سایت اضافه شد)

      دیدگاه


        #4
        مشکل در keil

        سلام
        از اونجایی که انگار کسی پیدا نشد که در مورد keil کمکمون کنه رفتیم سراغ فرانکلین ولی بابا اینم که همون مشکل رو داره :x :cry:
        آقا محمد (و بقیه دوستان) شما اگه بخواید مثلا پورت p1.0 89c51 رو تغییر بدید چی مینویسید؟
        ای برنامه (پایین) کجاش مشکل داره آخه؟ نکنه تو قسمت include ها باید چیزی اضافه کنم یا تو خود فرانکلین یا keil باید جیزی رو عوض کنم (options)




        سایت صغیر این بنده حقیر منتظر بازدید و نظرات شما دوستان کبیر میباشد
        www.best-circuits.com
        (زبان فارسی به سایت اضافه شد)

        دیدگاه


          #5
          مشکل در keil

          سلام . خوبی دوست عزیز؟
          این مشکلش اینه که اون بیت رو داخل main تعریف کردید جمله ای که با sbitآ‌ تعریف میشه رو بالای main بنویسید . بعد main رو حتما باید از نوع viod تعریف کنید به صورت زیر:
          void main(void) ok
          موفق باشید .
          شأن انسان در ایمان و هجرت و جهاد است و هجرت، مقدمهآ‌ی جهاد فیآ‌سبیلآ‌الله.
          هجرت، هجرت از سنگینیآ‌هاست و جاذبهآ‌هایی که تو را به خاک میآ‌چسباند.
          چکمهآ‌هایت را بپوش، رهآ‌توشهآ‌ات را بردار و هجرت کن.

          دیدگاه


            #6
            مشکل در keil

            دستتون درد نکنه. امتحان کردم درست شد ولی توی کتاب c51 که خوندم main رو همینجوری نوشته بود حالا من جفتش رو امتحان کردم هیچ کدوم error نداد.
            اگه بخوام بگم که مثلا p1.0 رو یک کنه یا صفر کنه حتما باید قبل از main از sbit استفاده کنم و یه نام براش انتخاب کنم؟ یعنی همینجوری نمیشه گفت :
            P1^1 = 0
            سایت صغیر این بنده حقیر منتظر بازدید و نظرات شما دوستان کبیر میباشد
            www.best-circuits.com
            (زبان فارسی به سایت اضافه شد)

            دیدگاه


              #7
              مشکل در keil

              سلام . خوبی دوست عزیز؟
              بله حتما باید قبلش بیت رو تعریف کنید . توی اون جزوه ای که در مورد نرم افزار فرانکلین نوشته شده این موارد کامل توضیح داده شده . توی قسمت نرم افزار های آنالیز و شبیه سازی میتونید پیداش کنید .
              موفق باشید .
              شأن انسان در ایمان و هجرت و جهاد است و هجرت، مقدمهآ‌ی جهاد فیآ‌سبیلآ‌الله.
              هجرت، هجرت از سنگینیآ‌هاست و جاذبهآ‌هایی که تو را به خاک میآ‌چسباند.
              چکمهآ‌هایت را بپوش، رهآ‌توشهآ‌ات را بردار و هجرت کن.

              دیدگاه


                #8
                مشکل در keil

                نوشته اصلی توسط محمد نحوی
                سلام . خوبی دوست عزیز؟
                بله حتما باید قبلش بیت رو تعریف کنید . توی اون جزوه ای که در مورد نرم افزار فرانکلین نوشته شده این موارد کامل توضیح داده شده . توی قسمت نرم افزار های آنالیز و شبیه سازی میتونید پیداش کنید .
                موفق باشید .
                من رفتم توی قسمت نرم افزارهای آنالیز و... یه تاپیک بود به نام "طریقه ساخت فایل هگز وانتقال ان به 8051" البته امیدوارم منظور شما هم همین تاپیک باشه و اشتباهی نرفته باشم آخه چیز دیگه ای در این رابطه پیدا نکردم ولی متاسفانه لینکی که اونجا هست درست نیست.
                هی مینویسه:
                The file link that you requested is not valid.
                (آی بدم میاد از این errorها :x )
                سایت صغیر این بنده حقیر منتظر بازدید و نظرات شما دوستان کبیر میباشد
                www.best-circuits.com
                (زبان فارسی به سایت اضافه شد)

                دیدگاه


                  #9
                  مشکل در keil

                  سلام . خوبی دوست عزیز؟
                  حق با شما بود پست جابه جا شده بود . توی همون قسمت نرم افزار های آنالیز و شبیه ساز میتونید پیداش کنید عنوانش این هستک

                  آموزش C ی 8051 به همراه کامپایلر و شبیه ساز فرانکلین

                  موفق باشید.
                  شأن انسان در ایمان و هجرت و جهاد است و هجرت، مقدمهآ‌ی جهاد فیآ‌سبیلآ‌الله.
                  هجرت، هجرت از سنگینیآ‌هاست و جاذبهآ‌هایی که تو را به خاک میآ‌چسباند.
                  چکمهآ‌هایت را بپوش، رهآ‌توشهآ‌ات را بردار و هجرت کن.

                  دیدگاه


                    #10
                    مشکل در keil

                    مرسی. پیداش کردم. خیلی خوب بود
                    البته حالا که فهمیدم مشکل کجا بوده دوباره رفتم سراغ keil آخه دوست دارم از همون اول با یه چیز حسابی کار بکنم! امروز که داشتم کار میکردم اومدم نوشتم:
                    sbit P1_0 = P1^0
                    یهو error داد گفت redifinition که همونجور که میدونید وقتی اینجوری میشه که یه متغیر رو دوبار تعریف کنید. بعد فهمیدم که تمامشون توی at89x51.h تعریف شده ولی به این صورت:
                    P0_0
                    P0_1
                    p0_2
                    ...
                    حالا بازم برید با فرانکلین کار کنید :?
                    سایت صغیر این بنده حقیر منتظر بازدید و نظرات شما دوستان کبیر میباشد
                    www.best-circuits.com
                    (زبان فارسی به سایت اضافه شد)

                    دیدگاه


                      #11
                      چرا ا&ینقدر کم ؟

                      سلام.
                      من بعد از هیچ بار اومدم برای میکرو با C برنامه بنویسم ببینم C چطوره.با فرانکلین.
                      چند خط که نوشتم موقع کامپایل میگه Out Of Code
                      یعنی چی؟ یعنی همین چند تا دستور شد 4 کیلو بایت.

                      کد:
                      #include <reg51.h>
                      #include <stdio.h>
                      
                      sbit EN = P3^2;
                      sbit RS = P3^0;
                      sbit RW = P3^1;
                      
                      void Delay_10ms()
                      {
                      int i;
                      for (i = 0;i<=500;i++) { };
                      }
                      //----------------
                      void Lcd_Command(unsigned char command)
                      {
                      P1 = command;
                      RW = 0;
                      RS = 0;
                      EN = 1;
                      EN = 0;
                      Delay_10ms();
                      } 
                      //----------------
                      void Lcd_Init()
                      {
                      Lcd_Command(0x38);
                      Lcd_Command(0x0F);
                      Lcd_Command(0x01);
                      } 
                      //----------------
                      void Lcd_Data(unsigned char Data)
                      {
                      P1 = Data;
                      RW = 0;
                      RS = 1;
                      EN = 1;
                      EN = 0;
                      Delay_10ms();
                      } 
                      //----------------
                      void Lcd_Cls()
                      {
                      Lcd_Command(0x01);
                      } 
                      //----------------
                      void Lcd_Write_Tx(unsigned char x, unsigned char y, char *text, unsigned char len)
                      {
                      unsigned char adres;
                      unsigned char character;
                      unsigned char i;
                      if (y == 2){
                      adres = 0xBF;} else {adres = 0xBF;} 
                      //if (x + len > 16) { x = 0;}
                      adres += x;
                      for (i = 0; i<=(len - 1); i++)
                      {
                      character = *(text + i);
                      Lcd_Command (adres);
                      Lcd_Data (character);
                      }
                      } 
                      //----------------
                      ممنون میشم راهنمایی کنید که چرا این ارور رو میده و مشکل از کجاست؟
                      الهم عجل لولیک الفرج

                      دیدگاه


                        #12
                        مشکل در keil

                        والا من که خودم تازه شروع کردم، نمیدونم ولی ببینم این برنامه شما main نداره؟
                        سایت صغیر این بنده حقیر منتظر بازدید و نظرات شما دوستان کبیر میباشد
                        www.best-circuits.com
                        (زبان فارسی به سایت اضافه شد)

                        دیدگاه


                          #13
                          مشکل در keil

                          با سلام
                          اقا منم دارم سی استاندارد کار می کنم
                          درست می گه این mainکجاست؟

                          دیدگاه


                            #14
                            مشکل در keil

                            سلام.
                            هنوز به مینش نرسیده بودم که این ارور رو داد.
                            هنوز برنامه نیست.
                            تیکه تیکه کامپایل میکردم ببینم مشکل نوشتاری نداشته باشه.(که نداشت)
                            فقط نوشت که Out Of Code و بعد انگاری سورس برنامه رو نشون داد.
                            ولی فایل هگزی که ساخته کمتر از یک کیلو بایته (چه برسه به اونی که ریخته میشه توی میکرو).

                            KEIL هم لا مذهب 25 مگه.
                            اونم 25 تیکه. باز اگه 1 تیکه بود میشد با فلش گت دان کرد که راحت باشه.
                            (کسی تک لینکی شو نداره؟ که کار هم بکنه؟)

                            راستی یک سوال.
                            اگر بخوام مانند بیتها که با sbit تعریف کردم کل یک پورت رو تعریف کنم باید چطوری عمل کنم و چی بنویسم؟
                            الهم عجل لولیک الفرج

                            دیدگاه


                              #15
                              مشکل در keil

                              فکر نمیکنم که تا برنامه main نداشته باشه اصلا بتونه کامپایل کنه. توی keil که اگه یه تابع توی برنامه فراخوانی نشه (یعنی تابعی که اصلا استفاده نشه) خودش اون رو حذف میکنه (البته warning میده که حذف کرده). شما یه main الکی بنویسید که فقط اون توابع رو فراخوانی کنه شاید درست شد. درضمن من اون 25 تیکه keil رو گرفتم تا چند وقت دیگه سعی میکنم بزارم تو سایتم (البته با اجازه کسی که این برنامه رو upload کرده ) ولی نمیدونم کی آخه فعلا هاستم جا نداره میخوام ارتقاش بدم. هر وقت درست شد حتما بهتون میگم.
                              ولی حالا اگه بیکار بودید میتونید یه سری به سایتم بزنید (البته یکی دو ماه هم نمیشه که راه افتاده)
                              سایت صغیر این بنده حقیر منتظر بازدید و نظرات شما دوستان کبیر میباشد
                              www.best-circuits.com
                              (زبان فارسی به سایت اضافه شد)

                              دیدگاه

                              لطفا صبر کنید...
                              X