- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在为微芯片 pic16f 开发一个嵌入式软件项目。这张照片只有三个计时器。
现在我有一个使用timer0和timer1的驱动程序(我们称之为驱动程序A)。现在我想向我的程序添加功能(驱动程序b),但这需要使用timer1。但是timer1已经被驱动程序A使用了。
我可以重写驱动程序A,使其使用timer0和timer2,以便驱动程序b可以使用timer1。
但也许在即将到来的项目中,我想使用我的驱动程序 A,但使用计时器 1 和 2,因此计时器 0 可以用于另一个驱动程序 c,并且必须再次重写我的驱动程序。对于三个计时器,可能的组合并不多,但即使使用这个基本的 cpu,我也会有许多不同版本的工作驱动程序 A,这使得管理它们和修复代码中的错误变得不切实际。 (想象一下这个驱动程序用于具有更多定时器的 MCU,甚至有更多可能的方式来编写驱动程序 A)
如何解决这个问题?如何编写一个没有硬编码定时器的驱动程序,并在初始化时分配一个合适的定时器?我认为在 c++ 中,每个计时器都是一个从计时器父类(super class)继承的对象,您可以将其作为对象传递给 driverA 的构造函数,但我在 c 中工作,因此我不能使用对象。
最佳答案
您提出的问题可能没有适合您经验水平的答案。 Microchip PIC16F 系列 Controller 的资源非常有限,因此面向对象的编程技术的值(value)有限。
这并不是说模块化编程、有限的范围和您已经知道的干净的编码实践没有巨大的值(value),它们确实具有巨大的值(value)。
如果您想要相当于 PIC16F 的通用定时器类,则必须使用标准 C 编译器结构为您的应用程序编写它。 PIC16F 目标的可用代码和 RAM 空间将使这成为一个挑战。
我所熟悉的PIC16F系列 Controller 只有三个定时器,通常称为TIMER0、TIMER1和TIMER2,它们的硬件实现都有很大不同。这些定时器中的每一个都经过优化,可支持片上功能,例如捕获输入边沿事件或 PWM 生成或 SPI 时序等。
使用这些类型的 Controller ,开发人员需要根据目标 Controller 的可用资源来制作应用程序。如果您的技能与这些资源受限的 Controller 不太匹配,您应该考虑 ARM、MIPS 或 RISC-V 类 Controller 。
关于轻松更改嵌入式软件中的外设定时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51469632/
我是 Xcode 新手,我编写了一些代码来发现并连接到 BLE 模块 (Adafruit Bluefruit LE)。然而扫描时却什么也没发现。有什么帮助吗? 这是我的代码 import UIKit
我正在开发一个 Android 应用程序,该应用程序充当具有服务的蓝牙外围设备角色。 当我开始转换广告时,搜索提供此服务的设备的其他 Android 设备可以看到我的设备(并且无需 PIN 即可与之配
解释: 我正在使用核心蓝牙框架连接到 BTLE 外围设备,将外围设备标识符保存在数据库中。 同时,我将外围设备保存在一个数组中以处理与外围设备的重新连接。 但是,当用户手动退出应用程序时,我的数组变为
我对蓝牙通信还很陌生。我的第一个项目打算将数据从 iOS 设备传输到 BLEshield(小芯片)。 为了测试我的中央代码,我决定将 iPhone 设置为外围设备(一旦我拿到芯片,芯片将扮演的角色)并
我正在尝试创建一个充当低功耗蓝牙 (BLE) 外围设备的 Android 5 (lollipop) 应用程序。该应用程序在支持 BLE 外设模式的 Nexus 9 上运行。到目前为止,我已经设法为服务
我想在我的电脑上通过 USB 控制遥控模型。我不需要真正的 radio 控制,所以直接通过电缆控制 Helm 机就足够了(是的,模型和控制单元之间会有电缆)。我想我会构建一些基于微 Controlle
在升级到 iOS6 之前,一切正常,但现在当我运行时 [centralManager cancelPeripheralConnection:peripheral]; 回调被触发 -(void) cen
我需要使用 LPC1769 通过 SPI 将某些数据发送到 FPGA。但是我不太明白应该如何处理这个问题。我目前有这段代码,最终出现在硬故障处理程序中。我不被允许使用 CMSIS,所以我必须自己定义寄
我正在尝试使在不同设备上运行的两个程序通过 CoreBluetooth 进行蓝牙通信。我可以从管理器找到并连接外围设备,并且可以浏览连接的外围设备中的服务,但是当我尝试发现特征时,出现错误此操作不允许
我正在开发一个系统,该系统将 BLE 设备 (TI CC2540) 作为中央设备,将 iPhone4S 上的 iOS 应用程序作为外围设备。除了我需要的 1 个功能外,一切都很好:从中央端列入白名单(
BLE 在 7 Plus (iOS 14.4.2) 和 6 (iOS 12) 上运行良好。但是在 XR (14.4.2) 上,11 连接卡在 centralManager.connect(periph
我开发了一个 BLE 设备作为主设备,并连接到作为从设备的传感器。现在我想开发一个实时显示来 self 的设备(主设备)的数据的应用程序,因此该应用程序必须充当从设备(广告)。 Windows 8 A
我对这个问题失去了理智。 事实是,一个 android 设备正在通告一个字符串值:“78d89537-4309-4728-87f6-3ab2bbe231d8”(36 字节)。我使用的特征定义为 an
我正在运行以下代码: [peripheral maximumWriteValueLengthForType:CBCharacteristicWriteWithResponse]; 在我的例子中(iPh
有人可以建议在 BLE 通信中是否可以在建立连接之前从外围设备验证中央设备? 例子:1)周边广告不断2)Central发现Peripherial并发送连接请求3)连接建立,广告停止3) Periphe
所以我有一个简单的外设应用程序,我在我的三星 S8 手机上运行的 Android Studio 中编写代码。我可以很好地设置我所有的 BLE 广告和特性,但是当我添加我的服务时。从另一个中央设备(即具
如果我想将外围设备 (Arduino) 连接到中央设备 (Iphone),是否必须将 arduino 中的数据结构化为服务和特征?我见过一些项目,其中 iphone 连接到 arduino,但 iph
我正在 iOS 上开发一个 BLE 应用程序,在与 BLE 配件建立连接后,我将 CBPeripheral UUID 保存到 NSUSerDefaults。这样,如果稍后重新启动应用程序,并且 BLE
我想知道是否可以通过 coreBluetooth 将设备作为外围设备和 iBeacons 的范围来宣传服务,同时在后台完成这两项工作?本质上,目的是确定信标的范围,然后如果信标在.Near 或.Imm
是否可以在连接到中央设备时对广告进行外围扫描?看起来它要么正在扫描广告要么已连接您的外围设备,但我需要两者都做。外围设备应该能够报告它接收到的广告中的 RSSI 测量值。 我在 linux box (
我是一名优秀的程序员,十分优秀!