用 IAR 编译msp430 单片机,中断一直无法通过怎么回事
#include"io430.h"#include"msp430g2553.h"unsignedinti;//变量声明voiddelay(){unsignedchari,...
#include "io430.h"#include "msp430g2553.h"
unsigned int i; //变量声明void delay(){ unsigned char i,j; for(i=0;i<200;i++) for(j=0;j<100;j++);}
/*********频率初始化**************/void Fcos_Init(){ // 设置DCO为12MHz BCSCTL1 = CALBC1_8MHZ; DCOCTL = CALDCO_8MHZ; }
/************端口初始化**************/void PORT_Init(){
WDTCTL=WDTPW+WDTHOLD; //关掉看门狗 P1DIR =0XFF; P1OUT=0xFF;}
void zengjishu(){ TACTL = TASSEL0 + TACLR; // 设置定时器A控制寄存器, // TASSEL0=0x0100,选择辅助时钟ACLK, // TACLR=0x0004,清除定时器A计数器 CCTL0 = CCIE; //设置捕获/比较控制寄存器,CCIE=0x0010,使能捕获比较中断 CCR0 =16384; //设置捕获/比较寄存器,初始值为16384,对于32768Hz的频率,相当于0.5s P1DIR |=BIT7; TACTL |= MC0; //设置定时器A控制寄存器,MC0=0x0010,使计数模式为增计数 _EINT(); //使能中断,这是一个C编译器支持的内部过程}
/*
interrupt[TIMERA0_VECTOR] void Timer0_A (void) //定时器A的CC0中断处理程序 //TIMERA0_VECTOR=6*2,等于基地址0xFFE0+12=0xFFEC { P1OUT&=~BIT7; //将P1.7引脚反,就是使发光二极管闪烁}*/
#pragma vector=BASICTIMER_VECTOR __interrupt void basic_timer (void){
P1OUT &=~ BIT7;
}
void main(){ Fcos_Init(); PORT_Init(); //_DINT(); //关中断 //_EINT(); //总中断允许 while(1) { for (i=0;i<50000;i++) { P1OUT|=BIT0; P1OUT&=~BIT2; } for (i=0;i<50000;i++) { P1OUT&=~BIT0; P1OUT|=BIT2; } }} 展开
unsigned int i; //变量声明void delay(){ unsigned char i,j; for(i=0;i<200;i++) for(j=0;j<100;j++);}
/*********频率初始化**************/void Fcos_Init(){ // 设置DCO为12MHz BCSCTL1 = CALBC1_8MHZ; DCOCTL = CALDCO_8MHZ; }
/************端口初始化**************/void PORT_Init(){
WDTCTL=WDTPW+WDTHOLD; //关掉看门狗 P1DIR =0XFF; P1OUT=0xFF;}
void zengjishu(){ TACTL = TASSEL0 + TACLR; // 设置定时器A控制寄存器, // TASSEL0=0x0100,选择辅助时钟ACLK, // TACLR=0x0004,清除定时器A计数器 CCTL0 = CCIE; //设置捕获/比较控制寄存器,CCIE=0x0010,使能捕获比较中断 CCR0 =16384; //设置捕获/比较寄存器,初始值为16384,对于32768Hz的频率,相当于0.5s P1DIR |=BIT7; TACTL |= MC0; //设置定时器A控制寄存器,MC0=0x0010,使计数模式为增计数 _EINT(); //使能中断,这是一个C编译器支持的内部过程}
/*
interrupt[TIMERA0_VECTOR] void Timer0_A (void) //定时器A的CC0中断处理程序 //TIMERA0_VECTOR=6*2,等于基地址0xFFE0+12=0xFFEC { P1OUT&=~BIT7; //将P1.7引脚反,就是使发光二极管闪烁}*/
#pragma vector=BASICTIMER_VECTOR __interrupt void basic_timer (void){
P1OUT &=~ BIT7;
}
void main(){ Fcos_Init(); PORT_Init(); //_DINT(); //关中断 //_EINT(); //总中断允许 while(1) { for (i=0;i<50000;i++) { P1OUT|=BIT0; P1OUT&=~BIT2; } for (i=0;i<50000;i++) { P1OUT&=~BIT0; P1OUT|=BIT2; } }} 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询