智能车制作

标题: 龙丘奉献MPC5604B测试程序一个,新手熟悉下32位的编程风格 [打印本页]

作者: chiusir    时间: 2011-11-4 15:42
标题: 龙丘奉献MPC5604B测试程序一个,新手熟悉下32位的编程风格
本帖最后由 chiusir 于 2011-11-4 15:44 编辑

龙丘奉献MPC5604B测试程序一个,新手熟悉下32位的编程风格
[attach]13256[/attach]
/*
/********************************************************   
【编    写】龙丘
【dev.env.】Code Warrior 2.9
【Target  】MPC5604B
【内部晶振】 khz
【外部晶振】8MHz
【总线频率】64MHz
LED闪烁测试
*/

#include "MPC5604B_M27V.h"
void initModesAndClock(void) {
  ME.MER.R = 0x0000001D;          /* Enable DRUN, RUN0, SAFE, RESET modes */
                                  /* Initialize PLL before turning it on: */
/* Use 1 of the next 2 lines depending on crystal frequency: */
  CGM.FMPLL_CR.R = 0x02400100;    /* 8 MHz xtal: Set PLL0 to 64 MHz */   
/*CGM.FMPLL_CR.R = 0x12400100;*/  /* 40 MHz xtal: Set PLL0 to 64 MHz */   
  ME.RUN[0].R = 0x001F0074;       /* RUN0 cfg: 16MHzIRCON,OSC0ON,PLL0ON,syclk=PLL */
  ME.RUNPC[1].R = 0x00000010;    /* Peri. Cfg. 1 settings: only run in RUN0 mode */
  ME.PCTL[68].R = 0x01;           /* MPC56xxB/S SIUL:  select ME.RUNPC[0] */
  ME.PCTL[72].R = 0x01;           /* MPC56xxB/S EMIOS 0:  select ME.RUNPC[0] */
                                  /* Mode Transition to enter RUN0 mode: */
  ME.MCTL.R = 0x40005AF0;         /* Enter RUN0 Mode & Key */
  ME.MCTL.R = 0x4000A50F;         /* Enter RUN0 Mode & Inverted Key */  
  while (ME.GS.B.S_MTRANS) {}     /* Wait for mode transition to complete */   
                                  /* Note: could wait here using timer and/or I_TC IRQ */
  while(ME.GS.B.S_CURRENTMODE != 4) {} /* Verify RUN0 is the current mode */
}
void delayms(int ms)
{   
   int ii,jj;
   if (ms<1) ms=1;
   for(ii=0;ii<ms;ii++)
     for(jj=0;jj<3338;jj++);    //40MHz--1ms      
}
int main(void)
{
  volatile int i = 0;  
  
  initModesAndClock();
  SIU.PCR[70].R = 0x0203;
  SIU.PCR[71].R = 0x0203;
  SIU.PCR[68].R = 0x0203;
  SIU.PCR[69].R = 0x0203;
  /* Loop forever */
  while(1)
  {
    i++;
    //PEO=0;   
    SIU.GPDO[71].R=0;   //LED亮
    SIU.GPDO[70].R=0;
    SIU.GPDO[69].R =0;
    SIU.GPDO[68].R =0;
    //SIU.PCR[70].R = 0x0604;
    //=0X00000000;
    delayms(200);
    //PEO=0XFF;
    SIU.GPDO[71].R=1;  //LED灭
    SIU.GPDO[70].R=1;
    SIU.GPDO[69].R =1;
    SIU.GPDO[68].R =1;
    //SIU.PCR[70].R = 0x0903;
    delayms(200);   
  }
}
作者: wanglichao    时间: 2011-11-4 17:11
又是LED测试???
作者: wanglichao    时间: 2011-11-4 17:14
店主很聪明,不发广告
作者: chiusir    时间: 2011-11-4 17:25
大家都认识,不用广告了,呵呵
作者: wanglichao    时间: 2011-11-4 17:31
呵呵,不过你们店里的32位MCU开发板都很贵,买不起
作者: chiusir    时间: 2011-11-6 00:25
原装的,太贵了,看看是否后续可以做点儿便宜的...
作者: yyoung    时间: 2011-12-9 11:35
下载器太贵啊
作者: 沙漠上的狙    时间: 2011-12-12 20:29
32位的M4,伤不起啊
作者: raysmile    时间: 2012-2-18 16:05
MPC5604B烧进程序后复位就不运行了,这是什么情况?调试的时候运行正常……
作者: 王力东    时间: 2012-11-21 08:46
我怎么打不开呢

作者: 葬╄爱    时间: 2013-4-10 20:49
怎磨又是lED!
作者: 笔尖世界    时间: 2013-9-27 16:12
正在搞这个的飘过。。。。。。
作者: 笔尖世界    时间: 2013-9-28 14:05
很好啊
作者: longsky2007    时间: 2016-7-29 07:35
怎么同时定义8位数据口呢?例如用于数码管显示,PE0~7




欢迎光临 智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2