Спасибо за ответ, O.L.
GIE - это команда, разрешающая сигналы прерываний в спящем режиме процессора.
Вы хотите сказать, что после задания счётчика битов и содержимого RXTXdata для передачи нужно включить прерывания и спящий режим? Но я хочу выводить данные не по приходу внешнего сигнала, а по мере их подготовки внутри программы. Моя ошибка состоит в том, что я сделал недоступным вот этот код внутри обработчика прерывания
Код
TX_Next bic.w #OUTMOD2,&CCTL0 ; TX Mark
rra.w RXTXData ; LSB is shifted to carry
jc TX_Test ; Jump --> bit = 1
TX_Space bis.w #OUTMOD2,&CCTL0 ; TX Space
TX_Test dec.w BitCnt ; All bits sent (or received)?
reti ;
первая строка - очистка регистра CCTL0 (CCI0B-P.1.5?) от режима вывода данных
вторая - сдвиг слова, содержащегося в RXTXData, в носитель Carry (бит статусного регистра). Как слово поместится в бите - другой вопрос.
третья строка - выполняется только если бит, хранящийся в носителе Carry = 0, установка регистра CCTL0 (CCI0B-P.1.5?) в режим вывода данных
четвёртая строка - переход на уменьшение счётчика битов на единицу и возврат из прерывания, причём вывод всех битов не гарантирован, счётчик битов может и не быть нулевым.
Кто и что же в таком случае вызовет прерывание для завершения передачи данных?
Кстати, не посоветуете ли способ безопасно проверить внешний часовой кварц, осциллографом лезть напрямую нежелательно, можно ли программно передать сигнал с часового кварца на один из физических выходов корпуса для его наблюдения осциллографом?
Как для этого связать частоту тактирования ACLK c "дрыганием ножки"? На форумах мне встечался "метод мокрого пальца" и "метод морковки", но они показались достаточно экзотичными, есть ли более консервативные методы?
Сообщение отредактировал VVlad - Feb 1 2010, 08:03