ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ورود برای شما نمایش داده نمیشود، اینجا را کلیک کنید.









اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





کاربران برچسب زده شده

صفحه 1 از 2 12 آخرین
نمایش نتایج: از 1 به 10 از 20
  1. #1
    2011/12/22
    کرمان
    2,954
    134

    اینتراپت ساده در PIC18F

    سلام
    من میخوام یه اینتراپت ساده روی پایه INT0 تولید کنم که با زدن این دکمه روی لبه پایین رونده وارد سرویس روتین بشه
    اما اصلا نمیدونم چی به چی باید باشه :sad:
    میشه اگر کسی برنامه ای داره یا کسی که وارده اینتراپت رو برام توضیح بده
    من با MPLAM X کار میکنم
    ممنون

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت


    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت


    کنترلر CNC شش محوره براي پرينتر 3D و Pick n Place
    شبيه ساز تک تيرانداز و سيبل ديجيتال با پردازش تصوير
    فروش اسيلوسکوپ GWinstek GOS-630FC
  2. #2
    2008/09/29
    6,000
    442

    پاسخ : اینتراپت ساده در PIC18F

    نقل قول نوشته اصلی توسط بسطام بیرامی
    سلام
    من میخوام یه اینتراپت ساده روی پایه INT0 تولید کنم که با زدن این دکمه روی لبه پایین رونده وارد سرویس روتین بشه
    اما اصلا نمیدونم چی به چی باید باشه :sad:
    میشه اگر کسی برنامه ای داره یا کسی که وارده اینتراپت رو برام توضیح بده
    من با MPLAM X کار میکنم
    ممنون
    من با زبان برنامه نویسی MPLAM اصلا آشنا نیستم ولی توی همه زبانهایی که دیدم یه پروسیجر اینتراپت که اسم خاصی داره رو توی برنامه اضافه میکنن و توی ان هر کاری که بخای رو انجام میدی. البته باید قبلش توی برنامه اصلی بیت های فعال کردن این اینتراپت رو فعال کنی.
    برای پیدا کردن اسم اینتراپت توی help خود نرم افزار MPLAM یه سرچی بزن.
    میدونی بیت اینتراپت رو چطوری باید فعال کنی؟
  3. #3
    2011/12/22
    کرمان
    2,954
    134

    پاسخ : اینتراپت ساده در PIC18F

    نقل قول نوشته اصلی توسط arvinfx
    من با زبان برنامه نویسی MPLAM اصلا آشنا نیستم ولی توی همه زبانهایی که دیدم یه پروسیجر اینتراپت که اسم خاصی داره رو توی برنامه اضافه میکنن و توی ان هر کاری که بخای رو انجام میدی. البته باید قبلش توی برنامه اصلی بیت های فعال کردن این اینتراپت رو فعال کنی.
    برای پیدا کردن اسم اینتراپت توی help خود نرم افزار MPLAM یه سرچی بزن.
    میدونی بیت اینتراپت رو چطوری باید فعال کنی؟
    مرسی
    بله بلدم اینم نوشتم نمیدونم مشکلش چییه؟ :sad:

    کد:
    /* 
     * File:  Interrupt.c
     * Author: 12
     *
     * Created on October 23, 2012, 10:51 AM
     */
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <p18f26k22.h>
    #include <delays.h>
    
    
    //#define My_LED PORTCbits.RC0
    void chk_isr (void);
    void INT0_ISR(void);
    #pragma code My_int = 0x0008
    void My_int (void)
    {
      _asm
          goto chk_isr
      _endasm
    }
    #pragma code
    #pragma interrupt chk_isr
    
    void chk_isr (void)
    
    {
      if ( INTCONbits.INT0IF == 1)
        INT0_ISR();
    }
    
    
    
    void main (void)
    {
      TRISCbits.TRISC3 = 0;  //RC3 output
      TRISCbits.TRISC0 = 0;  // RC0 output
      PORTCbits.RC0 = 1;   // LED on
      TRISBbits.TRISB0 = 1;  // INT0 Input
      INTCONbits.INT0IF = 0; // clear INT0 Flag
      INTCONbits.INT0IE = 1; // enable INT0 Interrupt
      INTCON2bits.INTEDG0 = 0;  // make in neg edge
      INTCONbits.GIE = 1; //enable all int
    
      while (1)
      {
        PORTCbits.RC3 = 0;
        Delay10KTCYx(10);
        PORTCbits.RC3 = 1;
        Delay10KTCYx(10);
      }
    
    }
    
    
    void INT0_ISR (void)
    {
      
      PORTCbits.RC0 = 0;
      Delay10KTCYx(10);
      PORTCbits.RC0 = 1;
      Delay10KTCYx(10);
      INTCONbits.INT0IF = 0; // clear INT0 Flag
    }
    از کتاب دکتر مزیدی هم کمک گرفتم توی اینتراپت نمیره :sad:

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت


    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت


    کنترلر CNC شش محوره براي پرينتر 3D و Pick n Place
    شبيه ساز تک تيرانداز و سيبل ديجيتال با پردازش تصوير
    فروش اسيلوسکوپ GWinstek GOS-630FC
  4. #4
    2009/02/18
    تهران
    270
    1

    پاسخ : اینتراپت ساده در PIC18F

    با سلام

    ایتراپت در این کامپایلر یک سری قلق خاص داره که اگر کتاب " میکروکنترلرهای pic برنامه نویسی اسمبلی و c " را مطالعه نکنید مشکل میتوانید در این کامپایلر از اینتراپت استفاده کنید

    در هر صورت من کد ها را برای شما قرار میدم


    کد:
    /*============================*/
    
    #pragma code high_vector = 0x08
    void interrupt_at_high_vector(void)
    {
    _asm GOTO high_isr _endasm
    }
    #pragma code /* return to the default code section */
    
    
    #pragma code low_vector=0x18
    void interrupt_at_low_vector(void)
    {
    _asm GOTO low_isr _endasm
    }
    #pragma code /* return to the default code section */
    
    /*============================*/
    
    
    #pragma interrupt high_isr
    void high_isr (void)
    {
     
    کد های شما برای روتین وقفه اولویت بالا
    
    }
    
    
    
    #pragma interruptlow low_isr
    void low_isr (void)
    {
     
    کد های شما برای روتین وقفه اولویت پایین
    
    }

    حال در برنامتون بعد از main باید وقفه ها و وقفه مورد نظرتون رو فعال کنید

    با INTCONbits.GIEH = 1 همه وقفه های اولویت بالا میتوانند فعال شوند و
    با INTCONbits.GIEL = 1 همه وقفه های اولویت پایین میتوانند فعال شوند

    با INTCONbits.INT0IE = 1 وقفه INT0 فعال میشود
    دقت منید وقفه INT0 فقط اولویت بالا دارد :arrow:

    با INTCON2bits.INTEDG0 = 0 وقفه INT0 حساس به لیه پایین رونده میشود


    موفق باشید
    نا اميدي يه دروغ بزرگه که آدما به خودشون ميگن
    تلاش يه حقيقت بزرگه که با صبر به ثمر ميرسه
  5. #5
    2011/12/22
    کرمان
    2,954
    134

    پاسخ : اینتراپت ساده در PIC18F

    مرسی ولی بازم کار نمیکنه
    کد منو چک میکنی ببینی چه مشکلی داره؟!
    هم کتاب رو خوندم هم کل datasheet رو و همه قسمت های Interrupt رو دقیق بررسی کردم ولی میخوام وقتی کلید که به INT0 وصله میزنم LED روی پایه RC0 تغییر کنه نمیشه
    مشکل از کجاست؟!

    کد:
    /* 
     * File:  Interrupt.c
     * Author: 12
     *
     * Created on October 23, 2012, 10:51 AM
     */
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <p18f26k22.h>
    #include <delays.h>
    
    
    void high_isr (void);
    void low_isr (void);
    
    /*============================*/
    
    #pragma code high_vector = 0x08
    void interrupt_at_high_vector(void)
    {
    _asm GOTO high_isr _endasm
    }
    #pragma code /* return to the default code section */
    
    
    #pragma code low_vector=0x18
    void interrupt_at_low_vector(void)
    {
    _asm GOTO low_isr _endasm
    }
    #pragma code /* return to the default code section */
    
    /*============================*/
    
    
    void main (void)
    {
      INTCON = 0xD0;
      TRISCbits.TRISC3 = 0;  //RC3 output
      TRISCbits.TRISC0 = 0;  // RC0 output
      PORTCbits.RC0 = 1;   // LED on
      TRISBbits.RB0 = 1;  // INT0 Input
      INTCONbits.INT0IF = 0; // clear INT0 Flag
      INTCONbits.INT0IE = 1; // enable INT0 Interrupt
      INTCON2bits.INTEDG0 = 0;  // make in neg edge
      INTCONbits.GIEH = 1; //enable all int
      RCONbits.IPEN = 1;   //enable priority levels
      TRISCbits.RC1 = 0 ;
      PORTCbits.RC1 = 1 ;
    
      while (1)
      {
        PORTCbits.RC3 = 0;
        Delay10KTCYx(10);
        PORTCbits.RC3 = 1;
        Delay10KTCYx(10);
      }
    
    }
    
    
    #pragma interrupt high_isr
    void high_isr (void)
    {
    
    //کد های شما برای روتین وقفه اولویت بالا
     PORTCbits.RC0 = 0;
     Delay10KTCYx(10);
     PORTCbits.RC0 = 1;
     Delay10KTCYx(10);
     INTCONbits.INT0IF = 0; // clear INT0 Flag
    
    }
    
    
    
    #pragma interruptlow low_isr
    void low_isr (void)
    {
    
    //کد های شما برای روتین وقفه اولویت پایین
     PORTCbits.RC1 = 0;
     Delay10KTCYx(10);
     PORTCbits.RC1 = 1;
     Delay10KTCYx(10);
     INTCONbits.INT0IF = 0; // clear INT0 Flag
    
    }

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت


    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت


    کنترلر CNC شش محوره براي پرينتر 3D و Pick n Place
    شبيه ساز تک تيرانداز و سيبل ديجيتال با پردازش تصوير
    فروش اسيلوسکوپ GWinstek GOS-630FC
  6. #6
    2011/12/22
    کرمان
    2,954
    134

    پاسخ : اینتراپت ساده در PIC18F

    من حتی فایل COF رو هم توی Proteus شبیه سازی کردم
    مشکلی نداره همه چی درست ست میشه ولی وقتی دکمه رو فشار میدم فلگINTCONbits.INT0IF ست نمیشه و توی اینتراپت نمیره
    چرا؟!
    من به صورت دستی توی برنامه INTCONbits.INT0IF رو یک میکنم برنامه میره توی سرویس روتین اینتراپت و درست میشه
    ولی وقتی دکمه فشار داده میشه فلگ ست نمیشه و توی سرویس روتین نمیره مشکل از کجاست؟!

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت


    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت


    کنترلر CNC شش محوره براي پرينتر 3D و Pick n Place
    شبيه ساز تک تيرانداز و سيبل ديجيتال با پردازش تصوير
    فروش اسيلوسکوپ GWinstek GOS-630FC
  7. #7
    2008/09/29
    6,000
    442

    پاسخ : اینتراپت ساده در PIC18F

    نقل قول نوشته اصلی توسط بسطام بیرامی
    من حتی فایل COF رو هم توی Proteus شبیه سازی کردم
    مشکلی نداره همه چی درست ست میشه ولی وقتی دکمه رو فشار میدم فلگINTCONbits.INT0IF ست نمیشه و توی اینتراپت نمیره
    چرا؟!
    من به صورت دستی توی برنامه INTCONbits.INT0IF رو یک میکنم برنامه میره توی سرویس روتین اینتراپت و درست میشه
    ولی وقتی دکمه فشار داده میشه فلگ ست نمیشه و توی سرویس روتین نمیره مشکل از کجاست؟!
    فایل پروتئوستو + هگز بده
  8. #8
    2011/12/22
    کرمان
    2,954
    134

    پاسخ : اینتراپت ساده در PIC18F

    نقل قول نوشته اصلی توسط arvinfx
    فایل پروتئوستو + هگز بده
    همه چی هست با MPlab و Proteus فایل C ، Hex و COF

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت


    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت


    کنترلر CNC شش محوره براي پرينتر 3D و Pick n Place
    شبيه ساز تک تيرانداز و سيبل ديجيتال با پردازش تصوير
    فروش اسيلوسکوپ GWinstek GOS-630FC
  9. #9
    2008/09/29
    6,000
    442

    پاسخ : اینتراپت ساده در PIC18F

    نقل قول نوشته اصلی توسط بسطام بیرامی
    همه چی هست با MPlab و Proteus فایل C ، Hex و COF

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    تنضیمات اسیلاتور و من ندیدم. از اسیلاتور داخلی 4Mhz استفاده کردی؟ اگر اینطوره تنظیماتشم باید انجام بدی.
  10. #10
    2011/12/22
    کرمان
    2,954
    134

    پاسخ : اینتراپت ساده در PIC18F

    بلی اسیلاتور داخلی استفاده کردم
    کار میکنه مشکلی نداره ADC رو هم راه انداختم
    فقط اینتراپت نمیگیره
    گفتم اگر فلگ رو هم دستی توی برنامه ست کنم میره توی سرویس روتین و برنامه اینتراپت رو اجرا میکنه
    ولی وقتی دکمه فشار داده میشه این فلگ ست نمیشه که بره توی روتین اینتراپت :sad:

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت


    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت


    کنترلر CNC شش محوره براي پرينتر 3D و Pick n Place
    شبيه ساز تک تيرانداز و سيبل ديجيتال با پردازش تصوير
    فروش اسيلوسکوپ GWinstek GOS-630FC
صفحه 1 از 2 12 آخرین
نمایش نتایج: از 1 به 10 از 20

موضوعات مشابه

  1. اینتراپت
    توسط stooy در انجمن میکروکنترلرهای AVR
    پاسخ: 8
    آخرين نوشته: 2015/08/21, 13:41
  2. اینتراپت
    توسط SILVER MAN در انجمن میکروکنترلرهای AVR
    پاسخ: 30
    آخرين نوشته: 2013/12/31, 14:08
  3. اینتراپت
    توسط reza kazemi1368 در انجمن پروسسورهای ARM
    پاسخ: 10
    آخرين نوشته: 2012/04/14, 21:57
  4. کمک برای فیوز بیت های سری PIC18f
    توسط amintlk در انجمن میکروکنترلرهای PIC
    پاسخ: 26
    آخرين نوشته: 2010/05/21, 01:53
  5. اینتراپت
    توسط aparsa در انجمن رباتيك و مكاترونيك
    پاسخ: 3
    آخرين نوشته: 2009/09/27, 09:27

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •