⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 IAR WorkBench下
💻 C
字号:
#include  <msp430x14x.h>
#include <in430.h>
#include  <string.h>
#include <stdio.h>

#include "xtype.h"

#define IRDA (uint8)0x01  //P1_0

uint8 ifg;
uint8 index=0,value;
uint8 bitValue;
uint8 flag;

uint8 Buf[128],i;    
    
void main( void )
{  
    WDTCTL = WDTPW + WDTHOLD;// Stop WDT  

    BCSCTL1&=~XT2OFF;       //XT2 available         
    BCSCTL2|=SELM1;         //Mclk,SMCLK=8M
    BCSCTL2|=SELS; 

    do              
    { 
        int k = 0xff;
        IFG1 &= ~OFIFG;              
        for(k=0xff; k>0;k--);       
    }
    while((IFG1&OFIFG)!=0);   
  
    P1DIR &= ~IRDA;
    P1IE |= IRDA; 
    P1IES &= ~IRDA; 
    
    CCTL0 =CCIE;    //CCR0 interrrupt enable
    CCR0= 0xffff;   //
    TACTL = TACLR;
    TACTL = TASSEL_2 + MC_1;   //SMCLK, Up mode, interrupt enable
    
    memset(Buf,0,sizeof(Buf));
    i = 0;
    value = 0;
    flag = 0;
    
    P1IFG = 0;  
    _BIS_SR(GIE);    
    
    while(1)
    {
        if(ifg&IRDA)
        {
            ifg = 0;
            if(index<8)
            {
                value = value<<1;
                value |= bitValue;
                index++;
            };
            if(index==8)
            {
                Buf[i] = value;
                i++;
                
                index = 0;
                value = 0;                
            };            

        };
    };

}

#pragma vector = PORT1_VECTOR
__interrupt void PORT1_ISR(void)
{
    ifg = P1IFG;  
    P1IFG = 0;    
    
    TACTL = MC_0;   //SMCLK, halt    
    
    if(TAR>=14000)
    {
        bitValue = 1;
    }
    else
    {
        bitValue = 0;      
    };

    TACTL = TACLR;
    TACTL = TASSEL_2 + MC_1;   //SMCLK, Up mode  
    
    if(flag == 0)
    {
        ifg=0;
        flag = 1;
    };
}
#pragma vector = TIMERA0_VECTOR
__interrupt void T0_ISR(void)
{
    index = 0;
    value = 0;
    
    flag = 0;
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -