اطلاعیه

Collapse
No announcement yet.

مشکل با dsPIC , MPLAB

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

    مشکل با dsPIC , MPLAB

    سلام
    من می خوام یک LED رو با dsPIC30f4011 روشن کنم اما مشکل دارم
    این کد منه
    کد:
    #include "p30f4011.h"
    #define FCY 16000000   // xtal = 8.000Mhz; PLLx8
    #include "libpic30.h"
    
    _FOSC(CSW_FSCM_OFF & XT_PLL8); // Fosc=8x8MHz, Fcy=16MHz
    _FWDT(WDT_OFF);         // Watchdog timer off
    _FBORPOR(MCLR_DIS);       // Disable reset pin
    
    #define DcRelay LATFbits.LATF0
    #define rLED  LATFbits.LATF4
    #define gLED  LATFbits.LATF5
    
    void InitIo()
    {
     ADPCFG= 0xFFFE;//RB0 is Analog Input
     TRISB = 0x01FF;
     LATB = 0x0000;
     
     LATC=0x0000;
     TRISC=0xE000;
     
     LATD=0x0000;
     TRISD=0x0000; //all output
    
     LATE=0x0000;
     TRISE=0x0100; //RE8 is interrupt(input) , other are pwn output
    
     LATF=0x0000;
     TRISF=0x0040; //all outputs, RE6 is NC/input 1000000
     rLED=0;
     gLED=1;
    }
    
    int main(void)
    {
     InitIo();
     while(1)
     {
    //  asm ("CLRWDT");
     }; 
     return 0;
    }
    این عکس مدار منه: http://img4up.com/up2/68311630980369538051.jpg
    اینم صفحه MPLAB و تنظیمات و ...: http://img4up.com/up2/81402963383836896366.jpg
    نمی دونم کجا مشکل وجود داره. از کمک شما ممنونم. این اولین برنامه من برای dsPIC هست

    #2
    پاسخ : مشکل با dsPIC , MPLAB

    سلام
    من با dspic کار نکردم و در سری 18 و 16 خلاصه شدم
    اما داخل مدارتون شما باید مقاومت روی پایه ی ریست رو به بعد از خازن بزارین نه قبلش (چون اینجوری این پایه که pullup نمی شه)

    داخل برناتون تا اونجایی که متوجه شدم شما همش watchdog رو خاموش می کنین بهتره پورت ها رو وسیله
    PortFbits.RF4
    PortFbits.RF5
    صفر و یا یک کنین

    به این صورت تست کنین

    کد:
    #include "p30f4011.h"
    #define FCY 16000000   // xtal = 8.000Mhz; PLLx8
    #include "libpic30.h"
    
    _FOSC(CSW_FSCM_OFF & XT_PLL8); // Fosc=8x8MHz, Fcy=16MHz
    _FWDT(WDT_OFF);         // Watchdog timer off
    _FBORPOR(MCLR_DIS);       // Disable reset pin
    
    #define DcRelay LATFbits.LATF0
    #define rLED  PortFbits.RF4
    #define gLED  PortFbits.RF5
    
    void InitIo()
    {
     ADPCFG= 0xFFFE;//RB0 is Analog Input
     TRISB = 0x01FF;
     LATB = 0x0000;
     
     LATC=0x0000;
     TRISC=0xE000;
     
     LATD=0x0000;
     TRISD=0x0000; //all output
    
     LATE=0x0000;
     TRISE=0x0100; //RE8 is interrupt(input) , other are pwn output
    
     LATF=0x0000;
     TRISF=0x0040; //all outputs, RE6 is NC/input 1000000
     rLED=0;
     gLED=1;
    }
    
    int main(void)
    {
     InitIo();
     while(1)
     {
    //  asm ("CLRWDT");
     }; 
     return 0;

    هیچ دانش آموزی نیست که به در خانۀ دانشمندی آمد و شد کند, مگر این که خداوند برای هر گامی که برمی دارد عبادت یک سال را برایش رقم زند.

    دیدگاه


      #3
      پاسخ : مشکل با dsPIC , MPLAB

      بله حل شد. مشکل از همون پایه MCLR بود که مقاومتش رو اشتباهی اونطرف گذاشته بودم.
      ممنون

      دیدگاه

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