Передача порта как параметра

Обсуждаем контроллеры компании Atmel.
Ответить
Держит паяльник хвостом
Аватара пользователя
Сообщения: 920
Зарегистрирован: Пн июн 13, 2016 19:37:24
Откуда: Perm

Сообщение daaar »

Как передать порт в качестве параметра в функцию? Я понимаю что PORTx это адрес, передаю как uint8t, код компилится без ошибок и варнингов, но на железе не работает
Контактная информация:
Реклама
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18783
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

вы уже спрашивали, и вам отвечали. судя по всему, на вашей платформе - никак. ищите иные пути
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Сообщение oleg110592 »

ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18783
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

не пригодится, если меня память не подводит: у него Keil и 51-я архитектура, не прокатывает указатель на порт.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Аватара пользователя
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Сообщение oleg110592 »

ну в этих и портов то с гулькин...

Код: Выделить всё

void setpin( port_num, bit_index )
{
  switch port_num
  {
    case 2:
       P2 |= ( 1 << bit_index );
находится поиском на сайте Кейла
Реклама
Друг Кота
Аватара пользователя
Сообщения: 15694
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Отчего не прокатит?
В ассемблере через @Ri - заносим адрес порта в регистр - указатель и работаем как с ячейкой ОЗУ...
:dont_know:
Реклама
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18783
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

BOB51 писал(а):Отчего не прокатит?
В ассемблере через ...
В том-то и дело, что в ассемблере отсутствует понятие "передача параметров функции". Поскольку все РОН в 51-й архитектуре отображены в область RAM, наверняка должен быть способ объявить какой-то сишный указатель на соответствующую ячейку, просто я не знаю, как это следует делать. может быть, какой-нибудь unsigned char near *ptr нужно сделать...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 15694
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

МНДЯа....
А может чего в этой доке накопается - там, кроме самого МК еще и приемы работы с компиляторами ассемблера и СИ в конце описаны:
STC15F204EA-series-english.pdf
(3.46 МБ) 203 скачивания
:dont_know:
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18783
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

Увы и ах, желаемое топикстартером НЕВОЗМОЖНО в принципе: C pointers cannot be used to access the 8051's SFRs (special function registers) - это сам Keil говорит :)

Добавлено after 2 minutes 12 seconds:
меньше минуты гугления...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 15694
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

ГЫММ...
"плюсик" в пользу ассемблерных вставок...
:wink:
Ответить

Вернуться в «AVR»