اطلاعیه

Collapse
No announcement yet.

مشکل با کامپایلر mikroc pro of pic

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

    #16
    پاسخ : مشکل با کامپایلر mikroc pro of pic

    سلام دوستان
    من هم با این کامپایلر به مشکل خوردم . حجم برنامه 3 کیلو بایت هست و فقط وقفه ها اجرا میشن . حلقه while بینهایت فقط یک بار اجرا میشه ولی وقفه ها مثل تایمر و وقفه خروجی درست اجرا میشه.ممکنه مشکل از کامپایلر باشه؟؟؟؟؟ :angry:

    دیدگاه


      #17
      پاسخ : مشکل با کامپایلر mikroc pro of pic

      نوشته اصلی توسط rasool1370
      سلام دوستان
      من هم با این کامپایلر به مشکل خوردم . حجم برنامه 3 کیلو بایت هست و فقط وقفه ها اجرا میشن . حلقه while بینهایت فقط یک بار اجرا میشه ولی وقفه ها مثل تایمر و وقفه خروجی درست اجرا میشه.ممکنه مشکل از کامپایلر باشه؟؟؟؟؟ :angry:
      ورژن چنده؟

      کرک شده اس؟

      اگه کرک شدس ببین درست کرک شده؟

      دیدگاه


        #18
        پاسخ : مشکل با کامپایلر mikroc pro of pic

        نوشته اصلی توسط هادی هاشمی
        ورژن چنده؟

        کرک شده اس؟

        اگه کرک شدس ببین درست کرک شده؟
        راستش الان ورژنش یادم نیست 6 و خورده ای
        بله کرک کردم و از موقعی که کرک کردم نرم افزار پیغام میده که ورژن بالاتر هم هست میخواد اپدیت کنی؟ من هم no میزنم

        دیدگاه


          #19
          پاسخ : مشکل با کامپایلر mikroc pro of pic

          نوشته اصلی توسط rasool1370
          راستش الان ورژنش یادم نیست 6 و خورده ای
          بله کرک کردم و از موقعی که کرک کردم نرم افزار پیغام میده که ورژن بالاتر هم هست میخواد اپدیت کنی؟ من هم no میزنم
          خب اگه از کامپایلر و کرکش مطمئن هستین ممکنه از برنامتون ( کدی که نوشتین ) باشه. برای بیشتر مطمئن شدن هم میتونین یه برنامه بدون نقض گیر بیارین و کامپایلش کنین. اگه به درستی کار کرد این امکان هست که کدتون مشکل داره.

          دیدگاه


            #20
            پاسخ : مشکل با کامپایلر mikroc pro of pic

            نوشته اصلی توسط هادی هاشمی
            خب اگه از کامپایلر و کرکش مطمئن هستین ممکنه از برنامتون ( کدی که نوشتین ) باشه. برای بیشتر مطمئن شدن هم میتونین یه برنامه بدون نقض گیر بیارین و کامپایلش کنین. اگه به درستی کار کرد این امکان هست که کدتون مشکل داره.
            این کد برنامه هست . تو حلقه بینهایت باید مرتب به پورت a اضافه بشه ولی فقط یکی اضافه میشه و بیت صفر پورت a روشن میشه وهیچ اتفاق دیگه ای نمیفته ولی وقفه ها درست کار میکنن.

            کد:
             int time1=190,rah,rah2=30,seg[10]={63,6,91,79,102,109,125,39,127,111},l,b=1;
             void Interrupt()
             {
               if (TMR0IF_bit&&time1>3)//526us
               {
                TMR0IF_bit = 0;
                TMR0H= 0xFA;
                TMR0L= 0xDD;
                rah++;
                if(rah==rah2)
                {
                time1--;
                rah=0;
                }
                }
                
               
            
               if (TMR2IF_bit&&b==2)//10ms
              {
               TMR2IF_bit = 0;
               T2CON.F2=0;
               PORTD.F2=1;
               delay_us(800);
               PORTD.F2=0;
              }
              
            
              if (TMR3IF_bit)//8 MS
              {
               TMR3IF_bit = 0;
               TMR3H= 0xB1;
               TMR3L= 0xE0;
               l++;
               if(l==1)
               {
                PORTD.F5=0;
                PORTC=seg[rah2/100];
                PORTD.F7=1;
                }
                if(l==2)
                {
                PORTD.F7=0;
                PORTC=seg[(rah2%100)/10];
                PORTD.F6=1;
                }
                if(l==3)
                {
                PORTD.F6=0;
                PORTC=seg[(rah2%100)%10];
                PORTD.F5=1;
                PORTC.F7=1;
                l=0;
                }
              }
              
              if(INTCON.F1==1&&b==2) //EXTRNAL INT0 PINB.0
              {
               INTCON.F1=0;
               PR2=time1;
               T2CON.F2=1;
               PORTD.F6=1;
              }
              }
            
            
            void main()
            {
             ADCON1 = 0xFF;
             INTCON.F7=1;
             INTCON.F6=1;
             INTCON.F4=1;
             INTCON2.F6=1;
             INTCON2.F7=1;
             TRISB=1;
             TRISD=0;
             PORTD=0;
             TRISC=0;
             PORTC=0;
             TRISA=0;
              //TIMER 0 526us
              T0CON     = 0x88;
              TMR0H     = 0xFA;
              TMR0L     = 0xDD;
              GIE_bit     = 1;
              TMR0IE_bit     = 1;
            
             
               //TIMER2 10 ms
            
              T2CON= 0x36;
              TMR2IE_bit= 1;
              PR2    = 223;
              INTCON= 0xC0;
            
              //TIMER3 8 ms
             T3CON     = 0x01;
             TMR3IF_bit     = 0;
             TMR3H     = 0xB1;
             TMR3L     = 0xE0;
             TMR3IE_bit     = 1;
             INTCON     = 0xC0;
              
              while (1)
               {
                if(PORTB.F1==1)
                {
                b=2;
                }
                PORTA++;
                 delay_ms(200);
               }
            
            }
            زمان وقفه تایمر صفر 526 میکرو ثانیه هست و فرکانس کاری 10 مگاهرتز هست . احتمال داره که CPU به خاطر تایمر 0 نتونه بقیه دستورات درست اجرا کنه؟؟؟

            دیدگاه


              #21
              پاسخ : مشکل با کامپایلر mikroc pro of pic

              این هم اطلاعت کرک نرم افزار . درسته؟؟؟؟؟؟



              دیدگاه


                #22
                پاسخ : مشکل با کامپایلر mikroc pro of pic

                من با این کامپایلر خیلی کار کردم

                اوایل خیال میکردم ار خود کامپایلر هست . البته خود کتمپایلر یه سری مشکلات داره که میگم براتون

                حتی نسخه لایسنس دار اون رو هم گیر اوردم و برنامه رو با اون تست کردم نه توی حجم تاثیر گذاشت و نه توی چیز دیگه ای فقط پولشو داده بودند که قانونی باشه

                داخل این کامپایلر شما اگر از دستور نمایش lcd زیاد استفاده کنید از یه جایی به بعد کلا قاطی میکنه دیگه جواب نمیده . به نظرم بیاید فقط یه بار از این دستور استفاده کنین . من خودم دلیل منطقی نتونستم براش پیدا کنم ولی مسلما از کرک نیست و نبوده به شرطی که درست کرک شده باشه

                موفق باشین
                عامل کلیدی تمام موفقیتها " عمل کردن" است

                دیدگاه


                  #23
                  پاسخ : مشکل با کامپایلر mikroc pro of pic

                  نوشته اصلی توسط alimohammad_sh
                  من با این کامپایلر خیلی کار کردم

                  اوایل خیال میکردم ار خود کامپایلر هست . البته خود کتمپایلر یه سری مشکلات داره که میگم براتون

                  حتی نسخه لایسنس دار اون رو هم گیر اوردم و برنامه رو با اون تست کردم نه توی حجم تاثیر گذاشت و نه توی چیز دیگه ای فقط پولشو داده بودند که قانونی باشه

                  داخل این کامپایلر شما اگر از دستور نمایش lcd زیاد استفاده کنید از یه جایی به بعد کلا قاطی میکنه دیگه جواب نمیده . به نظرم بیاید فقط یه بار از این دستور استفاده کنین . من خودم دلیل منطقی نتونستم براش پیدا کنم ولی مسلما از کرک نیست و نبوده به شرطی که درست کرک شده باشه

                  موفق باشین
                  من اصلا از دستور ال سی دی استفاده نکردم تو این برنامه.
                  اگه امکان داره میشه کدی که گذاشتم شما یک بار کامپایل کنید و ببینید که برا شما هم این مشکل هست یا نه؟؟؟؟
                  من با این کامپایلر و ccs کار کردم ولی اصلا از ccs خوشم نیومد و اینم که گیر داره . په کامپایلری واسه pic معرفی میکنید که تو مایه همین باشه

                  دیدگاه


                    #24
                    پاسخ : مشکل با کامپایلر mikroc pro of pic

                    نوشته اصلی توسط rasool1370
                    من اصلا از دستور ال سی دی استفاده نکردم تو این برنامه.
                    اگه امکان داره میشه کدی که گذاشتم شما یک بار کامپایل کنید و ببینید که برا شما هم این مشکل هست یا نه؟؟؟؟
                    من با این کامپایلر و ccs کار کردم ولی اصلا از ccs خوشم نیومد و اینم که گیر داره . په کامپایلری واسه pic معرفی میکنید که تو مایه همین باشه
                    آقا رسول من تست و کامپایل کردم همون روز. برای منم همونطوری شد. ولی وقتی وقفه هارو غیرفعال کردم PORTA شروع کرد به تغییر مقدار.
                    ولی چون نفهمیدم مشکل از چیه نتونستم جواب بدم.


                    البته اینم هست که شاید برنامه و کد نوشته شما بدرستی کار میکنه و مشکل میتونه از پروتئوس باشه. یعنی پروتئوس نتونه درست و حسابی سیموله کنه. من 18D4520 نداشتم که مدار رو عملی تست کنم شما اگه داری یه بار عملی تست کن.

                    دیدگاه


                      #25
                      پاسخ : مشکل با کامپایلر mikroc pro of pic

                      نوشته اصلی توسط هادی هاشمی
                      آقا رسول من تست و کامپایل کردم همون روز. برای منم همونطوری شد. ولی وقتی وقفه هارو غیرفعال کردم PORTA شروع کرد به تغییر مقدار.
                      ولی چون نفهمیدم مشکل از چیه نتونستم جواب بدم.


                      البته اینم هست که شاید برنامه و کد نوشته شما بدرستی کار میکنه و مشکل میتونه از پروتئوس باشه. یعنی پروتئوس نتونه درست و حسابی سیموله کنه. من 18D4520 نداشتم که مدار رو عملی تست کنم شما اگه داری یه بار عملی تست کن.
                      تشکر
                      باشه عملی امتحان میکنم و جوابش میگم.
                      احتمال داره که چون وقفه یکی از تایمر ها 526 میکرو ثانیه هست این مشکل پیش بیاد.یعنی فرصت نکنه که دستورات while اجرا کنه ؟؟؟
                      اگه این مشکل باشه با بالا بردن فرکانس کاری باید این مشکل حل بشه درسته؟؟؟

                      دیدگاه


                        #26
                        پاسخ : مشکل با کامپایلر mikroc pro of pic

                        سلام به همگی
                        اقا مشکل حل شد :wow:

                        شرط ورود به وقفه تایمر ها که قبلا به این صورت بود
                        کد:
                        if (TMR0IF_bit&&time1>3)//526us
                           {
                            TMR0IF_bit = 0;
                            TMR0H= 0xFA;
                            TMR0L= 0xDD;
                            rah++;
                            if(rah==rah2)
                            {
                            time1--;
                            rah=0;
                            }
                            }
                        به اینصورت نوشتم

                        کد:
                        if (TMR3IF_bit)//TIMER3 526US
                          {
                           TMR3IF_bit = 0;
                           TMR3H= 0xFA;
                           TMR3L= 0xDD;
                           if(time1>3)
                           {
                           rah++;
                           if(rah==rah2)
                           {
                            time--;
                            rah=0;
                            }
                           }
                          }
                        اول یه برنامه دیگه نوشتم ولی بازم همون مشکل پیش ومد. ولی وقتی دیدم که شرط ورود به وقفه تایمر تا فعال میشه اون مشکل پیش میاد گفتم بذار اینطوری امتحان کنم که جواب داد.

                        دیدگاه


                          #27
                          پاسخ : مشکل با کامپایلر mikroc pro of pic

                          سلام من هم این مشکل رو با microc دارم البته من میکروم dspic هستش و به microc pro for dspic احتیاج دارم. من تا حالا کسی رو ندیدم برنامه ای با حجم بیش از 13 کیلو رو نوشته باشه با microc کامپایل کرده باشه اگر کسی بتونه کمک کنه واقعا ممنون میشم

                          دیدگاه


                            #28
                            پاسخ : مشکل با کامپایلر mikroc pro of pic

                            سلام
                            اکثر این اشکالات مربوط به برنامه نویسی هستش، خیلی بعیده کامپایلر مشکل داشته باشه

                            دیدگاه

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