3527|2

57

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

呼吸燈,按鍵中斷學習IAR版 [复制链接]

綠燈做成呼吸燈, 紅燈好像沒有PWM不過也在呼吸燈滅的時候讓它閃一下吧, 至於S2就是免消抖點紅燈吧,順便學一下中斷使用。
代碼如下:
  1. #include "msp430.h"

  2. const unsigned char curve[] = {
  3.     1,     1,     1,     1,     1,     1,     1,     1,
  4.     1,     1,     1,     1,     1,     1,     1,     1,
  5.     1,     1,     1,     2,     2,     2,     2,     2,
  6.     2,     2,     3,     3,     3,     3,     3,     3,
  7.     4,     4,     4,     4,     4,     5,     5,     5,
  8.     5,     6,     6,     6,     6,     7,     7,     7,
  9.     8,     8,     8,     8,     9,     9,     9,    10,
  10.    10,    10,    11,    11,    11,    12,    12,    13,
  11.    13,    13,    14,    14,    15,    15,    15,    16,
  12.    16,    17,    17,    18,    18,    18,    19,    19,
  13.    20,    20,    21,    21,    22,    22,    23,    23,
  14.    24,    24,    25,    25,    26,    26,    27,    27,
  15.    28,    29,    29,    30,    30,    31,    31,    32,
  16.    33,    33,    34,    34,    35,    36,    36,    37,
  17.    38,    38,    39,    39,    40,    41,    41,    42,
  18.    43,    43,    44,    45,    46,    46,    47,    48,
  19.    48,    49,    50,    50,    51,    52,    53,    53,
  20.    54,    55,    56,    56,    57,    58,    59,    59,
  21.    60,    61,    62,    62,    63,    64,    65,    66,
  22.    66,    67,    68,    69,    70,    70,    71,    72,
  23.    73,    74,    75,    75,    76,    77,    78,    79,
  24.    80,    80,    81,    82,    83,    84,    85,    86,
  25.    87,    87,    88,    89,    90,    91,    92,    93,
  26.    94,    95,    95,    96,    97,    98,    99,   100,
  27.   101,   102,   103,   104,   105,   106,   106,   107,
  28.   108,   109,   110,   111,   112,   113,   114,   115,
  29.   116,   117,   118,   119,   120,   121,   122,   122,
  30.   123,   124,   125,   126,   127,   128,   129,   130,
  31.   131,   132,   133,   134,   135,   136,   137,   138,
  32.   139,   140,   141,   142,   143,   144,   145,   146,
  33.   147,   148,   149,   150,   151,   152,   153,   154,
  34.   155,   156
  35. };

  36. int pos = 0;

  37. int main(void)
  38. {
  39.   WDTCTL = WDTPW + WDTHOLD;

  40.   DCOCTL= 0;
  41.   BCSCTL1= CALBC1_1MHZ;
  42.   DCOCTL= CALDCO_1MHZ;

  43.   BCSCTL2 |= DIVS_3;

  44.   P1DIR |= BIT6 | BIT0;

  45.   P1REN |= BIT3;
  46.   P1IE  |= BIT3;

  47.   P1SEL |= BIT6;              

  48.   TACCR0 = 625;

  49.   TACTL = TASSEL_2 | MC_1;

  50.   TACCTL1 = OUTMOD_7 | CCIE;

  51.   TACCR1 = 0;

  52.   __low_power_mode_0();

  53.   return 0;
  54. }

  55. #pragma vector = PORT1_VECTOR
  56. __interrupt void p1_isr(void)
  57. {
  58.    if(P1IFG & BIT3)
  59.    {
  60.      P1OUT |= BIT0;
  61.      while (~P1IN & BIT3);
  62.      P1IFG &= ~BIT3;
  63.    }
  64. }

  65. #pragma vector=TIMER0_A1_VECTOR
  66. __interrupt void t0a1_isr(void)
  67. {
  68.    int new_ccr1 = 1;
  69.    
  70.    TACCTL1 &= ~CCIFG;

  71.    if (pos < 500) {
  72.      new_ccr1 = curve[pos++ >> 1];
  73.    } else if (pos < 1000) {
  74.      new_ccr1 = curve[(999 - pos++) >> 1];
  75.    } else {
  76.      pos = 0;
  77.      P1OUT ^= BIT0;
  78.    }
  79.    
  80.    if (P1IN & BIT0) {
  81.      for (int i = 3000; i>0; i--);
  82.      P1OUT ^= BIT0;
  83.    } else {
  84.      while (TAR <= new_ccr1);
  85.      TACCR1 = new_ccr1;
  86.    }
  87. }


复制代码

最新回复

还没学,不过代码排版很好看  详情 回复 发表于 2014-3-15 09:07
 
点赞 关注(1)

回复
举报

9177

帖子

6

TA的资源

管理员

沙发
 
帮顶!
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
 
 

回复

162

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
还没学,不过代码排版很好看
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

开源项目 更多>>
    随便看看
    查找数据手册?

    EEWorld Datasheet 技术支持

    相关文章 更多>>
    关闭
    站长推荐上一条 1/9 下一条

     
    EEWorld订阅号

     
    EEWorld服务号

     
    汽车开发圈

    About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

    站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

    北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

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