最近开始换方案,发现PIC涨价不多,就打算用18f4520,不是很熟悉,特来请教:如何输出1MHz的方波?
下面是我自己写的代码,定时器0只计一个数输出方波仍然在200kHz多。
#include <p18cxxx.h>
#include "k18.h"
void Time0Init(void);
void T0_ISR(void);
//void chk_isr(void);
#pragma interrupt chk_isr
void chk_isr(void)
{
if(INTCONbits.TMR0IF==1)
{
T0_ISR();
}
}
#pragma code My_Hiprio_int=0x08
void My_Hiprio_int(void)
{
_asm
GOTO chk_isr
_endasm
}
#pragma code
void main(void)
{
k18_init();/*HL-K18主板初始化*/
TRISD=0X00;//设置D口为输出
INTCONbits.GIE=1;
INTCONbits.PEIE=1;
OSCCON=0x70;
OSCTUNEbits.PLLEN=1;
Time0Init();
while(1){
}
}
void Time0Init(void)
{
INTCONbits.TMR0IE=1;
INTCONbits.TMR0IF=0;
T0CON=0x48;
TMR0L=0xFF;
T0CONbits.TMR0ON=1;
}
void T0_ISR(void)
{
TMR0L=0xFF;
INTCONbits.TMR0IF=0;
}