Goa*_*ero 2 c embedded microcontroller
我真的很想知道数据表的关系以及这如何改变编程级别的工作方式,
据我所知,uC 中的 8 位是 ADC 的分辨率,最高可达 256 个信号可以采样的值,你走得越高,采样信号的精度就越高,但是......
这会影响代码吗?(代码上的所有内容都是 32 位的吗?)
每当我在 32 位 uC 中声明 int 时,我实际上使用的是 int32 吗?还是int8?
8 位微控制器可以使用 32 位整数吗?
简短的回答是肯定的
当说微控制器是8位的时候,就意味着内部寄存器是8位的,算术单元用8位数字进行运算。因此,在一条指令中,您只能进行 8 位数学运算。
但是,您仍然可以进行 32 位数学运算,但这需要一些指令。例如,您需要 4 个 8 位寄存器来保存单个 32 位值。此外,您必须使用 8 位运算(即多条指令)进行数学运算。
对于两个 32 位 int的ADD,您将需要四个 8 位加法指令,此外,您还需要处理来自单个加法指令的进位的指令。
所以你可以这样做,但它会很慢,因为单个 32 位添加可能需要 10-20 条指令(或更多 - 请参阅@YannVernier 的评论)。
...(反之亦然)
AFAIK 大多数 32 位 CPU 具有允许 8 位数学运算的指令,即作为单个指令。因此,进行 8 位或 32 位数学运算将同样快(就所需的指令而言)。
每当我在 32 位 uC 中声明 int 时,我实际上使用的是 int32 吗?还是int8?
使用 32 位 CPU,int通常为 32 位,因此答案是:int32
但是从 C 标准的角度来看,int在 32 位机器上有 16 位是可以的。因此,即使 32 位很常见,您仍然必须检查特定系统上的大小才能真正确定。
| 归档时间: |
|
| 查看次数: |
2467 次 |
| 最近记录: |