共2条
1/1 1 跳转至页
大家帮我看看这段程序有什么问题?
问
#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输出的是方波吧?
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 跳转至页
回复
| 有奖活动 | |
|---|---|
| 2026年“我要开发板活动”第三季,开始了! | |
| 硬核工程师专属补给计划——填盲盒 | |
| “我踩过的那些坑”主题活动——第002期 | |
| 【EEPW电子工程师创研计划】技术变现通道已开启~ | |
| 发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
| 【EEPW在线】E起听工程师的声音! | |
| 高校联络员开始招募啦!有惊喜!! | |
| 【工程师专属福利】每天30秒,积分轻松拿!EEPW宠粉打卡计划启动! | |
我要赚赏金打赏帖 |
|
|---|---|
| 【分享开发笔记,赚取电动螺丝刀】在音频测试中顺序的调整可改变功效被打赏¥18元 | |
| 【分享开发笔记,赚取电动螺丝刀】点阵显示模块及其应用-----献给新年的小礼物被打赏¥22元 | |
| 基于地奇星开发板的数码管模块显示技术被打赏¥23元 | |
| window下生成compilecommands.json的的方法被打赏¥22元 | |
| 【S32K3XX】GPIO中断配置被打赏¥26元 | |
| 【分享开发笔记,赚取电动螺丝刀】WS2812B的RGB灯介绍以及驱动方法被打赏¥25元 | |
| PTC与NTC功能常规对比被打赏¥14元 | |
| 【S32K3XX】核间通信MU使用被打赏¥27元 | |
| 【分享开发笔记,赚取电动螺丝刀】关于3pin锂电池接口的介绍/使用被打赏¥16元 | |
| 以启明云端ESP32P4开发板实现TF卡读写功能被打赏¥28元 | |
我要赚赏金
