问题标签 [pic]
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.
assembly - 存储号码 PIC ASM
所以,我知道如何在按下按钮时生成一个随机数,但我不确定如何存储一个数字,更不用说两个了,然后让它不在按钮循环中时不会发疯。这是我现在的代码。
很抱歉它的不整洁,不知道如何为这个网站正确格式化。
android - 安卓+PIC单片机
是否可以通过串行端口与 PIC 单片机通信 Android 应用程序?我可以使用哪些低价手机?对不起,我的英语,我来自哥伦比亚。
c - 消除 GOT 寄存器的冗余负载?
我正在处理一些在编译为 PIC(位置无关代码)时会变慢 70-80% 的代码,并正在寻找缓解问题的方法。问题的很大一部分是 gcc 坚持在每个函数中插入以下内容:
即使这最终是函数内容的 20%。现在,ebx
是一个调用保留寄存器,相关翻译单元(源文件)中的每个函数都在用GOT的地址加载它,很容易检测到这些static
函数不能从翻译单元外部调用(它们的地址是从未采取)。那么为什么 gcc 不能ebx
在大外部链接函数的开头加载一次,并生成静态链接函数,以便它们假设ebx
已经加载了 GOT 的地址?是否有任何优化标志我可以用来强制 gcc 进行这种明显和大规模的优化,而不是将内联限制提高到天高,以便所有内容都内联到外部函数中?
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 线插入多个从站……)
assembly - 以下汇编代码的含义,求助
以下代码来自u-boot:
我不明白上面的 3 个指令:
TIA
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 用于接收
encryption - PIC18F1320上的加解密
我有一对从端口 A 连接到微控制器的收发器,还有一个 MM232R 连接到单独 PCB 上的端口 B。每个收发器将发送加密数据,而 MM232R 将接收解密数据。我需要编写加密算法和解密代码。谁能告诉我如何去做?我是编程和加密算法的新手。
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 是否太大或太慢。
assembly - 了解芯片的频率/振荡
我真的不知道它是什么。甚至不知道如何去寻找它是什么。我将不胜感激任何帮助。