打印

会一些PIC877的试验,下一步?

[复制链接]
4687|33
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
swqswq0321|  楼主 | 2010-10-27 03:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本人回一些PIC的简单试验,也能写出一点C程序,请问高手,继续发展,学习ARM?或其他?恳请指点。多谢!
沙发
yewuyi| | 2010-10-27 08:41 | 只看该作者
学会做复杂点的实验,写出漂亮的C代码,用PIC做出真正的产品。

如果这些都没学会,即使学ARM也只是懂了三个字母A R M罢了。。。

使用特权

评论回复
板凳
machunshui| | 2010-10-27 10:51 | 只看该作者
狂看手册,
PIC的编程模型和汇编语句,要搞的滚瓜烂熟。
彻底搞懂基于定时器中断的跑马灯的任何一个细节。

然后,搞懂单片机常见外设的原理,如UART,SPI,I2C,ADC。。。。,
熟悉其原理,协议,电气特性,关键评价指标。

有事没事,就仔细阅读PIC器件手册。


唯手熟而,熟练才能谈得上精通,
借用乒乓球运动员比赛常讲话:
要抠的细。

使用特权

评论回复
地板
兰天白云| | 2010-10-27 19:24 | 只看该作者
一定要注意细节,你总不想你的产品有BUG吧

使用特权

评论回复
5
swqswq0321|  楼主 | 2010-10-28 00:55 | 只看该作者
多谢各位指点。看来本人还是太浮躁了,还需要再下工夫。希望各位多指导,谢谢!

使用特权

评论回复
6
komad| | 2010-11-2 08:33 | 只看该作者
狂看手册,
PIC的编程模型和汇编语句,要搞的滚瓜烂熟。
彻底搞懂基于定时器中断的跑马灯的任何一个细节。

然后,搞懂单片机常见外设的原理,如UART,SPI,I2C,ADC。。。。,
熟悉其原理,协议,电气特性,关键评 ...
machunshui 发表于 2010-10-27 10:51



:) 支持!很强硬!:handshake

使用特权

评论回复
7
swqswq0321|  楼主 | 2010-11-3 02:33 | 只看该作者
再次感谢!

使用特权

评论回复
8
Mary_luo| | 2010-11-3 10:31 | 只看该作者
这里高手真多!

使用特权

评论回复
9
shizaigaole| | 2010-11-3 11:51 | 只看该作者
LS就不要吹捧了。

所谓的高手只不过是过来人而已,
或许自己就在这个上面吃过亏.

使用特权

评论回复
10
alamo2009| | 2010-11-7 11:40 | 只看该作者
………………
…………………………

然后,搞懂单片机常见外设的原理,如UART,SPI,I2C,ADC。。。。,
熟悉其原理,协议,电气特性,关键评 ...
machunshui 发表于 2010-10-27 10:51


熟悉这些协议的纯粹脑残,单片机已经有这些模块又不是让你去用IO模拟。

把主要精力用在一个程序逻辑上怎么设计,而不是这些外围驱动怎么用代码写,外围驱动代码网上大把大把的,随便对着手册上的寄存器设置看一遍代码基本就懂了。

串口发送接收,为什么别人用队列,而你自己就会用一个全局变量去接收?
还有,在程序流程上,为什么别人用状态机,而自己只会顺序执行?

使用特权

评论回复
11
shizaigaole| | 2010-11-7 19:46 | 只看该作者
LS的说法不对。

经常看到有些新人,提一些莫名其妙的问题,很多都是超别人的代码。
另外,
就PIC来说,
LS敢说你不看I2C协议,能使用的好PIC的I2C模块?
不熟悉协议原理,模块不会使用的好。
另外单片机不是纯软件系统,对做产品来说,不懂硬件基本上白搭。

至于啥状态机,啥队列相反是很简单的东西。

使用特权

评论回复
12
shizaigaole| | 2010-11-7 19:51 | 只看该作者
搞单片机的电工,基本上就是高级工匠,细节决定成败。
而且硬件是基础,
并且硬件出错以后纠错成本大,纠错时间长。

搞单片机要高度重视硬件。

相反软件相对于上位机,一般来说并不是很难。

使用特权

评论回复
13
Adu0227| | 2010-11-7 22:32 | 只看该作者
个人感觉硬件还是很重要的,相比软件就比较随意了!

使用特权

评论回复
14
alamo2009| | 2010-11-8 18:11 | 只看该作者
LS的说法不对。

经常看到有些新人,提一些莫名其妙的问题,很多都是超别人的代码。
另外,
就PIC来说,
LS敢说你不看I2C协议,能使用的好PIC的I2C模块?
不熟悉协议原理,模块不会使用的好。
另外单片机不是纯软件 ...
shizaigaole 发表于 2010-11-7 19:46

如果说队列或者状态机时很简单的东西,只能说你太菜了!

使用特权

评论回复
15
shizaigaole| | 2010-11-9 07:41 | 只看该作者
也许你认为很难。

但我认为确实很简单。

本人算是从纯软转到单片机,
从一开头就从来没有只会顺序执行,
当然觉得队列更是小菜一碟。

使用特权

评论回复
16
alamo2009| | 2010-11-9 12:39 | 只看该作者
那是因为你还没深挖,只学个皮毛就自命不凡!

使用特权

评论回复
17
shizaigaole| | 2010-11-9 13:46 | 只看该作者
本帖最后由 shizaigaole 于 2010-11-9 13:52 编辑
那是因为你还没深挖,只学个皮毛就自命不凡!
alamo2009 发表于 2010-11-9 12:39


阁下根本不知我的情况,
假设本人软件一般偏下吧。
阁下既然这样说,阁下那一定很厉害,至少是中等偏上吧

那就愿闻其详,阁下做过什么神奇项目,
阁下的状态机用的如何神奇?
阁下的队列如何和我等不同?

能否举例展示一二???

否则,
我觉得阁下和泼妇骂街无异啊

使用特权

评论回复
18
shizaigaole| | 2010-11-9 14:27 | 只看该作者
本帖最后由 shizaigaole 于 2010-11-9 14:29 编辑

这是16楼去年在侃单片机版本上发的帖子:
https://bbs.21ic.com/viewthread.p ... hlight=%2Balamo2009

我现在用以下方法试过
1.用IO口模拟他的时许
void signal()
{
RA5=0;
asm("NOP");
asm("NOP");
asm("NOP");
asm("NOP");
asm("NOP");
asm("NOP");
asm("NOP");
asm("NOP");
asm("NOP");
RA5=1;
}
/******信号采集********/
void Rec_data()
{
unsigned char i;
di();
RA5=1;
for(i=5;i>0;i--);
signal();      //----------1--------------//
data1=Rev;
signal();    //----------2--------------//
data2=Rev;
signal();      //----------3--------------//
data3=Rev;
signal();      //----------4--------------//
data4=Rev;
signal();      //----------5--------------//
data5=Rev;
signal();      //----------6--------------//
data6=Rev;
signal();      //----------7--------------//
data7=Rev;
signal();    //----------8--------------//
data8=Rev;
signal();    //----------9--------------//
data9=Rev;
signal();       //----------10--------------//
data10=Rev;
signal();    //----------11--------------//
data11=Rev;
signal();    //----------12--------------//
data12=Rev;
signal();              //----------13--------------//
data13=Rev;
signal();     //----------14--------------//
data14=Rev;
signal();      //----------15--------------//
data15=Rev;
signal();      //----------16--------------//
data16=Rev;
signal();    //----------17--------------//
data17=Rev;
signal();    //----------18--------------//
data18=Rev;
signal();    //----------19--------------//
data19=Rev;
signal();    //----------20--------------//
data20=Rev;
signal();    //----------21--------------//
data21=Rev;
signal();    //----------22--------------//
data22=Rev;
signal();    //----------23--------------//
data23=Rev;
signal();    //----------24--------------//
data24=Rev;
RA5=0;
// data_H=(data1<<7)+(data2<<6)+(data3<<5)+(data4<<4)+(data5<<3)+(data6<<2)+(data7<<1)+data8;
data_M=(data9<<7)+(data10<<6)+(data11<<5)+(data12<<4)+(data13<<3)+(data14<<2)+(data15<<1)+data16;
data_L=(data17<<7)+(data18<<6)+(data19<<5)+(data20<<4)+(data21<<3)+(data22<<2)+(data23<<1)+data24;
data=((unsigned int)data_M<<8)+data_L;
ei();
}

就阁下这程序水平,难怪视状态机,队列这种自然而然的思想为神物。
看来阁下的水平还远算不得中上.

另外阁下的毛病得改改,看看前面的帖子,
我只是不同意你的意见而已,
你咋就这样呢?

到论坛上来冲大头蒜???

算了,
算我倒霉。

使用特权

评论回复
19
alamo2009| | 2010-11-9 18:12 | 只看该作者
本帖最后由 alamo2009 于 2010-11-9 18:17 编辑

我更倒霉!
遇见一个断章取义的水货!
跟没用过状态机或者队列的人说话真累!
一个I2C都搞不定的人,不要再谈程序逻辑!先把MCU内部各个模块的驱动搞明白,再谈程序逻辑!

算了算了!
你很牛行不!
淡定淡定!

使用特权

评论回复
20
shizaigaole| | 2010-11-9 20:28 | 只看该作者
我更倒霉!
遇见一个断章取义的水货!
跟没用过状态机或者队列的人说话真累!
一个I2C都搞不定的人,不要再谈程序逻辑!先把MCU内部各个模块的驱动搞明白,再谈程序逻辑!

算了算了!
你很牛行不!
淡定淡定! ...
alamo2009 发表于 2010-11-9 18:12



阁下是神仙吗??
能掐会算??

知道啥叫伪命题??
真够无耻的。

使用特权

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

本版积分规则

5

主题

62

帖子

0

粉丝