//ICC-MSP application builder [F149] : 11/9/2010 1:11:08 PM //Target 14x device #include #include #include #include #define CR 0x0a #define LF 0x0d char lcd_display1[16]; //Display-Speicher Zeile 1 char lcd_display2[16]; //Display-Speicher Zeile 2 volatile int a,b,i,j,k; volatile unsigned int adcvalue[32],data[1024]; void clock_init() { //DCO=0x00 DCOCTL=0x00; BCSCTL2=0x88;//SELM.1,SELS BCSCTL1=0x00; } void port_init() { P1OUT=0x00; P1DIR=0x00; P1IES=0x00; P1IE=0x00; P1SEL=0x00; P2OUT=0x00; P2DIR=0x00; P2IES=0x00; P2IE=0x00; P2SEL=0x00; P3OUT=0x00; P3DIR=0x00+BIT4; P3SEL=0x00+BIT4; P4OUT=0x00; P4DIR=0x00; P4SEL=0x00; P5OUT=0x00; P5DIR=0x00; P5SEL=0x00; P6OUT=0x03; P6DIR=0x00; P6SEL=0x00; } void timera_init() //Clock source=SMCLK //Divider=1 //TIMACLK=4.0000MHz //Frequency=19.048KHz ( 52.50uS) { TACTL=0x00; //stop timer //channel0 TACCTL0=0x34;//TAOM0.1,TAOM0.0,TACCIE0,TAOUT0 TACCR0=0xD2; //channel1 TACCTL1=0x00; TACCR1=0x00; //channel2 TACCTL2=0x00; TACCR2=0x00; TAR=0x0000;//clear timer counter TACTL=0x216;//TASSEL.1,TAMC.0,1,TAIE } void adc12_init() { ADC12CTL0=0x00; ADC12CTL1=0x610;//SHS.0,SHP,ADC12SSEL.1 ADC12IE=0x00; ADC12CTL0=0x7F2;//ADC12MSC,ADC122_5V,ADC12REFON,ADC12ON,ADC12ENC } void usart0_init() //Clock source=SMCLK //Desired baud=19200 //Actual baud=19196 { UCTL0=0x10;//CHAR0 UTCTL0=0x20;//SSEL0.1 URCTL0=0x08;//URXEIE0 U0BR1=0x00; U0BR0=0xD0; UMCTL0=0xA2; } //call this routine to initialise all peripherals void init_devices(void) { //stop errant interrupts until set up DINT(); //disable all interrupts ME1=0X00; //disable sfr peripherals ME2=0X00; IE1=0x00; //disable sfr interrupts IE2=0x00; //watchdog initialisation including nmi function //WDTCTL=0x5A00 | 0x00; WDTCTL=0x5A00 | 0x10;//TMSEL //initialise other peripherals clock_init(); port_init(); timera_init(); adc12_init(); usart0_init(); ME1=0xC0; ME2=0x00; IE1=0x00; IE2=0x00; EINT(); //re-enable interrupts } //interrupt handlers void init_adc12(void) { ADC12CTL0=SHT0_15+SHT1_15+ADC12ON+REFON+MSC; //ADC12CTL0=SHT0_8+ADC12ON+REFON; ADC12CTL1=CONSEQ_0+ADC12SSEL_2+ADC12DIV_0+SHP+SHS_0+CSTARTADD_0; // ADC12CTL1=CONSEQ_0+SHP; ADC12MCTL15=SREF_1+INCH_1+EOS; //Vr+=Vref+ ADC12IE = 0x8000; ADC12CTL0|=ENC; //Enable conversions }//end adc12 void init_timera(void) { TACCTL0 = OUTMOD_1; P6DIR = P6DIR | BIT2; TACCTL0 = CCIE; TACCR0=0xD2; TACTL = TASSEL_2 + MC_1; } void wait(unsigned int xxx,unsigned int yyy) { unsigned int iii,jjj; for (jjj=0;jjj