2014-02-24 32 views
-1

我正在写一个2分钟延迟的代码。我使用Mikro C pro来编译PIC。我使用PIC18F4550哪个时钟频率用于PIC18f4550

要计算我用Timer-Calculator

现在计时器延迟,我怀疑是使用了延迟其时钟频率?内部时钟还是应该提供一个外部时钟?

void InitTimer0(){ 
    T0CON = 0x86; 
    TMR0H = 0x67; 
    TMR0L = 0x69; 
    GIE_bit = 1; 
    TMR0IE_bit  = 1; 
} 

void Interrupt(){ //1 Second delay 
    if (TMR0IF_bit){ 
    TMR0IF_bit = 0; 
    TMR0H = 0x67; 
    TMR0L = 0x69; 
    //Enter your code here 
    count++; 
    } 
} 
... 
void main() { 
    if(count == 120) {  //120 Seconds 
     //My Code 
    } 
} 

在此代码中,我计算了20 MHz MCU时钟频率。 PIC18F4550是否有内部时钟?

我打算在包含板上20 MHz振荡器的PIC开发板上实现这个功能。

回答

1

PIC18F4550的内部振荡器支持8 MHz。要使用为20 MHz校准的延迟例程,您必须使用外部振荡器。所以你必须写一个8 MHz的例程或设置一个外部振荡器。

datasheet的第2部分描述了时钟的功能和设置,包括如何为外部振荡器配置芯片。