首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PWM驱动那些事

PWM脉宽调制的驱动和应用是嵌入式开发中经常会遇到的问题,基本上现在大部分的控制器都带有PWM 外设模块,软件工程师只要按照手册来操作就可以开发出PWM的驱动程序。...当然在实际应用中还要考虑一些其他的问题。今天又有猿友在微信中问关于PWM的驱动问题,今天我们就以Microchip的微控制器PIC18F46K22为例子来说明如何简单的可以开发PWM驱动。...首先查看PIC18F46K22数据参考手册可以看到官方给出的步骤为: ? ?...选择PWM的输出为CCP4输出引脚,CPU跑40M,选择PWM定时器为Timer2 初始化PWM模块 ? 设置PWM周期 ? 计算PRx值 ? 将占空比值写入 ? 使能PWM输出引脚 ?...这样就完成了PWM模块的驱动程序开发,可以通过测试,示波器捕捉来测试PWM的输出是否精确和正确,是否达到设计目的。更改占空比的值测试如下 测试结果如下: 10%占空比, ? 50%占空比 ?

1.1K121

DBUtils框架的使用(上)

commons-dbutils 是 Apache 组织提供的一个开源 JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用dbutils能极大简化jdbc编码的工作量,同时也不会影响程序的性能...QueryRunner类有四个重载的构造方法,如果使用QueryRunner(DataSource ds)构造QueryRunner对象,数据库事务将交给DBUtils框架进行管理,默认情况下每一个sql...此时应该使用不带Connection参数的方法。...如果使用QueryRunner()构造QueryRunner对象,就需要自己来管理事务,因为框架没有连接池,无法获得数据库的连接,此时应该使用带Connection参数的方法。...; Object[] param = {"fff",1000}; //3、调用方法 queryRunner.update(sql, param); } 使用该构造方法构造的QueryRunner对象是不需要手动释放资源的

58510
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    git 的基本使用(上)

    由来 要不说人家是大佬呢,一言不合就自己写一个 安装 下载对应操作系统的 Git 客户端版本 https://git-scm.com/downloads Linux 在centos上安装 $ yum.../本地仓库:git初始化后,会在当前目录生成一个.git目录,这就是版本库 Remote 远程仓库:网络上的另一个版本库,可以和本地库交互 git 的基本工作流程 在工作目录中修改文件。...可以使用标准的 glob 模式匹配。 匹配模式可以以(/)开头防止递归。 匹配模式可以以(/)结尾指定目录。 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。...详解参考 https://github.com/github/gitignore glob模式 所谓的 glob 模式是指 shell 所使用的简化了的正则表达式。...只匹配一个任意字符; 如果在方括号中使用短划线分隔两个字符,表示所有在这两个字符范围内的都可以匹配(比如 [0-9] 表示匹配所有 0 到 9 的数字); 使用两个星号(*) 表示匹配任意中间目录,比如

    40150

    Mac上ADB的使用

    Option+Command+C 打开android sdk的所在目录 复制文件夹路径 比如 我的是 /Users/psvmc/Library/Android/sdk 我用的ZSH 所以配置环境变量是在...打印 Android 的系统日志 adb logcat adb bugreport : 打印dumpsys、dumpstate、logcat的输出,也是用于分析错误 输出比较多,建议重定向到一个文件中...adb bugreport > ~/Downloads/bugreport.log 或 adb logcat > ~/Downloads/mylog.log 重启手机 adb reboot 只有在运行上一条命令并成功连接手机...查看当前adb工具版本号 adb version 获取手机序列号 adb get-serialno 这个命令获取到的序列号就是利用adb devices命令获取的设备列表的序列号 远程连接...可将录制文件复制到电脑 安装应用 adb shell pm install taobao.apk 目标 apk 存放于 PC 端,请用 adb install 安装 目标 apk 存放于 Android 设备上,

    2.6K20

    eBPF在android上的使用

    对于eBPF可以简单的理解成kernel实现了一个虚拟机机制,将类C代码编译成字节码(后文有详细解释),挂在到内核的钩子上,当钩子被触发时,kernel在虚拟机的"沙盒"中运行字节码,这样既能方便的实现很多功能...BCC在android系统上也可以运行,但是要对系统进行一定程度的修改,后续可能会写单独的文章进行讲解。对于内核开发者我还比较关注怎么自己来实现监控的功能,下文也将做简单的讲解。 ?...8)中断性能 三、eBPF框架 在开始说明之前先解释下eBPF上的名词,来帮忙更好的理解。...可以使用下面的命令调试动态加载 ? 4. 用户空间程序实现 下面我们需要编写用户空间的显示程序,本质上就是在用户态通过系统调用把BPF map给读出来。 ? ?...至此,如何在android平台使用eBPF实现统计系统中每个pid在一段时间内系统调用的次数的功能就介绍完了。

    4.5K10

    EasyC++32,引用的使用(上)

    这是EasyC++系列的第32篇,来聊聊引用。 引用 引用是C++新增的特征,C语言当中没有。 引用是给已经定义的变量一个别名,可以简单理解成同一个变量的昵称。...所以引用不是为了顺序执行的逻辑创建的,一个最常见的使用场景就是函数参数传递的时候,可以设置函数接收的变量类型为引用。...这样的话,我们就可以实现在函数体内部对外部传入的参数进行修改。在一些特殊的场景当中,非常方便。比如一些复杂的树形数据结构,通过使用引用可以大大降低代码的编写难度。...除此之外,使用引用还有一个好处,既然我们传递的引用和原值是等价的。...那么也就免去了拷贝变量的开销,如果我们传递的是int,double这样的变量还好,如果是一个包含大量元素的容器,如vector,set,map等,使用引用传递可以带来明显的效率提升,也会降低内存开销。

    22520

    C语言之文件的使用(上)

    本篇内容将向大家介绍如何存储数据之C语言对文件的使用。...一、为什么要使用文件? 我们一般保存数据的方式有:把数据放在磁盘文件、存放在数据库等。 因此如果我们将数据保存在电脑的硬盘上,下次程序运行时就可以使用之前存储的数据了。 二、什么是文件?...文件使用方式 含义 如果指定文件不存在 “r”(只读) 为了输入数据,打开一个已经存在的文件文本。...3.fgets(存放的地址,num,文件) //实际上在读取文件数据时,只读取了num-1个数据,因为系统会在最后一位自动补”\0”作为结束,所以读取文件数据时要自行判断。...和stdout即可正常使用 总结   以上就是今天要讲的内容,本文简单的介绍了C语言中对于文件使用的相关内容,主要包括文件的基础知识、对文件的打开和关闭的操作以及文件的顺序读写。

    85930

    Windows上使用kubectl的最佳实践

    在 Windows 上设置和使用 kubectl 的综合指南,包括处理代理、管理多个集群和升级 kubectl。...文档传统上专注于 Linux,此帖子提供了在 Windows 10 上使用 kubectl 的最佳实践,包括: 为 PowerShell 设置 kubectl 在公司代理后面使用 kubectl 向 kubectl...添加集群 常见的 kubectl 多集群命令 升级 kubectl 故障排除和提示 随着 Kubernetes 1.14 宣布完全支持 Windows 节点,现在有更多关于在 Windows 上运行...)并将其放在 C:\k 中 验证 kubectl 是否正常工作: kubectl version --client 在公司代理后面使用 kubectl 如果您的公司使用代理服务器,您可能需要配置...关键是利用上下文来组织对集群和命名空间的访问。将其与 PowerShell 环境变量结合使用以进行动态配置。

    29310

    Caffe上训练使用自己的数据

    输出的内容就是创建相应的网络和进行迭代训练,这里我只截图了刚开始训练的部分,它会产生相应的model,以后我们就可以拿这些model去进行识别了 Caffe上训练使用自己的数据集 我就以这个来演示下如何使用...caffe来使用自己的数据进行训练和识别(分类);这是自己做的中文汉字识别的一个实验,大概有3K多个汉字,我将每个汉字归为一个类,所以总共有3K多个类,然后就可以在上面训练识别。...由于汉字什么的长得和手写数字还是很像的(明显不同与猫、狗之类的),所以我就偷懒用了mnist的网络结构来训练,最后效果也还不错。...红色圈出的是不需要的,当然如果你需要加均值的话,可以使用make_imagenet_mean.sh,改下路径就可以用了,但不是必须的 主要是修改lenet_train_test.prototxt文件的内容...修改下路径就可以了,红色标明的地方 还有就是连接的个数,写上自己实际的类的个数,很重要不然会报错 ?

    57920

    MongoDB在Android上的使用体验

    【前言】一般来讲,Android使用的数据库都是自带的SQLite数据库。Web重量级的MySQL、Orcacle、NOSQL等都不适用于Android项目的开发。...但是我发现了一个Web上最近几年比较火的一个数据库 ---- MongoDB。查看它的官网发现,它还可以用于Android开发,而且官方文档也给出了一些API说明。...于是我决定写下这篇博客分享一下MongoDB在Android上怎么使用。...【说明】:MongoDB也可以在iOS上面使用,我是做安卓开发的,本文只讲解MongoDB在Android上面的使用,iOS的使用情况请上MongoDB官网自行查阅。...默认情况下,Android Studio会为AVD部署选择x86映像,刚好运行的模拟器使用了x86镜像,导致了这个错误的发生。

    3.7K20

    ProGuard 在 Android 上的使用姿势

    减少包体积的好处有很多,比如增加用户黏性和满意度,提升下载速度,减少安装时间,以便在终端设备上连接用户,尤其是在新兴市场。...如果以上还不足以说服您使用 ProGuard,其实移除无用代码和混淆所有名称还有其他更多的优化效果: 在一些版本的 Android 设备上,DEX 代码会在安装或者运行时被编译成机器码。...这些警告的一个原因就是,您的构建路径中没有加入需要依赖的 JARs,如使用了 provided (仅编译时)依赖。而有时候,在 Android 上这些代码的依赖在运行时并不会被真正的调用。...在某些情况下,ProGuard 的警告确实有助于您发现闪退的罪魁祸首和关于您配置上的其他问题。...作为一个可选的方案来写 ProGuard 规则,您可以直接在某个不想被混淆和移除的类、方法、属性上添加 @Keep 注解。

    2.6K40

    Mediapipe框架在Android上的使用

    Android上的使用 MediaPipe是用于构建跨平台多模态应用ML管道的框架,其包括快速ML推理,经典计算机视觉和媒体内容处理(如视频解码)。...,calculators为使用的模型和计算单元,其他的模型和支持计算单元可以查看 mediapipe/graphs/目录下的内容,在这个目录都是Mediapipe支持的模型。...这次我们需要寻找的是 mediapipe_binary_graph中的 name,根据我们所要使用的模型,同样这个也是只检测单个手的关键点,多个手的使用multi_hand_tracking_mobile_gpu_binary_graph...2、复制上一步编译生成的aar文件到app/libs/目录下,该文件在mediapipe根目录下的以下路径: bazel-bin/mediapipe/examples/android/src/java/...还需要指定项目使用的Java版本为1.8。

    9.8K60

    Mediapipe框架在Android上的使用

    ,calculators为使用的模型和计算单元,其他的模型和支持计算单元可以查看 mediapipe/graphs/目录下的内容,在这个目录都是Mediapipe支持的模型。...其中目录 hand_tracking就是使用到的模型,支持的计算单元需要查看该目录下的BUILD文件中的 cc_library,这里我们是要部署到Android端的,所以选择Mobile的计算单元。...这次我们需要寻找的是 mediapipe_binary_graph中的 name,根据我们所要使用的模型,同样这个也是只检测单个手的关键点,多个手的使用multi_hand_tracking_mobile_gpu_binary_graph...2、复制上一步编译生成的aar文件到app/libs/目录下,该文件在mediapipe根目录下的以下路径: bazel-bin/mediapipe/examples/android/src/java/...还需要指定项目使用的Java版本为1.8。

    3.1K10

    IDEA的安装与使用(上)

    本着"工欲善其事必先利其器"的精神,本章从IDEA的介绍、安装、设置入手,讲解IDEA中项目的创建、快捷键与模板的使用、断点调试、常用插件等。 1....、慢等问题,这基本上是不可能的,本质上你应该对自己的硬件设备进行升级。...2.3 安装过程 1、下载完安装包,双击直接安装 2、欢迎安装 3、是否删除电脑上低版本的IDEA(如果有,可以选择忽略) 如果电脑上有低版本的IDEA,可以选择删除或保留。...HelloWorld的实现 3.1 新建Project - Class 选择"New Project": 指名工程名、使用的JDK版本等信息。...因此,对于一个Project来说: 当为单Module项目的时候,这个单独的Module实际上就是一个Project。

    47810

    Mac上sonar插件的安装及使用

    本文主要讲解sonar的安装及使用。 分为两个维度来讲解 1. 使用sonarqube以及自带的Derby数据库 2....使用sonarqube以及配置mysql数据库 一、使用sonarqube以及自带的Derby数据库   sonarqube是一款代码质量检测工具,促使你养成一个好的代码规范。...下面是我测试的我们正在使用的一个项目。这里使用的是sonar自带的Derby数据库。没有更改任何的配置文件。 ? 第一步,下载sonqube和sonar-runner两款工具。...使用soanr 的前提是电脑已经安装jdk环境。由于这里使用的是默认数据库,所以对mysql的服务没有要求,对sonqube的版本也没有什么要求,如果后续使用其它数据库的时候,注意版本不支持的问题。...可以使用echo $PATH 查看配置的正确性。 这个也不多说, 比较简单 第四步,在项目中使用。

    2.2K30

    windows上使用nginx并作基本的配置

    windows上使用nginx并作基本的配置 前期准备 nginx下载地址 建议下载稳定版,下载之后解压就可以,解压的文件目录不要含有中文 来到解压的文件夹下 来到conf文件夹,编辑...nginx.conf 如下面,最好是修改一下nginx的启动端口 events { worker_connections 1024; } http { include...default_type application/octet-stream; sendfile on; server { #这个是nginx运行的端口...,在地址栏输入cmd,然后输入以下就可以启动 start nginx 访问 http://localhost:8081/ 出现以下页面就说明启动成功了,这里的8081是你自己设置的端口号 常见指令...nginx -s stop 停止 nginx -s quit 安全退出 nginx -s reload 重新加载配置文件 nginx -s reload这条指令使用的比较多,在修改nginx.conf

    18210

    Linux中find命令的使用详解(上)

    欢迎转载,转载请注明出处,谢谢 find命令是各种Linux发现版中比较重要的、常用的一个命令,该命令功能强大,熟练掌握了这个命令的使用,对平时的系统运维、管理工作会起到事半功倍的效果。...二.find命令的格式 通过find的在线帮助文档,我们可以知道,find命令的使用格式为: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat...[expression] 我们将[path…]之前平时很少使用的部分归为一类,简称为:option,。...其中Y表示的是跟后面file的什么时间比较,而X表示使用查找文件什么时间进行比较。-newermc就是拿文件的modify time时间跟file的change time进行比较。...mode还可以使用/或-作为前缀进行描述。如果指定了-mode,就表示没指定的权限是忽略的,就是说,权限中只要包涵相关权限即可。

    1.4K60
    领券