Страница 40 из 115
Добавлено: Чт апр 09, 2009 19:03:29
Барсик
А кто Вам мешает вставить переменную в свою любимую функцию delay ? И при нажатии кнопок увеличивать или уменьшать эту переменную?
Добавлено: Чт апр 09, 2009 19:12:40
ikarab
Барсик писал(а):А VMLAB такой же бесплатный как и "Протеус"?
VMLAB free.
Добавлено: Чт апр 09, 2009 19:20:42
SeregaT
Барсик писал(а):А кто Вам мешает вставить переменную в свою любимую функцию delay ?
Да я пытался, там ошибку выдало, что-то про константу. А так бы удобно было...
Добавлено: Чт апр 09, 2009 21:35:44
ikarab
SeregaT писал(а):я пытался, там ошибку выдало...
Посмотрите "Микроконтроллеры AVR для начинающих" и другие книги
в библиотеке книг для скачивания и чтения, или
хотя бы хелп к используемому компилятору !
Добавлено: Чт апр 09, 2009 21:53:20
Барсик
SeregaT писал(а):...там ошибку выдало, что-то про константу...
Ну и напишите, как Вас компилятор обматерил. Будем разбираться... Да, и текст программы - в студию. В виде присоединённого файла.
Добавлено: Пт апр 10, 2009 18:54:02
SeregaT
Барсик писал(а):Да, и текст программы - в студию.
Ну в виде файла, оно не обязательно, вот сам текст (это чисто для примера конечно):
void main(void)
{
int i;
i=10;
while(1)
{
PORTD.0=1;
delay_us (i);
PORTD.0=0;
};
}
Компилятор пишет на это:
Error: F:\AVR\AVR-projects\CVA\test4\test4.c(34): constant integral expression required
Я знаю, что тут не правильно...
Просто мне надо, чтобы в качестве задержки использовать значение переменной.
Добавлено: Пт апр 10, 2009 18:56:52
Arlleex
#define используй...
Добавлено: Пт апр 10, 2009 19:05:30
ikarab
Выше написано:
Хотябы !
ПОШЕВИЛИСЬ САМ ! чуток
Добавлено: Пт апр 10, 2009 19:10:43
SeregaT
Искать ответ на один маленький вопрос в куче книг или в хелпе (который еще и на английском) это долго. Я курс читаю по порядку, но видимо до этого еще не дошёл.
P.S. Да и где вообще брать этот хелп?
Добавлено: Пт апр 10, 2009 19:24:50
ikarab
SeregaT писал(а):где вообще брать этот хелп?
АТПАТТТТТТТТТТТТТТТТ Ужоссссссс
глазами позырить МЕНЮ той проги что юзайешшшшшш.
в хелпе delay воткнуть в поиск ...
Ох как долго.

Добавлено: Пт апр 10, 2009 19:25:30
megasvintus
У меня есть джентельменский набор- Исчерпывающее описание CVAVR и ВСЕХ его функций и настроек, в том числе и скрытых. На русском! + хрестоматия начинающего- книга Белова "Создаем устройства на микроконтроллерах. Надо кому? + немного недоруссифицированный мной CVAVR. К сожалению других компиляторов я не знаю
Добавлено: Пт апр 10, 2009 19:28:30
SeregaT
megasvintus писал(а):Надо кому?
Мне надо!!!

Добавлено: Пт апр 10, 2009 19:30:12
ikarab
SeregaT писал(а):megasvintus писал(а):Надо кому?
Мне надо!!!

А где библиотека скачать книги вы КОНЕЧНО ЖЕ не занете ! ДА ???
Добавлено: Пт апр 10, 2009 19:32:17
megasvintus
Я щас как раз делаю аплоад всего этого добра. Как закончу- выложу ссылку и пароль на архив
*Все книги исключительно для ознакомления, после чего согласно законодательству вы обязаны купить их печатные издания

Добавлено: Пт апр 10, 2009 19:40:02
SeregaT
Так кто мне может подсказать по моему вопросу?
Добавлено: Пт апр 10, 2009 19:46:32
megasvintus
по вашему вопросу- объявите переменную i unsigned int
Ибо в хидерах эти функции объявлены так :
void delay_us(unsigned int n);
void delay_ms(unsigned int n);
а вы туда суете просто int - число со знаком

Добавлено: Пт апр 10, 2009 20:24:37
SeregaT
megasvintus писал(а):по вашему вопросу- объявите переменную i unsigned int
А это что значит:
Error: must declare first in block?
Что там надо еще объявить?
Что у меня тут не так:
void main(void)
{
unsigned int i;
i=10;
while(1)
{
PORTD.0=1;
void delay_us(unsigned int i);
PORTD.0=0;
};
}
Добавлено: Пт апр 10, 2009 20:39:51
megasvintus
эта ошибка означает что количетство открытых и закрытых скобок { не соотрветствует. Печатайте листинг внимательнее
Вообще старайтесь ничего не делать в функции main. создавайте выше нее функции, объявляйте переменные, а потом только вызывайте эти функции в цикле- будет меньше опечаток
и вот еще ошибка: void delay_us(unsigned int i); -- так нельзя писать
при ВЫЗОВЕ функции void опускают. правильно так:
unsigned int i;
<i>
delay_us(i);
Во ссылка:
http://depositfiles.com/files/xalhswtjw
Вот пароль:
WWW.RADIOKOT.RU
Добавлено: Пт апр 10, 2009 20:43:40
SeregaT
megasvintus писал(а):
правильно так:
unsigned int i;
<i>
delay_us(i);
Я пробовал так. Пишет: Error: constant integral expression required
Добавлено: Пт апр 10, 2009 20:49:09
megasvintus
Объявляем функцию : void qqq (void) { //1
unsigned int a=0;
delay_ms(100);
a++;
delay_us(a);
} //1
Затем уже в бесконечном цикле просто напишите :
qqq();
усе будет рулить
