首页
学习
活动
专区
工具
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

    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

    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

    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

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

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

    22520

    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 环境变量结合使用以进行动态配置。

    29210

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

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

    85830

    谈谈对Android上AspectJ使用的想法

    AOP是什么 概念:AOP是Aspect Oriented Programming的缩写,即『面向切面编程』;切面编程,就是在你项目原有的功能基础上,通过AOP去添加新的功能,这些功能是建立在原有功能的基础上的...的思想来编程,很多时候,可能会混合多种编程思想,大家也不必要纠结该使用哪种思想,取百家之长,才是正道。...AOP的使用场景 主要用于不想侵入原有代码的场景中,例如SDK需要无侵入的在宿主中插入一些代码,做日志埋点、性能监控、数据校验、持久化、动态权限控制、甚至是代码调试等等。...什么是AspectJ AspectJ实际上是对AOP编程思想的一个实践,当然,除了AspectJ以外,还有很多其它的AOP实现,例如ASMDex,但目前最好、最方便的,依然是AspectJ。...应用 在Android项目中使用AspectJ 在android中配置aspectj是特别麻烦的,目前市场上流行的一款在Android使用的插件 gradle_plugin_android_aspectjx

    1.7K40

    如何使用高大上的方法调参数

    应该使用什么样的 Activation? 应该使用什么样的优化算法? 优化算法的初始步长是多少? 初始步长在训练过程中应该如何下降? 应该使用什么样的初始化? 是否需要使用 Momentum 算法?...是否需要使用 Dropout? 是否需要使用 Batch norm?是否需要自动调整 Batch norm 的参数? 是否需要使用 Weight decay? Weight decay 速度是多少?...我们一般也就取d=3,4,实际上效果就很好了。 第二个问题更加严重。就算我们现在只用了 个特征,拉锁算法能够找到x的前提是x是一个稀疏向量。但是,实际上x根本就不是一个稀疏向量!...如此重复若干轮之后,固定了很多参数的值,其实已经得到了一个很好的解。剩下的参数基本上和白噪声差不多,可以调用一些已有的算法(hyperband 之类) 进行微调即可。...我们跑了 3 层的拉锁算法,使用了度数为 3 的特征向量,现在一个小的 8 层的网络上跑,得到了重要的参数们之后,将这些信息用到大的 56 层的网络上微调,得到了很好的结果。如下图: ?

    4.3K90

    Linux的GUI程序在Windows上使用

    方法: yum install xorg-x11-xauth 二、打开linux服务器的sshd的X11转发功能: vi /etc/ssh/sshd_config 配置: X11Forwarding...安装完成后,点击启动即可 四、在Windows上的ssh客户端设置 客户端需要设置x11转发,常用secureCRT和putty,根据自己所用的客户端设置即可。...如果客户端也是linux,只需要在执行ssh命令的时候加上参数:-X 设置SecureCRT远程X11转发 ? 按照上图红框勾选,并注意红框提示 putty设置 ?...五、安装字体文件 如果发现无法显示文字,有可能是服务器上没安装字体文件,解决方法是到yum上装几个 yum search fonts yum install wqy-zenhei-fonts.noarch...yum install xorg-x11-fonts-100dpi.noarch 最后,登录devnet tlinux服务器,运行一个GUI程序,就可以在windows上看到!

    4.5K50

    如何在 Mac 上愉快的使用 Docker

    一、目标任务首先要明确的是, 作为了一个每天在 Linux Server 上 rm -rf 的人来说, 如果想在 Mac 上使用 Docker, 最舒服的也是兼容所有 docker cli 命令行操作即可...; 至于图形化的界面完全不需要, 我们并不指望图形化界面能比敲命令快到哪里去, 也不指望图形化界面变为主力; 所以本篇文章的核心目标:在 Mac 上使用完整的 docker cli 命令, 包括对基本的...Lima 方案直接看第五节.三、虚拟机方案目前在 M1 上, 唯一可用或者说堪用的虚拟机当属 Parallels Desktop, 至于其他的 VBox、VMware 目前还不成熟; 如果纯 qemu...其本质上利用 docker context 功能, 然后通过将虚拟机中的 sock 文件挂载到宿主机, 并配置 docker context 来实现无缝使用 docker 命令.5.5、虚拟机调整某些情况下...(对应会使用上面目标架构的镜像)arch: "aarch64"Copy六、总结目前整体来看, Docker Desktop 在 mac 上基本上是很难用的, Colima 现在还不太成熟, 适合轻度使用

    4.5K30
    领券