历史上的今天
今天是:2025年03月14日(星期五)
2019年03月14日 | MSP430中断参数
2019-03-14 来源:eefocus
1.中断向量入口参数
typedef enum
{
VECTOR_RTC =41u, /* RTC */
VECTOR_PORT2 , /* Port 2 */
VECTOR_TIMER2_A1 , /* Timer0_A5 CC1-4, TA */
VECTOR_TIMER2_A0 , /* Timer0_A5 CC0 */
VECTOR_USCI_B1 , /* USCI B1 Receive/Transmit */
VECTOR_USCI_A1 , /* USCI A1 Receive/Transmit */
VECTOR_PORT1 , /* Port 1 */
VECTOR_TIMER1_A1 , /* Timer1_A3 CC1-2, TA1 */
VECTOR_TIMER1_A0 , /* Timer1_A3 CC0 */
VECTOR_DMA , /* DMA */
VECTOR_USB_UBM , /* USB Timer / cable event / USB reset */
VECTOR_TIMER0_A1 , /* Timer0_A5 CC1-4, TA */
VECTOR_TIMER0_A0 , /* Timer0_A5 CC0 */
VECTOR_ADC12 , /* ADC */
VECTOR_USCI_B0 , /* USCI B0 Receive/Transmit */
VECTOR_USCI_A0 , /* USCI A0 Receive/Transmit */
VECTOR_WDT , /* Watchdog Timer */
VECTOR_TIMER0_B1 , /* Timer0_B7 CC1-6, TB */
VECTOR_TIMER0_B0 , /* Timer0_B7 CC0 */
VECTOR_COMP_B , /* Comparator B */
VECTOR_UNMI , /* User Non-maskable */
VECTOR_SYSNMI , /* System Non-maskable */
VECTOR_RESET , /* Reset [Highest Priority] */
/************************为使用方便,下面对部分常用功能进行定义**************************************************/
//IO口
VECTOR_P1 = VECTOR_PORT1,
VECTOR_P2 = VECTOR_PORT2,
//SPI
VECTOR_SPI0 = VECTOR_USCI_A0,
VECTOR_SPI1 = VECTOR_USCI_A1,
VECTOR_SPI2 = VECTOR_USCI_B0,
VECTOR_SPI3 = VECTOR_USCI_B1,
//I2C
VECTOR_I2C0 = VECTOR_USCI_B0,
VECTOR_I2C1 = VECTOR_USCI_B1,
//UART
VECTOR_UART0 = VECTOR_USCI_A0,
VECTOR_UART1 = VECTOR_USCI_A1,
//TIMER,注意定时器有两个中断向量,CCR0单独占用一个中断向量,其他中断源共同使用一个中断向量
VECTOR_TIMER_A0 = VECTOR_TIMER0_A1,
VECTOR_TIMER_A0_CCR0 = VECTOR_TIMER0_A0,
VECTOR_TIMER_A1 = VECTOR_TIMER1_A1,
VECTOR_TIMER_A1_CCR0 = VECTOR_TIMER1_A0,
VECTOR_TIMER_A2 = VECTOR_TIMER2_A1,
VECTOR_TIMER_A2_CCR0 = VECTOR_TIMER2_A0,
VECTOR_TIMER_B0 = VECTOR_TIMER0_B1,
VECTOR_TIMER_B0_CCR0 = VECTOR_TIMER0_B0,
}VECTORn; //中断向量
50
51
2.设置中断向量地址
/*******************************************************************************
* 函数名称:Set_Vector_Handler(VECTORn vector,__interrupt void pfunc_handler(void))
* 功能说明:设置中断向量地址
* 参数说明:
VECTORn vector :中断向量(枚举变量,见.h文件)
__interrupt void pfunc_handler(void) : 中断服务函数
* 函数返回:无
********************************************************************************/
void Set_Vector_Handler(VECTORn vector, __interrupt void pfunc_handler(void))
{
if(SYSX->RIVECT == DISABLE) //如果没有设置中断向量表到RAM,则设置
{
Set_VectorTable_To_RAM(); //设置中断向量表到RAM
}
//此处若有警告可忽略
__VECTOR_RAM[vector] = (ISR_TYPE)pfunc_handler; //设置该中断向量地址
}
3.使用实例
3.1 GPIO实例
Set_Vector_Handler(VECTOR_PORT1,GPIO_IRQ_Handler);
//设置PPORT1中断服务函数为GPIO_IRQ_Handler,需要先定义中断服务函数,另外最好先设置中断向量,再开启中断
3.2 定时器实例
Set_Vector_Handler(VECTOR_TIMER0_B0,TIMER_TB0_IRQ_Handler); //设置中断向量,最好先设置中断向量,在开启中断
__interrupt void TIMER_TB0_IRQ_Handler()
{
LED_Turn(LED1); //指示灯闪烁
}
3.3 ADC中断实例
ADC_Init(ADC_CH2,ADC_VREF_3_3V,ADC_10bit); //初始化通道,P6.2
Set_Vector_Handler(VECTOR_ADC12,ADC_IRQ_Handler);
ADC_ITConfig (ADC_CH2,ENABLE);
ADC_StartConv();
OLED_PrintfAt(FONT_ASCII_6X8,0,0,"ADValue:\n%f V",ad); //在指定位置打印
__interrupt void ADC_IRQ_Handler()
{
if(ADC_GetITStatus(ADC_CH2) == TRUE)
{
ad = ADC_ReadChanelValue (ADC_CH2)*3.3/1023; //读取后会自动清除标志位
ADC_ClearITPendingBit(ADC_CH2);
}
}
下一篇:MSP430定时器介绍
史海拾趣
|
请大家帮帮忙,毕业设计,产生一个5KHz的三角波,阶梯波,两者同步 我想产生一个5KHz的三角波,阶梯波,两者同步,同步方式是这样的,三角波从负最大到正最大,阶梯波为一个阶梯,然后在瞬间上升到下个阶梯,三角波在这个阶梯里又从正最大到负最大,如此下去,我用模拟的方法各做了两块板产生两种波形,可是同步解决 ...… 查看全部问答> |
|
Linux内核在启动的时候,能接收某些命令行选项或启动时参数。当内核不能识别某些硬件进而不能设置硬件参数或者为了避免内核更改某些参数的值,可以通过这种方式手动将这些参数传递给内核。 如果不使用启动管理器,比如直接从BIOS或者把内核文件用 ...… 查看全部问答> |
|
WaitForMultipleObjects 等到了两倍时间 我使用WaitForMultipleObjects函数来等待一些信号,奇怪的是为什么我等待的时间变成了两倍我设置的时间?比如我设置的等待时间是30秒,那么我会在1分钟的时候才收到一个Timeout的超时返回?不知道为什么,郁闷一上午了,不知道有没有人碰到过??? ...… 查看全部问答> |
|
关于first-chance exception in **.exe access violation的问题 这个代码我已经放上去了,工程是用EVC创建的。ApiDll是那个动态库,MFCTest是基于对话框的应用程序 。… 查看全部问答> |
|
原来写了一个程序,可以通过原始的socket连接intenet网络上的流媒体服务器进行通信(建立连接,获取流媒体数据等等) 现在想移植到手机上,windows mobile,但好像CDMA网络有wap网关,不知道怎么通过CDMA网络的wap网关去连接流媒体服务器,然后进 ...… 查看全部问答> |
|
请问WINCE下支持wm format sdk 吗?? 如果不支持,在wince下怎样将从声卡取得的PCM数据转成WMA格式或者MP3格式呢?? 在wince下该怎样去调用系统提供的Windows Media Codecs呢?? 刚学习这方面的东西,请多多指教哈~~ 可以的话给个简单的wince下编解 ...… 查看全部问答> |
|
我在国外IC公司从事了5年的混合信号IC设计,因为家庭的原因想回国发展,收到国内一家深圳芯海科技的offer。不知道国内的情况如何,资深的混合信号设计师大概是什么待遇啊?芯海这家公司如何?有了解的兄弟分享下。呵呵,谢啦… 查看全部问答> |
|
在学习西门子的编程软件(Step7,WINCC)过程中,如果只用STEP7编程和WINCC做界面的话,会比较枯燥乏味,我们可以利用西门子提供的PLC模拟软件 S7-PLCSIM(能模拟S7 -300,S7 -400)来把界面和Step7连接起来,这样就能够实现STEP7程序的调试和WINCC的监控 ...… 查看全部问答> |




