打印

是做电子工程师好还是做单片机工程师好

[复制链接]
楼主: 杨柳yun
手机看帖
扫描二维码
随时随地手机跟帖
41
ningling_21| | 2012-11-25 10:17 | 只看该作者 回帖奖励 |倒序浏览
19楼说的不错...

使用特权

评论回复
42
T_X_T| | 2012-11-25 16:22 | 只看该作者
搞技术的悲惨男

使用特权

评论回复
43
chenbb8| | 2012-11-25 19:48 | 只看该作者
本帖最后由 chenbb8 于 2012-11-25 20:00 编辑

34# blueshwu 反汇编很重要,比如我需要在STM8+COSMIC里面根据PC_IDR(PC端口的输入寄存器)的低4位的值得出键值来。
下面这样的做法是错误的(BITx相当于1<<x)
switch(PC_IDR&(BIT0+BIT1+BIT2+BIT3))

{
    case 0xff:
Q_SIG(me) = KEY_NO;
        break;

    case ~BIT0:
        Q_SIG(me) = KEY_UP_TG;
        break;

    case ~BIT1:
        Q_SIG(me) = KEY_DOWN_TG;
        break;

    case ~(BIT0+BIT1):
        Q_SIG(me) = KEY_CLEAR_TG;
        break;
……
    default:
        break;
}
结果所有的按键点击事件,都被分发到了default:下了
看了反汇编的实现过程,发现是将PC_IDR的值和0x0F;相与后跟一些双字节的数据
进行运算。然后才想起来,貌似8位机里常数是双字节的。在以前的应用中没有这样的
取反所以没有出现这个问题,等在这里取反后~BIT0得出的不是0xfe而是0xfffe。
所以case后面跟的常数需要和0xff相与才是我想要的单字节的数值。
如果没有反汇编,不知道我要瞎弄多长时间才会想起这个常识来呢

使用特权

评论回复
44
blueshwu| | 2012-11-26 07:40 | 只看该作者
43# chenbb8 STM8没接触过呢,初学51,我写键盘程序经常用的是
#define NOKEY  0xff
#define KEY_WOBBLE_TIME 30 //去抖动时间(待定)
#define KEY_OVER_TIME 300 //等待进入连击时间(待定),该常数要比正常 //按键时间要长,防止非目的性进入连击模式
#define KEY_QUICK_TIME 150   //等待按键抬起的连击时间(待定)

uchar keyscan()
{

static uint KeyTimeCount = 0;

static uint KeyOverTime = KEY_OVER_TIME;

static uchar KeyTemp = NOKEY;

static uchar LastKey = NOKEY;

P1 = P1|0x03; // 0000 0011

KeyTemp = P1&0x03;


if(KeyTemp == 0x03)//无按键按下

{

KeyTimeCount = 0;

KeyOverTime = KEY_OVER_TIME;

return NOKEY;

}

else//有按键按下

{

if(KeyTemp == LastKey)//不是第一次按下

{

if(++KeyTimeCount == KEY_WOBBLE_TIME)

{

return KeyTemp;

}

else

{

if(KeyTimeCount > KEY_OVER_TIME)

{

KeyTimeCount = 0;

KeyOverTime = KEY_QUICK_TIME;

}

return NOKEY;

}


}

else//是第一次按下

{

LastKey = KeyTemp;

KeyTimeCount = 0;

KeyOverTime = KEY_OVER_TIME;

return NOKEY;

}

}
}


其中KeyTemp = P1&0x03;读取键值一直用着挺好呢、、这个程序也是从二姨家找的:lol

使用特权

评论回复
45
blueshwu| | 2012-11-26 07:41 | 只看该作者
为什么直接从记事本里复制过来缩进就没了?

使用特权

评论回复
46
chenbb8| | 2012-11-26 10:13 | 只看该作者
45# blueshwu 想要恢复缩进的话,如果是keil 编译器的话就在edit-configuration-editor-c/c++ files下选中insert space for tabs。
我在43楼的程序是为了统一的状态机框架QP_NANO中的FSM分发器服务的,并不是完整的按键状态机。这里的目的是根据按键的状态,产生不同的信号来驱动Q_FSM框架。
你的程序中并没有出现取反的情况,而是直接使用P1寄存器中的值来代替键值。
假设你的程序中P1^0 == 0代表UP键,即需要定义宏#define KEY_UP 0x02
P1^1 == 0代表DOWN键,即需要定义宏#define KEY_DOWN 0x01
但是如果为了可阅读性,定义成下面的样子的话
#define KEY_UP  ~BIT0
#define KEY_DOWN ~BIT1(为什么说这样子会有可读性呢?如果硬件连接上是将按键接到了P1^4 5上难道还是这样用一个数字来代替么。。。)
并将[size=11.818181991577148px]uchar keyscan()修改成unsigned short int [size=11.818181991577148px]keyscan();
[size=11.818181991577148px]通过if([size=11.818181991577148px]keyscan() == KEY_UP[size=11.818181991577148px])来判定的话一样是错误~~

使用特权

评论回复
47
liang5319| | 2012-11-26 23:47 | 只看该作者
只要用心、、都很好的

使用特权

评论回复
48
旭日东起| | 2012-11-27 08:08 | 只看该作者
电子工程师,多是指搞相对简单的硬件,单片机工程师,是搞一些相对简单一点的软件,
搞操作系统的,电子出身真的搞不过纯软件出身的,

我本人就是搞单片机的,现在想搞搞操作系统的,没机会也没什么方向,电子工程师一开始会比较吃苦,越老会越吃香一点,做技术的,年龄来了是不能再去一线上拼的了

使用特权

评论回复
49
chenbb8| | 2012-11-27 08:41 | 只看该作者
48# 旭日东起 为什么搞不过……
卓越上那么多的书可以自学,除非一点点的业余时间都没了,一下班就是要呼呼睡觉去的那种

使用特权

评论回复
50
Metalor| | 2012-11-27 11:43 | 只看该作者
我觉得楼主所说的电子工程师是指硬件工程师
单片机工程师是指单片机软件工程师

反正我第一个公司做开发硬件和软件就是分开的
硬件工程师的几乎清一色对单片机软件一窍不通
而我们搞软件的对硬件都懂(某些方面比硬件工程师更牛也是很正常的),只是平时不用焊板子等需要动手的工作,纯写代码,慢慢慢慢动手能力会越来越差。

现在工作的公司,大体差不多如此分工,硬件工程师还是对软件一窍不通,而软件工程师是方案总体的设计师,负责设计硬件原理图+写代码。出了问题解决的话不管是硬件软件问题都归我们管,硬件的感觉就是打杂的,焊板子、测试等等。
两家公司都是有专人画PCB。

这样分工细有好处也有坏处,但是只要这样分工的,肯定做软件学到的东西要多很多,待遇也很高。

所以楼主主要还是要先弄清楚公司这俩职位的分工,因为各个公司虽然职位名称一样但具体工作内容也可能会差别很大。了解具体工作做什么,然后结合自己的爱好兴趣,并考虑发展前景,做出你的选择吧。

使用特权

评论回复
51
1638574407| | 2012-11-27 13:34 | 只看该作者
做喜欢的!前景都那样,做精了就好了

使用特权

评论回复
52
pinghaowin| | 2012-11-27 14:25 | 只看该作者
其实我想知道 现在找工作就楼主说的这种,应聘的条件都是哪些啊? 非要参加电子设计大赛吗? 我也是电子工程学院的2012年的毕业生,但是我保研了,所以不太清楚到底找楼主这种技术员,需要有什么样的技术才能被录用,也正好我这研究生期间学习一下,我本科生的单片机 C语言学的就不好,也没参加过大赛。

使用特权

评论回复
53
杨柳yun|  楼主 | 2012-11-28 00:22 | 只看该作者
主要还是想自己以后当老板,哈哈,用自己的技术,在找人弄市场。所以才纠结的,
这年头,只有个自己打工的才能赚钱啊。

使用特权

评论回复
54
GDCGJX| | 2012-11-29 15:09 | 只看该作者
在做硬件开发中熟知软件控制流程。

使用特权

评论回复
55
liuzhenya| | 2012-11-29 18:38 | 只看该作者
十楼说的不错

使用特权

评论回复
56
zhangliming420| | 2012-12-3 10:06 | 只看该作者
电子工程师就包含单片机工程师.楼主要明确要做什么,对它是不是真的有兴趣,否则进步很慢.

使用特权

评论回复
57
hdl551890| | 2012-12-3 11:24 | 只看该作者
其实两个有一定联系的 少一个都能做好一个项目

使用特权

评论回复
58
zhang7676050| | 2012-12-3 13:11 | 只看该作者
** 专一

使用特权

评论回复
59
duhemayi| | 2012-12-5 16:55 | 只看该作者
总是在坛子里看到这此贴子,郁闷!

使用特权

评论回复
60
duoduo1989| | 2012-12-5 17:56 | 只看该作者
duhemayi 发表于 2012-12-5 16:55
总是在坛子里看到这此贴子,郁闷!

  很正常 迷茫的时候想听听别人的意见  虽然不一定会影响自己的抉择

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则