主题中讨论的其他器件:PMP8740
尊敬的 Roberto:
早上好。 你过得怎么样? 有关 PMP8740 -电池充电器(34V、60A)的问题->与软件代码相关。
Q1)关于最小电流涓流参数-可设置范围2至20。 STATUS_CHARGER -从5到6。
当我将最小电流涓流设置为最小2时-->计数器在100毫秒内从0到10到达。 检查电压输出是否< 10? 如果是、则为当前 PWM 输出
根据 COUNTER_STATUS = 10 --> TACCR1 = 15467 -->导通时间更多。 否则、COUNTER_STATUS 从10到300 (COUNTER_max)将在2900ms 内达到、这意味 着直流/直流调节编程电流、对吧?
当我将最小电流涓流设置为最大20时-->计数器在1000毫秒内从0到100到达。 检查电压输出是否< 10? 如果不是、则电流 PWM 输出
根据 couter_status = 100 --> TACCR1 = 10667 -->导通时间更短。 否则、COUNTER_STATUS 在100至300 (COUNTER_max)范围内会在2000ms 内达到、这意味 着直流/直流调节编程电流、对吧?
实际上、什么是最小电流涓流参数(从状态5到6)? 请解释您是否记得此循环? 如果没有、请告诉我使用分钟。 通用电池充电器中的涓流电流..
Q2)关于按钮逻辑-您能解释以下按钮代码逻辑吗?
I = KEY_ST态^ SWITCH_PIN;//键已更改?
I = I & bit_mask;//丢弃其他位
key_state = key_state 和 bit_mask;//丢弃其他位
CT0 =~(CT0 & I);//重置或计数 CT0
CT0 = CT0 & BIT_MASK;//丢弃其他位
CT1 = CT0 ^(CT1和 I);//复位或计数 CT1
CT1 = CT1 & bit_mask;//丢弃其他位
I &= CT0 & CT1;//计数直到回滚?
key_state ^= i;//然后切换去抖状态
key_press |= key_state & I;// 1->0:按键检测
if ((key_state!= bit_mask)&&!(rpt_active))//检查重复函数
{
RPT_STstate =~key_state;//保存密钥状态
RPT_state = rpt_state 和 bit_mask;//丢弃其他位
RPT = Repeer_start;//开始延迟
RPT_ACTIVE = 1;
}
if (rpt_active) rpt--;
if (((rpt =0)&& rpt_active)
{
key_rpt = rpt_state &(~key_state);//检查键是否仍被按下
key_rpt = key_rpt 和 bit_mask;//丢弃其他位
RPT_ACTIVE = 0;//复位标志
}
Q3)关于 CAN 通信-在微控制器中、不是内置的、因此可以使用 UART 并转换为 CAN (使用外部硬件- CAN IC)。
在软件代码中、使用此 UART 协议进行测试、而不是标准 CAN 协议、我是否正确?
是否可以使用 J1939协议插入此协议? 或不同的 CAN 协议时序...请提供帮助。
谢谢、此致、
Vijay Shinde