问题标签 [mikroc]

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

serial-port - 通过 uart 接收 pic16F788 的数据:mikroC

我已经编写了通过串口向 pic 发送数据的 java 代码,现在我需要对微控制器进行编程以读取数据,如果它接收到 1,则使 PortD.RD6=1,如果接收到 0,则使 PortD.RD6=0。我已经尝试过这段代码,但我得到了很多错误。这是我的第一个 mikroC 程序,所以我真的不知道如何管理这些错误。

0 投票
1 回答
1494 浏览

c - 如何在 c 中为微控制器定义新端口

我需要使用 [porta.1,porta.2,portc.1,portc.2] 定义虚拟端口或变量绑定,因为微控制器(PIC18F4550)中所有可用端口的某些引脚正在使用中,而我没有任何空闲端口;

我需要嵌入式 C 编程方面的帮助(mikrocForPIC 是我的 IDE)。我需要类似下面的东西:

并用于:

我记得它可以,但我不记得什么是真正的语法!?

请帮忙

谢谢

0 投票
1 回答
309 浏览

c - 代码的执行总是进入 else 语句

我的源代码中发生了一些非常奇怪的事情。以下函数运行良好,当密码正确时打印“y”,当密码不正确时打印“n”。但是,如果我在 else 语句中添加一些 UART1_Write 和 Delay 函数,错误就会出现,即使密码是“zxc”(正确),它总是会进入 else 语句。我正在使用 MikroC PRO for PIC v6.0.0,机器人系统由 PIC18F452 和连接到它的 RN-42 蓝牙模块组成。我正在使用带有蓝牙和 TeraTerm 的笔记本电脑进行测试。

欲了解更多信息:http: //instagram.com/p/pLnU9eDL8z/#

这是正常工作的例程:

这个版本的例程总是放在 strcmp(input, password) == 0 部分的 ELSE 语句中:

发送所有这些附加符号以使 RN-42 进入命令模式并在密码错误时断开用户连接是很重要的。请帮我解决问题。任何想法表示赞赏!

0 投票
5 回答
6315 浏览

c - UART1_Read_Text() 问题

我正在使用 PICKit3、MikroC PRO for PIC v6.0.0、PIC18F45 @ 8MHz 和 RN-42 蓝牙模块。我正在从笔记本电脑和我的 Android 应用程序连接到 RN-42 模块,并且我正在发送密码。奇怪的是,PIC 有时会说密码是正确的,但有时却不是。我正在发送相同的字符串。在测试时,它碰巧只有第一次不接受通过,其他所有尝试都接受了。PIC 和 RN-42 上的 UART 波特率设置为 9600。RN-42 上的 RTS 和 CTS 未连接。

我也试过:

但它是一样的......可能是什么问题,是在我的代码中还是在 MikroC 函数中可能存在和问题?

UARTx_Read_Text() 原型:

UARTx_Read_Text() 说明:

读取通过 UART 接收的字符,直到检测到分隔符序列。读取的序列存储在参数输出中;定界符序列存储在参数定界符中。

这是一个阻塞调用:需要定界符序列,否则程序退出(如果未找到定界符)。

参数 :

输出:接收到的文本分隔符:标识接收到的字符串结尾的字符序列尝试:定义接收到的字符数,其中预期分隔符序列。如果 Attempts 设置为 255,此例程将不断尝试检测 Delimiter 序列。

例子:

读取文本直到收到序列“OK”,然后发回收到的内容:

0 投票
2 回答
1380 浏览

c - PIC16F1459 24LC32 的 I2C 主机确认问题

我面临一个奇怪的问题。我一直在我的 PIC16F1459 上使用 bit bangin I2C 功能,但现在我想使用 MSSP(SPI,I2C 主从外设)。所以我开始根据数据表编写函数,开始、停止等。我遇到的问题是我的 PIC 不会确认我发送到 I2C EEPROM 的数据。数据表中明确指出,可以在 SSPCON2.ACKSTAT 中找到 ACK 状态。所以我的猜测是轮询这个位,直到从机响应我的数据,但程序挂在 while 循环中。

这是我的写函数,我的 I2CCheck 函数和 I2C 主初始化函数

如您所知,24LC32A WriteProtect 连接到 VSS,A2-A1-A0 连接到 GND,所以地址为 0xA0。4k7 上拉在 I2C 线上。PIC16F1459 在 16MHz INTOSC。

我完全被困住了。我浏览了 MSSP 数据表 5 到 6 次,没有发现任何问题。你们能帮忙吗?

这是我的逻辑分析仪预览(删除 vReadAck() 中的 while )

0 投票
1 回答
1022 浏览

pic - MPLAB 代码不工作

我正在研究 pic 微控制器编程,最近去了 lcd 制作了 2 个代码,一个在 mplab 中,另一个在 mikroc 中实际上都在 isis 中工作,但是当我真正尝试它时,只有 mikroc 代码在微控制器中工作我不知道实际上是什么是问题/为什么会发生这种情况我不认为这是硬件或软件代码,因为它是相同的电路并且两个代码都在 isis 中工作所以如果有人想查看代码,那么这里是:

微克:

实验室:

主.c:

配置.h:

0 投票
0 回答
239 浏览

strtok - MikroC PIC18F27J53 strtok

我有问题。所以我在具有相同语法的字符串上使用 strtok,当我 strtok 第一个字符串时,没关系,没问题,但是当其他字符串进入时 strtok 不起作用。它不能在逗号处拆分我的字符串。这是代码:

检查字符串的长度对我来说是一件万无一失的事情。如果出现问题,我不希望我的程序将更大的字符串复制到我的变量中,这会破坏一切,谈到经验。我的方法也适用于第一个字符串。

第一次尝试:输入字符串示例:1,2,3,4,5,6,7,8,9,10 输出:var1:1 var2:2 var3:3 等等...

其他尝试,输入字符串相同,输出: var1: 1 var2: 2,3,4,5,6,7,8,9

也许代码的其他部分会影响这种方法......

希望有人有一些想法。

问候,

0 投票
0 回答
1402 浏览

matlab - pic和matlab gui之间的UART

我在使用 MATLAB GUI 将 pic 微控制器与 pc 连接时遇到问题 Matlab 给了我这个错误“警告:在达到终结者之前发生超时”

这是 mikroc 代码:

}

这是matlab代码:

0 投票
1 回答
356 浏览

c - C 中的 PIC - 使用 RC0-3 创建自己的键盘扫描例程

我被要求创建自己的例程来扫描键盘,但只使用 PORTC 并使用 RC0-3,我只需要返回 4 个值,它们是 1、2、4、5,如果我正确,它们在4x4 键盘上的 2x2 排列。我正在使用的键盘是一个连接到 PORTC 的 4x4 键盘,我只是想知道你会怎么做呢?因为我没有被教过,但它是一项工作的重要组成部分,如果我没有收到解决方案会很好,但更多的解释将我推向正确的方向,这样我就可以自己做。 PIC 微控制器:扫描 4x4 键盘上的输入,仅使用 C 中的端口 C RC0-RC3 这基本上是这个问题,但那里的答案并没有真正帮助,所以我想我自己会问这个问题:) 任何帮助将不胜感激!

0 投票
1 回答
206 浏览

microcontroller - PIC MikroC - 制作 2x2 键盘扫描仪

我正在创建一个 2x2 键盘扫描仪,其中 RC0 和 RC1 是输入线,RC2 和 RC3 是输出线。我已将 TRISC 设置如下

然后我创建了键盘扫描仪方法

在 while(1) 循环中,我将其显示到 GLCD 显示器上

我只是想知道我哪里出错了,我花了太长时间试图弄清楚这一点,如果你能把我推向正确的方向而不是给我一个答案,那就太好了:)

编辑: HIGH 定义为 1,LOW 定义为 0,而 test 只是一个 'char'

这是我正在关注的伪代码

将 RC2 设置为高,RC3 设置为低
读取 RC0。如果为高,则按下 1
读取 RC1。如果为高,则按下 2
将 RC2 设置为低,RC3 为高
读取 RC0。如果为高,则按下 4
读取 RC1。如果高,则按下 5