问题标签 [microchip]
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.
io - PIC 16f627 使用一个引脚用于输入和输出
我正在尝试将两个 PIC 16f627 芯片(使用 PICC-Lite 编程)与一个 I/O 引脚(RA2,在已知点改变方向)和一个由其中一个芯片驱动的 CLK 引脚连接在一起。
我最初设置了它,所以有一个主人和一个奴隶。主机将写入一个 8 位“命令”,I/O 引脚的 TRIS 位将被翻转,从机将以 16 位“应答”响应。
我已经进行了(临时的,大的)延迟,以确保没有时间问题。
写/读命令工作正常,两端翻转状态(TRISA)。然而,此时,当主机从之前写入的引脚读取时,即使引脚物理上为 1,它也始终读取 0!
据我所知,TRISA设置正确(=如果输入则设置为位),CMCON(=7)也是如此,我相信CONFIG字;两个芯片都是一样的(嗯,倒置),输入在从机上工作……我还试图确保两个芯片的 TRISA 永远不会同时为 0。
我试过的: - 改变从机,而不是试图发回数据,它只是在很长的时间间隔内切换它的输出引脚的值。这可以在输出线上看到,但在输入引脚的值上看不到。- 只是将状态从输入引脚传递到不同的输出引脚(输出保持为零;虚拟放置表明该引脚上的一般输出有效) - 将 PORTA 和 TRISA 的值写入 LCD - TRISA 正确,但 PORTA 为 0 (即使连接到引脚的线为高电平) - 将 I/O 线连接到 LED 表明它正在改变,但端口上的输入值没有 - 连接电压表显示合适的电压(等于 V+ ) - 我尝试将 Master 换成替代品(它认为它可能遭受了一些物理损坏),尽管这没有任何区别 - 我'
我正在用头撞墙。任何提示或想法将不胜感激!我可能不得不依靠使用两个引脚(尽管我有点希望我能够在某个时候通过一条共享 I/O 线插入多个从站……)
c - FreeRTOS 任务不是上下文切换
我在 PIC32MX 入门套件上为 PIC32 微控制器使用 FreeRTOS 端口。只是在玩任务,但任务不是上下文切换。这是我的主要配置设置:
现在我定义了两个任务,它们使两个 LED 闪烁。两者的优先级均为 4(最高)。在正常操作下,LED 应每隔 100 个滴答声交替闪烁。但这不会发生。第二个 LED 闪烁 100 次,然后控制转到通用异常处理程序。为什么会这样?好像根本没有安排。
c - 在 PIC32 上通过 DMA 接收 SPI 数据
我知道这个话题(DMA 和 SPI)已经在 microchip 论坛的许多线程上讨论过了,实际上我已经阅读了关键字“dma”的所有 15 页搜索结果,并阅读了所有关于 dma 和斯皮。
而且我仍然坚持我的问题我希望有人可以帮助我:)
这是问题所在。
我的芯片是PIC32MX775F512H。我正在尝试通过 DMA 使用 SPI 接收(仅接收)数据。由于您不能“仅”在 SPI 中接收,并且 SPI 内核只有在您写入 SPIBUF(对我来说是 SPI1ABUF)时才开始切换 SPI 时钟,我正在尝试使用 2 个 DMA 通道接收我的数据。DMA_CHANNEL1 用于发送部分。接收部分的 DMA_CHANNEL2。
我从http://www.microchip.com/forums/tm.aspx?tree=true&high=&m=562453&mpage=1#复制粘贴代码
并试图让它在没有任何运气的情况下工作。它只接收几个字节(5 或 6)。
我已将两个 dma 通道的事件启用标志设置为 DMA_EV_BLOCK_DONE,没有发生中断。
你有什么主意吗 ?
这是我正在使用的代码:
使用这两个中断处理程序:
所以我最终在这条线上永远等待:while(!DmaRxIntFlag);
我在中断向量中放置了断点,它们永远不会被调用。
这是永久等待期间几个寄存器的状态:
DMACON 0x0000C800
DMASTAT 0x00000001
我使用的是 SPI1A 端口,所以 SPI1ABUF 和 _SPI1A_RX_IRQ
DCH1SPTR 0x5
DCH1SSIZ 0x2B
DCH2DPTR 0x6
DCH2DSIZ 0x2B
DCH2CON 0x00008083
DCH2ECON 0x1B10
DCH2INT 0x00800C4
DCH2SSA 0x1F805820
DCH2DSA 0x00000620
通道 1 用于发送
通道 2 用于接收
c - 应该使用哪些配置位来调试 PIC16F1947?
我坚持使用 PIC16F1947 的配置位。我是 PIC 编程的新手,所以请详细回答。
我有以下设置:
- MPLAB 8.46
- MPLAB ICD 3
- HI-TECH C 编译器 9.81
PIC16F1947 PIM(插入式模块)插在 PICDEM LCD 2 演示板上。该板由 3 V 电池供电,J15 跳线按照手册连接(1-3 连接,2-4 连接在 J15 上)。该项目被编译为debug build。
以下是使用的配置位:
我可以通过 MPLAB 对微控制器进行编程(烧录固件) 。但是当我尝试Debugger > Run
它时,输出窗口显示以下错误:
ICD3Err0040:目标设备尚未准备好进行调试。请在继续之前检查您的配置位设置并对设备进行编程。
我已经检查了有关 ICD3Err0040 的文档,但在我看来一切都很好。
我做错了什么?请帮忙。
embedded - 用于微芯片 pic32 的 node.js
我知道 lua 正在开发微芯片 PIC32,我想知道 node.js(用于服务器的 javascript)是否也可以在它上面工作,或者对于 PIC32,lib 是否太大或太慢。
embedded - 哪种解释语言可以在微芯片 PIC32 上运行?
我正在寻找一种适用于微芯片 PIC32 的解释语言。
目前,我发现LUA和PAWN正在工作,但在选择之前,我想知道是否已知其他一些语言可以在 PIC32 中工作。
c - 我可以从图片 18f4550 的 PORTBbits.RB7 中查看哪个值
我可以从 PORTBbits.RB7 获得哪个值,在这个端口上有一个绿色 LED,连接了一个电阻(见图)。我正在使用带有 mplab ide v8.63 的 pic F184550 和来自 mplab microchip 的 C 编译器 C18。还是我需要写信给腻子才能看到这个值。谢谢
c - 从 LDR 中获取价值
我正在使用带有微芯片 v8.63 和 c 编译器的 picdem 18F4550。我使用的组件是: - 3 个 LED(红色、绿色、蓝色);- LDR(327700 NORPS-12 法内尔)。
我在 RB4、RB5 和 RB6 上连接了 3 个 LED(红色、绿色和蓝色)作为输出。我还在 RB1 上连接了 LDR。
我的问题是,当另一个 LED 的绿色亮起时,我如何才能在我的代码中检索 LDR 测量的值?
我包括了我的代码:
c - 启用端口 RA0 作为输入并从 led 检索值 LDR
我将 picdem 18F4550 与 microchip v8.63 与 C18 编译器一起使用。
我将启用 PortA 设置为输入,我将在端口 RA0 上连接一个 LDR。如下(我认为)
现在我想要 LDR 的值(如果 LED 亮起,电压/值),我可以说:
现在在 int 类型的变量中有我的 Led 的值/电压。
如我错了请纠正我。
microchip - 在 MPLAB IDE 中使用相对路径
我的项目结构和文件如下:
其中“项目”是项目名称的占位符。我正在使用 MPLAB IDE 8.66 和 HI-TECH 编译器 9.81。
我想使用项目的相对路径添加 hw_lcd.h/c 文件。这样,如果我写#include "HAL/hw_lcd.h"
在 app.c 中,那么 hw_lcd.h 将从 app.c 中找到。
我添加../
为包含搜索路径(项目>构建选项...>项目>目录和搜索路径>包含搜索路径)但出现以下错误:
无法打开包含文件“hw_lcd.h”:没有这样的文件或目录
然后我尝试../HAL
了包含搜索路径并写#include "hw_lcd.h"
在app.c中。这也会产生上述错误。
是否可以在 MPLAB IDE 中使用相对搜索路径?
如果#include
路径本身是相对的,那么它可以工作: