اطلاعیه

Collapse
No announcement yet.

18f452 + proteus

Collapse
این موضوع بسته شده است.
X
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    18f452 + proteus

    سلام من یه پروژه دارم که می خوام تو proteus شبیه سازی کنم. برنامه توی c18 نوشته شده و من کلاک میکرو در پروتوس رو 40M گذاشتم توی کد برنامه:
    #pragma config OSC = HSPLL
    اما تایمر ها درست جواب نمی دهند و زمان ها رو چرند میده مثلا واسه تایمر 1 من گذاشتم :
    کد:
    void timer1_init(void){
      T1CON=(1<<4);
      TMR1H = 60;       
      TMR1L = 176;
      PIE1bits.TMR1IE=1;
      IPR1bits.TMR1IP=1;  //Timer1 overflow has high priority interrupt
      T1CONbits.TMR1ON=1;
    
    
    }
    که مثلا 10ms یه اینتراپت بده اما تو پروتوس هر 2.5ms اینتراپت میده
    یه مشکل دیگه هم توی تایمر 0 هست که قراره یه فرکانس رو از ورودی بخونه من تنظیمات رو اینجور انجام دادم :
    کد:
    void timer0_init(void)
    {
      /*
       Timer 0 in 16 bit mode with external clock ps:1/2
       */
         TMR0H = 0;          //clear timer
     TMR0L = 0;          //clear timer
     
    INTCONbits.TMR0IE=1;
    INTCON2bits.TMR0IP=0;
    }
    اما توی شبیه ساز هیچ موقع TMR0H تغییر نمی کنه
    لطفا راهنمایی کنید

    #2
    پاسخ : 18f452 + proteus

    جواب اینه که :
    توی شبیه ساز فرکانس میکرو رو باید 10 بزاری چون 40/4=10
    و واسه خوندن هم باید اول رجیستر پایین رو خوند تا رجیتر بالا کپی شه سر جاش

    دیدگاه


      #3
      پاسخ : 18f452 + proteus

      با سلام

      اقا من خیلی با pic کار نکردم ولی فکر کنم باید کلاک رو 10mhz بزاری چون با pll میشه 40mhz بعد نرم افزار proteus فکر میکنم تایماش دقیق نیست

      دوستان اگر اشتباه گفتم لطف کنید بگید

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

      دیدگاه

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