问题标签 [xc8]

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 回答
519 浏览

microcontroller - 在 XC8 中编写调度程序/RTOS

我有兴趣使用可访问硬件堆栈的增强型 MCU 在 XC8 中编写调度程序/RTOS 项目。

我试图弄清楚如何控制软件堆栈的创建,以便每个任务的软件堆栈将在通用 ram 中获得一定的范围。

从概念上讲,这在 ASM 中很容易编程,但我希望能够编写 C 程序并将每个任务的软件堆栈放入正确的地址空间。

似乎没有为特定代码部分创建单独的软件堆栈甚至创建多个软件堆栈的选项 - 我该怎么做?

谢谢

0 投票
2 回答
650 浏览

avr - 在 mplab xc8 IDE 中使用 ei() 与 AVR 汇编程序 sei() 一样安全吗?

给定: http: //ww1.microchip.com/downloads/en/DeviceDoc/MPLAB_XC8_C_Compiler_User_Guide.pdf XC8 的 ei();// 启用全局中断

XC8 的 di(); // 禁用全局中断

AVR 的 sei() http://www.atmel.com/webdoc/avrassembler/avrassembler.wb_SEI.html

AVR 的 cli() http://www.atmel.com/webdoc/avrassembler/avrassembler.wb_CLI.html

那么它可以安全地说 ei() == sei() && di() == cli() 并且可以在切换平台时互换使用?

0 投票
1 回答
1025 浏览

c - 简单中断程序陷阱/冻结 cpu(USART/PIC18F/MICROCHIP/XC8)

我正在使用以下内容:

  • pic18f4550,
  • xc8 编译器,
  • mplab x ide v3.20,
  • 发射器和接收器模块(使用主程序测试,没有任何中断和工作)。
  • LED 连接到 RD0、RD1 和 RD2(1 = 亮起)
  • 连接到 RB0、RB1 和 RB2 的按钮(0 = 按下按钮)//此时无关紧要

显然,这段代码中的所有内容都可以正常工作,但有中断"void interrupt SerialComm(void)"
(我制作了一个没有中断的程序并且 LED 亮起)。

主要甚至没有加载;我放了"PORTD = 0x0F",
(主程序的第 3 行)。

因此,如果 LED 亮起,则意味着至少主程序的第 3 行有效。
(至少在那条线之前,但领导没有。)

是否有任何我必须首先禁用的寄存器,但我错过了这个?
另外,我已经按照大多数教程进行操作,是否有遗漏的内容?,我看过很多带有#pragma 的程序,但我不确定当我使用 XC8 编译器时是否需要。

0 投票
1 回答
1304 浏览

xc8 - Sprintf 无法正常工作

您好,我正在使用 xc8 compiler.sprintf 处理 Pic18f46k22 功能无法正常工作。我的代码是:

输出 :

预期输出:

0 投票
2 回答
247 浏览

c - const char[] 变量之间的区别;和“一些字符”

我有这样的代码:

我可以用这个代替它吗?

有什么功能上的区别吗?

0 投票
1 回答
1706 浏览

c - 寄存器的 XC8 冲突声明(例如 TRIS、SSP1CON1、...)

我刚来这地方。我正在使用 Microchip 的 XC8 编译器和 PIC18F25K22。当我构建代码时,我得到了错误

如果我将此代码行注释掉,我会收到下一个注册命令的错误(在我的情况下:SSP1CON1) - 我尝试使用包含 xc.h 和 htc.h 但也有相同的错误。

我在stackoverflow中发现了一个类似的问题,但是通过将这些命令放在一个函数中解决了这个问题,但我的是在一个函数中。

这是我的代码:

0 投票
1 回答
1714 浏览

pic - '无法解析标识符 _delay'

我不断收到错误“无法解析标识符_delay”。我使用的是 pic16f1829、MPLAB X IDE v3.26 和编译器 XC8 v1.41。

我只是想让 LCD 显示一些参数。奇怪的是,我在另一台计算机上使用了完全相同的代码,上传了它,然后它就起作用了。但是由于我改变了计算机(并且可能有一些不同的编译器版本等)它不再工作了。通常 _delay 应该是 XC8 的内置功能,所以我不知道他为什么抱怨。我也不确定这就是 LCD 不工作的原因,但这是我得到的唯一错误。

0 投票
1 回答
786 浏览

pic - PIC18F XC8 编译器 - 对象未初始化?

我必须为一个新项目使用 Microchip PIC(需要在具有 5V 操作的 TQFP60 封装上具有高引脚数)。

我有一个很大的问题,我可能会错过一些东西(提前抱歉)。IDE:MPLAB X 3.51 编译器:XC8 1.41

问题是,如果我将一个对象初始化为 0 以外的任何值,它将不会被初始化,并且在我到达 main() 时始终为零;在模拟器中它可以工作,并且对象值是正确的。

简单的例子:

在模拟器中,x 为 0x78,while(x) 为真。但是当我使用 PICKIT3 将代码加载到 PIC18F67K40 时,x 为 0。

即使我做了一个简单的 sprintf 也会发生这种情况,并且它什么也不做,因为格式化文本字符串(char 数组)充满了零。sprintf(buf,"数字是 %u",x")

我无法将任何对象初始化为零。到底是怎么回事?任何帮助表示赞赏!

0 投票
1 回答
88 浏览

pic - 使用 FatFs 写入 SD 卡时 CS 不高

我很难使用使用 FatFs 的 SD 卡来设置我的 PIC 项目。我在 Proteus 中模拟它——但在整个写入过程中,SD 卡的 CS 线上没有高电平。其他的作品。我已经检查了引脚配置,spi 工作正常,并且我使用了示例代码来编写 Web 示例中的例程。有时我会收到错误 CMD63 unsupported。有没有人知道,为什么CS不高?

0 投票
0 回答
484 浏览

pic - 与 PIC16 接口时,TCS34725 颜色传感器读数波动

我正在尝试使用 PIC16 通过 I2C 读取 TCS34725 颜色传感器的值。目前,我不断地轮询 TCS 上的清除寄存器。但是,每 10 次左右读取清除寄存器中的值,读数就会随机下降。例如,一组连续读数可能是 [17, 17, 17, 17, 17, 17, 17, 17, 14, 15, 16, 17 ...],重复。

我曾尝试在同样的情况下与 Arduino Uno 连接,并获得一致的 17 读数。

我想消除读数的下降。

我在 XC8 中用于读取 TCS 的代码如下