我个人是这样理解的,首先您的要求肯定能实现的。方法可能有多样,下面说说我的想法。你只是想要输出两路频率、幅度相同但相位相反的PWM波形(我是这样理解的)。可以通过按位取反来实现,只是430单片机又不能只对位进行操作,比如P1.2=1,这是不行的。我随便举个例子参考:
void Init_TA(void) //初始化定时器A参数
{
TACTL = TASSEL_1 + TACLR + ID_0 + MC_1;//定时器B时钟源选择ACLK,增计数模式
TACCR0 = 1023;//PWM信号频率32HZ,周期为31.25毫秒
}
void Init_PWM_Driver() // 初始化程序
{
P1DIR |=BIT1;
P1SEL |=BIT1;
TACCTL1 |= OUTMOD_7; //TACCR1输出为模式7,RESET/SET
TACCR1 =200;
TACTL |= TBSSEL_1 + ID_0 + MC_1; //TIMER_B选择ACLK时钟源,工作于增计数方式
}
void main()
{
WDTCTL=WDTPW+WDTHOLD;//关看门狗
P1OUT=P1OUT|(~(P1OUT<<1));//这就是把P1.1位的数值取反送到高一位再和原来的相或
}
不知道对不对,希望大家探讨一下。
这个功能STM32可以搞定。呵呵 430的没用过。数据手册上应该有说明吧!
这个问题如果是去年暑假我还能回答,但是很久没有用过了,没有多大印象了,但是我感觉好像可以,匹配是时把翻转设置成相反值就可以了。