2АНТОХА, Благодарю за потдержку.

2rezident, Благодарю за наставления.
Цитата(Сергей Борщ @ Nov 15 2010, 16:25)

А никого не смутило, что нога дергается обращением к порту в прерывании?...
Цитата(Shread @ Nov 15 2010, 16:43)

До обсуждения этого еще просто дело не дошло, и без того ведь знатный холиварчик получился, ...
А вот и мудрецы пожаловали, прогнулось пространство от сечи. Вдохновляют на принятие и терпимость .
Однако, продолжим по сути темы.
Цитата(fiatlux37 @ Nov 13 2010, 15:20)

Короче. Кварц 5 Мгц. Минимальный шаг ровно 200нс.
...
Если у Вас еще не заработало? То Вашу задачу можно реализовать, если:
- отключить WDT (это понятно и сделано);
- запустить XT2, подождать пока стабилизируется и переключить SMCLK на него (MCLK на ваше усмотрение);
- инициализировать таймер как счетчик и запустить его на счет (частично сделано, проверьте значение CCR1 и отключите генерацию прерываний);
- инициализировать вывод (пин) как функциональный вывод от таймера (это не сложно);
- можно "усыпить" контроллер (но не глубоко).

Лишний код:
Код
P1IES &= ~0x01;
P1IFG &= ~0x01; // Disable flag
P1IE = 0x01; // Enable interrupt P1.0
...
_EINT(); // Enable global interrupt
...
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A0 (void)
{
P1OUT ^= 0x01;
}
Дерзайте!

Цитата(Сергей Борщ @ Nov 15 2010, 16:25)

...Для чего, интересно, разработчики заложили в таймер_A аж целых 3 Compare модуля с возможностью аппаратного дерганья ног безо всяких прерываний вообще?
Может я просто не понял Вас во всей вашей глубокой мудрости?
Цитата из slau144e (страница 12-11):
12.2.4 Capture/Compare Blocks...
Capture Mode... If a capture occurs:
- The timer value is copied into the TACCRx register;
- The interrupt flag CCIFG is set
Сообщение отредактировал ih_ - Nov 16 2010, 06:49