打印

熟悉timer32的朋友看下

[复制链接]
1160|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
bryanlee512|  楼主 | 2015-12-11 10:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
手里有块432的板子,想利用timer32中调用中断函数实现P1.0 led1间隔1s闪灭。
不知道下面代码哪儿有问题下载代码后直接到了__sleep();灯不闪,请教熟悉的朋友帮看下代码。
最好能解释下,调用中断服务程序ISR的流程
#include "driverlib.h"

#include <stdint.h>

#include <stdbool.h>
#include <math.h>

int main(void)

{
  
MAP_CS_initClockSignal(CS_MCLK,CS_LFXTCLK_SELECT,CS_CLOCK_DIVIDER_1);
//时钟初始化用了LFXTCLK时钟源,按照说明设置MCLK作为timer32的时钟,一分频频率32768hz
MAP_WDT_A_holdTimer();

P1DIR |= BIT0;
P1OUT &= ~BIT0;

MAP_Timer32_initModule(TIMER32_0_MODULE, TIMER32_PRESCALER_1, TIMER32_32BIT,
TIMER32_PERIODIC_MODE);
//timer32周期模式1分频32位周期模式计数
MAP_Timer32_setCount(TIMER32_0_MODULE,0x8000);
//timer32装0x8000为1s
__enable_interrupt();
//这部是按照例程来的是,否为打开总中断?
NVIC_ISER0 = 1 << ((INT_T32_INT1 - 16) & 31);
//中断服务寄存器设置timer32中断号,这两步操作怎么用库函数替代?
SCB_SCR |= SCB_SCR_SLEEPONEXIT;
//系统控制模块寄存器 退出ISR后休眠
MAP_Timer32_enableInterrupt(TIMER32_0_MODULE);
//使能timer32中断

MAP_Timer32_startTimer(TIMER32_0_MODULE, false);
//启动timer32使能周期模式


while (1)
{
__sleep();
}

}

void Timer32IsrHandler(void)//中断服务程序
{
TIMER32_INTCLR1 |= BIT0; // Clear Timer32 interrupt flag
P1OUT ^= BIT0; // Toggle P1.0 LED
}

相关帖子

沙发
dirtwillfly| | 2015-12-11 11:04 | 只看该作者
mspware里有例程的,建议楼主先看看例程
http://dev.ti.com/tirex/#/Package/MSPWare

使用特权

评论回复
板凳
bryanlee512|  楼主 | 2015-12-11 11:38 | 只看该作者
这个就是根据教程改的。不过教程都是用寄存器方式写的代码,最好是有熟悉库函数的使用或者中断操作流程的朋友指导下。

使用特权

评论回复
地板
dirtwillfly| | 2015-12-11 11:46 | 只看该作者
bryanlee512 发表于 2015-12-11 11:38
这个就是根据教程改的。不过教程都是用寄存器方式写的代码,最好是有熟悉库函数的使用或者中断操作流程的朋 ...

也有库的例程,

使用特权

评论回复
5
dirtwillfly| | 2015-12-11 11:46 | 只看该作者
tirex_msp432p401ta001.zip (5.03 KB)

使用特权

评论回复
6
firstblood| | 2015-12-11 13:58 | 只看该作者
这个主要就是定时器的应用的掌握。

使用特权

评论回复
7
dirtwillfly| | 2015-12-11 20:59 | 只看该作者
firstblood 发表于 2015-12-11 13:58
这个主要就是定时器的应用的掌握。

恩啊。不过如果用ti提供的库函数,能省事不少

使用特权

评论回复
8
可可球| | 2015-12-11 22:13 | 只看该作者
http://dev.ti.com/tirex/#/Package/MSPWare
我怎么老打不开,是我的网速慢吗

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

18

主题

72

帖子

0

粉丝