Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
26.06.2007, 11:21
|
|
Прописка
Регистрация: 11.07.2006
Адрес: Ru, Nsk
Сообщений: 249
Сказал спасибо: 1
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
AT98S8253-как управлять направлением портов I/O?
Понадобилось сделать ножку входом. На PIC-ах это делалось просто-TRISх 0/1 и все ОК. С Атмелом никогда раньше не сталкивался, начал читать даташиты и сайты-пишут что есть регистр DDRB, он управляет направлением данных. Но что то такого регистра в моем чипе нет...в даташите про него не пишут, и в компиляторе когда обращаюсь к нему вылетает ошибка. Наверно я очень сильно туплю, но подскажите пожалуйста, в чем дело?
|
|
|
|
26.06.2007, 11:36
|
|
Почётный гражданин KAZUS.RU
Регистрация: 22.06.2004
Адрес: Харьков
Сообщений: 1,488
Сказал спасибо: 3,207
Сказали Спасибо 3,010 раз(а) в 686 сообщении(ях)
|
В этом чипе действительно нет регистра направления передачи.
Порты квазидвунаправленные.
Для считываня значения с ножки порта, в этот разряд сначала нужно записать 1, потом просто считать значение.
Если выход не писать в 1 и там останется 0, то читаться будет 0.
|
|
|
|
26.06.2007, 14:59
|
|
Прописка
Регистрация: 11.07.2006
Адрес: Ru, Nsk
Сообщений: 249
Сказал спасибо: 1
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Спасибо. А еще вопрос-если я пишу на С, мне надо вручную еденичку загонять в порт, или компилятор сам это делает?
|
|
|
|
26.06.2007, 18:33
|
|
Почётный гражданин KAZUS.RU
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
|
Что значит - сам делает ? Конечно, самому. В общем - Кейл 3 - здесь на него была ссылка (рапида вылеченный), поищите - и в самплах масса примеров. https://kazus.ru/forum/topics/f_3911...C5%C9%CB#39117
|
|
|
|
27.06.2007, 09:12
|
|
Прописка
Регистрация: 11.07.2006
Адрес: Ru, Nsk
Сообщений: 249
Сказал спасибо: 1
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
сасибо, вроде разобрался...
Код:
|
void main (void)
{
P1_0 = 1; /* Configure P1.0 as an input */
/*-----------------------------------------------
This loop reads P1.0 and writes the value read
to P1.1.
Open the Port 1 Dialog from the Peripherals Menu
and change the value of the P1.0 Pin. When you
set P1.0 LO, P1.1 outputs LO. When you set
P1.0 HI, P1.1 outputs HI.
-----------------------------------------------*/
while (1)
{
P1_1 = P1_0; /* Copy P1.0 to P1.1 */
}
} |
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 16:05.
|
|