为了添加一个HWI函数,需要再次生成这个函数。为恰当地调度本函数,需要随后对DSP/BIOS进行配置。为了使用一个硬件中断,有两个基本的选择:使用或不使用DSP/BIOS调度程序。调度器中有一些额外的附加内容,但是标准的C函数能够作为中断服务程序来进行使用。如果不是用调度器,那么DSP/BIOS入口和出口宏指令必须加到这个函数中。
调度器将被用在这个例子中。在主函数main.c中生成一个新的函数。这个新的函数叫作HWI_function,它将触发LED#2,此函数如下。
现在,这个函数必须连接到想要得到的中断源和优先级上,即中断源配置和中断使能。打开“threads.cdb”并且展开“Scheduling→HWI-Hardware Interrupt Serv-ice Routine Manager”。注意,这些各种各样的中断优先级,包括这两个预留的中断(它们是真正作为RTDX的一部分)。现在,选择中断INT4(可用的最高优先级)并且得到它的属性(properties)页。设置定时器Timer_1作为中断源,是这个函数名为“_HWI_function”,并且选择使用调度器(Use Dispatcher)。剩余的保持默认值就可以。这样建立的中断结构如INT4将被TIMER1触发,并且这个调度器将被用于启动我们的HWI函数。
现在,为了配置Timer1,展开“CSL→TIMER”。这展示了两个子类,定时器配置管理(Timer Configuration Manager)和定时器资源管理(Timer Resource Man-ager)。为了应用这些,首先建立一个定时器的配置参数,然后分配给Timer1使用。选择“Timer Configuration Manager→Insert timerCfg”,然后编辑timerCfg0的属性为一个周期值为3750000,设置定时器工作从复位开始(Timer Opreation to Start with reset),并且设置输入时钟源为CPU时钟源的1/4为时钟源(Input Clock Source to(CPU clock)/4 clock source)。其他剩余的保持默认值就可以。然后,为了通知DSP/BIOS使用这个配置好的Timer1,选择时钟资源管理的定时器器件1(Timer Resource Manager→Timer_Device1),检查打开定时器并且使能预初始化,并且用timerCfg0进行预初始化。这将初始化Timer1并且产生频率为10Hz的中断,这将引起HWI成为一个速率为10Hz的中断。(www.xing528.com)
惟一的保留项是为了使能Timer1中断,使用一个DSP/BIOS函数。这个函数仅仅是为控制中断而设计的一大套的APIs的一部分。在返回到声明之前在主函数中加入如下的代码。
建立和运行程序。由于这个PRD函数,LED#1应该以1Hz的频率闪动。并且由于这个HWI函数,LED#2应该以5Hz的频率闪动。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。