凌阳16位单片机之FIQ中断 您所在的位置:网站首页 仪表fiq 凌阳16位单片机之FIQ中断

凌阳16位单片机之FIQ中断

#凌阳16位单片机之FIQ中断| 来源: 网络整理| 查看: 265

实现功能:打开并设置TimerA和TimerB定时器,并打开它们的FIQ中断,当有TimerA/B的FIQ中断请求时,响应相应的中断服务程序,在中断服务中翻转I/O端口输出电平,以控制接在I/O端口的发光二极管的亮灭。 

实验现象:TimerA定时长度为2s,当进入TimerA的FIQ中断后,翻转IOA口低四位的输出电平以控制接在IOA低四位端口的发光二极管;TimerB定时长度为1s,当进入TimerB的FIQ中断后,翻转IOB口低四位的输出电平以控制接在IOB低四位端口的发光二极管。程序运行时,可以观察到接在IOA低四位端口的发光二极管亮灭的周期为4s,而接在IOB低四位端口的为2s。

#include "SPCE061A.H" unsigned int n,Output1=0x00f0,Output2=0x000f; void FIQ(void)__attribute__((ISR)); void FIQ() {     if(*P_INT_Ctrl&0x2000)//当是TimerA中断是b13     {         *P_INT_Clear = 0x2000;         Output1^=0xffff;         *P_IOA_Data = Output1;         }     if(*P_INT_Ctrl&0x0800)//当是TimerB中断是b11     {         *P_INT_Clear = 0x0800;             Output2^=0xffff;         *P_IOA_Data = Output2;     } } int main() {     __asm("FIQ OFF");          *P_IOA_Dir = 0x00ff;     *P_IOA_Attrib = 0x00ff;     *P_IOA_Data = 0x0000;               *P_TimerA_Ctrl = 0x000d;//选择了1024HZ的     *P_TimerA_Data = 0xffff-2048;          *P_TimerB_Ctrl = 0x0004;//选择了4096的     *P_TimerB_Data = 0xffff-4096;          *P_INT_Ctrl = 0x2800;     __asm("FIQ ON");     while(1)     {         *P_Watchdog_Clear = 0x0001;     } }



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有