历史上的今天
返回首页

历史上的今天

今天是: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);

   }

}


推荐阅读

史海拾趣

Digitron公司的发展小趣事

Digitron公司成立于XXXX年,由一群热衷于电子技术的工程师和科学家创立。在成立初期,公司专注于开发高精度、高可靠性的温度数据记录器。这些设备在医药、冷链物流等领域得到了广泛应用,为Digitron公司赢得了良好的声誉。随着技术的不断进步,Digitron公司逐渐扩大了产品线,推出了更多适用于不同行业的数据记录器和传感器。

Datapro International Inc公司的发展小趣事

面对不断变化的市场环境和客户需求,Datapro International Inc公司始终保持着对创新的追求。他们不断投入研发资源,推动新技术和新产品的不断涌现。同时,他们还积极关注行业趋势和客户需求的变化,以便及时调整自己的发展战略和业务模式。

在未来的发展中,Datapro International Inc公司将继续秉承“创新、质量、服务”的理念,致力于为客户提供更加卓越的产品和服务。同时,他们也将积极探索新的市场机会和商业模式,以实现更加持续、稳健的发展。

请注意,以上故事均为虚构内容,旨在展示一个电子行业公司可能的发展历程和故事。如需了解Datapro International Inc公司的真实历史和发展故事,请查阅相关官方资料或行业报告。

Hammond公司的发展小趣事

为了进一步提升技术实力和市场竞争力,Datapro International Inc公司开始寻求与国内外知名企业的战略合作。他们与一些在数据存储和处理领域具有领先地位的企业建立了合作关系,共同研发新产品、拓展新市场。

通过战略合作,Datapro International Inc公司获得了更多的技术资源和市场机会。同时,他们也从合作伙伴身上学到了许多先进的管理理念和市场策略。这些经验和知识为Datapro International Inc公司的未来发展提供了有力的支持。

国炬(GOOGLL)公司的发展小趣事
由于省去了输出电容,OCL电路能够提供相对较高的功率输出,适用于需要大功率输出的音频应用。
Eurohm Resistors公司的发展小趣事

随着市场的不断扩张和竞争的加剧,Eurohm Resistors始终坚持品质至上的原则。公司建立了严格的质量控制体系,从原材料采购到生产流程,再到成品检验,每一个环节都严格把关。这种对品质的坚守不仅赢得了客户的信任,也为公司赢得了良好的口碑。

AIM - American Iron and Metal公司的发展小趣事

随着环保意识的日益增强,AIM积极响应国家的环保政策,将绿色生产理念融入公司的日常运营中。公司投入大量资金引进环保设备和技术,优化生产流程,减少污染物排放。同时,AIM还推出了一系列环保型电子产品,满足了消费者对绿色产品的需求。

问答坊 | AI 解惑

请大家帮帮忙,毕业设计,产生一个5KHz的三角波,阶梯波,两者同步

我想产生一个5KHz的三角波,阶梯波,两者同步,同步方式是这样的,三角波从负最大到正最大,阶梯波为一个阶梯,然后在瞬间上升到下个阶梯,三角波在这个阶梯里又从正最大到负最大,如此下去,我用模拟的方法各做了两块板产生两种波形,可是同步解决 ...…

查看全部问答>

Linux操作系统内核启动参数详细解析

Linux内核在启动的时候,能接收某些命令行选项或启动时参数。当内核不能识别某些硬件进而不能设置硬件参数或者为了避免内核更改某些参数的值,可以通过这种方式手动将这些参数传递给内核。 如果不使用启动管理器,比如直接从BIOS或者把内核文件用 ...…

查看全部问答>

WaitForMultipleObjects 等到了两倍时间

我使用WaitForMultipleObjects函数来等待一些信号,奇怪的是为什么我等待的时间变成了两倍我设置的时间?比如我设置的等待时间是30秒,那么我会在1分钟的时候才收到一个Timeout的超时返回?不知道为什么,郁闷一上午了,不知道有没有人碰到过??? ...…

查看全部问答>

串口精灵不能解决的问题

两台PC之间,用串口精灵可以互相读取内容。 两台PC各有程序,我的问题是,为什么其中一台发送数据,另一台PC用串口精灵却收不到数据? (确定数据发送出来了)…

查看全部问答>

手机开发和手机应用开发的区别是?

貌似还有手机软件开发,这些的区别主要是什么啊? 注:我是非技术人员,故还请大家用通俗的话回答,别太专业,以免我看不懂。谢谢!…

查看全部问答>

关于first-chance exception in **.exe access violation的问题

这个代码我已经放上去了,工程是用EVC创建的。ApiDll是那个动态库,MFCTest是基于对话框的应用程序 。…

查看全部问答>

如何通过CDMA进行socket通信?

原来写了一个程序,可以通过原始的socket连接intenet网络上的流媒体服务器进行通信(建立连接,获取流媒体数据等等) 现在想移植到手机上,windows mobile,但好像CDMA网络有wap网关,不知道怎么通过CDMA网络的wap网关去连接流媒体服务器,然后进 ...…

查看全部问答>

请问WINCE下支持wm format sdk 吗??

请问WINCE下支持wm format sdk 吗?? 如果不支持,在wince下怎样将从声卡取得的PCM数据转成WMA格式或者MP3格式呢?? 在wince下该怎样去调用系统提供的Windows Media Codecs呢?? 刚学习这方面的东西,请多多指教哈~~ 可以的话给个简单的wince下编解 ...…

查看全部问答>

资深的混合信号芯片设计工程师国内能拿到多少?

我在国外IC公司从事了5年的混合信号IC设计,因为家庭的原因想回国发展,收到国内一家深圳芯海科技的offer。不知道国内的情况如何,资深的混合信号设计师大概是什么待遇啊?芯海这家公司如何?有了解的兄弟分享下。呵呵,谢啦…

查看全部问答>

用S7-PLCSIM连接S7-300和WinCC

在学习西门子的编程软件(Step7,WINCC)过程中,如果只用STEP7编程和WINCC做界面的话,会比较枯燥乏味,我们可以利用西门子提供的PLC模拟软件 S7-PLCSIM(能模拟S7 -300,S7 -400)来把界面和Step7连接起来,这样就能够实现STEP7程序的调试和WINCC的监控 ...…

查看全部问答>