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

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

?? txabort.c

?? TI公司28XDSP控制永磁同步電機PMSM 系統(tǒng)調(diào)試源碼之六
?? C
字號:
/*********************************************************************
* Filename: TXABORT.c                                                
*                                                                    
* Description: Checks the transmit abort operation using the TRR bit. 	
* 
* A transmission is initiated for two mailboxes. While the first
* mailbox is getting transmitted, the transmission for second mailbox
* is aborted. It is then checked whether the AA bit for the second	
* mailbox is asserted. This test will validate that AAIF bit getting
* set in GIF0/GIF1 register is determined by GIL and not MILn bit. 
* Mailboxes 15 & 29 (with standard identifiers ) are used in this example
*          
* Last update: 12/26/2002
*********************************************************************/

#include "DSP28_Device.h"

// Prototype statements for functions found within this file.

interrupt void eCAN0INT_ISR(void);
interrupt void eCAN1INT_ISR(void);

// Variable declarations

long      i;
int int0count = 0;		// Counter to track the # of level 0 interrupts
int int1count = 0;	    // Counter to track the # of level 1 interrupts

void InitECan(void);

/* Create a shadow register structure for the CAN control registers. This is
 needed, since, only 32-bit access is allowed to these registers. 16-bit access
 to these registers could potentially corrupt the register contents. This is
 especially true while writing to a bit (or group of bits) among bits 16 - 31 */

struct ECAN_REGS ECanaShadow;

main() 

{

/* Initialize the CAN module */

	InitECan();
    
/* Initialize PIE vector table To a Known State: */
	// 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.
    
    // InitPieVectTable();	 // uncomment this line if the shell ISR routines are needed
    
    // This function is found in DSP28_PieVect.c. It populates the PIE vector table
    // with pointers to the shell ISR functions found in DSP28_DefaultIsr.c. This 
    // function is not useful in this code because the user-specific ISR is present
    // in this file itself. The shell ISR routine in the DSP28_DefaultIsr.c file is
    // not used. If the shell ISR routines are needed, uncomment this line and add 
    // DSP28_PieVect.c & DSP28_DefaultIsr.c files to the project

/* Disable and clear all CPU interrupts: */

	DINT;
	IER = 0x0000;
	IFR = 0x0000;

/* Initialize Pie Control Registers To Default State */
        
	InitPieCtrl(); // This function is found in the DSP28_PieCtrl.c file. 
	    
/* Write to the MSGID field  */
    
    ECanaMboxes.MBOX15.MSGID.all = 0x00540000; // Std Identifier (ID = 15)
    ECanaMboxes.MBOX29.MSGID.all = 0x00A40000; // Std Identifier (ID = 29)
    
/* Configure Mailboxes under test as Transmit mailbox */

	ECanaShadow.CANMD.all = ECanaRegs.CANMD.all;	
	ECanaShadow.CANMD.bit.MD15 = 0;
	ECanaShadow.CANMD.bit.MD29 = 0;
	ECanaRegs.CANMD.all = ECanaShadow.CANMD.all; 
	
/* Enable Mailboxes under test */
	
	ECanaShadow.CANME.all = ECanaRegs.CANME.all;	
	ECanaShadow.CANME.bit.ME15 = 1;
	ECanaShadow.CANME.bit.ME29 = 1;	
	ECanaRegs.CANME.all = ECanaShadow.CANME.all; 
	
/* Write to Master Control reg */

	ECanaMboxes.MBOX15.MCF.bit.DLC = 5;
	ECanaMboxes.MBOX29.MCF.bit.DLC = 5;
			
/* Write to the mailbox RAM field */
    
     ECanaMboxes.MBOX15.MDRL.all = 0x15151515;
	 ECanaMboxes.MBOX15.MDRH.all = 0x15151515;
	 
	 ECanaMboxes.MBOX29.MDRL.all = 0x29292929;
	 ECanaMboxes.MBOX29.MDRH.all = 0x29292929;		 
	 
/* Configure CAN interrupts */ 

 	ECanaShadow.CANGIM.all = ECanaRegs.CANGIM.all;	
    ECanaShadow.CANGIM.bit.AAIM = 1;   // Enable "Abort acknowledge" int 
    
    ECanaShadow.CANGIM.bit.GIL = 0;	   // GIL value determines eCAN(0/1)INT
    								   // Enable the int line chosen by GIL  
    ECanaShadow.CANGIM.bit.I0EN = 1;   // Uncomment this line if GIL = 0       
    //ECanaShadow.CANGIM.bit.I1EN = 1;   // Uncomment this line if GIL = 1 
    
    ECanaRegs.CANGIM.all = ECanaShadow.CANGIM.all;
    
/* Reassign ISRs. i.e. reassign the PIE vector for ECAN0INTA_ISR and ECAN0INTA_ISR 
   to point to a different ISR than the shell routine found in DSP28_DefaultIsr.c.
   This is done if the user does not want to use the shell ISR routine but instead
   wants to embed the ISR in this file itself. */
	
	PieVectTable.ECAN0INTA = &eCAN0INT_ISR;
	PieVectTable.ECAN1INTA = &eCAN1INT_ISR;
    
/* Configure PIE interrupts */    
  
	PieCtrlRegs.PIECRTL.bit.ENPIE = 1;  // Enable vector fetching from PIE block	
	
	PieCtrlRegs.PIEACK.bit.ACK9 = 1;    // Enables PIE to drive a pulse into the CPU

// The 'TX-Abort' interrupt can be asserted in either of the eCAN interrupt lines
// Comment out the unwanted line...

	PieCtrlRegs.PIEIER9.bit.INTx5 = 1;  // Enable INTx.5 of INT9 (eCAN0INT)
	PieCtrlRegs.PIEIER9.bit.INTx6 = 1;  // Enable INTx.6 of INT9 (eCAN1INT)
	
/* Configure system interrupts */
	
	IER |= 0x0100;					// Enable INT9 of CPU
	EINT;							// Global enable of interrupts      
    
/* Begin transmitting */

     ECanaShadow.CANTRS.all = 0;			// Set TRS bit for mailboxes 29 and 15
     ECanaShadow.CANTRS.bit.TRS29 = 1;    // MBX 29 will be transmitted first, since the ID
     ECanaShadow.CANTRS.bit.TRS15 = 1;    // is numerically higher...
     ECanaRegs.CANTRS.all = ECanaShadow.CANTRS.all;
     
     ECanaShadow.CANTRR.all = 0; 			// MBX 15 will not be transmitted.
     ECanaShadow.CANTRR.bit.TRR15 = 1;     	// Reset mailbox 15
     ECanaRegs.CANTRR.all = ECanaShadow.CANTRR.all; 
             
     while(ECanaRegs.CANTA.bit.TA29 == 0 ) {}  // Wait for TA29 bit to be set..
     
     ECanaShadow.CANTA.all = 0; 			  // See Note 1
     ECanaShadow.CANTA.bit.TA29 = 1;		  // Clear TA29     
     ECanaRegs.CANTA.all = ECanaShadow.CANTA.all;       
    
 	 asm("     ESTOP0");
}

/* --------------------------------------------------- */
/* ISR for PIE INT9.5                          */
/* Connected to HECC0-INTA  eCAN                       */
/* ----------------------------------------------------*/

interrupt void eCAN0INT_ISR(void)  // eCAN
{
   ECanaShadow.CANAA.all = ECanaRegs.CANAA.all ;  // Copy AA reg for inspection
   ECanaShadow.CANGIF0.all = ECanaRegs.CANGIF0.all; // Copy GIF0 reg for inspection
   ECanaShadow.CANGIF1.all = ECanaRegs.CANGIF1.all; // Copy GIF1 reg for inspection
   
   asm (" NOP");									 // Useful to set a BP for reg exam

// Clear AA15 and hence AAIF0
	ECanaShadow.CANAA.all = 0;
	ECanaShadow.CANAA.bit.AA15 = 1;
	ECanaRegs.CANAA.all = ECanaShadow.CANAA.all;
   
   // Re-enable core interrupts and CAN int from PIE module
   PieCtrlRegs.PIEACK.bit.ACK9 = 1;    // Enables PIE to drive a pulse into the CPU
   IER |= 0x0100;					 // Enable INT9 
   EINT;
   int0count++;
   return;
}

/* --------------------------------------------------- */
/* ISR for PIE INT9.6                           */
/* Connected to HECC1-INTA  eCAN                       */
/* ----------------------------------------------------*/

interrupt void eCAN1INT_ISR(void)  // eCAN
{
   ECanaShadow.CANAA.all = ECanaRegs.CANAA.all ;  // Copy TOS reg for inspection
   ECanaShadow.CANGIF0.all = ECanaRegs.CANGIF0.all; // Copy GIF0 reg for inspection
   ECanaShadow.CANGIF1.all = ECanaRegs.CANGIF1.all; // Copy GIF1 reg for inspection  
   
	// Clear AA15 and hence AAIF1
	ECanaShadow.CANAA.all = 0;
	ECanaShadow.CANAA.bit.AA15 = 1;
	ECanaRegs.CANAA.all = ECanaShadow.CANAA.all;
   
   // Re-enable core interrupts and CAN int from PIE module
   PieCtrlRegs.PIEACK.bit.ACK9 = 1;    // Enables PIE to drive a pulse into the CPU
   IER |= 0x0100;					 // Enable INT9 
   EINT;
   int1count++;
   return;
}

/* 
Note 1: Initialize the "shadow-TA register" to zero before setting any bit(s)
in order to clear it (them) in the TA register. Otherwise, some other TAn bit(s)
that is (are) set could be inadvertently cleared.

Note 2: AAIFn bit in GIFn register is cleared by clearing the set AAn bit.
It cannot be cleared by writing a 1 to AAIFn bit. 

CANalyzer configuration file: 1M80spRx.cfg
*/ 


   




?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产一区二区a毛片| 国产精一区二区三区| www.欧美亚洲| 国产精品蜜臀av| 99精品黄色片免费大全| 日本一区二区三区在线观看| 成人免费毛片aaaaa**| 中文字幕亚洲综合久久菠萝蜜| 成人av电影免费观看| 一区二区在线观看视频| 欧美日韩精品是欧美日韩精品| 视频一区在线播放| 欧美大肚乱孕交hd孕妇| 成人精品视频一区二区三区| 日韩一区中文字幕| 91麻豆精品国产综合久久久久久 | 色偷偷久久人人79超碰人人澡| 亚洲欧洲精品一区二区三区不卡| 在线观看日韩国产| 精品一区二区国语对白| 亚洲精品国产a| 久久九九久久九九| 欧美久久久久中文字幕| 国产成人亚洲精品狼色在线| 天天色综合天天| 成人欧美一区二区三区视频网页 | 91福利视频网站| 成人sese在线| 97久久人人超碰| 91激情在线视频| 91在线高清观看| 国产精品久久久一区麻豆最新章节| 欧洲av一区二区嗯嗯嗯啊| 国产精品欧美一级免费| 91婷婷韩国欧美一区二区| 欧美视频一区二区三区| 日韩视频免费观看高清在线视频| 欧美一区二区成人| 国产偷国产偷亚洲高清人白洁| 欧美激情综合网| 2023国产精华国产精品| 奇米888四色在线精品| 国产人妖乱国产精品人妖| 国产不卡高清在线观看视频| 亚洲精品国产一区二区三区四区在线 | 久久99精品国产麻豆婷婷洗澡| 日本vs亚洲vs韩国一区三区二区| 久久精品国产**网站演员| 国产夫妻精品视频| 波多野结衣的一区二区三区| 色婷婷久久综合| 欧美va在线播放| 亚洲综合男人的天堂| 精品一二三四区| 欧美日韩国产精品自在自线| 日本一区二区三区久久久久久久久不| 亚洲色图欧美偷拍| 亚洲欧美一区二区视频| 日本aⅴ亚洲精品中文乱码| 风间由美一区二区三区在线观看| 精品视频一区二区不卡| 亚洲人成在线播放网站岛国| 蜜桃精品在线观看| 在线亚洲欧美专区二区| 中文字幕不卡在线观看| 久久 天天综合| 欧美人狂配大交3d怪物一区| 欧美二区三区的天堂| 自拍偷拍亚洲欧美日韩| 亚洲免费看黄网站| 国产精品视频一二三| 亚洲视频在线观看一区| 一区二区三区国产| 秋霞午夜鲁丝一区二区老狼| 亚洲成人激情自拍| 日韩中文字幕91| 蜜臀va亚洲va欧美va天堂| 国产91清纯白嫩初高中在线观看| 国产aⅴ综合色| 欧美人体做爰大胆视频| 国产精品久久久久永久免费观看| 亚洲激情五月婷婷| 亚洲自拍与偷拍| 一区二区三区在线视频观看| 日韩福利电影在线观看| 亚洲精品国产视频| 亚洲欧美韩国综合色| 国产欧美精品一区二区色综合| 日本高清视频一区二区| 欧美一区二区三区免费视频| 国产精品二三区| 国产女人水真多18毛片18精品视频| 久久男人中文字幕资源站| 亚洲一区二区三区国产| av资源网一区| 国产一区不卡在线| 欧美刺激脚交jootjob| 日韩精品成人一区二区三区| 欧美日韩一区二区三区高清 | 久久久综合精品| 国产成人久久精品77777最新版本| 国产精品888| 中文字幕第一区第二区| 日韩电影免费在线| 欧美猛男超大videosgay| 国产精品久久久久久久久晋中| 不卡一二三区首页| 亚洲成av人片在线| 亚洲人成影院在线观看| 日韩亚洲欧美一区| 欧美视频中文一区二区三区在线观看| 蜜桃视频在线观看一区| 亚洲午夜国产一区99re久久| 国产日产欧产精品推荐色| 日韩午夜电影av| 欧美久久久久久久久| 91黄色免费网站| 色欧美片视频在线观看| 成人高清免费在线播放| 国产成人精品在线看| 韩国av一区二区| 五月婷婷另类国产| 亚洲第一主播视频| 亚洲一区二区三区四区在线免费观看| 欧美激情综合五月色丁香小说| 久久久久国产精品麻豆ai换脸| 日韩欧美国产成人一区二区| 欧美一区二区黄| 欧美丰满一区二区免费视频| 制服丝袜日韩国产| 欧美电影免费观看完整版| 欧美精品一区二| 国产欧美日韩精品一区| 国产精品国产三级国产| 亚洲欧美日韩电影| 亚洲午夜精品17c| 91尤物视频在线观看| 青青草原综合久久大伊人精品优势| 麻豆精品一区二区av白丝在线| 美女诱惑一区二区| 亚洲欧美偷拍三级| 26uuu久久综合| 日韩精品一区二区三区视频在线观看| 欧美中文字幕一二三区视频| 成人av在线影院| 成人18视频在线播放| 成人夜色视频网站在线观看| 欧美无乱码久久久免费午夜一区| 国产成人亚洲精品青草天美| 青娱乐精品视频| 亚洲欧美中日韩| 国产精品伦理在线| www.欧美精品一二区| 午夜精品久久久久久久久| 欧美aⅴ一区二区三区视频| 亚洲欧洲日韩在线| 国产亚洲精品免费| 亚洲国产精品99久久久久久久久 | 成人永久看片免费视频天堂| 久久精品国产一区二区| 麻豆成人久久精品二区三区小说| 国产一区二区三区黄视频| 色爱区综合激月婷婷| 欧美日韩亚洲国产综合| 欧美不卡一区二区三区| 国产精品嫩草影院av蜜臀| 一区二区三区在线不卡| 日本大胆欧美人术艺术动态| 国产精品一区二区无线| 日本道精品一区二区三区| 日韩欧美中文字幕公布| 最新高清无码专区| 另类中文字幕网| 精品视频在线免费观看| 国产欧美中文在线| 亚洲精选一二三| 国产毛片一区二区| 色婷婷av一区二区三区大白胸 | 国产精品每日更新| 亚洲一区自拍偷拍| 国产欧美日韩另类视频免费观看| 国产日韩欧美在线一区| 午夜视频在线观看一区| 国产美女在线精品| 色综合欧美在线视频区| 欧美无砖砖区免费| 欧美一区二区三区系列电影| 精品国产露脸精彩对白| 亚洲精选视频在线| 国产大片一区二区| 精品美女一区二区三区| 亚洲福利视频一区| 一本一道久久a久久精品| 亚洲人成网站影音先锋播放| 麻豆视频一区二区| 国产激情一区二区三区| 色综合欧美在线| 99久久精品免费精品国产| 成人妖精视频yjsp地址| www.一区二区|