找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

关于STC单片机的函数调用(关于PCA)

[复制链接]
admin 发表于 2012-9-4 03:35:35 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
具体问题如下:我使用的是STC12C5608AD的单片机。程序中需要把PCA作为一个定时器来用。因此按照技术手册上面的来写了程序。但是发下没有产生PCA中断。
经调试发现。如果把PCA的初始化放入子函数中调用,PCA的中断就没办法进入。直接放到main()函数中,while(1),之前,功能正常。
不知道大家有没有遇到过相类似的问题
具体代码如下:(备注:fun12()中的代码和下面屏蔽掉的代码相同。屏蔽掉fun12()。下面代码取消屏蔽时,P1.1输出100HZ脉冲。屏蔽掉下面代码,使用fun12()调用,没有任何现象),在线等。。。。。。。。。。。。。。。。。。。

#include"reg51.h"
#include <intrins.h>


#define FOSC 11059200L
#define T100HZ (FOSC/12/100)

typedef unsigned char BYTE;
typedef unsigned int WORD;

sbit EPCAI=IE^6;
sfr CCON=0XD8;
sbit CCF0=CCON^0;
sbit CCF1=CCON^1;
sbit CR=CCON^6;
sbit CF=CCON^7;
sfr CMOD=0XD9;
sfr CL=0xe9;
sfr CH=0XF9;
sfr CCAPM0=0XDA;
sfr CCAP0L=0XEA;
sfr CCAP0H=0XFA;
sfr CCAPM1=0XDB;
sfr CCAP1L=0XEB;
sfr CCAP1H=0XFB;

sfr CCAPM2=0XDC;
sfr CCAP2L=0XEC;
sfr CCAP2H=0XFC;

sfr CCAPM3=0XDD;
sfr CCAP3L=0XED;
sfr CCAP3H=0XFD;

sbit PCA_LED =P1^1;


BYTE cnt;
WORD value;

void PCA_isr()interrupt 7
{

CCF0=0;
CCAP0L=value;
CCAP0H=value>>8;
value+=T100HZ;
PCA_LED=!PCA_LED;


}

void fun12(void)
{
CCON=0; //Initial PCA control register
//PCA time stop running
//clear CF flag
//Clear all module interrupt flag
CL=0; //Reset PCA base time
CH=0;
CMOD=0X00; //Set PCA time clock source as Fose/12
//Disable PCA time overflow interrupt
value=T100HZ;

CCAP0L=value;
CCAP0H=value>>8; //Initial PCA Module-0

value+=T100HZ;

CCAPM0=0X49; //PCA Module-0 work in 16-bit timer Mode
//And enable PCA interrupt

CR=1;
EPCAI=1;
EA=1;
cnt=0;
}


main()
{
fun12();
/*CCON=0; //Initial PCA control register
//PCA time stop running
//clear CF flag
//Clear all module interrupt flag
CL=0; //Reset PCA base time
CH=0;
CMOD=0X00; //Set PCA time clock source as Fose/12
//Disable PCA time overflow interrupt
value=T100HZ;

CCAP0L=value;
CCAP0H=value>>8; //Initial PCA Module-0

value+=T100HZ;

CCAPM0=0X49; //PCA Module-0 work in 16-bit timer Mode
//And enable PCA interrupt

CR=1;
EPCAI=1;
EA=1;
cnt=0; */
while(1);
}
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-11-27 14:06 , Processed in 0.054086 second(s), 11 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表