问题标签 [dspic]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
3480 浏览

bit-manipulation - 如何旋转单词中的位

我正在使用 dsPIC33F 和 GCC。我想将一个单词中的位向左或向右旋转一次,如下所示:

(如果不清楚,LSB 移动到 MSB 的位置进行右旋转,反之亦然。)

我的处理器已经有一个右旋转(rrnc,rrc)和左旋转指令(rlnc,rlc),所以我希望编译器会优化它。如果没有,我可能不得不使用内联汇编。

0 投票
7 回答
5493 浏览

c - 在位上转置 8x8 块中的位的最快方法是什么?

我不确定我正在尝试做的确切术语。我有一个存储在的8x8块,每个字节存储一行。完成后,我希望每个字节存储一列。bits8 bytes

例如,当我完成时:

在C中执行此操作的最简单方法是什么?这将在 dsPIC 微控制器上运行

0 投票
1 回答
2081 浏览

gcc - 将 C 变量放入数据存储器输出段需要哪些输入段属性?

我的应用程序有许多模块,每个模块都需要将一些变量存储在片外非易失性存储器中。为了使读取和写入更容易,我试图将它们收集到一个连续的 RAM 区域中,以便 NVM 驱动程序在与 NVM 设备通信时可以寻址单个内存块。

为此,我创建了一个自定义链接器脚本,其中包含以下部分定义。

data区域使用 Microchip 为目标器件提供的标准定义在 MEMORY 部分中定义。

NVM 驱动程序本身就是试图将其变量放在本节中的 C 源文件的一个示例。驱动程序在 NVM 部分的开头保存一个简短的标头结构,以便它可以在将 NVM 设备加载到 RAM 之前验证它的内容。未报告此变量的链接器错误。

另一个具有要存储在 .nvm_fram 部分中的变量的模块是通信 (CANopen) 堆栈。这会将模块 ID 和比特率保存在 NVM 中。

一切都编译得很好,但是当链接器运行时,以下错误会停止构建。

重要的是,可以通过 crt 启动使用值初始化变量,如上面的_slaveConfig声明所示,以防 NVM 驱动程序无法从 NVM 设备加载它们(它是空白的,或者软件版本已更改等)。这是导致属性不匹配的原因吗?

这里和 Microchip 论坛上有几个问题,这些问题与从 C 访问链接描述文件中定义的符号有关。其中大部分涉及闪存程序中的值以及如何从 C 访问它们;我知道该怎么做。有一个类似的问题,但这似乎没有解决属性问题,并且由于特定于不同目标处理器的链接器而有点令人困惑。

我已经在线阅读了 Microchip 链接器手册和各种 GCC 链接器文档,但找不到相关部分,因为我并不真正理解错误的含义以及它与我的代码的关系。什么是“输入和输出部分属性”,它们在我的代码中指定的位置,以及如何让它们相互匹配?

0 投票
1 回答
146 浏览

c - 掩模和过滤器 dsPic30F4011

我正在为 CAN 编程一个 dsPIC30F4011。但是我在指定标识符、掩码和过滤器时遇到了问题。

我使用标准标识符和扩展标识符。在第 16-23 位,我将写下收发器的地址。所以,它看起来像 00000 00000001 0000000000000001 空格只是为了显示我设置以下位的收发器部分:

现在我的面具和我设置的过滤器有问题

现在我什么都没有收到。如果我设置

我收到所有消息。我用收发器地址试过了

那么,我是不是做错了什么?(我想是的,但我不知道是什么)

0 投票
1 回答
371 浏览

arduino-uno - 如何在 arduino uno 和 dspic33ep512mc502 之间建立 spi 连接?

  • 我只想测试 arduino uno 和 dspic33ep512mc502 之间的 spi 通信,我使用串口查看从微控制器接收数据;-arduino uno 是主机 -dspic33ep512mc502 是从机

这是我的 Arduino Uno 代码:

这是 dspic33ep512mc502 代码(仅用于 spic 通信):

初始化:

SPI1中断:

我希望在串行监视器上看到值 3,但我只看到值 7 或 255。

0 投票
2 回答
558 浏览

microchip - dsPIC33EV256GM002 PWM 设置

我开发了一个简单的程序来在 dsPIC33EV256GM002 上产生 PWM 波形,但我无法禁用它。我使用了 PWM1 和 PWM2,我会在 PWM1L1 引脚(DIP 封装上的引脚 26)上生成 PWM 波形,将 PWM1H1(DIP 封装上的引脚 25)保持为数字 I/O。理论上PWM寄存器设置:IOCON1bits.PENL = 1;/* PWM1L 由 PWM 模块控制/IOCON1bits.PENH = 0; / PWM1H 由 GPIO 模块控制 */ 应该这样做,但是,使用示波器,我注意到 PWM1H1 引脚上的 PWM 波形具有相反的值(当 PWM1L 为 1 时 PWM1H 为 0,反之亦然)即使它应该是数字 I/ O。

你有没有发现类似的问题?

非常感谢您的帮助与合作

问候

我使用了以下代码:

0 投票
0 回答
217 浏览

c# - 使用 Unity 和 dsPIC33F 读取串行端口

我从第 14 个字节是换行符的 dsPIC 端发送 14 个字节的数据。现在如何使用 Unity5 游戏引擎读取串口数据。我已经阅读了几篇使用各种方法(使用 read()、readline()、readBytes() 等)的博客。一个常见的建议是使用 serial.Read ,当我尝试这个时,Unity 卡住了。下面列出的示例程序也会导致同样的问题。有人可以提供一种正确的方法来处理这个问题。

谢谢和问候,阿基尔。

0 投票
0 回答
166 浏览

uart - dspic33ev256gm002 UART

我正在使用 dsPIC33EV256GM002 开发一个项目,我想使用它的 UART。

所以我决定将 PIN18 用作 RX,将 PIN17 用作 TX,所以我将 PPS 编程如下:

我将 PIN18 (RB 9) 作为输入设置 TRISB 的 bit9。

我使用了一个外部 8M XTAL,我将 M、N1 和 N2 参数设置如下:

我想将 TX/RX 端口配置为 31250,N,8,1(标准 MIDI 参数)

供您参考,这是 OSC 配置

由于检测到帧错误,我无法检测到来自串行 RX 的数据,因此我会知道我使用的设置是否正确。

你有类似的经历吗?

0 投票
0 回答
467 浏览

comparator - dsPIC33EP512MU810 模拟比较器不工作

我无法让模拟比较器在 dsPIC33EP512MU810 上工作。我想比较两个外部电压。连接到 C1IN1+ 的是我的参考电压 (1.5V),C1IN1- 是我的可变电压 (1.1 - 1.9V)。我已将事件触发器设置为在上升沿和下降沿生成,但我只在程序启动时收到中断,之后什么也没有。

0 投票
1 回答
161 浏览

arrays - 将第 n 个元素从一个数组复制到另一个数组

有谁知道将每个第 n 个元素从一个数组复制到另一个数组的方法?例如,我有一个数组 Data[x],并且想要将每第三个 (3rd) 元素 - Data[0]、Data[3]、Data[6] 等复制到一个新的数组 Data2[j] 中。我尝试使用 for 循环但没有成功。