Страница 1 из 1
ОСВОЕНИЕ НАПИСАНИЯ ПРОШИВОК ДЛЯ TINY2313
Добавлено: Вс июн 17, 2012 17:02:30
eduardo
Драсьте уважаемые обитатели сайта и форума. У меня вопрос такой: можноли в языке Си длительности импульса присвоить какое_либо имя или значение? К примеру:
PINB0=1;
delay_us(2500);
какой синтаксис использовать? Подскажите,выручте пажалста!!! Спасибо.
Re: ОСВОЕНИЕ НАПИСАНИЯ ПРОШИВОК ДЛЯ TINY2313
Добавлено: Пн июн 18, 2012 18:54:53
borys
Все это давно расписано в умных книжках.
Re: ОСВОЕНИЕ НАПИСАНИЯ ПРОШИВОК ДЛЯ TINY2313
Добавлено: Пн июн 18, 2012 19:12:49
player259
директивами препроцессора,
#define
#inline
ваш случай:
#define SOME_KIND_OF_DELAY PINB0=1; delay_us(2500);
Re: ОСВОЕНИЕ НАПИСАНИЯ ПРОШИВОК ДЛЯ TINY2313
Добавлено: Пн июн 18, 2012 21:37:57
eduardo
borys писал(а):Все это давно расписано в умных книжках.
В умных книжках по-умному и написано. Например в "Code Vision AVR-Пособие для начинающих" автор Лебедев М.Б. А хотелось бы чтоб по-простому...
Re: ОСВОЕНИЕ НАПИСАНИЯ ПРОШИВОК ДЛЯ TINY2313
Добавлено: Пн июн 18, 2012 22:44:21
radiokot__
Вы хоть напишите когда вам эта задержка нужна.
Может просто можно присваивать значение тогда когда надо.
Например
PINB0=1;
delay_us(2500);
Ну там видимо
PINB0=0;
delay_us(2500);
Re: ОСВОЕНИЕ НАПИСАНИЯ ПРОШИВОК ДЛЯ TINY2313
Добавлено: Вт июн 19, 2012 19:11:48
borys
Для eduardo.
Вообще то Вы взялись не за самое дело (микроконтроллеры) и книги читать придется. Не пото-
му, что мне так хочется, а потому, что это Вам необходимо. Если совсем по простому, то с по-
мощью гаечного ключа и лопаты.
Re: ОСВОЕНИЕ НАПИСАНИЯ ПРОШИВОК ДЛЯ TINY2313
Добавлено: Пт июн 22, 2012 01:36:02
eduardo
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;}
А КАК НАПИСАТЬ ПРАВИЛЬНО???
Re: ОСВОЕНИЕ НАПИСАНИЯ ПРОШИВОК ДЛЯ TINY2313
Добавлено: Пт июн 22, 2012 10:04:04
uk8amk
Можно сделать например так(чисто программный метод):
Код: Выделить всё
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() и тактовой частоты МК. Но правельней было бы реализовать на таймерах.