📄 ccpisr.c
字号:
#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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -