zoukankan      html  css  js  c++  java
  • MSP430F149学习之路——捕获/比较模式

    1.捕获模式

     1 #include <msp430x14x.h>
     2 unsigned int last0=0,last1=0;
     3 unsigned int k=0,j=0;
     4 void mian(void)
     5 {
     6   WDTCTL = WDTPW + WDTHOLD;
     7   TACTL  = TACLR + TASSEL_2 + ID_3 + MC_3;
     8   
     9   TACCTL0 = CM_3 + CCIS_0 + SCS + CAP + CCIE;
    10   TACCTL1 = CM_3 + CCIS_1 + SCS + CAP + CCIE;
    11   
    12   P1DIR = 0X00;
    13   P1SEL = 0XFF;
    14 
    15   P3DIR = 0XFF;
    16   P3OUT = 0XFF;
    17   _EINT();
    18   for(;;)
    19   {
    20     for(int i=0;i<10000;i++)
    21       _NOP();
    22     P3OUT ^= BIT0;       //产生捕获信号源
    23   }
    24 }
    25 #pragma vector=TIMERA1_VECTOR
    26 __interrupt void Timer_A(void)
    27 {
    28   switch(TAIV)
    29   {
    30   case 2:
    31     P1OUT ^= BIT3;
    32     j=CCR1 = last1;
    33     last1  = CCR1;
    34     break;
    35   case 4:break;
    36   case 10:P1OUT ^= BIT0;break; 
    37   }
    38 }
    39 
    40 #pragma vector=TIMERA1_VECTOR
    41 __interrupt void Timer_cc(void)
    42 {
    43   if(SCCI0 == 0)
    44   {
    45     k = CCR0 - last0;
    46     last0 = CCR0;
    47   }
    48 }

    2.比较模式

     1 /***************************************
     2 功能:ACLK=32768 Hz,MCLK=SMCLK=DCOCLK=80kHz
     3       由捕获/比较模块0产生10Hz的方波,P6.0输出;
     4       由捕获/比较模块1产生20Hz的方波,P6.7输出。
     5 ***************************************/
     6 #include <msp430x14x.h>
     7 void  main(void)
     8 {
     9   WDTCTL = WDTPW + WDTHOLD;
    10   TACTL |= TASSEL_2 + ID_3 + MC_2 + TACLR + TAIE;
    11   
    12   TACCTL0= CCIE;
    13   TACCTL1= CCIE;
    14   TACCR0 = 5000;
    15   TACCR1 = 10000;
    16   
    17   P6DIR  = 0XFF;
    18   P6OUT  = 0Xff;
    19   _EINT();
    20 }
    21 
    22 #pragma vector=TIMERA0_VECTOR
    23 __interrupt void Timer_A(void)
    24 {
    25   P6OUT ^= BIT0;
    26   TACCR0 = TACCR0 + 5000;
    27 }
    28 #pragma vector=TIMERA1_VECTOR
    29 __interrupt void Timer_A1(void)
    30 {
    31   switch(TAIV)
    32   {
    33   case 2:
    34     P6OUT ^= BIT7;
    35     TACCR1 = TACCR1+10000;
    36     break;
    37   case 4:break;
    38   case 10:P6OUT ^= BIT1;break;
    39   }
    40 }
  • 相关阅读:
    Eclipse正确导入第三方project
    面试的基础_01字符串反向操作
    一个简单的实现了智能虚拟女友—图灵机器人
    Notepad++去除代码行号的几种方法
    fastjson将bean转成字符串时首字母变小写问题
    2015第34周二能收发邮件但不能打开网页解决方法
    2015第34周一
    2015第33周日
    2015第33周六
    构建自己的顾问团
  • 原文地址:https://www.cnblogs.com/boyiliushui/p/4632718.html
Copyright © 2011-2022 走看看