ccpisr.c

来自「picc_18v 8.35pl35 PIC18系列单片机开发C编译器」· C语言 代码 · 共 58 行

C
58
字号
#include <pic18.h>
#include "ccp.h"
#include <stdio.h>

void interrupt ISR(void)
{
	if((RBIE)&&(RBIF))
	{
	if(CHANGE_MODE1)																		/*change current mode of CCP1*/
		{
			CURRENT_MODE1++;
			if(CURRENT_MODE1>=12)	CURRENT_MODE1=0;					/*PWM is not tested by this program*/
			
			if (CURRENT_MODE1==1)	CURRENT_MODE1++;					/*CCP1CON=1 is reserved*/
			
			if ((CURRENT_MODE1==2)||(CURRENT_MODE1>=8))				 /*change IO direction for pin C2*/        
				{
				TRISC=TRISC&0xFB;
				}	
			else
				{
				TRISC=TRISC|0x04;
				}
		}
	if(CHANGE_MODE2)																		/*change current mode of CCP2*/        
		{
			CURRENT_MODE2++;
			if(CURRENT_MODE2>=12)	CURRENT_MODE2=0;					/*PWM is not tested by this program*/ 

			if (CURRENT_MODE2==1)	CURRENT_MODE2++;					/*CCP2CON=1 is reserved*/ 

			if ((CURRENT_MODE2==2)||(CURRENT_MODE2>=8))				/*change IO direction for pin E7*/
				{
				TRISE=TRISE&0x7F;				
				}	
			else
				{
				TRISE=TRISE|0x80;
				}
		}
		RBIF=0;
		UPDATE_REQUIRED=1;
	}
	if((CCP1IE)&&(CCP1IF))																/*interrupt from CCP1 has occured*/
	{
		CCP1INT=1;  
		if (CURRENT_MODE1==11) SPECIAL_EVENT1=1;					/*if special even occured set SPECIAL_EVENT1*/
		CCP1IF=0;
	}
	if((CCP2IE)&&(CCP2IF))																/*interrupt from CCP2 has occured*/
	{
		CCP2INT=1;  
		if (CURRENT_MODE2==11) SPECIAL_EVENT2=1;					/*if special even occured set SPECIAL_EVENT2*/
		CCP2IF=0;
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?