roboforum.ru

Технический форум по робототехнике.
Текущее время: 06 июн 2025, 13:47

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: Codevision и обращение к портам
СообщениеДобавлено: 15 июл 2005, 21:21 
Не в сети

Зарегистрирован: 21 июн 2005, 23:05
Сообщения: 26
Откуда: Санкт-Петербург
Подскажите, люди добрые, есть ли в codevision какая-нибудь функция вида OUTP(addr, val)?
Хочу читать/писать произвольный порт. Но, оказывается, PORTx в этом уродском компиляторе не являются переменными. Пока что у меня получается только обращение к порту через его имя (например, PORTD=0x00). Компилятор при этом генерит
OUT  0x12,R30

А я хочу вызвать что-нибудь вроде "OUTP(0x12, 0x00)", и чтобы при этом компилятор сгенерил то же самое.

Такие дела.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 16 июл 2005, 00:17 
Не в сети
Аватара пользователя

Зарегистрирован: 21 янв 2005, 12:16
Сообщения: 977
Откуда: Germany
прог. языки: asm
смотреть инструкцию по codevision, как писать/читать в порт
или делать ассемблерные вставки.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 16 июл 2005, 10:40 
Не в сети

Зарегистрирован: 21 июн 2005, 23:05
Сообщения: 26
Откуда: Санкт-Петербург
nest писал(а):
смотреть инструкцию по codevision, как писать/читать в порт
или делать ассемблерные вставки.

Смотрел.
Не нашёл.
Подскажите, пожалуйста, куда конкретно смотреть?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 17 июл 2005, 12:57 
Не в сети
Аватара пользователя

Зарегистрирован: 21 янв 2005, 12:16
Сообщения: 977
Откуда: Germany
прог. языки: asm
а фиг знает ... я с ним не работал : )
но обязаны быть точно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 17 июл 2005, 16:59 
Не в сети

Зарегистрирован: 12 апр 2005, 11:47
Сообщения: 188
Откуда: Москва
Например так:

PORTB=0x00;
DDRB=0x00;

или так:

void main(void) {
/* set bit 0 of Port A as output */
DDRA.0=1;

/* set bit 1 of Port A as input */

DDRA.1=0;

/* set bit 0 of Port A output */
PORTA.0=1;

/* test bit 1 input of Port A */
if (PINA.1) { /* place some code here */ };



Но по-битный доступ работает не со  всеми портами (от F и далее нужно по-другому)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 19 июл 2005, 21:31 
Не в сети

Зарегистрирован: 21 июн 2005, 23:05
Сообщения: 26
Откуда: Санкт-Петербург
nest писал(а):
а фиг знает ... я с ним не работал : )
но обязаны быть точно.

А что же Вы тогда выступаете с заявлениями, раз не работали?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 19 июл 2005, 21:32 
Не в сети

Зарегистрирован: 21 июн 2005, 23:05
Сообщения: 26
Откуда: Санкт-Петербург
slava писал(а):
Например так:

PORTB=0x00;
DDRB=0x00;

или так:

void main(void) {
/* set bit 0 of Port A as output */
DDRA.0=1;

/* set bit 1 of Port A as input */

DDRA.1=0;

/* set bit 0 of Port A output */
PORTA.0=1;

/* test bit 1 input of Port A */
if (PINA.1) { /* place some code here */ };



Но по-битный доступ работает не со  всеми портами (от F и далее нужно по-другому)

Перечитайте, пожалуйста, моё сообщение внимательно. Там я написал, что именно этот способ мне известен и мне он не подходит.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Codevision и обращение к портам
СообщениеДобавлено: 23 июл 2005, 00:45 
Не в сети

Зарегистрирован: 23 июл 2005, 00:39
Сообщения: 63
Откуда: Казань
Slava Tutushkin писал(а):
Подскажите, люди добрые, есть ли в codevision какая-нибудь функция вида OUTP(addr, val)?
Хочу читать/писать произвольный порт. Но, оказывается, PORTx в этом уродском компиляторе не являются переменными. Пока что у меня получается только обращение к порту через его имя (например, PORTD=0x00). Компилятор при этом генерит
OUT  0x12,R30

А я хочу вызвать что-нибудь вроде "OUTP(0x12, 0x00)", и чтобы при этом компилятор сгенерил то же самое.

Такие дела.


Если учитывать тот факт, что любой порт в AVR может адресоваться, как ячейка памяти, проблема легко решается и без OUTP.
Насчёт компилятора не согласен, вовсе он не уродский :) а простой и удобный.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Codevision и обращение к портам
СообщениеДобавлено: 25 июл 2005, 07:55 
Не в сети

Зарегистрирован: 21 июн 2005, 23:05
Сообщения: 26
Откуда: Санкт-Петербург
wolf писал(а):
Если учитывать тот факт, что любой порт в AVR может адресоваться, как ячейка памяти, проблема легко решается и без OUTP.
Насчёт компилятора не согласен, вовсе он не уродский :) а простой и удобный.

А мне всё-таки хочется через OUTP. И ещё чтобы SBI и CBI были =)
Я думаю, должно оно быть в компиляторе. Потому что делается просто, а эффективность в ряде случаев повышает существенно.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO