Цитата(megabuks @ Sep 26 2012, 18:41)

1.IAR выдает ошибку (см выделение в тексте)
Видимо потому, что запись должна быть вида
Код
mov &TA0R,R8
Цитата(megabuks @ Sep 26 2012, 18:41)

2.если закоментировать эту строку (где выдается ошибка, то все-равно импульсы не копяться)
Я считал что ТА0 и ТА1 идентичны. где я ошибаюсь?
В
данном кристалле - да, таймеры идентичны. Возможной причиной может быть отсутствие
полного понимания функционирования аппаратуры таймеров. Судя по листингу, у вас подсчет импульсов ведется непосредственно - импульсы подаются на тактовый (счетный) вход TA0 INCLK, так? Временн
ые ворота вы формируете программно, используя WDT и режим захвата CCI2. Если все так, то простое переименование регистров в программе ничего вам не даст. Кроме смены номера таймера нужно еще
физически перекоммутировать входные импульсы с пина TA0 INCLK на пин TA1 INCLK. Соответственно нужно настроить функцию соответствующего пина. Нюанс состоит еще и в том, что для TA0 вход INCLK
внутренне коммутируется на PinOsc, а для TA1 вход INCLK действительно подключается к внешнему пину P3.7. В общем советую внимательно просмотреть и сравнить функции пинов, подключаемых к таймеру. См. следует
datasheet MSP430G2353, а в нем Table 12. Timer0_A3 Signal Connections, Table 13. Timer1_A3 Signal Connections и Table 16. Port P1 (P1.0 to P1.2) Pin Functions, Table 23. Port P3 (P3.0 to P3.7) Pin Functions (28-Pin PW and 32-Pin RHB Packages Only).
Кстати, читать значение непосредственно из регистра TAxR при асинхронном тактировании таймера
не рекомендуется. Рекомендуется сформировать программно захват значения TAxR и считать полученное значение уже из регистра TAxCCRx. То бишь строка с ошибкой у вас по сути лишняя. Строкой ниже из TA0CCR2 вы и так читаете искомое значение TA0R.
И еще одно замечание. Отучайтесь использовать "магические числа". Везде по тексту используйте стандартные (TI) символьные обозначения регистров и бит. Тогда программа на АСМе будет читаться также легко как на ЯВУ типа Си.
Код
mov #TASSEL_3+MC2,&TA0CTL;TASSEL_3+MC_2;// TACLK, cont mode;for TACLK + cont.mode need 0x0026;0x0320
mov #CM_3+CCIS_2+CAP,&TA0CCTL2; 0e100
Вот в таком виде текст программы был бы более понятным, не так ли?