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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? txabort.c

?? 2812的CAN通訊源代碼,需要的朋友請(qǐng)下載試用
?? C
字號(hào):
/*********************************************************************
* 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
*/ 


   




?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区产品免费精品久久75| 欧美精品18+| 一区二区三区在线观看动漫| 欧美军同video69gay| 成人午夜又粗又硬又大| 亚洲国产日韩综合久久精品| 欧美激情一区在线| 欧美精品高清视频| 91亚洲精华国产精华精华液| 捆绑调教美女网站视频一区| 亚洲色图视频免费播放| 久久亚洲精品小早川怜子| 欧美视频第二页| av在线不卡观看免费观看| 麻豆成人综合网| 亚洲最大成人综合| 亚洲欧美在线观看| 国产亚洲综合性久久久影院| 欧美一级日韩免费不卡| 日本大香伊一区二区三区| 成人久久18免费网站麻豆| 久久99精品久久久| 奇米一区二区三区| 亚洲一二三专区| 亚洲男人天堂av| 国产精品久久久久影视| 久久久精品欧美丰满| 精品日韩一区二区| 欧美一区二区三区四区久久| 欧美在线一区二区| 91高清视频免费看| 日本久久精品电影| 91亚洲永久精品| 99国产精品国产精品久久| 国产a精品视频| 成人伦理片在线| 成人晚上爱看视频| 欧美成人乱码一区二区三区| 欧美体内she精视频| 91国内精品野花午夜精品| 91亚洲资源网| 91在线观看下载| 91免费看片在线观看| 92精品国产成人观看免费| www.性欧美| 91在线国产观看| 色老头久久综合| 欧美日韩中字一区| 欧美日韩国产精选| 欧美一级免费大片| 精品国产免费久久| 国产亚洲综合色| 中文乱码免费一区二区| 1区2区3区欧美| 一片黄亚洲嫩模| 午夜精品久久久久久久蜜桃app| 亚洲国产精品尤物yw在线观看| 99久免费精品视频在线观看| 成人黄色一级视频| 色综合久久99| 欧美日韩国产a| 欧美成人一区二区三区片免费| 久久先锋影音av鲁色资源| 国产日韩成人精品| 综合激情网...| 偷拍与自拍一区| 精品一区二区三区在线播放| 成人自拍视频在线观看| 色狠狠综合天天综合综合| 欧美福利一区二区| 久久看人人爽人人| 亚洲人成在线播放网站岛国| 亚洲第一福利视频在线| 久久99精品国产麻豆婷婷 | 自拍偷拍国产精品| 亚洲国产日日夜夜| 激情深爱一区二区| 91免费视频网| 日韩一级大片在线观看| 国产农村妇女毛片精品久久麻豆 | 亚洲成av人在线观看| 久久精品国产99国产| 成人av先锋影音| 在线电影欧美成精品| 久久久久国产一区二区三区四区| 亚洲欧美综合另类在线卡通| 首页国产欧美日韩丝袜| 国产成人高清视频| 欧美久久一二三四区| 国产清纯白嫩初高生在线观看91 | 亚洲精品免费在线播放| 欧美aaa在线| www.66久久| 日韩三级在线观看| 亚洲柠檬福利资源导航| 激情都市一区二区| 欧美性xxxxxxxx| 国产精品视频观看| 看电影不卡的网站| 在线区一区二视频| 国产日产精品1区| 在线视频国产一区| 欧美国产97人人爽人人喊| 日韩主播视频在线| 色老汉一区二区三区| 国产欧美日韩卡一| 蜜桃精品在线观看| 欧美色图第一页| 日韩美女久久久| 国产一区二区在线看| 欧美乱妇一区二区三区不卡视频| 国产精品久久久久一区二区三区 | 丁香亚洲综合激情啪啪综合| 91麻豆精品国产91久久久久 | 国产欧美一区二区精品久导航 | 免费成人av资源网| 在线观看日韩毛片| 中文字幕不卡在线观看| 国产在线一区二区| 欧美一区二区三区四区五区| 亚洲v日本v欧美v久久精品| 97精品国产露脸对白| 久久久不卡网国产精品一区| 蜜桃传媒麻豆第一区在线观看| 欧美三级蜜桃2在线观看| 亚洲老妇xxxxxx| aaa欧美日韩| 国产精品少妇自拍| 国产精品亚洲人在线观看| 精品日韩在线一区| 精品一区在线看| 欧美大尺度电影在线| 美女网站色91| 欧美在线播放高清精品| 一本高清dvd不卡在线观看| 国产精品不卡一区| 一区二区三区小说| 色综合久久99| 亚洲裸体xxx| 91浏览器入口在线观看| 亚洲三级久久久| 日本高清成人免费播放| 亚洲精品一二三四区| 欧美影视一区在线| 日韩精品电影在线| 欧美mv和日韩mv国产网站| 精品制服美女久久| 国产婷婷色一区二区三区在线| 欧美精品粉嫩高潮一区二区| 日韩精品一级二级| 欧美大片一区二区| 国产老女人精品毛片久久| 国产色婷婷亚洲99精品小说| 国产成人精品亚洲午夜麻豆| 中文字幕精品一区| 91麻豆高清视频| 午夜一区二区三区在线观看| 欧美日韩国产高清一区二区| 日韩成人精品视频| 久久综合色天天久久综合图片| 国产成人午夜高潮毛片| 国产精品国产成人国产三级| 91黄色免费版| 日本一道高清亚洲日美韩| 国产成人在线视频网站| 欧美精品欧美精品系列| 91.xcao| 国产精品欧美一区喷水| 一本色道久久综合亚洲91 | 色狠狠av一区二区三区| 三级亚洲高清视频| 久久色成人在线| 91视频免费播放| 天堂va蜜桃一区二区三区漫画版 | 亚洲三级在线免费观看| 欧美日韩免费视频| 国内精品国产成人国产三级粉色 | 激情久久五月天| 亚洲三级小视频| 日韩欧美国产1| 99久久精品一区二区| 日韩精品免费视频人成| 日本一区二区在线不卡| 欧美午夜精品久久久久久孕妇 | 国产精品美女久久久久久2018| 色欧美乱欧美15图片| 国产精品久线在线观看| 亚洲va欧美va天堂v国产综合| 成人免费观看视频| 亚洲国产综合视频在线观看| 日韩精品自拍偷拍| 99久久婷婷国产综合精品| 日本美女一区二区| 日韩码欧中文字| 久久综合网色—综合色88| 欧美中文字幕久久| 国产成a人无v码亚洲福利| 日韩精品亚洲专区| 中文字幕综合网| 国产性做久久久久久|