亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? initial.c

?? 一個很全面的TMS320F2812的最小系統的工程
?? C
?? 第 1 頁 / 共 3 頁
字號:
//###########################################################################
//
// FILE:	DSP28_Initial.h
//
// TITLE:	TMS320F2810 registers define
//
//###########################################################################
//
// Ver | dd mmm yyyy | Who  | Description of changes
// .00 | 17  07 2003 | lg   | 
//
//###########################################################################
#include "kernel\kernel.h"
#include "module\module.h"
#include "cpu\registers.h"
#include "cpu\IO.h"
#include "app\Interrupt.h"
#include "app\constant.h"
#include "app\app.h"
#include "app\Eeprom.h"

#include "driver\driver.h"

#define ADC_usDELAY  5000L
#define ADC_usDELAY2 20L

#define RunInFlash

const struct PIE_VECT_TABLE PieVectTableInit = {

      PIE_RESERVED,  // Reserved space
      PIE_RESERVED,   
      PIE_RESERVED,   
      PIE_RESERVED,   
      PIE_RESERVED,   
      PIE_RESERVED,   
      PIE_RESERVED,   
      PIE_RESERVED,   
      PIE_RESERVED,   
      PIE_RESERVED,   
      PIE_RESERVED,   
      PIE_RESERVED,   
      PIE_RESERVED,   


// Non-Peripheral Interrupts
      INT13_ISR,     // XINT13 or CPU-Timer 1
      INT14_ISR,     // CPU-Timer2
      DATALOG_ISR,   // Datalogging interrupt
      RTOSINT_ISR,   // RTOS interrupt
      EMUINT_ISR,    // Emulation interrupt
      NMI_ISR,       // Non-maskable interrupt
      ILLEGAL_ISR,   // Illegal operation TRAP
      USER0_ISR,     // User Defined trap 0
      USER1_ISR,     // User Defined trap 1
      USER2_ISR,     // User Defined trap 2
      USER3_ISR,     // User Defined trap 3
      USER4_ISR,     // User Defined trap 4
      USER5_ISR,     // User Defined trap 5
      USER6_ISR,     // User Defined trap 6
      USER7_ISR,     // User Defined trap 7
      USER8_ISR,     // User Defined trap 8
      USER9_ISR,     // User Defined trap 9
      USER10_ISR,    // User Defined trap 10
      USER11_ISR,    // User Defined trap 11
      //lg/030905 OSCtxSw,       // lg/030801 use trap #31 for OS task switch

// Group 1 PIE Vectors
      PDPINTA_ISR,   // EV-A
      PDPINTB_ISR,   // EV-B
      rsvd_ISR,
      XINT1_ISR,     
      XINT2_ISR,
      ADCINT_ISR,    // ADC
      TINT0_ISR,     // Timer 0
      WAKEINT_ISR,   // WD

// Group 2 PIE Vectors
      CMP1INT_ISR,   // EV-A
      CMP2INT_ISR,   // EV-A
      CMP3INT_ISR,   // EV-A
      T1PINT_ISR,    // EV-A
      T1CINT_ISR,    // EV-A
      T1UFINT_ISR,   // EV-A
      T1OFINT_ISR,   // EV-A
      rsvd_ISR,
      
// Group 3 PIE Vectors
      T2PINT_ISR,    // EV-A
      T2CINT_ISR,    // EV-A
      T2UFINT_ISR,   // EV-A
      T2OFINT_ISR,   // EV-A
      CAPINT1_ISR,   // EV-A
      CAPINT2_ISR,   // EV-A
      CAPINT3_ISR,   // EV-A
      rsvd_ISR,
      
// Group 4 PIE Vectors
      CMP4INT_ISR,   // EV-B
      CMP5INT_ISR,   // EV-B
      CMP6INT_ISR,   // EV-B
      T3PINT_ISR,    // EV-B
      T3CINT_ISR,    // EV-B
      T3UFINT_ISR,   // EV-B
      T3OFINT_ISR,   // EV-B
      rsvd_ISR,      
     
// Group 5 PIE Vectors
      T4PINT_ISR,    // EV-B
      T4CINT_ISR,    // EV-B
      T4UFINT_ISR,   // EV-B
      T4OFINT_ISR,   // EV-B
      CAPINT4_ISR,   // EV-B
      CAPINT5_ISR,   // EV-B
      CAPINT6_ISR,   // EV-B
      rsvd_ISR,      

// Group 6 PIE Vectors
      SPIRXINTA_ISR,   // SPI-A
      SPITXINTA_ISR,   // SPI-A
      rsvd_ISR,
      rsvd_ISR,
      MRINTA_ISR,    // McBSP-A
      MXINTA_ISR,    // McBSP-A
      rsvd_ISR,
      rsvd_ISR,
      
// Group 7 PIE Vectors
      rsvd_ISR,   
      rsvd_ISR,   
      rsvd_ISR,   
      rsvd_ISR,   
      rsvd_ISR,   
      rsvd_ISR,   
      rsvd_ISR,   
      rsvd_ISR,   

// Group 8 PIE Vectors
      rsvd_ISR,   
      rsvd_ISR,   
      rsvd_ISR,   
      rsvd_ISR,   
      rsvd_ISR,   
      rsvd_ISR,   
      rsvd_ISR,   
      rsvd_ISR,   
      
// Group 9 PIE Vectors     
      SCIRXINTA_ISR, // SCI-A
      SCITXINTA_ISR, // SCI-A
      SCIRXINTB_ISR, // SCI-B
      SCITXINTB_ISR, // SCI-B
      ECAN0INTA_ISR, // eCAN
      ECAN1INTA_ISR, // eCAN
      rsvd_ISR,   
      rsvd_ISR,   
      
// Group 10 PIE Vectors
      rsvd_ISR,   
      rsvd_ISR,   
      rsvd_ISR,   
      rsvd_ISR,   
      rsvd_ISR,   
      rsvd_ISR,   
      rsvd_ISR,   
      rsvd_ISR,   
            
// Group 11 PIE Vectors
      rsvd_ISR,   
      rsvd_ISR,   
      rsvd_ISR,   
      rsvd_ISR,   
      rsvd_ISR,   
      rsvd_ISR,   
      rsvd_ISR,   
      rsvd_ISR,   

// Group 12 PIE Vectors
      rsvd_ISR,   
      rsvd_ISR,   
      rsvd_ISR,   
      rsvd_ISR,   
      rsvd_ISR,   
      rsvd_ISR,   
      rsvd_ISR,   
      rsvd_ISR,   
};

INT16U wInputModule;
INT16U wOutputModule;

// Functions that will be run from RAM need to be assigned to 
// a different section.  This section will then be mapped using
// the linker cmd file.
#pragma CODE_SECTION(sInitFlash, "ramfuncs");

// Information on the location of functions that are going
// to be relocated to RAM
#define RAM_FUNC_LOAD   0x3EC000    // Source location in Flash
#define RAM_FUNC_LENGTH 0x001000    // Number of 32-bit values to copy 2000(1000*2)
#define RAM_FUNC_RUN	0x008000

void	sInitSysCtrl(void);
void	sInitFlash(void);
void	sInitAdc(void);
void	sInitGpio(void);
void	sInitPieCtrl(void);
void	sInitPieVectTable(void);
void	sInitEV(void);	
void	sInitSCI(void);
void	sInitSPI(void);
void	sInitEXINTF(void);
//void	sInitCAN(void);
void    sADCalibration(void);
void    DelayUs(volatile unsigned int);			//function prototype
void	sInitEXTIO(void);
INT16S swGetwADCOffsetA();
INT16S swGetwADCCoefA();
INT16S swGetwREF125A();
INT16S swGetwREF250A();
INT16S 	wREF125A;
INT16S 	wREF250A;

void	sInitialDSP(void)
{
    unsigned long * pSourceAddr;
    unsigned long * pDestAddr;
    unsigned int i;
	
// Step 1. Initialize System Control registers, PLL, WatchDog, Clocks to default state:
        
	sInitSysCtrl();

	// Disable and clear all CPU interrupts:
	DINT;
	IER = 0x0000;
	IFR = 0x0000;

	// Initialize Pie Control Registers To Default State:
        // This function is found in the DSP28_PieCtrl.c file.
	sInitPieCtrl();

	// Initialize the PIE Vector Table To a Known State:
        // This function is found in DSP28_PieVect.c.
	// This function populates the PIE vector table with pointers
        // to the shell ISR functions found in DSP28_DefaultIsr.c.
	sInitPieVectTable();	

	//=======================Run in Flash=======================
#ifdef RunInFlash
	pSourceAddr = (unsigned long *)RAM_FUNC_LOAD;
	pDestAddr = (unsigned long *)RAM_FUNC_RUN;
	for(i = 0; i < RAM_FUNC_LENGTH; i++)
	{
	    *pDestAddr++ = *pSourceAddr++;
	}
	
	sInitFlash();
	
#endif

// Step 2. Initialize Event Manager registers for the specific application

	
	sInitEV();

// Step 3. Initialize AD registers
	
	sInitAdc();

// Step 4. Select GPIO for the device or for the specific application:

	sInitGpio();

// Step 5. Initialize SCI registers

	sInitSCI();
	
// Step 6. Initialize CAN registers

	//sInitCAN();
	sCanInitial(cPrioPara,eParallelCANParsing);

// Step 7. Initialize SPI registers
	
	sInitSPI();

// Step 8. Initialize PIE vector table:
	// The PIE vector table is initialized with pointers to shell Interrupt 
        // Service Routines (ISR).  The shell routines are found in DSP28_DefaultIsr.c.
	// Insert user specific ISR code in the appropriate shell ISR routine in 
        // the DSP28_DefaultIsr.c file.
	EALLOW;	// This is needed to write to EALLOW protected registers
	PieVectTable.XINT2 = &XINT2Interrupt;
	PieVectTable.T1PINT = &PFCInterrupt;
	PieVectTable.T1UFINT = &INVInterrupt;
	PieVectTable.USER11 = &OSCtxSw;
	PieVectTable.RXAINT = &SCIAReceiveInterrupt;	
	PieVectTable.TXAINT = &SCITransmitInterrupt;
//lg/040412	PieVectTable.CAPINT1 = &BypassZeroCrossInterrupt;
	PieVectTable.CAPINT1 = &LineZeroCrossInterrupt;
	PieVectTable.CAPINT2 = &SynchroZeroCrossInterrupt;//LC/040202
	PieVectTable.CAPINT3 = &HostInterrupt;//lc/040510
//lg/040412	PieVectTable.CAPINT4 = &LineZeroCrossInterrupt;
	PieVectTable.CAPINT4 = &BypassZeroCrossInterrupt;
	PieVectTable.CAPINT5 = &InverterZeroCrossInterrupt;
	PieVectTable.CAPINT6 = &OutputZeroCrossInterrupt;
	PieVectTable.T4CINT  = &TBASE_INT;
	PieVectTable.ECAN1INTA = &CANInterrupt;
	EDIS;   

	// enable EXT Interrupt 2 and Detect on rising edge
	XIntruptRegs.XINT2CR.all = 5;
	
// Step 9. Initialize extern IO
	sInitEXTIO();	
	// Disable and clear all CPU interrupts:
	DINT;
	IER = 0x0000;
	IFR = 0x0000;
    	
    	//Enbale PIE group 1 interrupt 5 for XINT2 
    	
    	PieCtrlRegs.PIEIER1.bit.INTx5 =1;
    	
    // Enable PIE group 2 interrupt 4 for T1PINT,interrupt 6 for T1UFINT
    PieCtrlRegs.PIEIER2.bit.INTx4=1;
    PieCtrlRegs.PIEIER2.bit.INTx6=1;

    // Enalbe PIE group 3 interrupt 2 for T2CINT
//    PieCtrlRegs.PIEIER3.bit.INTx2=1;
    PieCtrlRegs.PIEIER3.bit.INTx5=1;
    PieCtrlRegs.PIEIER3.bit.INTx6=1;
    PieCtrlRegs.PIEIER3.bit.INTx7=1;
    
    PieCtrlRegs.PIEIER5.bit.INTx2=1;
    // Enable PIE group 5 interrupt 4,5,6 for CAPINT4,5,6
    PieCtrlRegs.PIEIER5.bit.INTx5=1;
    PieCtrlRegs.PIEIER5.bit.INTx6=1;
    PieCtrlRegs.PIEIER5.bit.INTx7=1;


    // Enable PIE group 9 interrupt 1 for SCIRXINTA, 5 for ECAN0INT,6 for ECAN1INT
    PieCtrlRegs.PIEIER9.bit.INTx1=1;
    PieCtrlRegs.PIEIER9.bit.INTx2=1;
    PieCtrlRegs.PIEIER9.bit.INTx5=1;
    PieCtrlRegs.PIEIER9.bit.INTx6=1;

    sADCalibration();
	

    hoAD_SW1=1;
    hoAD_SW2=1;

    //wInputModule=cSinglePhase;	//ywt/061230A
    wInputModule=cThreePhase; //ywt/061230A
    //wOutputModule=cSinglePhase;	//ywt/061230A
    wOutputModule=cThreePhase;	//ywt/061230A
    
    // Enable CPU INT2 for T1PINT, INT4 for T3UFINT, INT5 for T4CINT,CAPINT4,5,6
    // and INT 9 for SCIRXINTA,ECAN0INT,ECAN1INT
    // IER |= (M_INT2 | M_INT3 | M_INT5 | M_INT9);	
}
//---------------------------------------------------------------------------
// InitSysCtrl: 
//---------------------------------------------------------------------------
// This function initializes the System Control registers to a known state.
//
void sInitSysCtrl(void)
{
   unsigned int i;
   EALLOW;
   
// On TMX samples, to get the best performance of on chip RAM blocks M0/M1/L0/L1/H0 internal
// control registers bit have to be enabled. The bits are in Device emulation registers.
   DevEmuRegs.M0RAMDFT = 0x0300;
   DevEmuRegs.M1RAMDFT = 0x0300;
   DevEmuRegs.L0RAMDFT = 0x0300;
   DevEmuRegs.L1RAMDFT = 0x0300;
   DevEmuRegs.H0RAMDFT = 0x0300;
   
           
// Disable watchdog module
   SysCtrlRegs.WDCR= 0x0068;

// Initalize PLL
   SysCtrlRegs.PLLCR = 0xA;
   // Wait for PLL to lock
   for(i= 0; i< 5000; i++){}
       
// HISPCP/LOSPCP prescale register settings.
// high speed clock = SYSCLKOUT/1 (EVA,EVB,ADC)
   SysCtrlRegs.HISPCP.all = 0x0000;
// low speed clock = SYSCLKOUT/4  (SCIA,SCIB,SPI,McBSP)
   SysCtrlRegs.LOSPCP.all = 0x0002;	
// Peripheral clock enables set for the selected peripherals.   
   SysCtrlRegs.PCLKCR.bit.EVAENCLK=1;
   SysCtrlRegs.PCLKCR.bit.EVBENCLK=1;
   SysCtrlRegs.PCLKCR.bit.SCIENCLKA=1;
   SysCtrlRegs.PCLKCR.bit.SCIENCLKB=0;
   SysCtrlRegs.PCLKCR.bit.MCBSPENCLK=0;
   SysCtrlRegs.PCLKCR.bit.SPIENCLK=1;
   SysCtrlRegs.PCLKCR.bit.ECANENCLK=1;
   SysCtrlRegs.PCLKCR.bit.ADCENCLK=1;
   EDIS;
	
}

// This function initializes the Flash Control registers

//                   CAUTION 
// This function MUST be executed out of RAM. Executing it
// out of OTP/Flash will yield unpredictable results

void sInitFlash(void)
{
   EALLOW;
   //Enable Flash Pipeline mode to improve performance
   //of code executed from Flash.
   FlashRegs.FOPT.bit.ENPIPE = 1;
   
   //                CAUTION
   //Minimum waitstates required for the flash operating
   //at a given CPU rate must be characterized by TI. 
   //Refer to the datasheet for the latest information.  

   //Set the Random Waitstate for the Flash
   FlashRegs.FBANKWAIT.bit.RANDWAIT = 5;//lg/030905 5;
   

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91国在线观看| 美国毛片一区二区| 国产高清无密码一区二区三区| 欧美美女喷水视频| 国产精品一区三区| 欧美色窝79yyyycom| 久久免费看少妇高潮| 天堂一区二区在线| 91亚洲男人天堂| 久久综合色综合88| 香蕉乱码成人久久天堂爱免费| 成人午夜激情片| 亚洲精品一区二区三区香蕉| 亚洲午夜成aⅴ人片| 91亚洲国产成人精品一区二三| 欧美成人精品3d动漫h| 五月天中文字幕一区二区| 97久久超碰国产精品| 久久无码av三级| 激情成人综合网| 欧美日韩电影一区| 亚洲国产人成综合网站| 91污在线观看| 成人欧美一区二区三区白人| 国产伦精品一区二区三区视频青涩 | 日韩经典一区二区| 色综合久久88色综合天天免费| 国产视频视频一区| 国产一区二区三区美女| 亚洲精品一区二区三区香蕉| 麻豆精品久久久| 精品免费日韩av| 美国av一区二区| 精品成a人在线观看| 精品亚洲成a人在线观看| 制服.丝袜.亚洲.中文.综合| 三级不卡在线观看| 欧美一卡二卡三卡| 久久精品国产99| 亚洲蜜臀av乱码久久精品蜜桃| 国产成人免费9x9x人网站视频| 久久青草欧美一区二区三区| 国产成人免费视频精品含羞草妖精| 精品日韩欧美一区二区| 国内偷窥港台综合视频在线播放| 日韩欧美第一区| 韩国欧美国产一区| 中文字幕av不卡| 色综合一区二区| 亚洲一级二级在线| 欧美一区三区二区| 九九视频精品免费| 国产亚洲成av人在线观看导航| 成人国产精品免费观看| 亚洲四区在线观看| 欧美绝品在线观看成人午夜影视 | 国产欧美一区二区在线| 成人av午夜电影| 亚洲一区二区三区四区不卡| 欧美一区二区三区四区高清| 激情五月婷婷综合网| 中文字幕免费不卡在线| 在线观看亚洲a| 美女国产一区二区| 欧美韩日一区二区三区| 欧美做爰猛烈大尺度电影无法无天| 亚洲sss视频在线视频| 欧美精品一区二区三区蜜臀| www.亚洲在线| 免费高清视频精品| 国产精品久久久一区麻豆最新章节| 色播五月激情综合网| 麻豆国产91在线播放| 亚洲欧洲精品一区二区三区不卡| 欧美精品三级日韩久久| 国产成人啪午夜精品网站男同| 国产精品高清亚洲| 欧美成人精品1314www| av在线不卡观看免费观看| 日本欧美大码aⅴ在线播放| 国产欧美日韩麻豆91| 91精品国产黑色紧身裤美女| 成年人网站91| 韩国三级电影一区二区| 亚洲成人高清在线| 国产精品久久久久久福利一牛影视 | 日韩av高清在线观看| 1024成人网| 国产亚洲污的网站| 91精品国产黑色紧身裤美女| 色综合中文综合网| 欧美一区二区三区男人的天堂| 成人免费高清视频| 蜜桃视频在线一区| 亚洲一区二区综合| 亚洲欧洲另类国产综合| 久久久.com| 精品区一区二区| 欧美日韩情趣电影| 色综合一个色综合| 成人少妇影院yyyy| 国产美女娇喘av呻吟久久| 日韩高清在线电影| 亚洲成人黄色影院| 亚洲午夜精品在线| 亚洲宅男天堂在线观看无病毒| 久久精品一区八戒影视| 精品少妇一区二区三区在线视频| 欧美裸体bbwbbwbbw| 91成人在线免费观看| 91浏览器打开| 91香蕉视频mp4| 91亚洲国产成人精品一区二区三| 国产精品亚洲专一区二区三区| 蜜臀精品一区二区三区在线观看| 一区二区三区四区国产精品| 亚洲欧洲综合另类| 亚洲色图欧洲色图婷婷| 亚洲精品免费一二三区| 亚洲天堂免费看| 亚洲精品福利视频网站| 亚洲欧美日韩一区二区三区在线观看| 亚洲国产精品二十页| 国产精品卡一卡二| 亚洲三级免费观看| 亚洲国产日韩综合久久精品| 亚洲mv在线观看| 久久国产生活片100| 久久成人18免费观看| 韩国欧美一区二区| 成人v精品蜜桃久久一区| 不卡的电视剧免费网站有什么| 99久久久无码国产精品| 91麻豆国产福利在线观看| 在线观看一区不卡| 3d成人动漫网站| 欧美精品一区男女天堂| 国产精品网友自拍| 亚洲综合区在线| 麻豆成人综合网| hitomi一区二区三区精品| 欧美在线免费播放| 日韩欧美成人一区| 自拍偷拍亚洲欧美日韩| 国产精品亲子伦对白| 国产精品的网站| 国产不卡免费视频| 成人激情av网| 欧美日韩免费观看一区二区三区 | 亚洲综合一二区| 久久精品国产久精国产爱| 国产91富婆露脸刺激对白| 成人av电影在线网| 欧美精品在线观看一区二区| 精品欧美一区二区在线观看| 中文字幕一区在线| 日韩高清一级片| 成人天堂资源www在线| 欧美亚洲禁片免费| 欧美激情艳妇裸体舞| 日韩制服丝袜av| 不卡高清视频专区| 精品美女一区二区| 亚洲黄色av一区| 国产白丝网站精品污在线入口| 在线精品视频免费播放| 国产亚洲污的网站| 国内成+人亚洲+欧美+综合在线| 欧美日韩国产乱码电影| 中文字幕av不卡| 欧美一区二区高清| 欧美成人伊人久久综合网| 成人欧美一区二区三区白人| 人禽交欧美网站| 欧美自拍偷拍一区| 国产精品无遮挡| 激情国产一区二区| 91.麻豆视频| 亚洲综合视频在线观看| 成人午夜电影小说| 精品国产91久久久久久久妲己 | 欧洲生活片亚洲生活在线观看| 久久久久久久久99精品| 日本不卡一区二区三区| 在线中文字幕一区二区| 国产精品不卡一区二区三区| 久久精品国产精品亚洲精品| 欧美网站大全在线观看| 综合久久国产九一剧情麻豆| 国产成人在线视频网站| 精品久久久久久久久久久久包黑料 | 欧美日韩不卡在线| 日本一区二区免费在线| 国产一区二区视频在线| 日韩欧美激情在线| 美脚の诱脚舐め脚责91| 4438x亚洲最大成人网| 亚洲成人高清在线| 欧美精品视频www在线观看| 夜夜精品视频一区二区|