问题标签 [cypress-psoc]

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 投票
1 回答
2826 浏览

c - 在 8 位 UART 上发送 16 位值

我们正在尝试从一个 PSoC 向另一个 PSoC 发送一个 16 位值。这个操作的本质应该很简单:

  • 将值拆分为两个 8 位值,一个用于 MSB,一个用于 LSB
  • 从系统 1 发送 MSB,然后发送 LSB
  • 在系统 2 上接收 MSB,然后接收 LSB
  • 通过移位 MSB 然后对 LSB 进行 OR 屏蔽来合并这两个字节。
  • 利润

所以我们这样做的方式在实践中是:

系统 2(收到字节的 ISR):

问题是这段代码不一致。而且我们似乎从来没有收到我们发送的相同数据。

当我们尝试通过系统 2 中的 UART_USB_PutString 函数将数据发送到计算机时,会出现另一个问题。我们在 putty 终端中接收到两组 %d\n\r,其中一组可能是发送的正确值,另一组可能是发送的正确值这似乎相当随机。


其他信息

请记住,这是我们第一次在任何环境中使用 UART,因此如果您有任何提示和技巧,我们也可以使用。如果您需要任何其他信息或对如何修复这个破碎的狗屎有任何想法,请告诉我们。

真诚的两位从事 PSoC 工作的电子学菜鸟学生

\de_rush

0 投票
1 回答
175 浏览

psoc - 使用 Kitprog 或 CY8CKIT-059 进行 PSoC 1 编程?

我想知道是否有人知道 CY8CKIT-059 中提供的 Kitprog 编程器是否支持在ISSP中对 PSoC 1芯片进行编程?类似于 Miniprog1/3。并不真正担心这个问题的调试。赛普拉斯关于这方面的文档非常稀缺。

0 投票
1 回答
144 浏览

ios - Cypress PSoC Creator / iOS App:将 BLE 设备地址添加到广告数据

我尝试将 BLE 设备地址添加到 Cypress PSoC Creator 4.2 中的广告数据中。

在此处输入图像描述

我选中了 GAP 设置中的相关框,并为我的 PSoC 4 设备 (CYBLE-212006-01) 构建了项目。


在我的 iOS 应用程序中,我使用以下例程 (CBCentralManager) 来发现外围设备并打印广告数据:

控制台打印:

[“kCBAdvDataLocalName”:测试,“kCBAdvDataIsConnectable”:1]

我不明白,为什么我的BLE设备地址没有打印出来!

顺便提一句:

如果我添加任何其他广告数据包,例如 TX 功率级别,它会立即显示在我的打印输出中。

0 投票
1 回答
84 浏览

embedded - exp() math.cic 在循环中不起作用

我目前正在为学校项目开发 pid 调节器。由于电晕已经关闭了学校,我们无法获得任何硬件来测试它。所以我想在微处理器(PSoC5LP)上模拟 PID 调节器。所以我正在实现一个返回所选直流电机的阶跃响应的函数。

当我找到传递函数“(-3.47*exp(-6.36*s)+3.47))”的输出时,如果我在代码中手动定义“s”的值,我会得到正确的结果。但是当我在代码“未定义对“exp”的引用中将 s 设置为递增时。

问题似乎是我不能在循环中运行 exp 而增加它。在另一个项目中尝试过,唯一发生的事情是循环运行 10 次并打印出 exp() 以及循环运行的 nr 次(不起作用)

因此,如果我在循环中手动选择 S,它会起作用,但如果它增加它就会停止。我试图使用另一个变量并增加它,但它仍然不起作用

不工作

确实有效,但没有完成结果的增量如您所见,在循环中完成的唯一更改是“s”已被定义为一个值

这行得通

不这是错误:Build error: undefined reference to 'exp'

编译器输出的日志

--------------- 构建开始:04/28/2020 01:34:42 项目:Plotterkode,配置:ARM GCC 5.4-2016-q2-update 调试 ------ --------- 代码生成步骤是最新的。编译步骤是最新的,不需要做任何工作。arm-none-eabi-ar.exe -rs .\CortexM3\ARM_GCC_541\Debug\Plotterkode.a .\CortexM3\ARM_GCC_541\Debug\cy_em_eeprom.o .\CortexM3\ARM_GCC_541\Debug\CyDmac.o .\CortexM3\ARM_GCC_541\ Debug\CyFlash.o .\CortexM3\ARM_GCC_541\Debug\CyLib.o .\CortexM3\ARM_GCC_541\Debug\cyPm.o .\CortexM3\ARM_GCC_541\Debug\CySpc.o .\CortexM3\ARM_GCC_541\Debug\cyutils.o . \CortexM3\ARM_GCC_541\Debug\pc_uart.o .\CortexM3\ARM_GCC_541\Debug\pc_uart_PM.o .\CortexM3\ARM_GCC_541\Debug\pc_uart_INT.o .\CortexM3\ARM_GCC_541\Debug\pc_uart_BOOT.o .\CortexM3\ARM_GCC_541\Debug \pc_uart_IntClock.o .\CortexM3\ARM_GCC_541\Debug\isr_pc_uart.o 。step_respons': C:\Users\Vikto\Desktop\plottercode\Plotterkode.cydsn/./plotter_position.h:125: undefined reference toexp' collect2.exe:错误:ld 返回 1 退出状态命令“arm-none-eabi-gcc.exe”失败,退出代码为“1”。--------------- 构建失败:04/28/2020 01:34:42 ---------------

0 投票
1 回答
225 浏览

c - 我目前正在使用 PSoC 5LP。我想从 Psoc 5Lp 的 EEPROM 的第一行读取 8 字节的 HexaDecimal 数据

我能够在 EEPROM 的第一行写入 8 字节的十六进制数据,但我无法理解如何从 EEPROM 读取 8 字节数据并将 8 字节十六进制转换为十进制并将该十进制值保存为任何无符号整数。有没有最简单的方法可以在不使用 sprintf 的情况下将 8 字节十六进制转换为十进制,因为 sprintf 将值转换为字符类型并且我想将十进制值存储为无符号整数?

0 投票
1 回答
190 浏览

c - 我正在使用 PSoC 5。我想知道从 EEPROM 读取后如何将 8 字节十六进制转换为十进制

EEPROM数据:

我在读取数组中的第 0 行 EEPROM 后保存结果

Ex - Uint8 EEPROM_res[8];

我想将 HexaDecimal(0x8877665544332211) 转换为十进制 (9833440827789222417) 并将十进制值保存为整数数据类型以供进一步比较。8字节十六进制的最简单转换方法是什么?

0 投票
1 回答
160 浏览

c# - C# 中的 PSOC 端口连接

我在使用赛普拉斯的 PSOC Programmer 提供的 PP_COM_Wrapper dll 中的端口接口时遇到问题。我正在使用 CY8CKIT-0529 PSOC 5LP 原型设计套件。我能够成功打开电路板的端口,并验证我可以使用 PSOC 提供的 USB-I2C 桥对其进行写入。但是,当我关闭端口或检查端口是否打开时,命令会返回端口已关闭。对于 closeport() 命令,它返回 -1 和“端口未打开!” 对于 IsPortOpen() 命令,它返回一个 0,表示端口已关闭,并且没有错误消息。运行这两个命令后,我仍然可以通过 I2C 向电路板写入数据。我附上了我正在运行的用于连接、断开连接和检查以下状态的代码。任何关于我为什么无法关闭端口以及程序为什么认为端口已关闭的反馈将不胜感激。我错过了命令的使用吗?

PP_COM_Wrapper Api:赛普拉斯的 Api 文档

PP_COM_Wrapper 的使用:
PP_COM_Wrapper.PSoCProgrammerCOM_ObjectClass pp = new PSoCProgrammerCOM_ObjectClass();

开放端口:

端口是否开放:

断开端口:

0 投票
0 回答
139 浏览

c - 如何在 PSoC Creator 中使用 PSoC 5LP 创建 100 毫秒的内部 RTC 定时器中断而不使 PSoC 休眠?

我想使用 PSoC 5lp 的内部 RTC 创建 100 毫秒的中断。我将此 RTC 中断用作接收来自 UART 通信的命令的超时中断。我希望 PSoC 在收到 RTC 中断时处于活动状态。

0 投票
1 回答
132 浏览

java - 从 BLE 读取多个特征并读取字符串

所以我有两个问题。让我们从第一个开始,你如何readCharacteristic在彼此之后制作两个?我展示的代码是我认为你可以做到的。但是因为onCharacteristicRead在第一次readCharacteristic调用中还没有被调用,所以下一次调用readCharacteristic没有被触发。在这里,我通过在 if 语句中readCharacteristic为第一个调用第二个来解决它,但我不知道这是正常/愚蠢的解决方案吗?readCharacteristiconCharacteristicRead

下一个问题我觉得有点难?

the code is made in PSoC creator 4.3

因此,此刻我从我的PSoC 6 BLE设备中读取了一个 int,另一个字母“M”转换为整数并在应用程序端返回为“M”。我只阅读 SIGNLE 'M' 的原因是因为我不知道如何发送whole stringlike 'Made it'。我认为我遇到的问题是PSoC side我不知道该怎么做read a whole string

在这里你可以看到我修改了正确的值,一个整数和一个字符串,但只有字母“M”而不是字符串“Mads Sander Hoegstrup”

在此处输入图像描述

只需询问您是否需要更多信息

0 投票
0 回答
63 浏览

embedded - 需要解释 PSOC4 Cypress SPI 寄存器

为 SPI 主机编写代码 - CYpress PSOC4。

目前我有一条短路的MOSI和MISO线来测试基本的SPI通信。在技​​术手册中,他们为 SPi 初始化提供了以下这些步骤之一。我需要有关这些寄存器的更多详细信息。要清楚地了解这些寄存器。

问题:加载到 tx 写寄存器的值仍然是空的。

来自参考手册:

15.2.6 启用和初始化 SPI

SPI 必须按以下顺序编程:

  1. 分别使用 SCB_TX_FIFO_CTRL 和 SCB_RX_FIFO_CTRL 寄存器对发送器和接收器 FIFO 进行编程,如表 15-5 所示:

一个。设置触发电平。

湾。清除发送器和接收器 FIFO 和移位寄存器。

C。冻结 TX 和 RX FIFO

但无法理解上面的寄存器值。还需要有关 WR_PTR、RD_PTR、SR_VALID、USED 的更多详细信息。

无法在 SCB_TX_FIFO_WR 中写入数据。我缺少这些寄存器设置。

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述