打印

一直困扰我的数据手册问题。

[复制链接]
2271|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
许世霞|  楼主 | 2009-12-9 16:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
初步看完一个数据手册的时候,似乎是看懂了。但是对于怎么样利用数据手册编程还是有点困难的。
      现在时序问题感觉不惧怕了。但是就拿MCP2510来说,
      我不知道 1:如何编写程序的数据结构。数据结构里应该包含哪些信息。
                  2:不能很明确的知道哪些寄存器需要写入到程序里。哪些信息需要写到程
                       序里。
                  3:不知道该怎么样定义所需要的变量。要我的话就是想到啥就定个啥。
      反正整个程序的轮廓在脑子里没有。也许有些人会说先画个框架或流程图。但如果画不出来咋办?
      谁有自己的心得体会或者技巧可以分享一下吗?

     起哄的或者与此话题无关的就不要发言了呵呵。。。。。

相关帖子

沙发
84335262| | 2009-12-9 19:36 | 只看该作者
先带头起个哄:lol

使用特权

评论回复
板凳
84335262| | 2009-12-9 19:40 | 只看该作者
这个嘛,传说中的“从上到下”“从下到上”“从整体到部分”“从部分到整体”……
其中,从部分到整体是最容易的方法。画不出整体框图可以先画局部框图;局部框图也画不出可以先画单一功能框图;如果单一功能也画不出……去对着镜子画眉毛,心情好了可能就能画出图来了:loveliness:

使用特权

评论回复
地板
mohanwei| | 2009-12-9 19:56 | 只看该作者
可以先找demo……

使用特权

评论回复
5
andy2003hu| | 2009-12-9 19:58 | 只看该作者
先看DEMO,理解后再修改。调试成功后,就属于自己的东西了。

使用特权

评论回复
6
许世霞|  楼主 | 2009-12-10 08:17 | 只看该作者
本帖最后由 许世霞 于 2009-12-10 08:18 编辑

呵呵。。。那个起哄的破孩儿,罚款,给我把你的427分全部给我哈哈。。。;P
呵呵。。。开个玩笑。先谢过楼上几位积极配合我的同仁们呵呵。。
很关键的问题:传说中的DEMO怎么找呢?貌似我从来没看见过DEMO?惭愧!!!!!!!!
一般就在百度or谷歌里搜相关例子看看能不能看出破绽就这样。是不是忒笨了点呵呵。。。请指点呵呵

使用特权

评论回复
7
andy2003hu| | 2009-12-10 09:33 | 只看该作者
是哪个公司的IC就上哪个网站找。一般来说都有的,就算厂家没有,有些技术网站也有啊。比如你的这个MCP2510,应该是MICROCHIP的CAN控制器吧,在MICROCHIP的网站上找应用手册。http://www.microchip.com/stellen ... mp;appnote=en011806

使用特权

评论回复
8
84335262| | 2009-12-10 15:01 | 只看该作者
6# 许世霞
太狠了!我混了好几年才混到这么点,就这样……没了!MINBULIAOSHENG啊!!!:$

使用特权

评论回复
9
andy2003hu| | 2009-12-10 15:23 | 只看该作者
LS多灌水。。。

使用特权

评论回复
10
84335262| | 2009-12-10 15:23 | 只看该作者
网上找的——
MCP2510F149-SPI接口的CAN实现程序

bfdf149e-901a-4c31-a606-bdb521929750.pdf

64.9 KB

使用特权

评论回复
11
icecut| | 2009-12-10 17:09 | 只看该作者
许mm终于进了一步了.

我的观点是抄datasheet...
比如:此模块有2个寄存器,32bit,一个是a,另一个是b.
#define REG unsigned int
struct module
{
    REG a;    // a的功能是****
    REG b;    // b的功能是****
};
struct module* pModule = 0x**********;
pModule->a = 0x*********;// 初始化寄存器1
......................................
省略若干.

如果你把datasheet详细的展现在代码里了,你的代码是最优秀的.

使用特权

评论回复
12
alamo2009| | 2009-12-10 18:50 | 只看该作者
给你个吧!
typedef struct {
        unsigned int rxfsid[6];  //验收滤波设置:6个
        unsigned int rxmsid[2];  //验收屏蔽设置:2个
        BYTE cnf1;               //位定时器设置CNF1
        BYTE cnf2;               //位定时器设置CNF2
        BYTE cnf3;               //位定时器设置CNF3
        BYTE caninte;            //中断时能寄存器
}CAN_STRUCT;                      /*控制寄存器结构*/

typedef struct {
        BYTE length;             //数据帧长度,data字节数
        BYTE id[4];              //ID
        BYTE data[8];            //数据
} MSG_STRUCT;  
妹子,有啥问题就尽管说!你可以参照我那个语音程序,里面有个oprcan.c、oprcan.h,可以直接拿来用!
我看你把我的语音电路都发上来了,程序你应该也有吧!

使用特权

评论回复
13
alamo2009| | 2009-12-10 18:51 | 只看该作者
第一个结构体是初始化滤波器用的
第二个结构体是消息帧格式

使用特权

评论回复
14
许世霞|  楼主 | 2009-12-12 13:45 | 只看该作者
呵呵。。我对我发的这几个帖子都不抱希望,所以好几天没看,竟然有惊人的发现呵呵。。
alamo2009大哥,真是不好意思呵呵。。。。现在好内疚呵呵。。。。对不起你。

icecut你小子呵呵。。。恩,你的话我记住了,这个方法挺好的。呵呵。。。

使用特权

评论回复
15
许世霞|  楼主 | 2009-12-12 14:03 | 只看该作者
84335262也非常谢谢你呵呵。。。。谢谢你们的帮助,我很感动呵呵。。

使用特权

评论回复
16
jxb163| | 2009-12-14 09:49 | 只看该作者
......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................!!!!!!!!!!!!!!!!!!!!!!!!!!!!

使用特权

评论回复
17
xxxmcu_com| | 2009-12-16 10:17 | 只看该作者
应该芯片厂商的网站上就有demo code的。

使用特权

评论回复
18
db10| | 2009-12-18 11:56 | 只看该作者
许MM,我是半年没有上21IC了,你也工作1年了把,看你说的你进步不快啊。。。
根据你说的,最好最快的办法,找一个比较标准规范的整个项目代码来,看别人怎么做的,可以学习他们是怎么写成高质量的代码的,再结合代码规范,要求学习。至于具体跟芯片有个的寄存器那就看你用到什么功能再具体研究,现在是互联网时代,除非你是真正所谓“研究”,如果你这是用芯片CPU做下应用而已,上网找例子,就知道那些寄存器要用到。。。。 然后自己消化掉。datasheet相当一本书,需要就去看一下,可以多看,也可以少看。

使用特权

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

本版积分规则

439

主题

3781

帖子

4

粉丝