这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » 大家帮我看看这段程序有什么问题?

共2条 1/1 1 跳转至

大家帮我看看这段程序有什么问题?

院士
2006-09-17 18:14:16     打赏
大家帮我看看这段程序有什么问题?



关键词: 大家     帮我     看看     这段     程序     什么     问题    

院士
2006-12-22 22:43:00     打赏
2楼
问 #include "MSP430x13x.h"
void main(void)
{
unsigned int i;
WDTCTL=WDTPW+WDTHOLD;
BCSCTL1 &= ~XT2OFF; // XT2= HF XTAL
do
{
IFG1 &= ~OFIFG; // Clear OSCFault flag
for (i = 0xFF; i > 0; i--); // Time for flag to set
}
while ((IFG1 & OFIFG)); // OSCFault flag still set?

BCSCTL2 |= SELM_2+SELS; // MCLK= XT2 (safe)//FLL_CTL0 =XCAP14PF;
TBCTL=TBSSEL_2 |ID_3 |TBCLR;
TBCCR0=18000-1;
//TBCL0=18000-1;
TBCCTL1=OUTMOD_7;
TBCCR1=9000;
//TBCL1=9000;
TBCCTL2=OUTMOD_7;
TBCCR2=9000;
//TBCL2=9000;
P4DIR|=0x06;//4.1 4.2输出正弦波
P4SEL|=0x06;
TBCTL|=MC0;
for (;;); // Do nothing
} 1: 求各位大侠帮帮忙。 2: #define R_senson BIT2 //P3.3
#define R_ref BIT0 //P2.0
/************************************************************/
unsigned int sample_adc_ref(void) //测试t_off time
{
unsigned int early=0,time=0;
temp_init();
P2DIR |= BIT0; //P2.0输出
//P2OUT &= ~BIT0; //p2.0输出0
//delay(100); //延时1ms(清空电荷)
P2OUT |=BIT0; //开始充电
delay(2000); //充电5ms
P2DIR &= ~BIT0; //P2.0进入高阻态
//CACTL1|=CAON; //开比较器
//delay(100); //等待比较器稳定
TACCTL1|=CCIE + CAP + CM_2 + CCIS_1; //开捕获功能
early=TACCR1=TAR; //初始直
P2OUT&=~BIT0; //ref放电
_BIS_SR(LPM3_bits);
if(x_time<early)time=32768+x_time-early;
time=x_time-early;
P2DIR &= ~BIT0; //P2.0进入高阻态
CACTL1 =0;
x_time=0;
return(time);
}
/*********************************************************/
unsigned int sample_adc_s(void)
{
unsigned int early,time;
temp_init();
P3DIR |= BIT2; //P3.3输出
//P3OUT &= ~BIT2; //p3.3输出0
//delay(100); //延时1ms(清空电荷)
P3OUT |=BIT2; //开始充电
delay(2000); //充电5ms
P3DIR &= ~BIT2; //P3.3进入高阻态
//CACTL1|=CAON; //开比较器
//delay(100); //等待比较器稳定
TACCTL1|=CCIE + CAP + CM_2 + CCIS_1; //开捕获功能
early=TACCR1=TAR; //初始直
P3OUT&=~BIT2; //sen放电
_BIS_SR(LPM3_bits);
if(x_time<early)time=32768+x_time-early;
time=x_time-early;
P3DIR &= ~BIT2; //P3.3进入高阻态
CACTL1=0;
x_time=0;
return(time);
}
/*******************************************************/
void temp_init(void)
{
CACTL1 |= CAON + CARSEL + CAREF_1; //Setup Comparater
CACTL2 |= P2CA0;
}
/**********************************************************/
#pragma vector=TIMERA0_VECTOR
__interrupt void ISR_TA0(void) //定时器中断//
{
clear_watchdog();
TACCR0 += 32768;
TACCTL0 &=~CCIFG;
date_cal();
flag |= meas_flag;
//_BIC_SR_IRQ(LPM3_bits);
}
/**********************************************************/
#pragma vector=TIMERA1_VECTOR
__interrupt void ISR_T1(void) //捕获中断//
{
if(CCIFG!=0)x_time=TACCR1;
TACCTL1=0;
_BIC_SR_IRQ(LPM3_bits);
}
/**********************************************************/
P2DIR|=BIT0; //定义P2.0为输出
P3DIR|=BIT2; //定义P3.3为输出
P1SEL|=BIT6+BIT7; //定义P1.6和P1.7为外部功能
P1IE = BIT0;
P1IES = BIT0;
P1IFG &= 0;
TACTL =TASSEL_1 + ID_0+TACLR; //Setup Timer_A
TACCR0 = 32768;
TACCTL0=CCIE;
TACTL |=MC_2;

芯片F435


请各位帮忙看看有什么问题,放电时间采集不到,谢谢,急 3: 好像没有什么问题吧
跟例程上的差不多吧
只不过p4.2~p4.3输出的是方波吧?

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]