工具与软件:
您好!
使用 CC2340R5计时器的 LGPT0和 LGPT1可以生成 IR 代码、但没有驱动程序。
是否有任何用于实施在 FreeRTOS 环境中工作的 IR 驱动程序的材料?
谢谢。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
尊敬的 Toby:
1. test_lgpt()、test_ir_lgpt_hwreg ()测试 正常
2. test_pdeir()工作正常,但我不明白一切。
3. test_ir_lgpt() 需要添加:
IF (IruseGen)
{
...
LGPTimerLPF3_START (lgpt1Handle、LGPTimerLPF3_CTL_MODE_UP_PER);
}
然后它会起作用。
谢谢!
Natan
尊敬的 Toby:
1. NEC 红外传输协议有助于 test_pdeir():
https://techdocs.altium.com/display/FPGA/NEC+Infrared+Transmission+Protocol
2. 要使 test_pdeir()正常工作、必须在 IR_PDE_LPF3_REG.c 文件中进行更改、即 PDEIRLPF3_modulator_callback ()函数:
2.1.
案例 PDEIRLPF3_STATE_DATA_CODE_2:
{
if ((1 << pdeIrObj->bitIndex)& gCurTrans.dataCode)
{
//位是1
//activeCount = nec_bitval_1.activeCount;
// frameCount = NEC_bitval_1.frameCount;
//位是1、但此状态需要1补码
activeCount = NEC_Bitval_0.activeCount;
frameCount = NEC_bitval_0.frameCount;
}
设计
{
//位是0
//activeCount = NEC_bitval_0.activeCount;
// frameCount = NEC_bitval_0.frameCount;
//位是0、但此状态需要1补码
activeCount = NEC_Bitval_1.activeCount;
frameCount = NEC_bitval_1.frameCount;
}
2.2.
案例 PDEIRLPF3_STATE_STOP_BIT:
{
//activeCount = 0;
activeCount = NEC_Bitval_0.activeCount;
2.3. 可选
案例 PDEIRLPF3_STATE_REPEAT_CODE_2:
{
activeCount = NEC_REPEAT[1].activeCount;
frameCount = NEC_REPEAT[1].frameCount;
// pdeIrObj->state = PDEIRLPF3_STATE_REPEAT_CODE_1;
pdeIrObj->state = PDEIRLPF3_STATE_IDLE;//只重复执行一次代码
3. test_pdeir()模块已通过 LG-24LJ4540电视机的测试,用于:
3.1.
在 empty.c 文件的 test_pdeir()函数中、更改了以下内容:
PDEIRGENLPF3_Transaction pdeIrTrans;
// pdeIrTrans.customCode = 0x40;
pdeIrTrans.customCode = 0x04;//对于电视 LG-24LJ4540
// pdeIrTrans.dataCode = 0x1D;
pdeIrTrans.dataCode = 0x08;//对于电视 LG-24LJ4540、命令打开/关闭
PDEIRLPF3_TRANSFER (pdeIrHandle、&pdeIrTrans);
3.2.变送器模块连接到 DIO11输出端(观察 DIO11输出端的负载能力!!!)
3.3.一切正常。
非常感谢您的帮助。
此致、
Natan