Драсьте уважаемые обитатели сайта и форума. У меня вопрос такой: можноли в языке Си длительности импульса присвоить какое_либо имя или значение? К примеру:
PINB0=1;
delay_us(2500);
какой синтаксис использовать? Подскажите,выручте пажалста!!! Спасибо.
ОСВОЕНИЕ НАПИСАНИЯ ПРОШИВОК ДЛЯ TINY2313
- Реклама
-
borys
- Держит паяльник хвостом
- Сообщения: 927
- Зарегистрирован: Вт сен 07, 2010 19:27:48
- Откуда: Ташкент
Re: ОСВОЕНИЕ НАПИСАНИЯ ПРОШИВОК ДЛЯ TINY2313
Все это давно расписано в умных книжках.
Re: ОСВОЕНИЕ НАПИСАНИЯ ПРОШИВОК ДЛЯ TINY2313
директивами препроцессора,
#define
#inline
ваш случай:
#define SOME_KIND_OF_DELAY PINB0=1; delay_us(2500);
#define
#inline
ваш случай:
#define SOME_KIND_OF_DELAY PINB0=1; delay_us(2500);
Re: ОСВОЕНИЕ НАПИСАНИЯ ПРОШИВОК ДЛЯ TINY2313
В умных книжках по-умному и написано. Например в "Code Vision AVR-Пособие для начинающих" автор Лебедев М.Б. А хотелось бы чтоб по-простому...borys писал(а):Все это давно расписано в умных книжках.
- radiokot__
- Мучитель микросхем
- Сообщения: 454
- Зарегистрирован: Вс янв 15, 2012 19:58:40
Re: ОСВОЕНИЕ НАПИСАНИЯ ПРОШИВОК ДЛЯ TINY2313
Вы хоть напишите когда вам эта задержка нужна.
Может просто можно присваивать значение тогда когда надо.
Например
PINB0=1;
delay_us(2500);
Ну там видимо
PINB0=0;
delay_us(2500);
Может просто можно присваивать значение тогда когда надо.
Например
PINB0=1;
delay_us(2500);
Ну там видимо
PINB0=0;
delay_us(2500);
Ни один домашний кот незнает что он домашний.
- Реклама
-
borys
- Держит паяльник хвостом
- Сообщения: 927
- Зарегистрирован: Вт сен 07, 2010 19:27:48
- Откуда: Ташкент
Re: ОСВОЕНИЕ НАПИСАНИЯ ПРОШИВОК ДЛЯ TINY2313
Для eduardo.
Вообще то Вы взялись не за самое дело (микроконтроллеры) и книги читать придется. Не пото-
му, что мне так хочется, а потому, что это Вам необходимо. Если совсем по простому, то с по-
мощью гаечного ключа и лопаты.
Вообще то Вы взялись не за самое дело (микроконтроллеры) и книги читать придется. Не пото-
му, что мне так хочется, а потому, что это Вам необходимо. Если совсем по простому, то с по-
мощью гаечного ключа и лопаты.
Re: ОСВОЕНИЕ НАПИСАНИЯ ПРОШИВОК ДЛЯ TINY2313
Алгоритм такой: если в PINB0 присутствует 1 в течении 2500 мкс,то PORTD0=1. Иначе PORTD0=0.radiokot__ писал(а):Вы хоть напишите когда вам эта задержка нужна.
Может просто можно присваивать значение тогда когда надо.
Например
PINB0=1;
delay_us(2500);
Ну там видимо
PINB0=0;
delay_us(2500);
if(PINB0=1+delay_us(2500)) //в этой строке синтаксис неверный
{PORTD0=1;}
else
{PORTD0=0;}
А КАК НАПИСАТЬ ПРАВИЛЬНО???
-
uk8amk
- Поставщик валерьянки для Кота
- Сообщения: 2222
- Зарегистрирован: Вт ноя 27, 2007 11:32:06
- Откуда: Tashkent
Re: ОСВОЕНИЕ НАПИСАНИЯ ПРОШИВОК ДЛЯ TINY2313
Можно сделать например так(чисто программный метод):
Задержку отрегулируете исходя из кол-ва инструкций в цикле while() и тактовой частоты МК. Но правельней было бы реализовать на таймерах.
Код: Выделить всё
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;

