小编Tob*_*oby的帖子

JB在这里是做什么用的?

我正在尝试了解开发板 (XL400) 附带的一些示例 asm,以期将其转换为 C。

asm 代码包含在下面,不幸的是,像这样的文档从中文翻译得非常糟糕,这使得它比无用更糟糕。自从我使用 asm 以来已经很长时间了!

在代码中,DELAY 子程序中有一条 JB 指令(代码的倒数第三行)。我无法理解它的作用或它应该如何运作。谷歌搜索 JB 会导致对不同形式(JB 标签)的解释,所以我不确定 asm 是否正确?非常感谢帮助,Ta

 RS EQU P2.0
 RW EQU P2.1
 E EQU P2.2
 ORG 0080H
 MOV P0,#00000001B  ;- Screen
 ACALL ENABLE
 MOV P0,#00000001B  ;- Screen
 ACALL ENABLE
 MOV P0,#00111000B  ;Display
 ACALL ENABLE
 MOV P0,#00001111B  ;Show switch control
 ACALL ENABLE
 MOV P0,#00000110B  ;Input mode
 ACALL ENABLE
 MOV P0,#0C0H       ;Data memory address
 ACALL ENABLE
 mov p0,#01000001b  ;ASCII code
 SETB RS
 CLR RW
 CLR E
 ACALL DELAY
 SETB E …
Run Code Online (Sandbox Code Playgroud)

assembly lcd 8051

4
推荐指数
1
解决办法
2万
查看次数

列表之前和之后的 C 枚举标签 - 类型还是变量名称?

我看到很多场合(谷歌搜索)枚举的声明如下:

enum enum_tag {a = 0, b, c, d} tag_again;

enum enum_tag {a = 0, b, c, d};

或者

enum {a = 0, b, c, d} tag_again;

有时,似乎 enum_tag 是类型,而 tag_again 是变量名,但如果 enum_tag 不存在,则 tag_again 有时似乎被用作其中之一......它是哪一个?

如果我要编码 enum {a = 0, b, c, d} tag_again; tag_again 是枚举类型还是无名枚举类型的变量?

c enums

4
推荐指数
1
解决办法
815
查看次数

中断可以在标准C中处理吗?

是否有一种在标准C(ANSI/ISO)中维护硬件中断的方法?到目前为止,我见过的所有实现都使用编译器特定的语言扩展或预处理器指令.

我刚刚遇到了标准的C库'信号'功能,但维基百科对它的使用非常清楚,我认为它没有达到目的.

c interrupt

4
推荐指数
2
解决办法
2953
查看次数

是否应该依赖间接标头包含?

如果一个项目的标题包含第二个标题并且它们都包含一个公共标题,那么从第一个标题中删除公共标题的包含并依赖通过第二个标题的间接包含是一种好习惯吗?

例如:我知道stdint.h 可以从 中删除temperature.h,但应该删除吗?

在temperature.h:

#include <stdint.h>  // *Should* this include be removed in this case.
#include "i2c.h"

extern uint16_t temperatureRead (i2cData_t x); 
Run Code Online (Sandbox Code Playgroud)

在i2c.h:

#include <stdint.h>

typedef struct i2cData_t {
    uint16_t exampleMember
} i2cData_t;
Run Code Online (Sandbox Code Playgroud)

c include

4
推荐指数
1
解决办法
753
查看次数

不稳定结构的不透明指针

我有一个简单的FIFO环缓冲队列,我在我的嵌入式C程序中使用(使用TI C28x C/C++编译器,它非常类似于没有扩展的C89的GCC).数据被中断队列推送和弹出,因此队列需要是易失性的.

我已经实现了队列代码而不使用volatile,因此队列用户可以选择队列是否是易失性的(我希望在具有不同用途的几个项目中使用它),通过将句柄声明为volatile在使用中队列对象,而不是在实现中将队列对象本身定义为volatile.

即在que.c中:

struct QUE_Obj { /* Object & members are not defined as volatile. */
    void * data;
    uint16_t capacity;
    uint16_t head;
    uint16_t tail;
    uint16_t size;
    bool full;
    bool empty;
}

/* Implementation uses all non-volatile types. */
QUE_Handle QUE_init(void * data, uint_least8_t size, uint16_t capacity) { 
    /* ... */ 
    QUE_Handle q = (QUE_Handle)malloc(sizeof(struct QUE_Obj));
    /* ... */
    return q;
}

/* ... */
Run Code Online (Sandbox Code Playgroud)

在queue.h中:

typedef QUE_Obj * QUE_Handle;
QUE_Handle QUE_init(void * data, uint_least8_t size, …
Run Code Online (Sandbox Code Playgroud)

c struct volatile

4
推荐指数
1
解决办法
209
查看次数

MISRA-C个人使用程序的编码指南?

我通常是木材工人,而不是开发商。我正在学习用于嵌入式系统的C / C ++,同时尝试使我的某些工具具有自治性,从而节省了我的重复工作时间。

就目前而言,它的乐趣和进展顺利,我可能已经花了一百个小时进行编码/学习,并且已经节省了更多时间*。

我想继续前进,购买和遵循MISRA编码规则是“强制性好主意”吗?MISRA包含什么?仅编码规则,还是使它更安全的提示?

这些工具可能很危险(毕竟它们会砍柴,而人体的抵抗力要差得多……)。

注意:我显然分四个步骤进行测试:

  1. 只需运行OSD和SD卡记录器的图片即可(有一天,我将使用Anylze工具,并停止阅读它们)。

  2. 我没有插入任何工具

  3. 我在泡沫上使用软钻/刀具

  4. 我用手按紧急停止按钮在远处进行真实测试。

另外,我是唯一的员工,没有人可以访问我的工作场所。

*目前,我已经将钻头变成了一种3D木材打印机(完成了工作中不精确的部分),并将“切纸板”变成了自动化的打印机。

注意2:我不是母语人士,因此工具名称可能不正确。

c embedded misra

4
推荐指数
1
解决办法
2549
查看次数

如何列出所有建议的快速操作

是否可以列出VS2017(v15.3.3)中打开的项目的所有建议的快速操作?

尽管我确实看到了其他类型的IntelliSense警告,例如CS警告(例如CS1591),但在“错误列表”窗口中没有看到任何列出的内容(即使选择了“ Build + IntelliSense”)。

(快速操作是在檐槽中用灯泡标记并通过Alt+ Enter或Ctrl+进行访问的项目.)

ide visual-studio-2017

4
推荐指数
2
解决办法
1038
查看次数

如何在Windows上使用python 2.6安装pip

我试图在我的开发机器上安装带有python 2.6的pip,试图匹配也使用python 2.6的部署环境.

Python 2.6安装好了.我尝试使用https://pip.pypa.io/en/stable/installing/中的get-pip.py 安装pip ,其中包含来自https://bootstrap.pypa的get-pip.py脚本的版本.IO/2.6/get-pip.py

但是它失败了以下内容:

C:\users\me> python get-pip.py
DEPRECATION: Python 2.6 is no longer supported by the Python core team, please upgrade your Python. A future version of pip will drop support for Python 2.6
Collecting pip<10
c:\users\me\appdata\local\temp\tmpcdimtd\pip.zip\pip\_vendor\urllib3\util\ssl_.py:339: SNIMissingWarning: An HTTPS request has been made, but the SNI (Subject Name Indication) extension to TLS is not available on this platform. This may cause the server to present an incorrect TLS certificate, which …
Run Code Online (Sandbox Code Playgroud)

pip python-2.6

4
推荐指数
1
解决办法
6103
查看次数

删除"由doxygen生成"和PDF中的时间戳

作为标题.我刚刚开始使用doxygen,在第一次测试运行中,我注意到创建的PDF已经"由doxygen 1.8.3.1创建",然后是首页上的日期和时间.

可以删除吗?或者甚至只是移动它,说到文档的末尾?

我已经注意到其他类似的问题,但仅针对HTML(或我没有生成的RTF)而不是PDF

doxygen

3
推荐指数
1
解决办法
7258
查看次数

内存使用多个相同的文字对比const

在C中,就所使用的内存量而言,如果有一堆函数都存在return 1;,是每个1文字存储还是只存储一个1?

IE会更好(使用文件范围)static const int numOne = 1,然后使用功能return numOne;吗?

如果它依赖于编译器,我正在使用TI的C28x编译器编译TI MCU.

请注意这个问题是关于C 而不是 C++.

c memory const literals

3
推荐指数
1
解决办法
71
查看次数