依照这个帖子的内容,https://www.tuyaos.com/viewtopic.php?t=9251,T1的硬件定时器总是会被打断,实现不了433的发送,请问有什么好方法吗
T1 怎么实现一个稳定的433收发外设
Re: T1 怎么实现一个稳定的433收发外设
你好,你这个现象就是被其他中断打断了,433发送或者接收的时候,需要把总中断临时关闭,然后再开启,注意这个总中断不能关闭太久。可以参考我们应用开发包使用的红外接收的时序去开关总中断
/**
- @brief t1 fiq enable
* - @param[in] none: none
* - @return none
*/
static void __tdd_t1_fiq_enable(void)
{
*(volatile unsigned long *) (0x00802000 + 0x11 * 4) |= 0x00000002;
return;
}
/**
- @brief t1 fiq disable
* - @param[in] none: none
* - @return none
*/
static void __tdd_t1_fiq_disable(void)
{
*(volatile unsigned long *) (0x00802000 + 0x11 * 4) &= 0xFFFFFFFD;
return;
}
static void __tdd_t1_32k_enable(T1_REG_T *reg_val)
{
if (0 != reg_val->val_32k) {
*(volatile unsigned long *) (0x00802A00 + 0x13 * 4) |= reg_val->val_32k;
reg_val->val_32k = 0;
}
}
static void __tdd_t1_32k_disable(T1_REG_T reg_val)
{
if (0 == reg_val->val_32k) {
reg_val->val_32k = ((volatile unsigned long *) (0x00802A00 + 0x13 * 4)) & 0x7;
*(volatile unsigned long *) (0x00802A00 + 0x13 * 4) &= 0xFFFFFFF8;
}
}
- Attachments
-
- tdd_ir_driver_T1.c
- (24.25 KiB) Downloaded 7 times