我的一名学生今天早上来找我,并询问了一些嵌入式系统(理想的硬件+软件设计)项目的想法,这些项目将在未来6个月内完成.他是一名新生,缺乏经验,但如果指向正确的方向,他有动力去学习.完成这个项目的目的,除了在电气/计算机工程和计算机科学方面受到影响之外,还要使他的简历在2009年夏季实习期间更具吸引力.
我的问题是:
什么是一些很好的一般资源来理解简单的硬件,微控制器,以及什么固件/软件的基础知识,几乎没有任何经验?我自己的背景在这里有点无益,因为我通过正式培训学到了很多东西(他对此感兴趣,但现在想要开始)并通过实习我通过裙带关系获得了大一学年;-)(他想要做的) ,但有一个鸡和蛋的问题)
适当范围的一些有趣的项目想法是什么?
一些初步想法:
关于微控制器套件的所有建议都很棒!我非常感谢其他项目的想法(即"学生应该设计X").谢谢!
我需要使用PIC汇编语言在8位PIC单片机(特别是16F627A,但这应该无关紧要)上的两个值之间进行线性插值.虽然我在这里寻找的算法与实际代码一样多.
我需要取8位起始值,8位结束值和两位之间的位置(当前表示为8位数0-255,其中0表示输出应该是起始值,255表示它应该是最终值值,但如果有更好的方法来表示,则可以改变)并计算插值.
现在PIC没有除法指令所以我可以编写一个通用除法例程并在每一步有效地计算(BA)/(x/255)+ A但我觉得有可能有一个更好的方法来做到这一点一个微控制器,而不是我用c ++在PC上做的方式
有没有人有任何建议在这个硬件上有效地实现这个?
我有一个USB供电灯.我希望能够用软件打开和关闭它.我将它附加到Linux计算机上.我有一个以前项目的Atmel ATtiny2313,但我宁愿用一个简单的黑客来做这个,而不是重新利用我的微控制器.
这可能吗?我怀疑这是不可能的,因为没有某种USB兼容固件,计算机不会与设备通信?
我发现了这个问题,其中有一条评论暗示OP使用LM317电压调节器来改变USB电压.我不认为这适用于我,但我想我会提到它.
看起来我可以将USBtiny放在我的微控制器上,然后我可以将它连接到灯,然后我可以编写一个应用程序来控制控制器.听起来好像很多工作.我宁愿做一个简单的黑客,但我缺乏USB的经验.
我正在尝试将CRC16错误检测添加到Motorola HCS08微控制器应用程序中.但是,我的校验和不匹配.一个在线CRC计算器提供了我在PC程序中看到的结果和我在微观上看到的结果.
它调用micro的结果"XModem"和PC的结果"Kermit".
这两个古老的协议指定使用CRC16的方式有什么区别?
是否可以使用带--target开关的vanilla GCC编译ARM Cortex M3(LPC1768)的C/C++代码,还是需要编译GCC,binutils等来执行此操作?
当我声明一个接受的函数const char*并且我传递一个字符串文字时,我得到一个
警告:[2066]类型限定符在分配中不匹配
因为字符串文字是rom const char*.反过来也是这样.
尽管PIC是哈佛架构,但内存被映射到一个连续的地址空间,因此理论上应该可以以相同的方式支持ram和rom指针.可能我必须使用rom指针,因为它们是24位而ram指针是16位.
但是,只是将a转换const char*为a const rom char*不起作用.
我正在寻找一种专门的算法来找到具有实系数的四次方程的正实解(也称为4阶的二次方程或多项式方程).他们有以下形式:
a 4 x 4 + a 3 x 3 + a 2 x 2 + a 1 x + a 0 = 0
一个1,一个2,......是实数.
它应该在微控制器上运行,这需要进行大量的计算.因此,性能是一个问题.这就是为什么我正在寻找一种专门用于正解的算法.如果可能的话,我希望它能够计算出确切的解决方案.
我知道有一种通用的方法来计算四次方程的解,但它涉及计算方面.
有人能指出我正确的方向吗?
从答案来看:有些人似乎误解了我(虽然我很清楚).我知道解决四次方程的标准方法.他们不是为我做的 - 他们既不适合记忆,也不适合他们.我需要的是一种高精度的高效算法,只能找到具有实系数的四次方程的真实解(如果有帮助).我不确定是否有这样的算法,但我想你们可能都知道.PS:downvotes不是来自我.
任何人都可以非常了解空调控制器之类的元素,以及如何在汽车中设置温度的部件,带led显示屏等现在可编程?因此,假设我们有一个带有按钮的塑料面板,LED显示屏,什么不是,当我按下"+"时,我想要增加温度或者采取一些机械部件来采取行动.
我猜测有ROM和一些CPU芯片,其中存储了控制部件的软件.现在这个软件通常用Java或低级C(++?)编写,甚至更低?
是否有任何常用的库用于此类事情?或者芯片预编程了这些以及可能是一些基本的操作系统?
该芯片是如何用软件编程的?有什么样的ROM写入设备是对的吗?
这是什么东西可以通过我的笔记本电脑在家里玩,如果是这样,除了笔记本电脑我还需要什么设备?
有人能够指出我可以阅读更多内容的资源吗?我试图大致了解它是如何工作的,它是如何涉及的以及需要什么技能来使这个工作.我理解这是一个很大的话题,但是想知道如何做到这一点,即使我自己也不能做这样的事情,我想了解这个过程以及涉及到什么
再次,如果问题和我的解释令人困惑,我道歉.我发现很难解释
在下面的代码中,
int main( )
{
register int arr[4];
/* ... */
}
Run Code Online (Sandbox Code Playgroud)
是否有可能在某些cpu寄存器中分配'arr'.(考虑cpu有4个或更多寄存器).
或者编译器会忽略数组的寄存器存储类.
c compiler-construction embedded microcontroller microprocessors
在msgpcc(GSP for MSP430微控制器)手册中,作者写道:
如果要在函数中使用小整数,请使用int而不是char或unsigned char.生成的代码将更有效,并且在大多数情况下,实际上不会浪费存储.
为什么int效率更高?
UPD.为什么(u)int_fast8_t在mspgcc中定义(unsigned) char,而不是(unsigned) int.据我所知,(u)int_fast*_t应该定义为具有足够大小的最有效类型.