⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mcuinit.c

📁 uCOS-II在飞思卡尔AW60的移植程序包
💻 C
📖 第 1 页 / 共 2 页
字号:
/*
** ###################################################################
**     This code is generated by the Device Initialization Tool.
**     It is overwritten during code generation.
**     USER MODIFICATION ARE PRESERVED ONLY INSIDE INTERRUPT SERVICE ROUTINES 
**                                                 OR EXPLICITLY MARKED SECTIONS
**
**     Project   : Project_2
**     Processor : MC9S08AW60CFU
**     Version   : Bean 01.132, Driver 01.04, CPU db: 2.87.184
**     Datasheet : MC9S08AW60 Rev 2 12/2006
**     Date/Time : 2008-5-15, 21:26
**     Abstract  :
**         This module contains device initialization code 
**         for selected on-chip peripherals.
**     Contents  :
**         Function "MCU_init" initializes selected peripherals
**
**     (c) Copyright UNIS, spol. s r.o. 1997-2006
**     UNIS, spol s r.o.
**     Jundrovska 33
**     624 00 Brno
**     Czech Republic
**     http      : www.processorexpert.com
**     mail      : info@processorexpert.com
** ###################################################################
*/

/* MODULE MCUinit */

#include <MC9S08AW60.h>                /* I/O map for MC9S08AW60CFU */
#include "MCUinit.h"

#include "includes.h"



unsigned char data1;
unsigned char data2;



/* User declarations and definitions */
/*   Code, declarations and definitions here will be preserved during code generation */
/* End of user declarations and definitions */


/*
** ===================================================================
**     Method      :  MCU_init (bean MC9S08AW60_64)
**
**     Description :
**         Device initialization code for selected peripherals.
** ===================================================================
*/
void MCU_init(void)
{
  /* ### MC9S08AW60_64 "Cpu" init code ... */
  /*  PE initialization code after reset */
  /* Common initialization of the write once registers */
  /* SOPT: COPE=0,COPT=1,STOPE=0 */
  SOPT = 0x53;                                      
  /* SPMSC1: LVDF=0,LVDACK=0,LVDIE=0,LVDRE=1,LVDSE=1,LVDE=1,BGBE=0 */
  SPMSC1 = 0x1C;                                      
  /* SPMSC2: LVWF=0,LVWACK=0,LVDV=0,LVWV=0,PPDF=0,PPDACK=0,PPDC=0 */
  SPMSC2 = 0x00;                                      
  /* SMCLK: MPE=0,MCSEL=0 */
  SMCLK &= (unsigned char)~0x17;                     
  /*  System clock initialization */
  /* ICGC1: HGO=1,RANGE=1,REFS=1,CLKS1=1,CLKS0=1,OSCSTEN=1,LOCD=1 */
  ICGC1 = 0xFE;                                      
  /* ICGC2: LOLRE=1,MFD2=0,MFD1=0,MFD0=0,LOCRE=0,RFD2=0,RFD1=0,RFD0=0 */
  ICGC2 = 0x80;                                      
  ICGTRM = *(unsigned char*far)0xFFBE; /* Initialize ICGTRM register from a non volatile memory */
  while(!ICGS1_LOCK) {                 /* Wait */
  }
  /* Common initialization of the CPU registers */
  /* PTASE: PTASE7=1,PTASE6=1,PTASE5=1,PTASE4=1,PTASE3=1,PTASE2=1,PTASE1=1,PTASE0=1 */
  PTASE = 0xFF;                                      
  /* PTBSE: PTBSE7=1,PTBSE6=1,PTBSE5=1,PTBSE4=1,PTBSE3=1,PTBSE2=1,PTBSE1=1,PTBSE0=1 */
  PTBSE = 0xFF;                                      
  /* PTCSE: PTCSE6=1,PTCSE5=1,PTCSE4=1,PTCSE3=1,PTCSE2=1,PTCSE1=1,PTCSE0=1 */
  PTCSE |= (unsigned char)0x7F;                               
  /* PTDSE: PTDSE7=1,PTDSE6=1,PTDSE5=1,PTDSE4=1,PTDSE3=1,PTDSE2=1,PTDSE1=1,PTDSE0=1 */
  PTDSE = 0xFF;                                      
  /* PTESE: PTESE7=1,PTESE6=1,PTESE5=1,PTESE4=1,PTESE3=1,PTESE2=1,PTESE1=1,PTESE0=1 */
  PTESE = 0xFF;                                      
  /* PTFSE: PTFSE7=1,PTFSE6=1,PTFSE5=1,PTFSE4=1,PTFSE3=1,PTFSE2=1,PTFSE1=1,PTFSE0=1 */
  PTFSE = 0xFF;                                      
  /* PTGSE: PTGSE6=1,PTGSE5=1,PTGSE4=1,PTGSE3=1,PTGSE2=1,PTGSE1=1,PTGSE0=1 */
  PTGSE |= (unsigned char)0x7F;                               
  /* PTADS: PTADS7=0,PTADS6=0,PTADS5=0,PTADS4=0,PTADS3=0,PTADS2=0,PTADS1=0,PTADS0=0 */
  PTADS = 0x00;                                      
  /* PTBDS: PTBDS7=0,PTBDS6=0,PTBDS5=0,PTBDS4=0,PTBDS3=1,PTBDS2=0,PTBDS1=0,PTBDS0=0 */
  PTBDS = 0x08;                                      
  /* PTCDS: PTCDS6=0,PTCDS5=0,PTCDS4=1,PTCDS3=0,PTCDS2=0,PTCDS1=0,PTCDS0=0 */
  PTCDS = 0x10;                                      
  /* PTDDS: PTDDS7=0,PTDDS6=0,PTDDS5=0,PTDDS4=0,PTDDS3=0,PTDDS2=1,PTDDS1=1,PTDDS0=1 */
  PTDDS = 0x07;                                      
  /* PTEDS: PTEDS7=0,PTEDS6=0,PTEDS5=0,PTEDS4=0,PTEDS3=0,PTEDS2=1,PTEDS1=0,PTEDS0=0 */
  PTEDS = 0x04;                                      
  /* PTFDS: PTFDS7=0,PTFDS6=0,PTFDS5=0,PTFDS4=0,PTFDS3=0,PTFDS2=0,PTFDS1=0,PTFDS0=1 */
  PTFDS = 0x01;                                      
  /* PTGDS: PTGDS6=0,PTGDS5=0,PTGDS4=0,PTGDS3=1,PTGDS2=0,PTGDS1=0,PTGDS0=0 */
  PTGDS = 0x08;                                      
  /* ### Init_SCI init code */
  /* SCI2C2: TIE=0,TCIE=0,RIE=0,ILIE=0,TE=0,RE=0,RWU=0,SBK=0 */
  SCI2C2 = 0x00;                       /* Disable the SCI2 module */
  (void)(SCI2S1 == 0);                 /* Dummy read of the SCI2S1 registr to clear flags */
  (void)(SCI2D == 0);                  /* Dummy read of the SCI2D registr to clear flags */
  /* SCI2S2: BRK13=0,RAF=0 */
  SCI2S2 = 0x00;                                      
  /* SCI2BDH: SBR12=0,SBR11=0,SBR10=0,SBR9=0,SBR8=0 */
  SCI2BDH = 0x00;                                      
  /* SCI2BDL: SBR7=1,SBR6=0,SBR5=0,SBR4=0,SBR3=0,SBR2=0,SBR1=0,SBR0=0 */
  SCI2BDL = 0x80;                                      
  /* SCI2C1: LOOPS=0,SCISWAI=0,RSRC=0,M=1,WAKE=0,ILT=0,PE=0,PT=0 */
  SCI2C1 = 0x10;                                      
  /* SCI2C2: TIE=0,TCIE=0,RIE=1,ILIE=0,TE=1,RE=1,RWU=0,SBK=0 */
  SCI2C2 = 0x2C;                                      
  /* SCI2C3: R8=0,T8=0,TXDIR=0,TXINV=0,ORIE=0,NEIE=0,FEIE=0,PEIE=0 */
  SCI2C3 = 0x00;                                      
  /* ### Init_SCI init code */
  /* SCI1C2: TIE=0,TCIE=0,RIE=0,ILIE=0,TE=0,RE=0,RWU=0,SBK=0 */
  SCI1C2 = 0x00;                       /* Disable the SCI1 module */
  (void)(SCI1S1 == 0);                 /* Dummy read of the SCI1S1 registr to clear flags */
  (void)(SCI1D == 0);                  /* Dummy read of the SCI1D registr to clear flags */
  /* SCI1S2: BRK13=0,RAF=0 */
  SCI1S2 = 0x00;                                      
  /* SCI1BDH: SBR12=0,SBR11=0,SBR10=0,SBR9=0,SBR8=0 */
  SCI1BDH = 0x00;                                      
  /* SCI1BDL: SBR7=1,SBR6=0,SBR5=0,SBR4=0,SBR3=0,SBR2=0,SBR1=0,SBR0=0 */
  SCI1BDL = 0x80;                                      
  /* SCI1C1: LOOPS=0,SCISWAI=0,RSRC=0,M=1,WAKE=0,ILT=0,PE=0,PT=0 */
  SCI1C1 = 0x10;                                      
  /* SCI1C2: TIE=0,TCIE=0,RIE=1,ILIE=0,TE=1,RE=1,RWU=0,SBK=0 */
  SCI1C2 = 0x2C;                                      
  /* SCI1C3: R8=0,T8=0,TXDIR=0,TXINV=0,ORIE=0,NEIE=0,FEIE=0,PEIE=0 */
  SCI1C3 = 0x00;                                      
  /* ### Init_RTI init code */
  /* SRTISC: RTIF=0,RTIACK=1,RTICLKS=0,RTIE=1,RTIS2=1,RTIS1=0,RTIS0=1 */
  SRTISC = 0x55;                                      
  /* ### Init_GPIO init code */
  /* PTFD: PTFD5=1,PTFD4=0,PTFD1=0,PTFD0=0 */
  PTFD = (PTFD & (unsigned char)~0x13) | (unsigned char)0x20;
  /* PTFPE: PTFPE0=1 */
  PTFPE |= (unsigned char)0x01;                               
  /* PTFDD: PTFDD5=1,PTFDD4=1,PTFDD1=1,PTFDD0=1 */
  PTFDD |= (unsigned char)0x33;                               
  /* ### Init_GPIO init code */
  /* PTED: PTED3=1,PTED2=1 */
  PTED |= (unsigned char)0x0C;                               
  /* PTEDD: PTEDD3=1,PTEDD2=1 */
  PTEDD |= (unsigned char)0x0C;                               
  /* ### Init_GPIO init code */
  /* PTCD: PTCD4=0,PTCD1=1,PTCD0=1 */
  PTCD = (PTCD & (unsigned char)~0x10) | (unsigned char)0x03;
  /* PTCPE: PTCPE4=1 */
  PTCPE |= (unsigned char)0x10;                               
  /* PTCDD: PTCDD4=1,PTCDD1=1,PTCDD0=1 */
  PTCDD |= (unsigned char)0x13;                               
  /* ### Init_TPM init code */
  /* TPM1SC: TOF=0,TOIE=0,CPWMS=0,CLKSB=0,CLKSA=0,PS2=0,PS1=0,PS0=0 */
  TPM1SC = 0x00;                       /* Stop and reset counter */
  TPM1MOD = 0xC003;                    /* Period value setting */
  (void)(TPM1SC == 0);                 /* Overflow int. flag clearing (first part) */
  /* TPM1SC: TOF=0,TOIE=1,CPWMS=0,CLKSB=1,CLKSA=0,PS2=0,PS1=0,PS0=0 */
  TPM1SC = 0x50;                       /* Int. flag clearing (2nd part) and timer control register setting */
  /* ### Init_TPM init code */
  /* TPM2SC: TOF=0,TOIE=0,CPWMS=0,CLKSB=0,CLKSA=0,PS2=0,PS1=0,PS0=0 */
  TPM2SC = 0x00;                       /* Stop and reset counter */
  TPM2MOD = 0x00;                      /* Period value setting */
  (void)(TPM2SC == 0);                 /* Overflow int. flag clearing (first part) */
  /* TPM2SC: TOF=0,TOIE=1,CPWMS=0,CLKSB=0,CLKSA=1,PS2=1,PS1=1,PS0=1 */
  TPM2SC = 0x4F;                       /* Int. flag clearing (2nd part) and timer control register setting */
  /* ### Init_GPIO init code */
  /* PTAD: PTAD1=1 */
  PTAD |= (unsigned char)0x02;                               
  /* PTAPE: PTAPE1=1 */
  PTAPE |= (unsigned char)0x02;                               
  /* PTADD: PTADD1=0 */
  PTADD &= (unsigned char)~0x02;                     
  /* ### Init_GPIO init code */
  /* PTBD: PTBD3=1,PTBD2=1,PTBD1=1,PTBD0=1 */
  PTBD |= (unsigned char)0x0F;                               
  /* PTBDD: PTBDD3=1,PTBDD2=0,PTBDD1=0,PTBDD0=0 */
  PTBDD = (PTBDD & (unsigned char)~0x07) | (unsigned char)0x08;
  /* ### Init_GPIO init code */
  /* PTDD: PTDD2=0,PTDD1=1,PTDD0=1 */
  PTDD = (PTDD & (unsigned char)~0x04) | (unsigned char)0x03;
  /* PTDDD: PTDDD2=1,PTDDD1=1,PTDDD0=1 */
  PTDDD |= (unsigned char)0x07;                               
  /* ### Init_GPIO init code */
  /* PTGD: PTGD3=0 */
  PTGD &= (unsigned char)~0x08;                     
  /* PTGDD: PTGDD3=1,PTGDD0=0 */
  PTGDD = (PTGDD & (unsigned char)~0x01) | (unsigned char)0x08;
  /* ### */
  asm CLI;                             /* Enable interrupts */
} /*MCU_init*/


/*
** ===================================================================
**     Interrupt handler : isrVrti
**
**     Description :
**         User interrupt service routine. 
**     Parameters  : None
**     Returns     : Nothing
** ===================================================================
*/
__interrupt void isrVrti(void)
{
  asm nop;
  PTED_PTED3=~PTED_PTED3;
  //PTED_PTED2=~PTED_PTED2;
  
  SRTISC_RTIACK=1;

}
/* end of isrVrti */


/*
** ===================================================================
**     Interrupt handler : isrVsci2tx
**
**     Description :
**         User interrupt service routine. 
**     Parameters  : None
**     Returns     : Nothing
** ===================================================================
*/
__interrupt void isrVsci2tx(void)
{
    SCI2C3=(data1>1)&SCI2C3;
    SCI2D=data2;//发送数据选择,选择串口接收到的数据
   
    while(SCI2S1_TC==0){
    };
   
    SCI2C2_TIE=0;
    PTCD_PTCD4=0;
    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -