Цитата(E.V.G. @ Jan 25 2013, 09:19)

Регистр TACCR0 задаёт период импульсов, TACCR1 задаёт длительность импульса. Удобней использовать режим OUTMOD_7 потому, что в этом случае увеличение значения в регистре TACCR1 будет преводить к увеличению длительности импульса. С частотой - наоборот. Чем больше TACCR0 - тем ниже частота. Нужно соблюдать правило - TACCR1 < TACCR0. Если укажите диапазон перестройки частоты и минимальное приращение длительности, то можно вычислить необходимую входную частоту.
В вашем случае может быть удобным не использовать АЦП для перестройки частоты и длительности, а навесить кнопки и сделать плавную перестройку при кратковременном нажати кнопки и грубую - при удержании кнопки.
дело в том что я уже сделал сам прибор, там у меня не кнопки, а потенциометры
пока добился что только TACCR1 могу аппаратно менять, а TACCR0 не получается
#include "msp430G2452.h"
void main(void)
{
WDTCTL = WDTPW + WDTHOLD;
ADC10CTL0 = ADC10SHT_2 + ADC10ON;
ADC10AE0 |= 0x01;
ADC10DTC1 = 0x001;
P1DIR |= BIT6;
P1SEL |= BIT6;
TACCR0 = 1024 - 1;
TACCTL1 = OUTMOD_7; // TACCR1 reset/set
TACCR1 = 512; // TACCR1 PWM Duty Cycle
TACTL = TASSEL_2 + MC_1; // SMCLK, upmode
while(1)
{
ADC10CTL0 |= ENC + ADC10SC; // Start sampling
while(ADC10CTL1 & 0x01);
TACCR1 = ADC10MEM;
}
}