日常机器(不是电器,数字手表等电脑和移动设备)是如何编程的?什么样的代码可用于可口可乐自动售货机的编程?我的咖啡机如何接受预先设定的时间并在几小时后开始冲泡一壶咖啡?
这些机器内部是否有操作系统,还是更基本的东西?它们是用Assembly,C还是其他语言编写的?
而且,我真的想找到一些列出这些操作系统或底层代码系统的资源,如果可能的话,甚至可能使用源代码.如果有人知道这样的资源(搜索没有给我任何东西),那就太棒了.
我正在寻找通用编程语言
到目前为止,下面是我的清单,我错过了什么?
我真的很难理解差异.有人说他们是一样的,而另一些人说有一点点差别.究竟有什么区别?如果你用一些比喻来解释,我希望如此.
我怎样才能制作自己的微控制器?我已经完成了一些使用GAL芯片的工作,并编写了一个芯片来执行简单的命令,如添加,加载,移动,xor和输出,但我想做一些更像真正的微控制器.
我该怎么做呢?我已经阅读了一些关于FPGA和CPLD的内容,但不是很多,所以我们正在寻找一些关于如何获得以及如何开始开发的建议.
我有几年的桌面和网络编程经验.我想继续做一些嵌入式系统编程.在询问了最初的问题后,我想知道我应该从哪个硬件/软件IDE开始......
Arduino + Arduino IDE?
Atmel AVR + AVR Studio 4?
飞思卡尔HCS12或Coldfire + CodeWarrior?
Microchip PIC + MPLAB?
ARM Cortex-M3 + ARM RealView/WinARM
或者......没关系?
哪个开发平台最容易学习和编程(考虑到IDE的可用性)?
如果出现问题,哪一个最容易调试?
我的目标是了解"IO端口如何工作,内存限制/要求,包括可能的分页,中断服务程序". 学习一个我稍后会使用的,或者高级概念应该延续到大多数微控制器是否更好?
谢谢!
更新:这个开发工具包是如何开始的?评论?建议?
好的,所以我对机器人技术感兴趣了一段时间,并考虑到了一个项目.建造小型遥控车辆 - 机器人/无人驾驶车辆 - 机器人.希望能够从感应设备(gps,温度计等)读取数据并将数据写入某种设备.这个想法已经持续了一段时间,直到我刚读完下面的文章.
所以我的问题是这个.我应该从哪里开始.除了一些谷歌搜索和我的项目创意之外,我完全没有这方面的经验.我想玩微控制器板的编程.我知道一些java .net语言和一些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)
包装是什么意思?
语境
我们正在移植最初使用 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 …
我想通过Windows上的软件重启USB设备.
我正在开发一个小型USB功率微控制器.该芯片将在电源循环中恢复原生行为并允许代码下载.由于我的代码会在出现问题时使设备崩溃 - 使其忽略所有USB命令 - 我必须从系统中物理拔出设备.
我想远程进行开发,而不必亲自到场.
到目前为止,我已尝试使用"devcon"来禁用部分USB堆栈.虽然这会将集线器带入D3(应该关闭电源!),但仍然会为设备供电.
是否有任何预先存在的解决方案或SetupAPI技巧可能会有所帮助?
microcontroller ×10
embedded ×6
c ×4
.net ×1
arduino ×1
assembly ×1
avr-studio4 ×1
baud-rate ×1
bitrate ×1
codewarrior ×1
interactive ×1
java ×1
packed ×1
robotics ×1
sizeof ×1
uart ×1
usb ×1
winapi ×1
windows ×1