Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Вс июн 17, 2012 17:02:30
Драсьте уважаемые обитатели сайта и форума. У меня вопрос такой: можноли в языке Си длительности импульса присвоить какое_либо имя или значение? К примеру:
PINB0=1;
delay_us(2500);
какой синтаксис использовать? Подскажите,выручте пажалста!!! Спасибо.
Пн июн 18, 2012 18:54:53
Все это давно расписано в умных книжках.
Пн июн 18, 2012 19:12:49
директивами препроцессора,
#define
#inline
ваш случай:
#define SOME_KIND_OF_DELAY PINB0=1; delay_us(2500);
Пн июн 18, 2012 21:37:57
borys писал(а):Все это давно расписано в умных книжках.
В умных книжках по-умному и написано. Например в "Code Vision AVR-Пособие для начинающих" автор Лебедев М.Б. А хотелось бы чтоб по-простому...
Пн июн 18, 2012 22:44:21
Вы хоть напишите когда вам эта задержка нужна.
Может просто можно присваивать значение тогда когда надо.
Например
PINB0=1;
delay_us(2500);
Ну там видимо
PINB0=0;
delay_us(2500);
Вт июн 19, 2012 19:11:48
Для eduardo.
Вообще то Вы взялись не за самое дело (микроконтроллеры) и книги читать придется. Не пото-
му, что мне так хочется, а потому, что это Вам необходимо. Если совсем по простому, то с по-
мощью гаечного ключа и лопаты.
Пт июн 22, 2012 01:36:02
radiokot__ писал(а):Вы хоть напишите когда вам эта задержка нужна.
Может просто можно присваивать значение тогда когда надо.
Например
PINB0=1;
delay_us(2500);
Ну там видимо
PINB0=0;
delay_us(2500);
Алгоритм такой: если в PINB0 присутствует 1 в течении 2500 мкс,то PORTD0=1. Иначе PORTD0=0.
if(PINB0=1+delay_us(2500)) //в этой строке синтаксис неверный
{PORTD0=1;}
else
{PORTD0=0;}
А КАК НАПИСАТЬ ПРАВИЛЬНО???
Пт июн 22, 2012 10:04:04
Можно сделать например так(чисто программный метод):
- Код:
unsigned short i = 0;
while( (PINB.0 != 0) && ( i<2500 ) )
{
++i;
delay_us( 1 );//подобрать задержку(возможно NOP-ами)
};
if( i == 2500 )
PORTD.0 = 1;
else
PORTD.0 = 0;
Задержку отрегулируете исходя из кол-ва инструкций в цикле while() и тактовой частоты МК. Но правельней было бы реализовать на таймерах.
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.