zhongduan.c
来自「实现了有凌阳的外部中断进行技数」· C语言 代码 · 共 67 行
C
67 行
#include "SPCE061A.h"
extern unsigned int g,n,g_Data[],x0,x1,x2,x3,x4,f,m,bb;
static unsigned int w=0x0400;
///////////////////////////////////////////////////////////////////////////////////
void __attribute__((ISR))IRQ1(void)
{
// g++;
m++;
*P_Watchdog_Clear=0x0001 ;
*P_INT_Clear=0x1000;
}
////////////////////////////////////////////////////////////////////////////////////
void __attribute__((ISR))IRQ5(void)
{
if((*P_INT_Ctrl&0x0004)!=0)
{ n++;
if(*P_TimerA_Data==0xfffe)
{*P_TimerA_Data=0; g++;}
if(n==6) //是否为3s定时
{
if(g==0)
{ n=0;
f=*P_TimerA_Data/3;
*P_TimerA_Data=0;
}
if(g>0)
{
n=0;
bb=*P_TimerA_Data;
f =(65535*g+*P_TimerA_Data)/3;
*P_TimerA_Data=0;
g=0;
}
}
}
*P_INT_Clear=0x0004;
}
//////////////////////////////////////////////////////////////////////////////
void __attribute__((ISR))IRQ4(void)
{
if((*P_INT_Ctrl&0x0040)!=0)
{ w=w<<1;
if(w==0x8000) w=0x0400;
switch(w)
{
case 0x0800:*P_IOA_Data=0xe000|g_Data[x3] ;break;
case 0x1000:*P_IOA_Data=0xd000|g_Data[x2] ;break;
case 0x2000:*P_IOA_Data=0xb000|g_Data[x1] ;break;
case 0x4000:*P_IOA_Data=0x7000|g_Data[x0] ;break;
default:break;
}
// Delay(1000);
}
*P_INT_Clear=0x0040;
}
/////////////////////////////////////////////////////////////////////////////
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?