Şimdi Ara

32bit PIC Maximum Output Çıkış Hızı

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
1 Misafir - 1 Masaüstü
5 sn
2
Cevap
0
Favori
761
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhabalar , 32MX460F512L PIC ini kullanmaktayım . Sistem clock unu ve peripheral clock u maximum a ayarladım ve pinin çıkışının state ini değiştirerek en azından 1 Mhz de clock üretmeye çalışıyorum. Ama alttaki kodla 312kHz e kadar çıkabildim bunun bir yolu var mıdır ? Source koduna mı ulaşmam gerekir ? Delay init ve delayms fonksiyonlarını şimdilik kullanmıyorum.

    #include <plib.h> 


    #define SYSCLOCK ( 80000000UL )
    #define PERCLOCK ( 10000000UL )
    #define cntMsDelay 1

    #pragma config FNOSC = PRIPLL
    #pragma config POSCMOD = EC
    #pragma config FPLLIDIV = DIV_2
    #pragma config FPLLMUL = MUL_20
    #pragma config FPLLODIV = DIV_1
    #pragma config FPBDIV = DIV_8

    #pragma config FWDTEN = OFF
    #pragma config CP = OFF
    #pragma config BWP = OFF
    #pragma config PWP = OFF

    void DelayInit()
    {
    unsigned int tcfg;

    /* Configure Timer 1. This sets it up to count a 10Mhz with a period of 0xFFFF
    */
    tcfg = T1_ON|T1_IDLE_CON|T1_SOURCE_INT|T1_PS_1_1|T1_GATE_OFF|T1_SYNC_EXT_OFF;
    OpenTimer1(tcfg,0xFFFF); //FFFF

    }

    void DelayMs(int cms)
    {
    int ims;

    for (ims=0; ims<cms; ims++) {
    WriteTimer1(0);
    while (ReadTimer1() < cntMsDelay);
    }

    }

    int main()
    {
    DelayInit();

    PORTSetPinsDigitalOut (IOPORT_B, BIT_10|BIT_11| BIT_12|BIT_13);
    PORTClearBits(IOPORT_B, BIT_10|BIT_11| BIT_12|BIT_13);

    while(1){

    PORTWrite(IOPORT_B, BIT_10);
    PORTClearBits(IOPORT_B, BIT_10);
    }
    return 0;
    }







  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.