TI中文支持网
TI专业的中文技术问题搜集分享网站

MSP430F5529: MSP430F5529: RTOS TIMER Control

Part Number:MSP430F5529Other Parts Discussed in Thread: SYSBIOS

大家好:

1. 想請問MSP430F5529 在使用RTOS下使否能製作TIMER_A的ISR?

2. MSP430F5529在RTOS下,是否能創造一個3us的timer出來?

3. MSP430F5529在RTOS下是否可以使用 #pragma vector=TIMER1_A0_VECTOR,因為設定後compiler都會顯示錯誤

    (Description Resource Path Location Type symbol "__TI_int59" redefined: first defined in "./main.obj"; ….)

Yale Li:

Hi Zheng Wei Huang,

1. 可以,这个属于硬件中断;

2. 可以,不过取决于您的时钟配置,低速时钟应该是不行的;

3. 我询问下相关工程师后回复您。

,

Zheng Wei Huang:

Hi Yale,

1. 可以,这个属于硬件中断;>>> 請問要怎樣實作,目前沒有找到相關文件說明

2. 可以,不过取决于您的时钟配置,低速时钟应该是不行的  >>> MSP430F5529在TI-RTOS下是使用SMCLK,請問有辦法達到0.3us嗎?

3. 我目前想要在MSP430F5529且使用TI-RTOS下產生下列waveform,請問有辦法做到嗎? 如果可以,要怎麼實作或文件說明呢?

謝謝。

,

Yale Li:

Hi Zheng Wei Huang,

我再询问下相关工程师

,

Yale Li:

Zheng Wei Huang 说:

3. MSP430F5529在RTOS下是否可以使用 #pragma vector=TIMER1_A0_VECTOR,因為設定後compiler都會顯示錯誤

    (Description Resource Path Location Type symbol "__TI_int59" redefined: first defined in "./main.obj"; ….)

有没有尝试使用一下TIMER例程中的格式(如下方所示)去定义TIMER的ISR?

// Timer0 A0 interrupt service routine
#if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)
#pragma vector=TIMER0_A0_VECTOR
__interrupt void TIMER0_A0_ISR(void)
#elif defined(__GNUC__)
void __attribute__ ((interrupt(TIMER0_A0_VECTOR))) TIMER0_A0_ISR (void)
#else
#error Compiler not supported!
#endif
{
P1OUT ^= 0x01; // Toggle P1.0
}

,

Yale Li:

Zheng Wei Huang 说:1. 可以,这个属于硬件中断;>>> 請問要怎樣實作,目前沒有找到相關文件說明

https://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/tirtos/index.html

SDK中有例程,下载链接↑↑↑;

用户指南:spruhu4e_TI-RTOS 2.20 for MSP43x Getting Started Guide

Zheng Wei Huang 说:2. 可以,不过取决于您的时钟配置,低速时钟应该是不行的  >>> MSP430F5529在TI-RTOS下是使用SMCLK,請問有辦法達到0.3us嗎?

时钟信号选择SMCLK是可以的,但是时钟源要选择高速时钟源(比如XT1CLK);

Zheng Wei Huang 说:

3. 我目前想要在MSP430F5529且使用TI-RTOS下產生下列waveform,請問有辦法做到嗎? 如果可以,要怎麼實作或文件說明呢?

如回复1。

如果您哪里还有什么不明白的地方,请告诉我们

,

Zheng Wei Huang:

Hi Yale,

我就是按照這方式去compiler才出現(Description Resource Path Location Type symbol "__TI_int59" redefined: first defined in "./main.obj"; ….)

,

Zheng Wei Huang:

Hi Yale,

MSP430F5529在TI-RTOS下,能否使用PWM+DMA去產生如上的波型?

如果能,該如何實作?

謝謝。

,

Yale Li:

Hi Zheng Wei Huang,

Zheng Wei Huang 说:我就是按照這方式去compiler才出現(Description Resource Path Location Type symbol "__TI_int59" redefined: first defined in "./main.obj"; ….)

跟进过去了;

Zheng Wei Huang 说:MSP430F5529在TI-RTOS下,能否使用PWM+DMA去產生如上的波型?

可以。

SDK中有PWM的例程。

如果您对RTOS不是很熟悉的话,建议不要使用这种方式

,

Zheng Wei Huang:

Hi Yale,

1. 跟进过去了;>>> 這是什麼意思?

2. 我知道一般PWM怎麼去使用,但如何做到可以一直切換duty cycle部分呢?(如我上述波型)

3. 你是指說在RTOS下,不適合使用DMA方式來產生一組可任意修改duty的PWM嗎? 為什麼?

謝謝。

,

Yale Li:

Hi Zheng Wei Huang,

Zheng Wei Huang 说:1. 跟进过去了;>>> 這是什麼意思?

我把您提供的信息跟进给相关的工程师了。

请提供一下您的工程,我们的工程师帮您调试一下;

Zheng Wei Huang 说:2. 我知道一般PWM怎麼去使用,但如何做到可以一直切換duty cycle部分呢?(如我上述波型)

有关DMA-PWM我需要再看一下相关的部分后回复您;

Zheng Wei Huang 说:3. 你是指說在RTOS下,不適合使用DMA方式來產生一組可任意修改duty的PWM嗎?

不是。我们推荐熟悉RTOS的用户来使用RTOS进行开发。

谢谢

,

Zheng Wei Huang:

Hi Yale,

我簡單執行下列程式碼在TI-RTOS下,compiler就有error了

/* XDCtools Header files */#include <xdc/std.h>#include <xdc/runtime/System.h>

/* BIOS Header files */#include <ti/sysbios/BIOS.h>#include <ti/sysbios/knl/Task.h>

/* TI-RTOS Header files */#include <ti/drivers/GPIO.h>

/* Board Header file */#include "Board.h"#include "driverlib.h"

#define COMPARE_VALUE 50000

void main (void){ //Stop WDT WDT_A_hold(WDT_A_BASE);

//Set P1.0 to output direction GPIO_setAsOutputPin( GPIO_PORT_P1, GPIO_PIN0 );

//Start timer in continuous mode sourced by SMCLK Timer_A_initContinuousModeParam initContParam = {0}; initContParam.clockSource = TIMER_A_CLOCKSOURCE_SMCLK; initContParam.clockSourceDivider = TIMER_A_CLOCKSOURCE_DIVIDER_1; initContParam.timerInterruptEnable_TAIE = TIMER_A_TAIE_INTERRUPT_DISABLE; initContParam.timerClear = TIMER_A_DO_CLEAR; initContParam.startTimer = false; Timer_A_initContinuousMode(TIMER_A1_BASE, &initContParam);

//Initiaze compare mode Timer_A_clearCaptureCompareInterrupt(TIMER_A1_BASE, TIMER_A_CAPTURECOMPARE_REGISTER_0 );

Timer_A_initCompareModeParam initCompParam = {0}; initCompParam.compareRegister = TIMER_A_CAPTURECOMPARE_REGISTER_0; initCompParam.compareInterruptEnable = TIMER_A_CAPTURECOMPARE_INTERRUPT_ENABLE; initCompParam.compareOutputMode = TIMER_A_OUTPUTMODE_OUTBITVALUE; initCompParam.compareValue = COMPARE_VALUE; Timer_A_initCompareMode(TIMER_A1_BASE, &initCompParam);

Timer_A_startCounter( TIMER_A1_BASE, TIMER_A_CONTINUOUS_MODE );

//Enter LPM0, enable interrupts __bis_SR_register(LPM0_bits + GIE);

//For debugger __no_operation();}

//******************************************************************************////This is the TIMER1_A3 interrupt vector service routine.////******************************************************************************#if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)#pragma vector=TIMER1_A0_VECTOR__interrupt#elif defined(__GNUC__)__attribute__((interrupt(TIMER1_A0_VECTOR)))#endifvoid TIMER1_A0_ISR (void){ uint16_t compVal = Timer_A_getCaptureCompareCount(TIMER_A1_BASE, TIMER_A_CAPTURECOMPARE_REGISTER_0) + COMPARE_VALUE;

//Toggle P1.0 GPIO_toggleOutputOnPin( GPIO_PORT_P1, GPIO_PIN0 );

//Add Offset to CCR0 Timer_A_setCompareValue(TIMER_A1_BASE, TIMER_A_CAPTURECOMPARE_REGISTER_0, compVal );}

,

Yale Li:

Hi Zheng Wei Huang,

方便的话把您的工程打包上传一下,我们的工程师帮您调试一下

,

Zheng Wei Huang:

Hi Yale,

1. 附上    MSP430F5529_TIMER.zip  (使用的RTOS版本為: tirtos_msp43x_2_20_00_06)

2. 請問能否順便教學在TI-RTOS下如何在MSP430F5529上使用PWM+DMA來改duty的功能嗎?

謝謝。

,

Yale Li:

Hi Zheng Wei Huang,

Zheng Wei Huang 说:1. 附上    MSP430F5529_TIMER.zip  (使用的RTOS版本為: tirtos_msp43x_2_20_00_06)

我已经提交给相关工程师了;

Zheng Wei Huang 说:2. 請問能否順便教學在TI-RTOS下如何在MSP430F5529上使用PWM+DMA來改duty的功能嗎?

这个问题我也已经向相关工程师咨询了。

感谢您的耐心等候,有了结果我会第一时间回复

,

Yale Li:

1. 要创建中断ISR,需要在TI-RTOS中创建Hwis。更多信息,您可以参考本文档第 3.4 节,其中有创建的示例:

spruex3v_SYS/BIOS (TI-RTOS Kernel) User's Guide (Rev. V)

2. 您只需要为DMA的single destination设置一个增加的源。一般使用第二个TIMER触发DMA;因为您想通过TI-RTOS的task来控制,所以触发源应该是SW。

这个帖子是针对TI-RTOS的training:

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/840835/faq-where-can-i-find-ti-rtos-or-sys-bios-faqs

我们没有任何可用的TI-RTOS示例,这与我们对MSP430上的TI-RTOS的支持程度有关。

赞(0)
未经允许不得转载:TI中文支持网 » MSP430F5529: MSP430F5529: RTOS TIMER Control
分享到: 更多 (0)

© 2024 TI中文支持网   网站地图 鲁ICP备2022002796号-1