问题标签 [c18]

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

c - 终端模拟器中的随机字符

我目前正在开展一个项目,以根据笔记本电脑通过 USB 输入的文本选择不同的输出。

我目前正在尝试做的是将一个字符从我的 PIC18F1320 发送到超级终端,我尝试使用变量,但正在接收 rnadom 字符,例如笑脸等。我简化了我的代码以简单地打印一个 1 但是我仍然收到笑脸符号。我检查了我使用的波特率是否正确,并且我的笔记本电脑和 PIC 之间有明确的通信,但是此时我完全卡住了,因为我不知道为什么会输出随机字符。

我对C知之甚少,任何帮助将不胜感激

0 投票
1 回答
88 浏览

c - eeprom搜索功能

我有一个存储在 EEPROM 中的数组

从 {0,0,0,0,1,1,1...} 开始,地址 '0'-address'53' 最多 54 个元素,我已经交叉检查了该值,一切都很好。

但是当我使用“搜索功能”并且当它从第 0 个地址搜索时,我已将“0”作为参数传递。

无符号字符搜索(char current_time)

但它必须返回 '4' 作为值,因为在 '4'th 元素之后非零。

但它总是返回 53。

为什么会这样?

我正在使用 c18 编译器..如果逻辑上有任何错误,请纠正我。

问候

0 投票
1 回答
78 浏览

c - 读回一个浮点数

我正在使用微芯片 c18,我有这个功能,它将浮点数分成 4 个相应的字节。C18 遵循小字节序

并写入串行eeprom。

如果我想读回浮点变量。

这个函数会返回浮点变量吗?我现在没有任何硬件和模拟工具。

我相信我的问题很清楚。编辑:

这样做的同时。将 char 分配给 float 时发生编译器不匹配错误。我该如何消除该错误?

0 投票
1 回答
2884 浏览

c - C18 将 char 数组传递给函数

我是 C 编程和微控制器的新手。我正在使用带有 C18 的 PIC18F24K20 微控制器。我将其设置为使用 USART 发送和接收功能从计算机输入接收信息。我的目标是将接收到的单词与已知单词进行比较,并根据接收到的单词将某些内容传输回计算机。下面是相关代码。

该代码当前设置为测试以尝试确定错误所在。如果我按原样运行它,计算机将收到一个“t”,就好像微控制器通过 CommTransmit 函数运行一样。但是,它从不传输“g”。即使我在 CommTransmit 函数中调用了 USART_transmit('g'),在 if 语句之外和之后,它也永远不会被调用(就像它卡在 strcmppgm2ram 函数中一样?)但它仍然传输't'。

这也很奇怪,因为如果我在 CommTransmit 函数上打断并逐行运行,它似乎可以正常工作。但是,如果我查看 MPLAB IDE 中的 CommVariable,它永远不会是它应该的样子(尽管在被调用到函数中之前的“buf”变量是正确的)。据我所知,当我观察 CommVariable 时,它​​的值取决于数组的大小。

从阅读中,我认为这可能是由微控制器如何存储变量(程序与数据存储器?)引起的,但我不确定。任何帮助是极大的赞赏!

编辑:我还应该补充一点,如果我在 CommTransmit 行之前的 else 语句中取消注释 T = strcmppgm2ram 行,它可以正常工作(当两个字符串相同时,T = 0)。我相信当我通过函数时数组会发生变化,这会导致 strcmppgm2ram 函数无法正常工作。

0 投票
1 回答
982 浏览

arrays - 如何在 C18 编译器 MPLAB (ANSI C89) 中分配结构

我正在尝试在主程序中分配值。

我可以在主程序中为结构 p 赋值的唯一方法是

这样,我将花费大量的空间和时间来为数组分配值。有一个更好的方法吗?

以下方法对我不起作用..

0 投票
1 回答
928 浏览

pic - picc代码中__18CXX和__PCB__是什么意思

我通常会看到以下几行与编译器相关的代码:

我怎么知道每一个的意思?

0 投票
2 回答
2581 浏览

c18 - Microchip XC8 和 C18 编译器有什么区别?

我想进一步了解 XC8 和 C18 编译器之间的区别。

我知道 XC8 是所有 8 位微芯片控制器的最新编译器。例如 PIC16F、PIC18F。C18 是他们 PIC18 产品的编译器。对于C18,PIC18系列包括PIC18F和PIC18C,是吗?

我看到 XC8 是比 C18 更进一步的版本。是不是意味着XC8也可以编译C18之前编译的全部/部分代码。如果不是,应该是什么。

顺便说一句,目前(几天)我正在寻找有关 PIC18F2455/2550/4550 USB 接口的示例/教程代码。如果您有任何指示,他们将不胜感激。

0 投票
2 回答
1667 浏览

enums - 使用枚举和切换函数(C18 编译器)

我最近开始重写一个程序以使其更易于理解,并且我开始使用枚举来描述我的程序可能处于的不同状态。

这是枚举:

我认为我可以将它作为字节传递给函数,因为这些值实际上是整数,但我不确定这是否会导致问题或其他原因,我已经修改这个函数很长时间了。

编译时出现的错误(同一行有 2 个错误),错误总是出现在我在特定情况下编写的第一行。我不知道它想告诉我什么。

问题:我做错了什么,我怎样才能让我的代码工作?

0 投票
2 回答
148 浏览

c - 原型中的 const 函数参数,但不是声明(在 C 中)

用 C 编写代码时,我经常const在函数定义中包含函数参数声明,但不包含它的声明:

这总是使用 GCC 和 Clang 为我编译而没有问题,但 Microchip 的 C18 编译器声称类型不匹配。

标准对此有何规定?我是否一直依赖非标准扩展?

编辑:我不是在问这样做的好处,也不是像在假定的重复问题(Use of 'const' for function parameters)中那样询问 C++。我问的是 C 标准:这是合法的 ANSI C、C99 还是 C11?

0 投票
2 回答
186 浏览

microchip - Microchip C18 将数据作为数字发送到终端

我正在做一个项目,我需要通过 USART 将数据发送到终端。我需要将数据显示为 char 的数值(0-255)(从 EEPROM 收集

我已经设法将 char 按原样发送到终端(使用 Putty 或 TerMite) 我的问题从 char 的值不可打印的地方开始

这就是为什么我需要将 char 的值转换为数字

示例:当从 EEPROM 获取的数据为 0x31 时,我的例程将发送“1”,但我需要向终端发送“049”或“49”

}

谢谢,