|
msp430单片机驱动dac0832程序da.c
[复制链接]
- uchar Flag=0; //标志位
- #define PWM CCR1
- uchar Time=0;
- void da0832(void)
- {
- P2DIR|=0xff; // Internal ref gain 1
- da=0x80; // 1V
- P1SEL|=0X40;
- P1DIR|=0X40;
- PWM=150;
- }
- /*void daset()
- {CCTL0=CCIE;
- CCR0=5;
- TACTL=MC_1+TASSEL_1+TAIE;
- _BIS_SR(LPM0_bits+GIE);
- }
- #pragma vector=TIMERA0_VECTOR
- _interrupt void Timer_A0(void)
- {da=0xa0;;
- }*/
- void TIMERA_Init(void) //连续计数模式,计数到0XFFFF产生中断
- {
- CCTL1|=OUTMOD_7;
- CCR0=60000;
- if((shu1*(a+b))>=(shu2*a))PWM+=10;
- if((shu1*(a+b))<(shu2*a))PWM-=10;
- if(PWM>=10000)PWM=9000;
- if(PWM<100)PWM=200;
- TACTL |= TASSEL_2 + MC1; //SMCLK做时钟源,8分频,连续计数模式,计数到0XFFFF,开中断
- }
- /*#pragma vector = TIMERA1_VECTOR
- __interrupt void Timer_A(void)
- {
- switch(TAIV) //需要判断中断的类型
- {
- case 2:break;
- case 4:break;
- case 10:Flag=1;break; //设置标志位Flag
- }
- }*/
- //*************************************************************************
- // 主函数
- //********
- void dado(void)
- {
- if(TEMP>=3000)da=0xbb;
- else da=0x90;
- // WDT_Init(); //看门狗设置
- //Clock_Init(); //系统时钟设置
- //Port_Init(); //端口初始化
- //TIMERA_Init(); //设置TIMERA
- //_EINT();
- }
|
|