这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 如何编程让PIC18f4520输出1MHz的方波?

共6条 1/1 1 跳转至

如何编程让PIC18f4520输出1MHz的方波?

工程师
2021-04-19 21:40:00     打赏

最近开始换方案,发现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;

}





关键词: PIC18f4520     方波    

工程师
2021-04-19 21:53:23     打赏
2楼

你以为进中断出中断不需要时间?


工程师
2021-04-19 21:57:57     打赏
3楼

PIC的指令周期(执行一条指令消耗的时间)是时钟周期的四倍,16M的时钟可以得到4M的指令速度,循环跳转指令也要消耗指令时间,所以,楼主你自己想。


专家
2021-04-20 00:02:42     打赏
4楼

感谢楼主的分享,很实用了。


工程师
2021-04-20 00:11:34     打赏
5楼

感谢楼主的分享,很实用了。


专家
2021-04-20 06:24:09     打赏
6楼

感谢分享


共6条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]