您好,欢迎光临!   请登录 免费注册    
  您的位置:电子变压器资讯网 > 资讯中心 >  技术文章 > 正文
PSoC3的低电压中断及其实现
[发布时间]:2012年2月24日 [来源]:电子系统设计 [点击率]:5281
【导读】: 1 低电压监测概述 Cypress PSoC3使用基于单循环流水线的高性能8051内核 (67MHz33MIPS),提供业界广泛采用的5.5V至0.5V电压范围和低至200nA的休眠电流,可以满足...

4) 使能模拟/数字LVD电路

设置RESET_CR1寄存器的bit[1:0]为1,置RESET_CR1[1]=1使能模拟LVD中断,置RESET_CR1[0]=1使能数字LVD中断。

5) 等待LVD毛刺产生

读取RESET_SR0寄存器的bit[1:0]直到读到的数字为0。

6) 设置低电压阀值

低电压阀值在RESET_CR0寄存器中设置,其值与对应的低电压如下表一所示。注意模拟电压阀值设置RESET_CR0[7:4],数字电压阀值设置RESET_CR0[3:0]。

                

             表一:RESET_CR0值与电压对应关系

7) 选择中断向量0为“Fixed Function”

设置IDMUX_IRQ_CTL0的bit[1:0]位为2’b00。

IDMUX_IRQ_CTL寄存器用来为特定的中断向量选择中断源,每一个中断向量可以被特定固定功能模块触发,可被DMA触发,也可被UDB(电平或边沿)触发。中断向量0的固定功能源是LVD中断,如下表二所示:

     

                   表二:中断向量与中断源的对应关系

8) 设置中断服务子程序地址并指向中断向量0

将地址“address_foo”赋给中断向量寄存器INTC_VECT0,在PSoC3中使用CY_SET_REG16()来赋值。

9) 设置中优先级(可选)

配置INTC_PRIOR0寄存器的bits[7:5]来设定优先级,缺省值为0。

10) 使能中断向量0

设置INTC_SET_EN0寄存器的bit[0]为1。

11) 使能中断总开关,通过调用CyGlobalIntEnable宏。

根据上述步骤在PSoC Creator中实现代码如下:

uint8 temp;

// 1.) declare an interrupt. address is stored into "blarf"

CY_ISR(blarf) //

{

// Test is a pin connected to an LED

Test_Write(1);

// clear the sticky bits

temp = (* (reg8 *) CYREG_RESET_SR0);

}

void main()

{

// 2.) enable the clock to the interrupt controller

CY_SET_REG8(CYDEV_INTC_CSR_EN, 0x01);

// 3.) make sure the LVIs are not set as a reset source

(* (reg8 *) CYREG_RESET_CR3) = 0x00;

// 4.) enable the LVI-A/D circuits

(* (reg8 *) CYREG_RESET_CR1) |= 0x03;

// 5.) the LVIs glitch while being enabled, read them to clear the glitch

投稿箱:
   电子变压器、电感器、磁性材料等磁电元件相关的行业、企业新闻稿件需要发表,或进行资讯合作,欢迎联系本网编辑部QQ: , 邮箱:info%ett-cn.com (%替换成@)。
第一时间获取电子变压器行业资讯,请在微信公众账号中搜索“电子变压器资讯”或者“dzbyqzx”,或用手机扫描左方二维码,即可获得电子变压器资讯网每日精华内容推送和最优搜索体验,并参与活动!
温馨提示:回复“1”获取最新资讯。