EPSON RX8010SJ RTC 调试笔记之五, 固定周期定时中断功能 (Fixed-cycle Timer Interrupt Function)

硬件: EPSON RX8010 SJ


功能描述:

固定周期定时中断功能 (Fixed-cycle Timer Interrupt Function) 产生一个循环周期的中断事件, 在 244.14uS ~ 65535 小时之间。此功能可在某一时刻停止,也可将其做为一个累加计时器。在此中断事件发生后,其对应的 IRQ 输出状态将被自动清除


设定固定周期定时器中断功能流程


功能图


涉及相关寄存器


寄存器设置规则






功能函数

/** Fixed-cycle Timer Interrupt Function,TIF-- START -- **/
void RX8010SJ_TIF_set_TIMER_COUNTER0( uint8_t para );
void RX8010SJ_TIF_set_TIMER_COUNTER1( uint8_t para );

void RX8010SJ_TIF_reset_EXT_TE(void);
void RX8010SJ_TIF_enable_EXT_TE(void);
void RX8010SJ_TIF_reset_FLAG_TF(void);
void RX8010SJ_TIF_reset_CONTROL_TIE(void);
void RX8010SJ_TIF_enable_CONTROL_TIE(void);

void RX8010SJ_TIF_reset_CONTROL_TSTP(void);
void RX8010SJ_TIF_enable_CONTROL_TSTP(void);

void RX8010SJ_TIF_select_output_by_IRQ_CONTROL_TMPIN(uint8_t sigal_output);
void RX8010SJ_TIF_output_at_IRQ1(void);
void RX8010SJ_TIF_output_at_IRQ2(void);

void RX8010SJ_TIF_trigger(uint8_t	para_of_counter0,uint8_t para_of_counter1);
/** Fixed-cycle Timer Interrupt Function,TIF-- END -- **/


/** Fixed-cycle Timer Interrupt Function,TIF-- START -- **/

void RX8010SJ_TIF_set_TIMER_COUNTER0( uint8_t para )
{
		RX8010SJ_write_reg_TIMER_COUNTER0( para );
}
	
void RX8010SJ_TIF_set_TIMER_COUNTER1( uint8_t para )
{
		RX8010SJ_write_reg_TIMER_COUNTER1( para );
}

void RX8010SJ_TIF_reset_EXT_TE(void)
{		
		RX8010SJ_write_bit_EXT_TE( RX8010SJ_BIT_UNABLE );
}	

void RX8010SJ_TIF_enable_EXT_TE(void)
{		
		RX8010SJ_write_bit_EXT_TE( RX8010SJ_BIT_ENABLE );
}	

void RX8010SJ_TIF_set_EXT_TSEL( uint8_t para )
{
	RX8010SJ_write_EXT_TSEL2_1_0(para);
}

void RX8010SJ_TIF_reset_FLAG_TF(void)
{		
		RX8010SJ_reset_bit_FLAG_TF();	
}	

void RX8010SJ_TIF_reset_CONTROL_TIE(void)
{		
		RX8010SJ_write_bit_CTRL_TIE( RX8010SJ_BIT_UNABLE );
}	

void RX8010SJ_TIF_enable_CONTROL_TIE(void)
{		
		RX8010SJ_write_bit_CTRL_TIE( RX8010SJ_BIT_ENABLE );
}	

void RX8010SJ_TIF_reset_CONTROL_TSTP(void)
{		
		RX8010SJ_write_bit_CTRL_TSTP( RX8010SJ_BIT_UNABLE );
}	

void RX8010SJ_TIF_enable_CONTROL_TSTP(void)
{		
		RX8010SJ_write_bit_CTRL_TSTP( RX8010SJ_BIT_ENABLE );
}	

void RX8010SJ_TIF_select_output_by_IRQ_CONTROL_TMPIN(uint8_t sigal_output)
{		
		uint8_t result = 0xFF;
		result = RX8010SJ_read_reg_IRQ();
	
		if (sigal_output == RX8010SJ_IRQ_TMPIN_TIF_OUPUT_IRQ1 )
			result |= RX8010SJ_BIT_IRQ_TMPIN;
		else
			result &= ~RX8010SJ_BIT_IRQ_TMPIN;
		
		RX8010SJ_write_reg_IRQ( result );		
}	

void RX8010SJ_TIF_output_at_IRQ1(void)
{		
		uint8_t result = 0xFF;
		result = RX8010SJ_read_reg_IRQ();
	
		result |= RX8010SJ_BIT_IRQ_TMPIN;
		
		RX8010SJ_write_reg_IRQ( result );		
}	

void RX8010SJ_TIF_output_at_IRQ2(void)
{		
		uint8_t result = 0xFF;
		result = RX8010SJ_read_reg_IRQ();
	
		result &= ~RX8010SJ_BIT_IRQ_TMPIN;
		
		RX8010SJ_write_reg_IRQ( result );		
}	

void RX8010SJ_TIF_trigger(uint8_t	para_of_counter0,uint8_t para_of_counter1)
{
		RX8010SJ_TIF_reset_EXT_TE();
		RX8010SJ_TIF_reset_CONTROL_TIE();
		RX8010SJ_TIF_reset_FLAG_TF();
		RX8010SJ_TIF_enable_CONTROL_TSTP();
	
//		RX8010SJ_TIF_select_output_by_IRQ_CONTROL_TMPIN( RX8010SJ_IRQ_TMPIN_TIF_OUPUT_IRQ2 );		
		RX8010SJ_TIF_output_at_IRQ2();
		RX8010SJ_TIF_set_EXT_TSEL( RX8010SJ_COUNTDOWN_PERIOD_1Hz_TSEL_010 );
		RX8010SJ_TIF_set_TIMER_COUNTER0(para_of_counter0);
		RX8010SJ_TIF_set_TIMER_COUNTER1(para_of_counter1);
	
//		RX8010SJ_TIF_set_TIMER_COUNTER0(0x05);
//		RX8010SJ_TIF_set_TIMER_COUNTER1(0x00);
	
		RX8010SJ_TIF_reset_CONTROL_TSTP();
		RX8010SJ_TIF_enable_CONTROL_TIE();
		RX8010SJ_TIF_enable_EXT_TE();			
}

/** Fixed-cycle Timer Interrupt Function,TIF-- END -- **/

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值