Источники питания KEEN SIDE

Присвоение значения порту в теле функции.

Новичок
 
Регистрация: 25.11.2014
Сообщений: 8
Репутация: 10
0 1
0 2
 
30.11.2016 16:51 #1
Есть микроконтроллер на базе MCS-51. Необходимо создать функцию, в которой бы происходило бы изменение значения вывода порта. К примеру, необходимо присвоить значение 0 выводу P1_7. То функция должна иметь вид:

void PinMode (P1_7, 0);
Оценка
КОМПЭЛ продолжает серию публикаций, посвященных азиатским АЦП, их сравнению по цене, функционалу и ограничениям. В этом выпуске - обзор изолированных сигма-дельта модуляторов, предназначенных для точной оцифровки слабых сигналов в условиях высоких помех. Такие компоненты особенно востребованы, когда требуется гальваническая развязка аналогового тракта от цифровой части системы. Рассмотрим характеристики, конкретные модели изолированных сигма-дельта модуляторов рекомендованных производителей
Banned
 
Регистрация: 21.04.2012
Адрес: южнее Дуная
Сообщений: 4,311
Репутация: 419
500 351
141 0
 
30.11.2016 23:06 #2
Ну и? Етим Ви присвоили значение 0 выводу P1_7. Что дальше?
Оценка
Растущие требования к эффективности, компактности и надёжности в промышленной автоматизации, телекоммуникациях, дата-центрах и электротранспорте делают карбид кремния (SiC) не просто альтернативой кремнию, а ключевым инструментом инженерных решений. Китайские производители предлагают SiC-диоды и транзисторы, сопоставимые по характеристикам с мировыми аналогами при оптимизированной стоимости. В каталоге КОМПЭЛ представлен широкий выбор SiC-дискретов, доступных со склада для ваших проектов.
Гуру
 
Регистрация: 13.05.2006
Сообщений: 3,900
Репутация: 1249
1,231 63
62 32
 
01.12.2016 10:23 #3
Дааааа......
Ну где то вы должны сделать #include "s8252.h" где s8252 (АТ89S8252) - модель микроконта, а файл хедера содержит описалово его регистров, портов и т.п.
Например :
Цитата:
/*------------------------------------------------------------------------------*/
sbit RD = 0xB7;
sbit WR = 0xB6;
sbit T1 = 0xB5;
sbit T0 = 0xB4;
sbit INT1 = 0xB3;
sbit INT0 = 0xB2;
sbit TXD = 0xB1;
sbit RXD = 0xB0;

sbit P37 = 0xB7;
sbit P36 = 0xB6;
sbit P35 = 0xB5;
sbit P34 = 0xB4;
sbit P33 = 0xB3;
sbit P32 = 0xB2;
sbit P31 = 0xB1;
sbit P30 = 0xB0;
затем можно извращаться дальше и дойти вот до такого
#define Beeper_Port P37
#define Sound_ON() Beeper_Port=0
#define Sound_OFF() Beeper_Port=1
Получили много текста и 2 "мощные" функции для управления пищалкой.
Это кейл. В других средах могут быть незначительные отличия
И на кой хрен этот огород городить ?
Последний раз редактировалось LEAS; 01.12.2016 в 10:29.
Оценка
Азиатские датчики влажности сегодня — это сочетание надёжности, высокой точности и доступной цены, достигнутое благодаря активным инвестициям в разработки и оптимизированному производству. Они успешно конкурируют с западными аналогами, позволяя снижать себестоимость проектов без ущерба для качества. КОМПЭЛ предлагает широкий выбор датчиков влажности от популярных азиатских брендов для любых задач. В статье — обзор ключевых параметров китайских датчиков влажности и практические рекомендации по их установке.
Специалист
 
Регистрация: 21.05.2007
Адрес: Москва
Сообщений: 473
Репутация: 213
171 58
14 2
 
01.12.2016 19:31 #4
Цитата:
Сообщение от LEAS
#define Beeper_Port P37
#define Sound_ON() Beeper_Port=0
#define Sound_OFF() Beeper_Port=1
Получили много текста и 2 "мощные" функции для управления пищалкой.
Это кейл. В других средах могут быть незначительные отличия
И на кой хрен этот огород городить ?
А по моему очень даже неплохо. Если в проекте не только пищалка, но и множество других линий, которые надо дергать по-отдельности, почему бы не обозначить их псевдофункциями. Места в коде не занимает, на производительность программы не влияет, а удобство даёт.

Кроме того, управлять ножками просто, если компилятор позволяет управлять ножками по-отдельности. На AVR вообще приходится использовать конструкции вида:
#define BeepOn() PORTA |= (1<<BEEP_PIN)
#define BeepOff() PORTA &= ~(1<<BEEP_PIN)
А при оптимизации компилятор уже заменит эту конструкцию на одну ассемблерную команду.
Оценка
Ответ
Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход
ТМ Электроникс. Электронные компоненты и приборы. Скидки, кэшбэк и бесплатная доставка
Часовой пояс GMT +3, время: 09:16.
Обратная связь РадиоЛоцман Вверх