|
UART на MSP430F2131 |
|
|
|
Nov 20 2008, 13:46
|
Местный
  
Группа: Участник
Сообщений: 202
Регистрация: 10-04-05
Из: Санкт-Петербург
Пользователь №: 4 011

|
Мне нужно реализовать UART на MSP430F2131. У этого МК нет аппаратного UART, а есть Timer UART с 3-мя Capture/Compare Registers. Я пока развожу плату, поэтому мне пока нужно разобраться в функциях ног МК.
Расскажите, пожалуйста, на пальцах назначение выходов, предназначеных для ССRx.
Вот часть таблицы из даташита, оставил только непонятное:
P1.1/TA0 Timer_A, capture: CCI0A input, compare: Out0 output P1.2/TA1 Timer_A, capture: CCI1A input, compare: Out1 output P1.3/TA2 Timer_A, capture: CCI2A input, compare: Out2 output P1.5/TA0 Timer_A, compare: Out0 output P1.6/TA1 Timer_A, compare: Out1 output P1.7/TA2 Timer_A, compare: Out2 output P2.2TA0 Timer_A, capture: CCI0B input P2.3/TA1 Timer_A, compare: Out1 output P2.4/TA2 Timer_A, compare: Out2 output
В чем разница этих функций? В общем, ничего пока не понятно...
Спасибо.
|
|
|
|
|
 |
Ответов
|
Nov 24 2008, 14:02
|
Местный
  
Группа: Участник
Сообщений: 202
Регистрация: 10-04-05
Из: Санкт-Петербург
Пользователь №: 4 011

|
Спасибо всем за советы, продолжаю работу  Работаю с IAR 4.11B и MSP430f2131. IAR дает несколько способов обращения к битам. Мне нужно присвоить битам TAMC регистра TACTL значение "3". 1 вариант: Код TACTL_bit.TAMC = 3; Должен быть второй вариант, какой он? (По аналогии с BCSCTL1 = RSEL0 + RSEL1 + RSEL2;) Ведь TAMC 2-х битовое поле. Почему TAMC константа со значением 0х20, как с этим работать? Вот фрагмент "io430x21x1.h" : Код __no_init volatile union { unsigned short TACTL; /* Timer A Control */ struct { unsigned short TAIFG : 1; /* Timer A counter interrupt flag */ unsigned short TAIE : 1; /* Timer A counter interrupt enable */ unsigned short TACLR : 1; /* Timer A counter clear */ unsigned short : 1; unsigned short TAMC : 2; /* Timer A mode control 0 */ unsigned short TAID : 2; /* Timer A clock input divider */ unsigned short TASSEL : 2; /* Timer A clock source select */ unsigned short : 6; } TACTL_bit; } @ 0x0160;
enum { TAIFG = 0x0001, TAIE = 0x0002, TACLR = 0x0004, TAMC = 0x0020, TAID = 0x0080, TASSEL = 0x0200, };
Сообщение отредактировал Slash - Nov 24 2008, 14:05
|
|
|
|
|
Nov 24 2008, 14:40
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(Slash @ Nov 24 2008, 16:02)  1 вариант: Код TACTL_bit.TAMC = 3; Это выливается в чтение, наложение маски по "И", наложение маски по "ИЛИ", запись. И так для каждого поля, которое вы хотите прописать. Если в регистре три поля, и вам нужно прописать все три, то вместо записи одной константы получите минимум 12 команд. Цитата(Slash @ Nov 24 2008, 16:02)  Должен быть второй вариант, какой он? (По аналогии с BCSCTL1 = RSEL0 + RSEL1 + RSEL2;) Ведь TAMC 2-х битовое поле. Код TACTL = (0*TAIFG) | (1*TAIE) | (1*TACLR) | (2*TAMC) и т.д. Цитата(Slash @ Nov 24 2008, 16:02)  Почему TAMC константа со значением 0х20, как с этим работать? Эта константа описывает положение младшего бита в поле. Умножаете на значение поля - получаете значение нужных битов.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
Сообщений в этой теме
Slash UART на MSP430F2131 Nov 20 2008, 13:46 Dog Pawlowa Цитата(Slash @ Nov 20 2008, 17:46) В чем ... Nov 20 2008, 14:24 IgorKossak Slash, выделил Ваш вопрос в отдельную тему.
Не сле... Nov 20 2008, 16:55 rezident Цитата(Slash @ Nov 20 2008, 18:46) Мне ну... Nov 20 2008, 17:09 Slash Цитата(rezident @ Nov 20 2008, 20:09) sla... Nov 20 2008, 17:56  rezident Цитата(Slash @ Nov 20 2008, 22:56) Всего ... Nov 20 2008, 18:26 rezident Зачем обязательно придумывать что-то свое? Использ... Nov 24 2008, 19:28 Slash Сергей Борщ, rezident, спасибо, стало понятнее.
В... Nov 25 2008, 08:19 rezident Цитата(Slash @ Nov 25 2008, 13:19) Вот то... Nov 25 2008, 14:06 Slash Подскажите, пожалуйста, в чем может быть ошибка?
О... Dec 24 2008, 18:26 rezident Slash, вы наверное считаете, что телепатические сп... Dec 24 2008, 19:51 Slash Отладчик MSP-FET430UIF, схему приложил. Может еще ... Dec 25 2008, 06:57 rezident Цитата(Slash @ Dec 25 2008, 11:57) Отладч... Dec 25 2008, 13:14  Slash Цитата(rezident @ Dec 25 2008, 16:14) Вы ... Dec 25 2008, 18:12 rezident Тогда скорее всего проблема с величиной тока нагру... Dec 25 2008, 18:30 Slash Еще подключены:
ADUM5401
ADM3312
HEF4051 - 3шт.
А... Dec 26 2008, 10:21 rezident Цитата(Slash @ Dec 26 2008, 15:21) А кака... Dec 26 2008, 13:50 Slash Ясно, спасибо.
Пока у меня не прошел период детск... Dec 26 2008, 14:46 Slash Здравствуйте!
Вопрос больше по принципам про... Jan 8 2009, 10:43 chert_kol Меня смущают такие конструкции Кодk->bdcNumber... Jan 24 2009, 15:56
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|