MSP430F1232中断学习

发布者:快乐球球最新更新时间:2019-10-15 来源: eefocus关键字:MSP430F1232  中断  ADC10中断 手机看文章 扫描二维码
随时随地手机看文章

ADC10中断:


和定时器一样,ADC10也有中断请求的能力,如果不使用DCT(ADC10DCT1=0),当转换结果装载到ADC10MEM时,ADC10中断标志位即ADC10IFG置1。如果使用DCT,当DCT设定的所有转换完成之后,中断标志为置1。


大概过程是这样的:


    //对于中断来说,当每次两个整个数据块都传递完成时,中断标志置1,此时产生中断,让CPU跳出低功耗状态,继续执行进入低功耗后续没有执行的代码


    //又继续使能AD转换,CPU又进入低功耗状态,由于AD转换独立于CPU,当转换完成时再次进入中断,跳出低功耗,这样不断进入跳出,实现低功耗。


    //所以低功耗跳出之后,以下应该写串口传输的代码,将转换完的数字量给USART


int main(void)

{

  WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT

  ADC10CTL1 = INCH_1 + CONSEQ_1;            // A1/A0, single sequence

  ADC10CTL0 = ADC10SHT_1 + MSC + ADC10ON + ADC10IE + REFON + REF2_5V;     //时钟源分频+连续

  ADC10DTC1 = 0x02;                         // 2 conversions

  ADC10AE |= 0x03;                          // P2.1,0 ADC10 option select

 

  for (;;)

  {

    ADC10CTL0 &= ~ENC;

    while (ADC10CTL1 & BUSY);               // Wait if ADC10 core is active

    ADC10SA = 0x200;                        // Data buffer start

    ADC10CTL0 |= ENC + ADC10SC;             // Sampling and conversion start

    __bis_SR_register(CPUOFF + GIE);        // LPM0, ADC10_ISR will force exit

    //AD把两路转换完成,给了ADC10SA,控制将长度为2的数据块放到某个地址中,那么可以从地址中取出转换完成的数据

    //一个块放着两个转换完的数据,每个转换完的数据长度是2个字节,因为MEM长度是16位,一个地址是一个字节,现在的地址是在0x200的基础上加4

    //但是这个地址是个什么意思不太明白

    //对于中断来说,当每次两个整个数据块都传递完成时,中断标志置1,此时产生中断,让CPU跳出低功耗状态,继续执行上面的for循环

    //继续开始转换,由于AD转换独立于CPU,所以CPU又进入低功耗状态,当转换完成时再次跳出低功耗,这样不断进入跳出,实现低功耗。

    //所以低功耗跳出之后,以下应该写串口传输的代码,将转换完的数字量给USART

    //....

  }

}

 

// ADC10 interrupt service routine

#if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)

#pragma vector=ADC10_VECTOR

__interrupt void ADC10_ISR (void)

#elif defined(__GNUC__)

void __attribute__ ((interrupt(ADC10_VECTOR))) ADC10_ISR (void)

#else

#error Compiler not supported!

#endif

{

    __bic_SR_register_on_exit(CPUOFF);      // Clear CPUOFF bit from 0(SR)

}

关键字:MSP430F1232  中断  ADC10中断 引用地址:MSP430F1232中断学习

上一篇:MSP430学习笔记11-八路ADC采集诺基亚5110液晶显示
下一篇:msp430 EEPROM调试记录

推荐阅读最新更新时间:2024-11-13 03:09

STM32复习笔记(五)外部中断
一、外部中断概述: STM32的每个IO都可以作为外部中断输入。 STM32的中断控制器支持19个外部中断/事件请求: 线0~15:对应外部IO口的输入中断。 线16:连接到PVD输出。 线17:连接到RTC闹钟事件。 线18:连接到USB唤醒事件。 每个外部中断线可以独立的配置触发方式(上升沿,下降沿或者双边沿触发),触发/屏蔽,专用的状态位。 从上面可以看出,STM32供IO使用的中断线只有16个,但是STM32F10x系列的IO口多达上百个,STM32F103ZET6(112), STM32F103RCT6(51),那么中断线怎么跟io口对应呢? GPIOx.0映射到EXTI0 GPI
[单片机]
STM32复习笔记(五)外部<font color='red'>中断</font>
ARM的异常中断和处理过程
0. ARM异常中断的种类 ARM支持7种异常中断,其中包括复位、未定义指令异常、软中断异常、预取指令中止、数据中止、IRQ、FIQ。 0.1 复位(RESET)(优先级=1) 当处理器复位引脚有效时,系统产生复位异常中断,程序跳转到复位异常中断处理程序处执行。复位异常中断通常用在下面几种情况:系统加电时;系统复位时;跳转到复位中断向量处执行成为软复位。 0.2 未定义指令(优先级=6) 当ARM处理器或者是系统中的协处理器认为当前指令未定义时,产生未定义的指令异常中断,可以通过改异常中断机制仿真浮点向量运算。 0.3 软中断(优先级=6) 这是一个由用户定义的中断指令。用于用户模式下的程序调用特权操作指令。在实
[单片机]
ARM的异常<font color='red'>中断</font>和处理过程
IAR+STM8_EXTI外部IO中断
MCU:STM8S207SB 要操作的IO口:PD7 采用下降沿触发中断 代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 #include iostm8s207sb.h #define LED1_FLASH PD_ODR_ODR3 = !PD_ODR_ODR3 // 开发板上的LED1接在PD3上 void GPIO_init(void) { PD_DDR = 0x08; // 配置PD端口的方向寄存器PD3输出 PD_CR1 = 0x08; // 设置
[单片机]
AVR单片机中断实现
中断嵌套 对于中断嵌套的处理,不同的单片机处理的方式是不同的,应根据所使用单片机的特点正确实现中断嵌套的处理。 按照通常的规则,当MCU正在响应一个中断B的过程中,又产生一个其它的中断A申请时,如果这个新产生中断A的优先级比正在响应的中断B优先级高的话,就应该暂停当前的中断B的处理,转入响应高优先级的中断A,待高优先级中断A处理完成后,再返回原来的中断B的处理过程。如果新产生中断A的优先级比正在处理中断B的优先级低(或相同),则应在处理完当前的中断B后,再响应那个后产生的中断A申请(如果中断A条件还成立的话)。 一些单片机(如8051结构)的硬件能够自动实现中断嵌套的处理,既单片机内部的硬件电路能够识别中断的优先级,并根据优先
[单片机]
ATmega8 定时器 中断 外部中断 程序
4MHZ时钟 #include iom8v.h #include macros.h #include stdio.h #include stdlib.h #include string.h #include lcd1602.h int getKeyBoardValue( void ) { return(0); } /*定时器1中断服务程序*/ #pragma interrupt_handler Timer1_ovf:9 void Timer1_ovf( void ) { TCNT1H = (65535 - 20000) / 256; /* 5ms */ TCNT1L = (6
[单片机]
Proteus C51仿真学习板4——外部中断
与定时器中断不同,外部中断会立即响应,不需要定时时间到才响应,所以外部中断的优先级是最高的。中断是可以2级嵌套,比如:定时器0正在中断,突然外部中断0触发了,那么会打断定时器0,先执行外部中断0,再去执行定时器0中断,而定时器1中断却不能打断定时器0中断。 51单片机的外部中断触发方法有2种——下降沿触发和低电平触发,通过IT0和IT1寄存器控制(ITx=0,低电平触发;ITx=1,下降沿触发)。 注意:使用实体按键时,需进行消抖,否则会造成多次触发。 外部中断0和1输入引脚为P3.2和P3.3,所以要触发外部中断,需要将外部信号连接到P3.2/P3.3引脚。 外部中断的使能开关寄存器为EX0和EX1(EX
[单片机]
Proteus C51仿真学习板4——外部<font color='red'>中断</font>
51单片机STC89C52定时器中断法扫描数码管及秒表的实现
定时器中断法扫描数码管及秒表的实现 程序源码 /*-----------------------包含头文件区域-------------------------*/ #include reg52.h //单片机头文件 /*-----------------------数据类型定义区域-----------------------*/ typedef unsigned char u8; //定义类型unsigned char别名为u8 typedef unsigned int u16; //定义类型unsigned int别名为u16 /*-----------------------用户自定义数据区域----
[单片机]
51单片机STC89C52定时器<font color='red'>中断</font>法扫描数码管及秒表的实现
Windows CE6.0中断实验过程
1.实验目的:通过本次试验学习Windows CE6.0的中断处理的过程以及熟悉在驱动程序中运行中断的编程。 2.我对Windows CE6.0中断的理解: Windows® CE将中断处理分成两个步骤:中断服务程序ISR和中断服务线程IST。如果中断被使能,则当中断产生时,内核将调用该中断注册的ISR,ISR执行完后将返回系统中断号,内核检查系统中断号并且设置相关的事件,内核设置相关事件后,相应的IST将开始执行。 3.Windows® CE的处理流程: (1)如果一个驱动程序要处理一个中断,那么驱动程序首先要建立一个事件(CreateEvent),然后调用InterruptInitialize将该事件与中断号绑定,这一步会
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved