久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3247|回復: 9
打印 上一主題 下一主題
收起左側(cè)

MSP430F149單片機IO口中斷問題

[復制鏈接]
回帖獎勵 100 黑幣 回復本帖可獲得 20 黑幣獎勵! 每人限 1 次
跳轉(zhuǎn)到指定樓層
樓主
ID:312610 發(fā)表于 2019-7-27 15:33 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
我使用msp430f149做一個端口中斷,但是這個端口為什么用手輕輕一碰就會進中斷。下面是我的程序。

  1. #include <msp430x14x.h>
  2. #include "Config.h"
  3. #include <stdio.h>
  4. #include <string.h>
  5. #include <in430.h>
  6. unsigned int i;
  7. unsigned int s=0;
  8. unsigned int a=0;
  9. unsigned int b=0,x;
  10. unsigned int num0=0,num1=0,num2=0;
  11. char r[];
  12. char y[];
  13. unsigned int times=0;
  14. char data[];


  15. void delay(void)
  16. {
  17.   int i,j;
  18.   for(i=0;i<100;i++)
  19.     for(j=0;j<300;j++);
  20. }
  21. void UART_Init()
  22. {
  23.   U0CTL|=SWRST;               //復位SWRST
  24.   U0CTL|=CHAR;                //8位數(shù)據(jù)模式
  25.   U0TCTL|=SSEL1;              //SMCLK為串口時鐘
  26.   U0BR1=baud_h;               //BRCLK=8MHZ,Baud=BRCLK/N
  27.   U0BR0=baud_l;               //N=UBR+(UxMCTL)/8
  28.   U0MCTL=0x00;                //微調(diào)寄存器為0,波特率9600bps
  29.   ME1|=UTXE0;                 //UART0發(fā)送使能
  30.   ME1|=URXE0;                 //UART0接收使能
  31.   U0CTL&=~SWRST;
  32.   IE1|=URXIE0;                //接收中斷使能位

  33.   P3SEL|= BIT4;               //設(shè)置IO口為普通I/O模式
  34.   P3DIR|= BIT4;               //設(shè)置IO口方向為輸出
  35.   P3SEL|= BIT5;
  36. }

  37. void Send_Byte(uchar data)
  38. {
  39.   while((IFG1&UTXIFG0)==0);          //發(fā)送寄存器空的時候發(fā)送數(shù)據(jù)
  40.     U0TXBUF=data;

  41. }


  42. #pragma vector=PORT2_VECTOR
  43. __interrupt void jszd(void)
  44. {
  45.   delay();
  46.   Send_Byte('0');
  47.   if((P2IN&0X01)==0x00)
  48.   {
  49.     num0++;
  50.     if(num0%4==0)
  51.     {
  52. Send_Byte('.');
  53. times=times+1;
  54.     }


  55.   }
  56.   if(P2IN==0x02)
  57.   {num1++;
  58.       }
  59.   if(P2IN==0x04)
  60.   {num2++;}
  61. P2IFG=0x00;
  62. }




  63. //*************************************************************************
  64. //               處理來自串口 0 的接收中斷
  65. //*************************************************************************

  66. #pragma vector=UART0RX_VECTOR
  67. __interrupt void UART0_RX_ISR(void)
  68. {

  69. data[s++]=U0RXBUF;                       //接收到的數(shù)據(jù)存起來
  70.   for (i=0;i<strlen(data);++i)    //數(shù)據(jù)轉(zhuǎn)化
  71.   {
  72.     if(data[2*i]=='r')
  73.     {r[a++]=data[2*i+1]+4*times;}
  74.       else
  75.       {y[b++]=data[2*i+1]+4*times;}
  76.   }
  77. }

  78. //*************************************************************************
  79. //            處理來自串口 0 的發(fā)送中斷,預留
  80. //*************************************************************************

  81. #pragma vector=UART0TX_VECTOR
  82. __interrupt void UART0_TX_ISR(void)
  83. {

  84. }

  85. //*************************************************************************
  86. //           主函數(shù)
  87. //*************************************************************************
  88. void main(void)
  89. {

  90.   WDT_Init();                         //看門狗設(shè)置
  91.   Clock_Init(); //系統(tǒng)時鐘設(shè)置
  92.   P2OUT=0X00;
  93.   P2DIR&=~(BIT0+BIT1+BIT2);
  94.   P2IE|=BIT0+BIT1+BIT2;
  95.   P2IES|=BIT0+BIT1+BIT2;
  96.   UART_Init();                        //串口設(shè)置初始化
  97.   _EINT();                            //開中斷
  98.   while(1)                            //無限循環(huán)

  99.   {  
  100. for (i=0;i<strlen(r);++i)
  101.       {
  102.         if(r[i]==num1)
  103.        {delay();
  104.         P3OUT|=0x01;
  105.        delay();
  106.         P3OUT|=0x00;
  107.         }
  108.       }
  109.            for (i=0;i<strlen(y);++i)
  110.       {
  111. if(y[i]==num2)
  112.        {delay();
  113.         P3OUT|=0x03;
  114.         delay();
  115.         P3OUT|=0x00;}
  116.      }
  117.     }
  118. }
復制代碼


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:312610 發(fā)表于 2019-7-27 15:35 | 只看該作者
求各位大佬指教,我外加上拉電阻也是不斷觸發(fā),我管腳懸空就不觸發(fā)了,我用手碰到它,他就開始不斷進中斷。
回復

使用道具 舉報

板凳
ID:312610 發(fā)表于 2019-7-27 21:02 | 只看該作者
大佬們!!!
回復

使用道具 舉報

地板
ID:511461 發(fā)表于 2019-7-28 14:24 | 只看該作者
你用的哪個IO口,換個IO口可以嗎
回復

使用道具 舉報

5#
ID:591400 發(fā)表于 2019-7-28 15:29 | 只看該作者
如果對實時性要求不高就在中斷里加一小段延時,判斷是否真的觸發(fā)了中斷,類似按鍵的防抖
回復

使用道具 舉報

6#
ID:591400 發(fā)表于 2019-7-28 15:40 | 只看該作者
這里應(yīng)該有你需要的信息https://blog.csdn.net/baidu_28237819/article/details/52170698
回復

使用道具 舉報

7#
ID:591703 發(fā)表于 2019-7-29 18:14 | 只看該作者
msp430f149鍵盤中斷程序,用端口中斷。通過實驗驗證,你可以參考一下www點codeforge點cn/article/198833
回復

使用道具 舉報

8#
ID:375382 發(fā)表于 2019-8-9 12:32 | 只看該作者
請問大佬們這個問題怎么解決啊?
回復

使用道具 舉報

9#
ID:375382 發(fā)表于 2019-8-9 14:40 | 只看該作者
疾風未雨 發(fā)表于 2019-8-9 12:32
請問大佬們這個問題怎么解決啊?

解決了,謝謝大家
回復

使用道具 舉報

10#
ID:542954 發(fā)表于 2019-8-10 00:30 | 只看該作者
我覺得需要做防抖的延時吧。。。不知道樓主是如何解決的
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 在线成人免费视频 | 精品一区av | 国产精品免费在线 | 黄色在线观看国产 | 精品蜜桃一区二区三区 | 日韩精品一区二区三区视频播放 | 罗宾被扒开腿做同人网站 | www国产成人免费观看视频,深夜成人网 | 欧美视频1区 | 一区二区免费 | 精品中文在线 | 久久在线精品 | 国产免费va | 国产精久久久久久久 | 亚洲精品一区二区三区中文字幕 | 91激情视频 | 凹凸日日摸日日碰夜夜 | 福利片在线看 | 一区二区三区四区在线 | 亚洲国产精品久久 | 黄色毛片一级 | 国产精品成人久久久久 | 久久久久久久国产 | 精品日韩一区二区 | 99综合| 久久人体 | 在线视频日韩精品 | 涩涩视频在线观看 | 精品日本久久久久久久久久 | 久久成人精品视频 | 久久精品97 | 亚洲欧美中文日韩在线v日本 | 先锋资源在线 | 国产精品久久久亚洲 | 亭亭五月激情 | 国产精品亚洲精品 | 九九伦理片 | 中文字幕日韩欧美一区二区三区 | 97人人干| 久久久久久国产精品三区 | 999久久久久久久久 国产欧美在线观看 |