RCP 信号处理

刚进公司时做的一个电子产品,由电路给予单片机(Mega8)一个RCP信号,然后根据信号长度转换成相应的PWM(调宽脉冲).

电路环境: RCP信号接入到外部中断INT0(pin32).

设计思想:

; 中断设置
; TIMER0 扩展到R6, CLK/8

	ldi		r16, _BV(CS01)
	out		_SFR_IO_ADDR(TCCR0),r16

; INT0 上升弦发生中断
	ldi		r16,_BV(ISC01)+_BV(ISC00)
	out		_SFR_IO_ADDR(MCUCR),r16
	ldi		r16,_BV(INT0)
	out		_SFR_IO_ADDR(GICR),r16 

把TIMER0计算器软件扩增为16位.

	.global TIMER0_OVF_vect
TIMER0_OVF_vect:
	in		R0,_SFR_IO_ADDR(SREG)
	push	r21
        ; r6 timer0的高8位
        inc		R6
	breq	1f
	rjmp	3f
1:
	dec		r7
	mov		R21,r7
	subi	        r21,110
	; if r21 > 110 goto 3f
	brcc	3f
	; 丢信号,可能是硬件故障.
	; 关闭相应的操作
	cli
	rjmp         halt_mcu
3:
	pop		r21
	out		_SFR_IO_ADDR(SREG),R0
	reti

把外部中断INT0设置成边缘触发.然后在中断中切换上升/下降弦

ADDR_T0_TEMP 为内存地址, RCP_HIGH 是rcp信号的最大长度,RCP_LOW是rcp信号最小长度

	.global INT0_vect
INT0_
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值