<br />QG8小demo板上,初始化代码是由DI自动生成,但是在一执行MCU_Init这后,就提示: Target speed change detected new speed 12.49MHz 我知道是改变了BDM的连接速率,按理应不会啊?另外,BDM不是有后备时钟吗? 不知QG8中有没有?查询数据手册,没找到相关说明。初用9s08系列特别麻烦,一遇到解决不了的问题,就要查阅大量的相关资料,可是资料又少。可以说我们就像一个拓荒者。随便哆嗦两句,以下是MCU_Init代码,请各位指点下:<br /> /* ### MC9S08QG8_16 "Cpu" init code ... */<br /> /* PE initialization code after reset */<br /> /* Common initialization of the write once registers */<br /> /* SOPT1: COPE=1,COPT=1,STOPE=0,BKGDPE=1,RSTPE=0 */<br /> SOPT1 = 0xD2; <br /> /* SPMSC1: LVDF=0,LVDACK=0,LVDIE=0,LVDRE=1,LVDSE=1,LVDE=0,BGBE=0 */<br /> SPMSC1 = 0x18; <br /> /* SPMSC2: PDF=0,PPDF=0,PPDACK=0,PDC=0,PPDC=0 */<br /> SPMSC2 = 0x00; <br /> /* SPMSC3: LVDV=0,LVWV=0 */<br /> SPMSC3 &= (unsigned char)~0x30; <br /> /* System clock initialization */<br /> ICSTRM = *(unsigned char*far)0xFFAF; /* Initialize ICSTRM register from a non volatile memory */<br /> ICSSC = *(unsigned char*far)0xFFAE; /* Initialize ICSSC register from a non volatile memory */<br /> /* ICSC1: CLKS=0,RDIV=0,IREFS=1,IRCLKEN=0,IREFSTEN=0 */<br /> ICSC1 = 0x04; /* Initialization of the ICS control register 1 */<br /> /* ICSC2: BDIV=1,RANGE=0,HGO=0,LP=0,EREFS=0,ERCLKEN=0,EREFSTEN=0 */<br /> ICSC2 = 0x40; /* Initialization of the ICS control register 2 */<br /> /* SOPT2: COPCLKS=0,IICPS=1,ACIC=0 */<br /> SOPT2 = 0x02; <br /> /* Common initialization of the CPU registers */<br /> /* PTADD: PTADD5=0 */<br /> PTADD &= (unsigned char)~0x20; <br /> /* PTAPE: PTAPE5=1 */<br /> PTAPE |= (unsigned char)0x20; <br /> /* PTASE: PTASE4=1,PTASE3=1,PTASE2=1,PTASE1=1,PTASE0=1 */<br /> PTASE |= (unsigned char)0x1F; <br /> /* PTBSE: PTBSE7=1,PTBSE6=1,PTBSE5=1,PTBSE4=1,PTBSE3=1,PTBSE2=1,PTBSE1=1,PTBSE0=1 */<br /> PTBSE = 0xFF; <br /> /* PTADS: PTADS5=0,PTADS4=0,PTADS3=0,PTADS2=0,PTADS1=0,PTADS0=0 */<br /> PTADS = 0x00; <br /> /* PTBDS: PTBDS7=0,PTBDS6=0,PTBDS5=0,PTBDS4=0,PTBDS3=0,PTBDS2=0,PTBDS1=0,PTBDS0=0 */<br /> PTBDS = 0x00; <br /> /* ### Init_IIC init code */<br /> /* IICF: MULT1=0,MULT0=1,ICR5=0,ICR4=0,ICR3=0,ICR2=0,ICR1=0,ICR0=0 */<br /> IICF = 0x40; <br /> /* IICA: ADDR7=0,ADDR6=0,ADDR5=0,ADDR4=0,ADDR3=0,ADDR2=0,ADDR1=0 */<br /> IICA = 0x00; <br /> /* IICS: TCF=0,IAAS=0,BUSY=0,ARBL=1,SRW=0,IICIF=1,RXAK=0 */<br /> IICS = 0x12; /* Clear the interrupt flags */<br /> /* IICC: IICEN=1 */<br /> IICC |= (unsigned char)0x80; <br /> /* IICC: IICEN=1,IICIE=0,MST=0,TX=1,TXAK=0,RSTA=0 */<br /> IICC = 0x90; <br /> /* ### Init_COP init code */<br /> SRS = 0xFF; /* Clear WatchDog counter */<br /> /* ### Init_IRQ init code */<br /> /* ** Initialize pin PTA5_IRQ_TCLK_RESET ** */<br /> /* IRQSC: IRQIE=0 */<br /> IRQSC &= (unsigned char)~0x02; /* Disable IRQ Interrupt */<br /> /* IRQSC: IRQACK=1 */<br /> IRQSC |= (unsigned char)0x04; <br /> /* ### Init_GPIO init code */<br /> /* PTADD: PTADD3=0,PTADD2=0 */<br /> PTADD &= (unsigned char)~0x0C; <br /> /* ### Init_MTIM init code */<br /> /* MTIMMOD: MOD=0 */<br /> MTIMMOD = 0x00; <br /> /* MTIMCLK: CLKS=0,PS=0 */<br /> MTIMCLK = 0x00; <br /> /* MTIMSC: TOF=0,TOIE=0,TRST=0,TSTP=1 */<br /> MTIMSC = 0x10; <br /> /* ### Init_GPIO init code */<br /> /* PTBDD: PTBDD5=0 */<br /> PTBDD &= (unsigned char)~0x20; <br /> /* ### */<br /> asm CLI; |
|