智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 17878|回复: 67
打印 上一主题 下一主题

MC9S12DG128系列例程--SPI

  [复制链接]

80

主题

1045

帖子

0

精华

跨届大侠

北京龙邱智能科技有限公司

Rank: 10Rank: 10Rank: 10

积分
10332

论坛元老奖章

QQ
威望
2905
贡献
6151
兑换币
4515
注册时间
2008-6-7
在线时间
638 小时
跳转到指定楼层
1#
发表于 2008-11-29 06:48:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
<>/**************************************************************************************<BR>龙丘MC9S12(DG128)多功能开发板 <BR>Designed by Chiu Sir<BR>E-mail:chiusir@163.com<BR>软件版本:V1.1<BR>最后更新:2008年11月28日<BR>相关信息参考下列地址:<BR>博客:&nbsp; <A target=_blank href="http://longqiu.21ic.org/">http://longqiu.21ic.org</A><BR>淘宝店:<A target=_blank href="http://shop36265907.taobao.com/">http://shop36265907.taobao.com</A><BR>------------------------------------<BR>Code Warrior 4.6<BR>Target : MC9S12DG128B<BR>Crystal: 16.000Mhz<BR>busclock: 8.000MHz<BR>pllclock:16.000MHz</P><P>本程序主要包括以下功能:<BR>1.设置锁相环和总线频率;<BR>2.初始化SPI为400kbps;<BR>3.SPI读函数和写函数。<BR>*****************************************************************************************/<BR>#include &lt;hidef.h&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* common defines and macros */<BR>#include &lt;mc9s12dg128.h&gt;&nbsp;&nbsp;&nbsp;&nbsp; /* derivative information */<BR>#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"</P><P>//----------------------------------------------------- <BR>//延时1毫秒 <BR>void Dly_ms(int ms)<BR>{<BR>&nbsp;&nbsp; int ii,jj;<BR>&nbsp;&nbsp; if (ms&lt;1) ms=1;<BR>&nbsp;&nbsp; for(ii=0;ii&lt;ms;ii++)<BR>&nbsp;&nbsp;&nbsp;&nbsp; for(jj=0;jj&lt;2670;jj++);&nbsp;&nbsp;&nbsp; //busclk:16MHz--1ms<BR>}<BR>//-----------------------------------------------------&nbsp;&nbsp; <BR>//SPI写一个字节<BR>void SPI_Write_Byte(U8 val)<BR>{<BR>&nbsp;SPI0DR = val;<BR>&nbsp;while(!(SPI0SR_SPIF));<BR>&nbsp;return;<BR>}<BR>//----------------------------------------------------- <BR>//SPI读一个字节 <BR>U8 SPI_Read_Byte(void)<BR>{ &nbsp;<BR>&nbsp;while(!(SPI0SR_SPIF));<BR>&nbsp;return SPI0DR;<BR>}<BR>//----------------------------------------------------- <BR>//SPI初始化,速率400kbps <BR>void SPI_Init(void) <BR>{<BR>&nbsp; DDRT = 0xff;<BR>&nbsp; MODRR&nbsp;&nbsp; = 0x00;&nbsp; <BR>&nbsp; SPI0CR2 = 0x10;<BR>&nbsp; SPI0CR1 = 0x5e;&nbsp;&nbsp; <BR>&nbsp; SPI0BR&nbsp; = 0x42; //BR=busclk/((SPPR + 1)· 2^(SPR + 1))=16000/(5*8)=400k&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>}<BR>//----------------------------------------------------- <BR>//总线频率为16M <BR>void setbusclock(void)<BR>{&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; CLKSEL=0X00;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //disengage PLL to system<BR>&nbsp;&nbsp;&nbsp; PLLCTL_PLLON=1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //turn on PLL<BR>&nbsp;&nbsp;&nbsp; SYNR=1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp; REFDV=1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //pllclock=2*osc*(1+SYNR)/(1+REFDV)=32MHz;<BR>&nbsp;&nbsp;&nbsp; _asm(nop);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //If PLL is selected (PLLSEL=1), Bus Clock = PLLCLK / 2=16M&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; while(!(CRGFLG_LOCK==1)) <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _asm(nop);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //when pll is steady ,then use it;<BR>&nbsp;&nbsp;&nbsp; CLKSEL_PLLSEL =1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //engage PLL to system; <BR>}<BR>//====================================================== <BR>void main(void) {<BR>&nbsp; unsigned char spich=0;<BR>&nbsp; EnableInterrupts;<BR>&nbsp; <BR>&nbsp; setbusclock();&nbsp; <BR>&nbsp; SPI_Init();<BR>&nbsp; <BR>&nbsp; for(;;)<BR>&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dly_ms(200);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SPI_Write_Byte(0xff);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; spich=SPI_Read_Byte();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在这里添加你的代码!这是我SD卡操作的原函数,绝对好用!<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; */&nbsp;&nbsp;<BR>&nbsp; }&nbsp;&nbsp; <BR>}<BR>需要完整工程请单击:<A target=_blank href="http://blog.21ic.com/UploadFiles/2008-11/282233989683.rar">demoSPI.rar</A></P>

80

主题

1045

帖子

0

精华

跨届大侠

北京龙邱智能科技有限公司

Rank: 10Rank: 10Rank: 10

积分
10332

论坛元老奖章

QQ
威望
2905
贡献
6151
兑换币
4515
注册时间
2008-6-7
在线时间
638 小时
2#
 楼主| 发表于 2008-12-2 03:26:58 | 只看该作者

Re:MC9S12DG128系列例程--SPI

<><FONT face=宋体 color=#0000ff size=5>看帖不回是不道德的!<IMG src="http://www.znczz.com/images/Emotions/11.gif"></FONT></P>
回复 支持 反对

使用道具 举报

0

主题

8

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
202
威望
180
贡献
22
兑换币
0
注册时间
2008-12-5
在线时间
0 小时
3#
发表于 2008-12-5 16:12:28 | 只看该作者

Re:MC9S12DG128系列例程--SPI

很有用啊,谢谢啊
回复 支持 反对

使用道具 举报

0

主题

19

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
277
威望
213
贡献
30
兑换币
4
注册时间
2009-3-1
在线时间
17 小时
4#
发表于 2009-3-12 09:50:53 | 只看该作者
不错不错!
回复 支持 反对

使用道具 举报

0

主题

13

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
220
QQ
威望
187
贡献
23
兑换币
0
注册时间
2009-3-28
在线时间
5 小时
5#
发表于 2009-4-10 20:10:47 | 只看该作者
谢谢啊
回复 支持 反对

使用道具 举报

1

主题

19

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
220
威望
192
贡献
24
兑换币
0
注册时间
2009-2-27
在线时间
2 小时
6#
发表于 2009-4-12 19:30:01 | 只看该作者
楼主是个厚道人
回复 支持 反对

使用道具 举报

0

主题

22

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
429
威望
299
贡献
92
兑换币
0
注册时间
2009-2-17
在线时间
19 小时
7#
发表于 2009-4-17 17:55:24 | 只看该作者
很好的程序。谢谢。
回复 支持 反对

使用道具 举报

0

主题

50

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
417
威望
305
贡献
80
兑换币
56
注册时间
2009-1-12
在线时间
16 小时
8#
发表于 2009-4-18 12:58:43 | 只看该作者
看帖不回是不道德的!
回复 支持 反对

使用道具 举报

0

主题

9

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
374
QQ
威望
266
贡献
80
兑换币
58
注册时间
2008-11-20
在线时间
14 小时
9#
发表于 2009-4-30 09:35:58 | 只看该作者
谢谢龙丘~原来我栽在MOSRR上了。。。狂晕。。。
回复 支持 反对

使用道具 举报

0

主题

15

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
243
威望
187
贡献
22
兑换币
0
注册时间
2009-3-5
在线时间
17 小时
10#
发表于 2009-4-30 13:25:08 | 只看该作者
SPI搞了几天,晕死,数据一直读的不顺利~~~,有用。拿去看看~~~~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-6-2 19:23 , Processed in 0.392846 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表