问题标签 [mplab]

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 投票
2 回答
569 浏览

c - 如何将数组中的值存储到 MPLAB 上的变量中?

以下代码在 CodeBlocks 编译器上运行良好,但在 MPLAB C18 编译器上我没有得到相同的结果。我正在使用 PIC18 微控制器。

代码

代码块上的输出:64800

MPLAB 上的输出:-816

究竟是什么问题?这段代码不应该正常工作吗?谢谢!

0 投票
1 回答
693 浏览

c - PIC18 的数据类型?

我使用哪种数据类型来存储以下值?

价值:86400

代码

如果我将此代码复制到 CodeBlocks,它可以正常工作。但是,在 MPLAB C18 编译器上,我会得到不同的结果。

代码块输出:86400

MPLAB 输出:20864

你如何解决它?谢谢!

0 投票
1 回答
62 浏览

c - 在 PIC18 上从用户那里获取数组值?

首先让我展示什么是有效的,然后我将展示什么是无效的。这段代码给出了正确的结果。

输出:86000

如果我希望用户输入以下值,我会得到不同的结果,这就是我拥有的代码。

输出:619328

这不应该以同样的方式工作吗?那么当用户输入值时我得到不同的结果怎么办?谢谢!

0 投票
7 回答
10171 浏览

c - 如何使用 PIC18 写入和读取内存?

我想将一个数字存储到 PIC18,然后即使断电或设备重置也能保留它。我认为我的编写代码部分看起来不错,只是单元重置后它的读取部分看起来很奇怪。

我正在使用从 Microchip 获得的以下代码。

代码:

输出:1

但是,当我重置单元并仅使用读取代码时,我总是得到 255。

代码阅读

输出:255

为什么会这样?我假设可能没有保存该值或读取部分不正确。谢谢!

0 投票
2 回答
3159 浏览

memory - UART转SD卡

我正在尝试实现一种将数据从 dsPIC33F 写入 SD 卡的方法。我目前可以通过 UART 将数据传输到蓝牙和 USB,但我在网上找不到任何关于通过 UART 写入 SD 卡的信息;这一切似乎都是SPI。

使用 SPI,但我已经在使用 I2C,而且似乎很难在同一个 PIC 上同时使用 SPI 和 I2C,因为它们共享引脚。

那么,任何人都可以建议任何有关通过 UART 将数据写入 SD 卡的信息,或者同时使用 SPI 和 I2C 的方法吗?

我想要的只是某种形式的存储方法,所以如果有人可以建议另一种方法,也许是 EEPROM 或 USB 闪存驱动器,那么我会全力以赴。我需要至少 2GB 的存储空间,越多越好。

0 投票
1 回答
2015 浏览

build - MPLAB IDE - 构建一个空项目

我正在尝试使用设备 PIC18f452 在 MPLAB 上构建一个空项目。这是我得到的错误:

Debug build of project 'C:\Users\Rabbiya\Desktop\MyProject.mcp' started. Language tool versions: MPASMWIN.exe v5.35, mplink.exe v4.35 Preprocessor symbol__DEBUG' 已定义。

2013 年 5 月 9 日星期四 20:03:42

Make:目标“C:\Users\Rabbiya\Desktop\18F452TMPO.o”已过期。执行:“C:\Users\Rabbiya\Desktop\New folder (2)\Microchip Solutions v2011-07-14\MPASM Suite\MPASMWIN.exe” /q /p18F452 "New folder (2)\Microchip Solutions v2011-07- 14\MPASM Suite\Template\Object\18F452TMPO.ASM" /l"18F452TMPO.lst" /e"18F452TMPO.err" /o"18F452TMPO.o" /d__DEBUG=1 制作:目标“C:\Users\Rabbiya\ Desktop\MyProject.cof" 已过期。执行:“C:\Users\Rabbiya\Desktop\New folder (2)\Microchip Solutions v2011-07-14\MPASM Suite\mplink.exe” "New folder (2)\Microchip Solutions v2011-07-14\MPASM Suite \LKR\18f452_g.lkr" "18F452TMPO.o" /u_DEBUG /z__MPLAB_BUILD=1 /z__MPLAB_DEBUG=1 /o"MyProject.cof" /M"MyProject.map" /W MPLINK 4.35,

链接步骤失败。

定义了项目C:\Users\Rabbiya\Desktop\MyProject.mcp' failed. Language tool versions: MPASMWIN.exe v5.35, mplink.exe v4.35 Preprocessor symbol__DEBUG' 的调试版本。

2013 年 5 月 9 日星期四 20:03:43

构建失败`

当我右键单击并在项目窗口中构建源文件时,它会成功构建。我应该做些什么?单独组装目录中的所有 .asm 文件?

0 投票
1 回答
414 浏览

c - MPLab 的 C 编译器问题

我是 PIC Programming 的新手,我根据这个博客开始了我的第一个程序。

http://embeddedlifehelp.blogspot.com/2010/02/pic-16f877a-help.html

但是当我要构建我的项目时,它会给我一个错误。请帮我解决这个问题。

这是代码。(如果有人可以将代码放入汇编中,请放在下面)

谢谢

参考下面的错误

已编辑

现在我尝试使用 MicroC.its 给出以下错误屏幕。请帮我解决这个问题。

错误图像

它的意思是pic16f877a.h文件丢失。?是否需要手动添加到out文件夹。?我搜索该名称,但找不到该命名文件

0 投票
1 回答
1737 浏览

sd-card - 编辑 dsPIC 的 FatFS 通用示例

我正在尝试使用 FatFS ( http://elm-chan.org/fsw/ff/00index_e.html ) 作为使用 SPI 与 SD 卡进行通信的一种方式。

FatFS 网站有许多示例,但我发现它们并不容易理解或遵循。可下载的 zip 中有两个示例适用于我,一个用于“通用”微控制器,另一个用于 PIC24。虽然 PIC24 看起来与我的 dsPIC33F 非常相似,但代码非常难以理解,具有我不关心的特定应用程序。

通用代码更容易理解,并且执行一个非常简单的应用程序:创建一个 txt 文件,写入它,然后关闭它。但是,我很难更改代码以使用我的 PIC。

我有 dsPIC33FJ128GP802。我在通用示例中添加了代码来重新映射 SPI 引脚、设置内部振荡器以及设置和启动 SPI 模块:

PIC到SD卡是:

  • RP15,SPI时钟输出,到SCK
  • RP14,SPI 数据输入,到 DO(数据输出)。
  • RP13,SPI 从机选择,至 CS。
  • RP12,SPI数据输出,到DI(数据输入)。
  • SD 卡 CD 未连接。

有FatFS经验的人可以帮我做必要的改动。到目前为止,运行代码一直到 f_open,它返回错误 FR_NOT_READY。

现在我不想做任何花哨的事情,只是创建一个文件并写入它。我见过许多使用外部晶体振荡器的应用程序,而我没有。这是SPI的必需品吗?我是 SPI 新手,在此之前一直在使用 I2C。

在通用示例的 mmcbb.c 文件中,我必须进行一些更改以消除我遇到的一些错误,我用我自己的函数替换了他们的延迟函数,以创建与引发错误的时间相似的延迟,我还删除了出现在 disk_initialize(BYTE pdrv) 中的 INIT_PORT(),因为它引发了错误,并且我在进入任何 FatFS 代码之前初始化了端口,就在 main 的开头。在 mmcbb.c 的顶部有 #define 需要将相应的端口添加到我设置 SPI 的方式中,我这样做了(RBx 引脚与我在上面设置的 RPx 相同):

位运算符已经存在,我只是添加了 PORTBbits.RBxx。

这就是我所做的所有更改,但我发现在线查找有关使用任何库进行 SD 卡操作的信息特别困难(FatFS 和 MDDFS)。任何帮助将不胜感激!

0 投票
1 回答
1386 浏览

c - localtime() 给出不正确的值

网上有大量代码让我相信以下内容会给我当前时间。然而,事实并非如此。我得到了我认为是 UNIX 纪元的时间;1970 年 1 月 1 日 00:00;00。

现在真的很烦人,为什么我的计算机系统时钟控制的不是当前时间?我正在为 C 中的嵌入式系统执行此操作。IDE 是 mplab。

0 投票
1 回答
5776 浏览

uart - 如何在 MPLABX 模拟器中查看 PIC32 UART1 输出?

我正在使用 MPLABX v1.80 、 xc32 V1.21 和 Microchip 的示例 uart 代码(基本示例)。

我在项目属性中选择了模拟器。我在项目属性中为窗口输出启用了 UART1。

我尝试过同时使用 UART1 和 UART2 进行编译。但是我似乎无法找到输出的去向。

示例代码在这里: http ://ww1.microchip.com/downloads/en/DeviceDoc/PIC32_UART_CodeExample_041613.zip

谢谢你的帮助。