This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS/MSP430FR6989:MSP430FR6989

Guru**** 2595805 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/642924/ccs-msp430fr6989-msp430fr6989

部件号:MSP430FR6989

工具/软件:Code Composer Studio

您好! 我正在将汽车计算机作为嵌入式系统项目,并且我正在使用许多外围设备。  它们在独立工作时都能正常工作,但当我将它们放在一个问题中时,有些中断从未发生。 例如,我使用TIVA作为从属设备,当温度达到特定值时,我会向MSP430发送一个字符并打开一个LED。 当我单独尝试时,它是有效的,但当我将它们放入完整的程序时,我没有收到任何东西。  

当我在MSP430中使用ADC时,附加到寄存器的变量值在独立工作时获得该值,但如果我要修改计时器寄存器与电位器位置相关的频率, ADC既不读取该值,也不会使计时器获得正确的值。

所以,我不知道是不是中断问题,是否有特定的配置,还是我应该在main中订购它们。c根据它们 的优先级失败?  

我将粘贴两个程序,第一个程序是主器(MSP430)的主要程序,第二个程序是我控制计时器频率的程序。

/*
*计算机仪表板代码主控
*
这是汽车仪表板计算机的主微控制器的代码
*实施的通信协议使用主控中的UART端口
*以及从属设备, 但这将像CAN总线一样工作,因为它们都具有
*相互通信
*
**使用的内容:
*-UART COM端口2
*-UART COM端口4
*-LCD 4位模式
*-矩阵键盘4x4
*-内部温度传感器
*-用于时钟和日历
的内部RTC *-速度和距离的捕获模式
*-内部按钮
**
2017年11月12日创建
*Gerardo Moreno *//***************************************************


图书馆********************************************************
#include <MSP4S.h>
#include <intrinsics.h>
#include <stdint.h>
#include "driverlib.h"
#include "libraries/lcd.h"
#include "libraries/itoa.h"
#include "libraries/Keypad.h"
#include "libraries/RealTime.h"
#include "libraries/********************************/libraries/****************.h"
#include "********/libraries/****************.h"

常数**************************************************************
#define one_second			800万#define
half_second			800万/2
#define one_millisecond		8000//***************************************************************************

原型**************************************************************
void initgPIO(void);
void initClocks(void);
int verifyDisLife(void);
void initUART(void);
void initADC(void);

//******************************************************************* 变量**************************************************************
uint8_t poterLife =11;
uint8_t potinterTripA =11;
uint8_t potinterTripB =11;
uint16_t counterLife =0 ;
uint16_t counterTripA =0 ;
uint16_t counterTripB =0 ;
uint16_tlastTime =0 ;
uint16_t ADCdistar; Alfar;



外部集成选项计数器;
//************************************************* 非易失性内存中的变量*******************************************************
#pragma persistent (distanceLife)
UINT32_t distanceLife =0;
#pragma persistent (distanceTripA)
UINT32_t distanceTripA =0;
#KLma persistent (distancePragB)
UINT32_t distanceTripB =0;
uint8_t valor;

int main(void){

		
	

	
	
	
	毫秒tctl = WDTpw_initbycles; p_w_tches; pgp_p_done =~pode_timer; p_wcles; p_wcluse_p_wclones; p_wcluse_pode_p_wclus; p_wd> p_wcluse_p_wcluse_pode_pode_
	//initUART();
	//__delay_cycles (one_millisond);
	//initADC();

//	TA1CCTL2 = CM_1 | CCIS_1 |
	

						
							
						
	
	Cursor | CAP | CCIE;// TA1CTL = tassel__ACLK | MC__continuous;initrents();//配置所有外设寄存器的寄存器|
	
	cursor | clcd | clcd lcd lcd lcd lcd l| send life_1;sset;send (set_13" het) lcd_set_13" 0);
	send_string ("km");
	set_cursor (13,1);
	send_string ("km");


	同时(1){
//		ADC12CTL0 |= ADC12ENC | ADC12SC;

		counterLife++;

		IF (counterLife == 508){
			CounterLife =0;
			distanceLife++;
		}
		verifyDisLife();
		Set_Cursor (pointerLife, 0);
		itoa (distanceLife,distanceLifeChar,10);
		send_string(distanceLifeChar);
		readKeyboard();
	}

}//**************************************************************

中断矢量代码******************************************************

//ADC中断向量
#pragma vector = ADC12_Vector
__interrupt void ADC12_ISR(void){
	switch (__偶 数_in_range(ADC12IV, ADC12IV_ADC12RDYIFG))){
	CASE ADC12IV_NONE:
		Break ;// Vector 0:中断CAD12IFF;
	
		CAD12; CADIF; CAD: CAD12; CAD12;
	CADIF: CAD12; CAD: CADIVEC12; CAD: CADIF; CADIF12; CAD: CADIF: CADI; CADI; CADI; CADI; CADI; CADI; CADI; CADI; CADI: CADI; CADIF: CADI; CADIF12; CAST_CADIF12; CAST
		
	
		
	
		//矢量8:ADC12BLO
	CASE ADC12IV_ADC12INIFG:
		中断;//矢量10:ADC12BIN
	CASE ADC12IV_ADC12IFG0: //向量12:ADC12MEM0中断
		ADCValue = ADC12MEM0;
//		IF (ADC12MEM0 >= 0x7ff) // ADC12MEM0 = A1 > 0.5AVcc?
//			P1OUT |= BIT0; // WFP 1.0 = 1
//		else
//			p1out &=~BIT0; //

		
		
		
	
		
	
		矢量1.0 = 0 //从LPM0退出并继续执行main __BIC_SR_REGISTER_ON_EXIT (LPM0_bits);break;Case ADC12IV_ADC12IFG1:Break;// Vector 14:ADC12MEM1 Case ADC12IV_ADC12IFG2:Break;// MEIF16:ADC12M3/ CAMP4
	
		
	
		
	CASE:CADIV
		:CA12:CADIVEC12M12M2/ CADIV:CA12:CADIV:CADIV:CA12 ADC12MEM5
	CASE ADC12IV_ADC12IFG6:
		Break;// Vector 24:ADC12MEM6
	CASE ADC12IV_ADC12IFG7:
		Break;// Vector 26:ADC12MEM7
	CASE ADC12IV_ADC12IFME8:
		Break;// Vector 28:ADC12MEM8
	:ADC1232 CASE:CAMP12
		:CA12:CADIF12
	
		
	
		
	
		ADC12MEM12
	CASE ADC12IV_ADC12IFG13:
		Break;// Vector 38:ADC12MEM13
	CASE ADC12IV_ADC12IFG14:
		Break;// Vector 40:ADC12MEM14
	CASE ADC12IV_ADC12IFG15:
		Break;// Vector ADC1218
	
		
	
		:CAMP12
	
		:ADC1216
	
		ADC12MEM19
	CASE ADC12IV_ADC12IFG20:
		Break;// Vector 52:ADC12MEM20
	CASE ADC12IV_ADC12IFG21:
		Break;// Vector 54:ADC12MEM21
	CASE ADC12IV_ADC12IFG22:
		Break;// CAME56:ADC12MEM22
	:ADC12DIVector ADC1224/
		
	
		
	
		
	CASE:ADC1224: CAMP12DIVector ADC1224/ CAMP1224: ADC12DIVector ADC1224: CAMP12
		ADC12MEM26
	CASE ADC12IV_ADC12IFG27:
		Break;// Vector 66:ADC12MEM27
	CASE ADC12IV_ADC12IFG28:
		Break;// Vector 68:ADC12MEM28
	CASE ADC12IV_ADC12IFG29:
		Break;// Vector 70:ADC12MEM29
	:ADC1231 CAMP12
		
	
		
	
		
	:ADC1231 CAMP12:ADC12IDIV:CADIV CADIV:ADC12IDIV:CADIV:ADC1274 CADIV:ADC12IDIV:CADIV CADIV:ADC1231/ ADC1231/ ADC12IDIV:ADC12IDIV CADIV:CADIV CADIV:ADC12IDIV:ADC12IDIV
		
	
}

UART中断向量
#pragma vector=USI_A0_vector
__interrupt void USI_A0_ISR(void){
	switch (__偶 数_in_range(UCA0IV, USI_UART_UCTXCPTIF)){
	Case USI_NONE:
		Break;
	Case USI_OUT_UCROUT_UCRXIFG:
		while (!(UCA0_CAF;0
			
		
		
		
			=
			0 =
			0;CA0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0;0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 =
		
			
			
			
		
			P1OUT |= 0x01;
			P9OUT |= 0x00;
			中断;
		案例'd':
			P1OUT &=~BIT0;
			P9OUT &=~BIT7;
			中断;

		}__NO_OPEX()
		;
		中断;
	CASE USI_UART_UCTXIFG:
		Break;
	CASE USI_UART_UCSTIFG:
		Break;
	
		
	}//timer

中断向量
#pragma矢量= Timer1_A1_Vector
__interrupt Timer1_A1_RTC(void){
	counterLife =(TA1CCR1/CR_ISR_
	

vector/}/TC1void
/TC1_ rfime/}_TC1_

	

	


功能区***************************************************************************************************

void initGPIO (void){//configure
	pins
	P1DIR || 0x00, P1OUT = 0xFF, P1REN || 0xFF;
	P1SEL0 || BIT0;
	P1SEL1 || BIT0;
	P2DIR || 0xFF,P2OUT = 0x00;
	P3DIR || 0xFF,P3OUT = 0x00;
	P4DIR || 0xFF, P4OUT = 0x00;
	P5DIR || 0xFF,P5OUT = 0x00;
	P6DIR || 0xFF,P6OUT = 0x00;
	P7DIR || 0xFF,P7OUT = 0x00;
	P8DIR || 0xFF,P8OUT = 0x00;
	P9DIR || 0x3F, P9OUT = 0x00;
	P10DIR || 0xFF,P10OUT = 0x00;

	P1SEL0 || BIT3;
	P1SEL1 || BIT3;
	P2SEL0 |= BIT0 | BIL1;		//WFP配置UART/WFP 2.0 2.1 AS模式
	P2SEL1 |= BIT0 | BIT1;
	P9SEL1 |= BIT6; //配置
	




	
	
	
	
	ADC P9SEL0的IVA 1.1 |= BIT6;} void initClocks(void){//配置时钟CSCTL0_H = CSCKEY>> 8; CSCTL1 = DCOFsel_3| DCORSEL;CSCTL2 =__LFXTCLK | DISC__DCOCLK | SELM_1_ DSC1_
	


Int verifyDisLife(void){
	IF ((distanceLife >=10)&&(distanceLife <100)){
		poterLife =10;
	} ELSE IF ((distanceLife >=100)&&(distanceLife <1000)){
		poterLife =9;
	} ELSE IF ((distanceLife >=1000)&(distanceLife <1万))}
		
	否则,如果((distanceLife >= 1万)&&(distanceLife < 10万)){
		pointerLife =7;
	}否则,如果((distanceLife >= 10万)&&(distanceLife < 100万)){
		pointerLife =6;
	} else {
		__no_operation()
	
	
;}返回pointerLife;

LWvoid initWCTST (void){
	UCA0; //将eUSCI置于RESET
	UCA0CTLW0 |= UCSSEL__SMCLK;
	UCA0BR0 =52; // 8万/16/9600
	UCA0BR19600 UCA0BR1 = 0x00;
	UCA0MCTLW || UCOS16 | UCBRF_1 | 0x4900;
	UCA0CTLW0 &=~UCSWRST; //初始化eUSCI
	UCA0IE |= UCRXIE;//启用USI_A0 RX中断 //启用USI_A0 RX中断
}

void initADC(void){
	ADC12CTL0 = ADC12SHT0_2 | ADC12ON;
	ADC12CTL1 = ADC12SHP; // ADCCLK = MODOSC;采样计时器
	ADC12CTL2 |= ADC12RES_2; // 12位转换结果
	ADC12IER0 |= ADC12IE0; //启用ADC转换完成中断
	ADC12MCTL0 |= ADC12INCH_14;
	While (!(REFCTL0 & REFGENRDY));
}

void modeOption(void){
	switch (optionCounter){
	Case 0:
		Set_Cursor (0, 1);
		send_string("Trip A:");
		break;
	Case 1,
		Set_Cursor 0: 1);
		send_string ("行程B:");
		break;
	case 2:
		set_cursor (0,1);
		send_string ("time:");
		break;
	case 3:
		set_cursor (0,1);
		send_string ("Temp:");
		set_cursor (12,1);
		send_string("°C");
		break;

	}

第二个问题:

/*--版权--,BSD_EX

//********************************************************************************************************
#include <MSP430-h>

int showValADC;

int main (void){
	WDTCTL = WDTPW | WDTHOLD; //停止WDT

	//配置GPIO
	P1DIR || BIT3;
	P1OUT || BIT3;

	P9SEL1 || BIT6; //为8.4 ADC
	P9SEL0 |= BIT6;

	CSCTL0_H = CSCKEY >> 8;
	CSCTL1 = DCOFSEL_3 | DCORSEL;
	CSCTL2 = LAST__LFSTCLK | SELS__DCOCLK | SELM__DCODICLK;
	CSCTL3 = DCOTL3 = DSCTL1 = 12 =
	

	12;12 = C0 = 12 = 12 = 0;12 = 12 = 0 = 0 = 0;12 = 0 = 0 = 0 = 0 = 0 = 0 //采样时间,S&H=16,
	ADC12CTL1上的ADC12 = ADC12SHP | ADC12SSEL_2; //使用采样计时器
	ADC12CTL2 || ADC12RES_2; // 12位转换结果
	ADC12MCTL0 |= ADC12INCH_14 |~(ADC12DIF); // A1 ADC输入选择;Vref=AVCC
	ADC12IER0 |= ADC12IE0; //启用ADC转换完全中断

	//禁用GPIO通电默认高阻抗模式以激活
	//先前配置的端口设置
	PM5CTL0 &=~LOCKLPPM5;

	TA0CCTL0 = CCIE; // TACR0中断已启用
	TA0CCR0 =3999;
	TA0CTL = tassel__SMCLK | MC__UP; // SMCLK,运行模式

	同时(1){
		__DELAY_CYCLES (5000);
		ADC12CTL0 |= ADC12ENC | ADC12SC;//开始采样/转换
		TA0CCR0 =(showValADC * 3999)/4095;
		__bis_sr_register (LPM0_bits)| GIE);// lPM_modation
		,ADC12_ISR0,操作将退出 //用于调试器
	}

//

Timer0_A0中断服务例程
#if defined(__TI_Compiler_version__)|| defined(__IAR_systems_icc__)
#pragma vector = TIMER0_ISR_vector
__interrupt void Timer0_A0_ISR(void)
#Elif defined(____G_GA0_)
void _attribute_imer0_imer0_imer0)


#endif
{
	P1OUT ^= BIT3;
}

#pragma vector = ADC12_Vector
__interrupt void ADC12_ISR(void){
	SWITCH (__偶 数_in_range(ADC12IV, ADC12IV_ADC12OVIFG)){
	CASE ADC12IV_NONE:
		中断;//
	
		
	
		
	中断CADIF0:中断CADIVEC12:中断CADIVEC; CADIVEC12:中断CADIVEC; CADIF:中断CADIVEC12; CADIVEC12:中断CADIVEC12; CADIVEC12:中断CADIVEC; CADIVEC; CADIVEC12; CADIVEC12:中断CADIVEC:中断CADIVEC; CADIVEC
		ADC12BHI
	案例ADC12IV_ADC12LOIFG:
		中断;//向量8:ADC12BLO
	案例ADC12IV_ADC12INIFG:
		中断;//向量10:ADC12BIN
	案例ADC12IV_ADC12IFG0: //向量12:ADC12MEM0中断
		显示值ADC = ADC12MEM0;
//		IF (ADC12MEM0 >= 0x7ff) // ADC12MEM0 = A1 > 0.5AVcc?
//			P1OUT |= BIT0; // WFP 1.0 = 1
//		else
//			p1out &=~BIT0; //

		
		
		
	
		
	
		矢量1.0 = 0 //从LPM0退出并继续执行main __BIC_SR_REGISTER_ON_EXIT (LPM0_bits);break;Case ADC12IV_ADC12IFG1:Break;// Vector 14:ADC12MEM1 Case ADC12IV_ADC12IFG2:Break;// MEIF16:ADC12M3/ CAMP4
	
		
	
		
	CASE:CADIV
		:CA12:CADIVEC12M12M2/ CADIV:CA12:CADIV:CADIV:CA12 ADC12MEM5
	CASE ADC12IV_ADC12IFG6:
		Break;// Vector 24:ADC12MEM6
	CASE ADC12IV_ADC12IFG7:
		Break;// Vector 26:ADC12MEM7
	CASE ADC12IV_ADC12IFME8:
		Break;// Vector 28:ADC12MEM8
	:ADC1232 CASE:CAMP12
		:CA12:CADIF12
	
		
	
		
	
		ADC12MEM12
	CASE ADC12IV_ADC12IFG13:
		Break;// Vector 38:ADC12MEM13
	CASE ADC12IV_ADC12IFG14:
		Break;// Vector 40:ADC12MEM14
	CASE ADC12IV_ADC12IFG15:
		Break;// Vector ADC1218
	
		
	
		:CAMP12
	
		:ADC1216
	
		ADC12MEM19
	CASE ADC12IV_ADC12IFG20:
		Break;// Vector 52:ADC12MEM20
	CASE ADC12IV_ADC12IFG21:
		Break;// Vector 54:ADC12MEM21
	CASE ADC12IV_ADC12IFG22:
		Break;// CAME56:ADC12MEM22
	:ADC12DIVector ADC1224/
		
	
		
	
		
	CASE:ADC1224: CAMP12DIVector ADC1224/ CAMP1224: ADC12DIVector ADC1224: CAMP12
		ADC12MEM26
	CASE ADC12IV_ADC12IFG27:
		Break;// Vector 66:ADC12MEM27
	CASE ADC12IV_ADC12IFG28:
		Break;// Vector 68:ADC12MEM28
	CASE ADC12IV_ADC12IFG29:
		Break;// CASE:ADC12EC1276 CAMEM29:
	
		
	
		
	
		CAMP12
	:ADC1231 CAMEDIV
		
	
:CADIV:CADIV:CADIV CADIV:ADC1231/ ADC1274 CADIV:CADIV:CADIV:CADIV:ADC12DIV CADIV:CADIV:CADIV:ADC12IDIV:ADC12IDIV:CADIV:CADIV CA12

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在第一个程序中,我根本看不到启用了中断(GIE)。 此外,ADCValue和CounterLife应该被宣布为"易失性"。CounterLife在ISR和main()中都写着,所以谁知道你最终会得到什么值。

    在第二个程序中,showValADC应声明为"volate"。 另外,请在LPM0之后阅读,而不是之前。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢! 它很有效。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你能帮我用这个代码吗,我用定时器让ADC工作,但我想使用WFP 3.7 的捕获模式,它的数据表显示它使用0.3 TB,我认为我的代码是正确的,但我的阵列只显示为0。 我正在尝试测量使用定时器A生成的频率,并在"频率"上显示值,但正如我所说,数组显示为0。 使用ACLK作为输入时,捕获模式的代码工作正常,但我想使用Pin WFP 3.7

    还有一个问题,我不太理解CCIS注册,我的意思是,它说:CCIxA,CCIxB,Vcc,GND,这意味着什么

    #include <MSP40.0.h>
    #include <math.h>
    #include <float.h>
    
    volatile unsigned int showValADC =0;
    volatile unsigned char value已接收;
    unsigned int verifyValue =0;
    
    #define number_timer_ceps 20
    
    volatile unsigned int timerAcapureValues[number_timer_capturs];
    unsigned int timerAcapurePointer =0;
    float frequency =0;
    float period =0;
    
    int main(void){
    	WDTCTL = WDTPW | WDTHOLD; //停止WDT
    
    	//配置GPIO
    	P1DIR || BIT3;
    	P1OUT || BIT3;
    
    	P3SEL1 || BIT7;
    	P3SEL0 || BIT7;
    
    	P9SEL1 || BIT6;
    	P9SEL0 |= BIT6;
    
    	PM5CTL0 &=~LOCKLPM5;
    
    	CSCTL0_H = CSCKEY >> 8;
    	CSCTL1 = DCOFsel_3 | DCORSEL;
    	CSCTL2 = LAST__LFTCLK | SELS__DCOCLK | SEON__DCOCL3 = DCOCL1
    	
    	
    
    
    
    	;CSCTL0 = 12 //采样时间,S&H=16,
    	ADC12CTL1上的ADC12 = ADC12SHP; //使用采样计时器
    	ADC12CTL2 || ADC12RES_2; // 12位转换结果
    	ADC12MCTL0 |= ADC12INCH_14; // A1 ADC输入选择;Vref=AVCC
    	ADC12IER0 |= ADC12IE0; //启用ADC转换完成中断
    
    	TB0CCTL3 = CM_2 | CCIS_1 | SCS | CAP | CCIE;
    	TB0CTL = tassel__SMCLK | MC__UP;
    
    	TA0CCTL0 = CCIE; // TACR0中断启用
    	TA0CCR0 = 4万;
    	TA0CTL = tassel__SMCLK | MC__UP; // SMCLK,UP模式
    
    	__bis_sr_register(GIE);
    	__no_operation();
    
    	while (1){//__delay_cycles(5000)
    		;
    		ADC12CTL0 |= ADC12ENC | ADC12SC;
    		verifyValue = showValues;
    		IF (verifyValue <100){
    			verifyValue=100; capyValue=100;
    		
    		
    		PMtimerfloat =10;PMtimer0=10*, 0.0.0008万
    		
    		ADC12_ISR将强制退出
    	}
    
    
    
    //
    #pragma vector = TIMER0_A0_vector
    __interrupt Timer0_A0_ISR(void){
    	P1OUT ^= BIT3;
    	__BIC_SR_register_on_exit(LPM0_bits);
    
    }
    
    #MEIMMA vector = ADC12_RDIVEC_INTERRUPT
    CAF12_CADIVEC12:
    	CAMP_CADIVEC_CADIV12CAVEC_CADI_CADIV12CAV12:
    	CADI_CADI_CADIV12CADIV12CAV12:CADI_CADI_CADI_CADIV12CADIVEC_CAV12CAVEC_CADIV12:CADI_CADI_CADIV12
    		
    	
    		
    	
    		Break;// Vector 4:转换时间溢出
    	案例ADC12IV_ADC12HIIFG:
    		Break;// Vector 6:ADC12BHI
    	案例ADC12IV_ADC12LOIFG:
    		Break;// Vector 8:ADC12BLO
    	案例ADC12IV_ADC12INIFG:
    		Break;// IF10:ADC12B12BIN
    	案例:Vector CA12:CADIV: //矢量12:ADC12MEM0中断
    		显示值ADC = ADC12MEM0;
    		__BIC_SR_REGISTER_ON_EXIT (LPM0_bits);
    		中断;
    
    	默认:
    		中断;
    	}
    
    
    #pragma矢量= TIMER0_B0_Vector __INTERSTBIL
    __INDI_STBI_STBIR0_CCTBSTBI_CASE
    
    
    	0EC_CASE:0TB_CASE 0IC_CASE:0TB_CCBIR4_CASE 0TB_CAME_CAME_CAME_0TBBIR40IC_CAME_CAME_CASE 0TB0TBDIV_CASE:0TB_CAME_CASE 0TBBIR4_CAME_CASE 0TBBI_CAME_CAME_CASE 0IC_CASE 0TBBI_CASE 0TBBI_CASE
    	
    		
    	
    		
    	
    		
    		:0TBBI_CASE:0TBBI_CAME_CAME_CAME_CAME_CASE:
    		
    	
    			
    	
    			
    	案例TB0IV_TB0CCR6:
    			中断;
    	案例TB0IV_TB0IFG:
    		中断;
    	默认:
    		中断;
    	}
    
    
    
    
    

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    > P3SEL0 |= BIT7;
    尝试:
    >P3SEL0 &=~BIT7;// WFP 3.7 -> CCI3B

    更广泛地说:有关参考是数据表(SLAS789C)表6-25。 WFP的3.7 条目显示了CCI3B的信息(在这里叫TB0CCI3B?) P3DIR.7应为0,1.7 应为1,P3SEL 0.7 应为0。 我经常检查这些表格,因为我不能在脑海中保留这么多的部分。

    [编辑:修复了表编号中的拼写错误。]