计正和负

描述:

将一个整数数组的所有正数统计,负数相加,返回一个数组。

例如:

输入 int[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, -11, -12, -13, -14, -15}
返回 int[] {10, -65}.

MyCode:

using System;
using System.Collections.Generic;
using System.Linq;

public class Kata
{
    public static int[] CountPositivesSumNegatives(int[] input)
    {
        if(input == null || !input.Any())//判断输入的数组是否为空
        {
            return new int[] {};
        }

        int sum1 = 0,sum2 = 0;//声明两个变量,sum1统计正数,sum2求负数和
        for(int i = 0;i < input.Length;i++)
        {
          if(input[i] > 0)
            sum1 ++;
          else
            sum2 += input[i];
        }
        int[] retInt = new int[]{sum1,sum2};

        return retInt;

    }
}

CodeWar:

using System;
using System.Linq;

public class Kata
{
    public static int[] CountPositivesSumNegatives(int[] input)    
    {   
        return (input == null || input.Length ==0) ? new int[0] : new int[] { input.Count(o => o > 0), input.Where(o => o < 0).Sum() };
    }
}
<think> 我们正在讨论LCD背光电路的连接方法。根据引用[1],背光控制电路使用NMOS管作为开关,其中: - NMOS管的漏极(D)连接到FPC1的2号引脚(即背光极) - NMOS管的源极(S)接地(GND) - 栅极(G)通过电阻连接到控制信号BL 因此,在背光电路中: 1. 背光正极(通常标注为LED+或BK+)应连接至电源正极(VCC)。 2. 背光极(通常标注为LED-或BK-)应连接至NMOS管的漏极(D)。 3. NMOS管的源极(S)接地(GND)。 当控制信号BL为高电平时,NMOS管导通,背光极被拉低到地,形成电流回路,背光点亮。 当控制信号BL为低电平时,NMOS管截止,背光极悬空(或通过内部电阻上拉),背光熄灭。 所以,背光正的连接方法总结如下: - **背光正极(LED+)**:接电源正极(VCC,注意电压匹配,通常为3.3V或5V) - **背光极(LED-)**:接控制MOS管的漏极(D) 同时,引用[2]展示了在软件层面如何控制背光亮度的代码逻辑,通过写入brightness文件节点来控制背光亮度。 注意:实际连接时需确认背光灯的工作电压电流,选择合适的限流电阻(可能在背光模块内部已包含)。 下面是个简化的连接示意图: ```mermaid graph LR VCC[电源正极] -->|通过限流电阻| LED+(背光正极) LED-(背光极) --> NMOS_D[NMOS管漏极D] NMOS_S[NMOS管源极S] --> GND MCU[单片机IO] -->|BL控制信号| NMOS_G[NMOS管栅极G] ``` 如果背光模块本身没有限流电阻,则需要在电源正极与背光正极之间串联个合适的电阻(阻值根据背光电流算)。 例如,若背光工作电流为20mA,电源电压为5V,背光正向压降为3V,则限流电阻算为: $$ R = \frac{V_{CC} - V_{LED}}{I} = \frac{5V - 3V}{0.02A} = 100Ω $$ 因此,在实际连接中,需要根据背光参数设合适的限流电路。 最后,背光控制信号BL通常由单片机的GPIO提供,可以通过PWM调节亮度(如引用[2]中的brightness写入)。 注意:如果背光模块要求较高的驱动电流,可能需要使用三极管或MOS管扩流,但引用[1]中的电路已经使用了MOS管,因此可以满足定电流需求。 总结连接步骤: 1. 确认背光灯的工作电压电流。 2. 背光正极接电源正极(需串联限流电阻,若模块无内置电阻)。 3. 背光极接NMOS管的漏极。 4. NMOS管的源极接地。 5. NMOS管的栅极通过个电阻(如10kΩ)连接到单片机的控制引脚(BL)。 6. 单片机通过控制该引脚的电平(或PWM)来开关/调节背光。 这样,当控制信号有效时,背光形成回路,点亮。 引用: [^1]: LCD背光电路连接图分析。 [^2]: 10.sprd背光流程。 §§相关问题§§ 1. 如何算背光限流电阻的阻值? 2. 背光控制信号使用PWM调光时频率如何选择? 3. 背光模块的电流过大导致MOS管发热怎么办? </think> ### 背光正极背光极的连接方法 #### 核心连接原理 根据背光电路的工作原理[^1]: 1. **背光正极(LED+)** - 直接连接到电源正极(VCC) - 需串联限流电阻(根据背光电流算) - 典型连接: $$ V_{CC} \xrightarrow{R_{limit}} LED+ $$ 2. **背光极(LED-)** - 连接到NMOS管的**漏极(Drain)** - NMOS管的**源极(Source)**接地(GND) - NMOS管的**栅极(Gate)**连接MCU控制信号(如BL) - 典型连接: $$ LED- \rightarrow D_{MOS} \quad S_{MOS} \rightarrow GND \quad G_{MOS} \xrightarrow{R} MCU_{IO} $$ #### 具体连接步骤 ```mermaid graph LR VCC[电源正极] -->|通过限流电阻| LED+(背光正极) LED-(背光极) --> MOS_D[NMOS管漏极D] MOS_S[NMOS管源极S] --> GND MCU[单片机IO] -->|控制信号BL| MOS_G[NMOS管栅极G] ``` #### 关键参数说明 | 元件 | 作用 | 典型值/注意事项 | |-------------|-------------------------------|------------------------------------| | 限流电阻 | 防止LED过流损坏 | 根据LED电流算(例:$ R = \frac{V_{CC}-V_f}{I_f} $) | | NMOS管 | 背光开关控制 | 选型要求:$ V_{DS} > V_{CC} $ | | 栅极电阻 | 限流保护MCU引脚 | 1kΩ-10kΩ | #### 软件控制逻辑 从驱动层代码[^2]可见背光控制流程: ```c // 简化的背光控制伪代码 void setBacklight(int brightness) { if (brightness > 0) { set_gpio(BL_PIN, HIGH); // 打开MOS管 write_ddr_vote("lcdon"); // 启动显示相关电源 } else { set_gpio(BL_PIN, LOW); // 关闭MOS管 write_ts_suspend("1"); // 进入触控休眠 } } ``` #### 注意事项 1. **电压匹配** - 5V背光连接3.3V MCU时需电平转换 - 解决方案:在BL信号线加1kΩ上拉电阻到5V,MCU配置开漏输出 2. **电流保护** - 背光电流$ I_f $需满足: $$ I_f \leq \frac{P_{MOS(max)}}{V_{DS}} $$ - 超过500mA建议使用驱动IC替代MOS管 3. **快速调试方法** ```mermaid graph TB 问题[背光不亮] --> 检查1[测量LED+对地电压] 检查1 -->|无电压| 查电源 检查1 -->|有电压| 检查2[短路LED-到GND] 检查2 -->|点亮| 查MOS电路 检查2 -->|不亮| 换背光模块 ``` > ⚠️ **安全提示**:通电前用万用表二极管档检测LED正反向特性,避免反接烧毁[^1]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值