标签: microcontroller

如何编程日常机器?

日常机器(不是电器,数字手表等电脑和移动设备)是如何编程的?什么样的代码可用于可口可乐自动售货机的编程?我的咖啡机如何接受预先设定的时间并在几小时后开始冲泡一壶咖啡?

这些机器内部是否有操作系统,还是更基本的东西?它们是用Assembly,C还是其他语言编写的?

而且,我真的想找到一些列出这些操作系统或底层代码系统的资源,如果可能的话,甚至可能使用源代码.如果有人知道这样的资源(搜索没有给我任何东西),那就太棒了.

c embedded microcontroller assembly operating-system

145
推荐指数
8
解决办法
1万
查看次数

在微小内存中运行的可用交互式语言有哪些?

我正在寻找通用编程语言

  • 有一个交互式(实时编码)提示
  • 当编译器托管在单独的机器上时,单独工作32 KB RAM或8 KB工作
  • 在总共只有8-32 KB RAM的微控制器上运行(没有MMU).

到目前为止,下面是我的清单,我错过了什么?

  • Python:PyMite VM需要64K闪存,8K RAM.目标LPC,SAM7和ATmegas 8K或更多.托管.
  • Lua:eLua FAQ推荐256K闪存,64K RAM.
  • FORTH:amforth在ATmega上需要8K闪存,150字节RAM,30字节EEPROM.
  • 方案:armpit方案最小的目标是具有32K闪存,4K SRAM的LPC2103.
  • C:Interactive C在68HC11上运行,没有闪存和32K SRAM.托管.
  • C:picoc是一个开源,交叉编译,交互式C系统.编译为AVR时,需要63K闪存,8K RAM.可以通过努力将RAM保持在闪存中来减少RAM.
  • C++:AngelScript是一个开源的,基于字节码的,类似于C/C++的脚本语言,具有简单的本机调用.
  • Tcl:TinyTCL在DOS上运行,60K二进制.看起来很容易移植.
  • BASIC:TinyBasic:初始化为64K堆,可能是可调整的.
  • 口齿不清
  • PostScript :(我还没有找到低内存的FOSS实现)
  • Shell:bitlash:Arduino(ATmega)的交互式命令shell.另见AVRSH.

embedded microcontroller programming-languages interactive

72
推荐指数
6
解决办法
2万
查看次数

波特率和比特率有什么区别?

我真的很难理解差异.有人说他们是一样的,而另一些人说有一点点差别.究竟有什么区别?如果你用一些比喻来解释,我希望如此.

microcontroller serial-communication bitrate uart baud-rate

60
推荐指数
5
解决办法
12万
查看次数

我怎样才能制作自己的微控制器?

我怎样才能制作自己的微控制器?我已经完成了一些使用GAL芯片的工作,并编写了一个芯片来执行简单的命令,如添加,加载,移动,xor和输出,但我想做一些更像真正的微控制器.

我该怎么做呢?我已经阅读了一些关于FPGA和CPLD的内容,但不是很多,所以我们正在寻找一些关于如何获得以及如何开始开发的建议.

embedded microcontroller

45
推荐指数
3
解决办法
3万
查看次数

AVR或PIC开始编程微控制器?

我应该从哪个家庭开始学习?(从未对微控制器进行任何编程)

embedded microcontroller

36
推荐指数
10
解决办法
3万
查看次数

第一次嵌入系统编程器使用哪个微控制器是否重要?

我有几年的桌面和网络编程经验.我想继续做一些嵌入式系统编程.在询问了最初的问题后,我想知道我应该从哪个硬件/软件IDE开始......

或者......没关系?

哪个开发平台最容易学习和编程(考虑到IDE的可用性)?

如果出现问题,哪一个最容易调试?

我的目标是了解"IO端口如何工作,内存限制/要求,包括可能的分页,中断服务程序". 学习一个我稍后会使用的,或者高级概念应该延续到大多数微控制器是否更好?

谢谢!

更新:这个开发工具包是如何开始的?评论?建议?

embedded microcontroller codewarrior arduino avr-studio4

35
推荐指数
2
解决办法
9021
查看次数

从哪里开始编程机器人?

好的,所以我对机器人技术感兴趣了一段时间,并考虑到了一个项目.建造小型遥控车辆 - 机器人/无人驾驶车辆 - 机器人.希望能够从感应设备(gps,温度计等)读取数据并将数据写入某种设备.这个想法已经持续了一段时间,直到我刚读完下面的文章.

所以我的问题是这个.我应该从哪里开始.除了一些谷歌搜索和我的项目创意之外,我完全没有这方面的经验.我想玩微控制器板的编程.我知道一些java .net语言和一些C.

有什么帮助从哪里开始?

你如何设计机器人,从开始到结束你会采取什么步骤.

谢谢.

.net c java microcontroller robotics

32
推荐指数
4
解决办法
3万
查看次数

什么是C中的"打包"结构?

我将为Microchip C30编译器编写一些C代码,我经常看到结构定义如下:

typedef struct __attribute__((__packed__)) 
{
    IP_ADDR     MyIPAddr;               // IP address
    IP_ADDR     MyMask;                 // Subnet mask
    IP_ADDR     MyGateway;              // Default Gateway
        // etc...
} APP_CONFIG;
Run Code Online (Sandbox Code Playgroud)

包装是什么意思?

c microcontroller packed

30
推荐指数
3
解决办法
3万
查看次数

按位运算导致意外的可变大小

语境

我们正在移植最初使用 8 位 C 编译器为 PIC 微控制器编译的 C 代码。用于防止无符号全局变量(例如,错误计数器)回滚回零的常用习惯用法如下:

if(~counter) counter++;
Run Code Online (Sandbox Code Playgroud)

这里的按位运算符将所有位取反,并且该语句仅在counter小于最大值时才为真。重要的是,无论大小如何,这都有效。

问题

我们现在的目标是使用 GCC 的 32 位 ARM 处理器。我们注意到相同的代码会产生不同的结果。据我们所知,按位补码操作返回的值与我们预期的大小不同。为了重现这一点,我们在 GCC 中编译:

uint8_t i = 0;
int sz;

sz = sizeof(i);
printf("Size of variable: %d\n", sz); // Size of variable: 1

sz = sizeof(~i);
printf("Size of result: %d\n", sz); // Size of result: 4
Run Code Online (Sandbox Code Playgroud)

在第一行输出中,我们得到了我们所期望的:i是 1 个字节。然而,按位补码i实际上是四个字节,这会导致问题,因为现在与此比较不会给出预期的结果。例如,如果在做 (wherei是一个正确初始化的uint8_t):

if(~i) i++;
Run Code Online (Sandbox Code Playgroud)

我们会看到 i“环绕”从 0xFF 回到 0x00。与以前的编译器和 8 …

c microcontroller sizeof bitwise-operators

30
推荐指数
3
解决办法
1659
查看次数

在Windows上用软件关闭USB设备

我想通过Windows上的软件重启USB设备.

我正在开发一个小型USB功率微控制器.该芯片将在电源循环中恢复原生行为并允许代码下载.由于我的代码会在出现问题时使设备崩溃 - 使其忽略所有USB命令 - 我必须从系统中物理拔出设备.

我想远程进行开发,而不必亲自到场.

到目前为止,我已尝试使用"devcon"来禁用部分USB堆栈.虽然这会将集线器带入D3(应该关闭电源!),但仍然会为设备供电.

是否有任何预先存在的解决方案或SetupAPI技巧可能会有所帮助?

windows embedded usb microcontroller winapi

27
推荐指数
2
解决办法
5万
查看次数