16. -dead- - 05 Августа, 2011 - 10:46:14 - перейти к сообщению
Надо примеры. А в целом - я думаю он программу пользователя просто заворачивает в свой код, не указывая явно эту обертку в коде скетча.
17. nestandart - 05 Августа, 2011 - 11:45:38 - перейти к сообщению
А вы попробуйте программу "простого робота" скомпилировать.
18. -dead- - 05 Августа, 2011 - 12:22:55 - перейти к сообщению
Какую? Дайте прямую ссылку.
19. nest - 05 Августа, 2011 - 12:25:05 - перейти к сообщению
CODE:
/**********************************************************
ПРИМЕР 5 :: РОБОТ ДЛЯ СОРЕВНОВАНИЙ КЕГЕЛЬРИНГ :: MYROBOT.RU
***********************************************************/
#define F_CPU 1000000UL // указываем частоту в герцах
#include <avr/io.h>
#include <util/delay.h>
int main(void) // начало основной программы
{
DDRC = 0xff; // все выводы порта C сконфигурировать как выходы
DDRD = 0x00; // все выводы порта D сконфигурировать как входы
PORTD = 0xff; // установить "1" на всех выводах порта D,
// включаем подтягивающие резисторы
while (1) { // Бесконечный цикл
// ПРОВЕРЯЕМ СИГНАЛ НИЗКОГО УРОНЯ ОТ ФОТОДАТЧИКА
if (!(PIND & (1<<PIND1))) // проверить "0" на линии 1 порта D
{
// -------------- включаем моторы вперед ---------------
PORTC |= _BV(PC1); // установить "1" на линии 1 порта C
PORTC &= ~_BV(PC2); // установить "0" на линии 2 порта C
PORTC |= _BV(PC3); // установить "1" на линии 3 порта C
PORTC &= ~_BV(PC4); // установить "0" на линии 4 порта C
// -----------------------------------------------------
}
else
{
// ------------------ отъезд назад ------------------
// -------- включаем моторы назад на 1,8 сек --------
PORTC &= ~_BV(PC1); // установить "0" на линии 1 порта C
PORTC |= _BV(PC2); // установить "1" на линии 2 порта C
PORTC &= ~_BV(PC3); // установить "0" на линии 3 порта C
PORTC |= _BV(PC4); // установить "1" на линии 4 порта C
_delay_ms(1800); // ждем 1,8 сек.
// --------------------------------------------------
// --------------------- поворот --------------------
// правый мотор вперед, левый мотор стоп на 0,6 сек
PORTC |= _BV(PC1); // установить "1" на линии 1 порта C
PORTC &= ~_BV(PC2); // установить "0" на линии 2 порта C
PORTC |= _BV(PC3); // установить "1" на линии 3 порта C
_delay_ms(600); // ждем 0,6 сек.
// --------------------------------------------------
}
} // закрывающая скобка бесконечного цикла
} // закрывающая скобка основной программы
ПРИМЕР 5 :: РОБОТ ДЛЯ СОРЕВНОВАНИЙ КЕГЕЛЬРИНГ :: MYROBOT.RU
***********************************************************/
#define F_CPU 1000000UL // указываем частоту в герцах
#include <avr/io.h>
#include <util/delay.h>
int main(void) // начало основной программы
{
DDRC = 0xff; // все выводы порта C сконфигурировать как выходы
DDRD = 0x00; // все выводы порта D сконфигурировать как входы
PORTD = 0xff; // установить "1" на всех выводах порта D,
// включаем подтягивающие резисторы
while (1) { // Бесконечный цикл
// ПРОВЕРЯЕМ СИГНАЛ НИЗКОГО УРОНЯ ОТ ФОТОДАТЧИКА
if (!(PIND & (1<<PIND1))) // проверить "0" на линии 1 порта D
{
// -------------- включаем моторы вперед ---------------
PORTC |= _BV(PC1); // установить "1" на линии 1 порта C
PORTC &= ~_BV(PC2); // установить "0" на линии 2 порта C
PORTC |= _BV(PC3); // установить "1" на линии 3 порта C
PORTC &= ~_BV(PC4); // установить "0" на линии 4 порта C
// -----------------------------------------------------
}
else
{
// ------------------ отъезд назад ------------------
// -------- включаем моторы назад на 1,8 сек --------
PORTC &= ~_BV(PC1); // установить "0" на линии 1 порта C
PORTC |= _BV(PC2); // установить "1" на линии 2 порта C
PORTC &= ~_BV(PC3); // установить "0" на линии 3 порта C
PORTC |= _BV(PC4); // установить "1" на линии 4 порта C
_delay_ms(1800); // ждем 1,8 сек.
// --------------------------------------------------
// --------------------- поворот --------------------
// правый мотор вперед, левый мотор стоп на 0,6 сек
PORTC |= _BV(PC1); // установить "1" на линии 1 порта C
PORTC &= ~_BV(PC2); // установить "0" на линии 2 порта C
PORTC |= _BV(PC3); // установить "1" на линии 3 порта C
_delay_ms(600); // ждем 0,6 сек.
// --------------------------------------------------
}
} // закрывающая скобка бесконечного цикла
} // закрывающая скобка основной программы
20. nestandart - 05 Августа, 2011 - 15:36:14 - перейти к сообщению
dead , ну и как ?
Получилось ?
Получилось ?
21. -dead- - 05 Августа, 2011 - 15:52:40 - перейти к сообщению
Дома уже гляну у меня в офисе Arduino IDE нету
22. cjA - 05 Августа, 2011 - 16:39:22 - перейти к сообщению
Ну начались отмазы
23. nestandart - 05 Августа, 2011 - 16:49:47 - перейти к сообщению
Цитата:
Дома уже гляну
Да я уже давно "глянул".
Не будет он компилиться (никак).
В программе ардуино обязательно должны присутствовать две функции : setup и loop.
IDE распознает только операторы и типы данных , больше ничего.
24. cjA - 05 Августа, 2011 - 16:54:24 - перейти к сообщению
-dead-
скачал я ардуино ... (да , да , это отмаза что под рукой его нет, пяти минут не прошло)
ну вот ада-авр - тоже использует гсс для компиляции хекс файла, но ... где Ада и где Си?
короч в ардуино и вправду свой язык, возможно очень простой, не сложнее Си, но...
Но другой. И если я уж как ортодокс кодевижен за Си не считаю, то ардуино- точно не Си.
(Добавление)
и что то говорит что его можно и другими средствами прошивать, раз avrdude они с собой тащат
скачал я ардуино ... (да , да , это отмаза что под рукой его нет, пяти минут не прошло)
ну вот ада-авр - тоже использует гсс для компиляции хекс файла, но ... где Ада и где Си?
короч в ардуино и вправду свой язык, возможно очень простой, не сложнее Си, но...
Но другой. И если я уж как ортодокс кодевижен за Си не считаю, то ардуино- точно не Си.
(Добавление)
и что то говорит что его можно и другими средствами прошивать, раз avrdude они с собой тащат
25. strelok - 05 Августа, 2011 - 17:43:02 - перейти к сообщению
правда некоторые функции можно использовать например функцию поворота (задать угол вращения) в книге посмотрел и правда в прге Arduino есть те функции которые можно использовать но еще пока не пробовал
26. -dead- - 05 Августа, 2011 - 18:23:57 - перейти к сообщению
Я может чего-то непонимаю, но у меня Arduino IDE выдал на эту программу не что иное как:
Board указана стандартная "Diecimila" на ATmega168.
(Добавление)
Скажите, как пробовали компилировать? А то некоторые и в WinAVR не могут его собрать
Цитата:
Done Compiling.
Binary sketch size: 240 bytes (of a 14336 byte maximum)
Binary sketch size: 240 bytes (of a 14336 byte maximum)
Board указана стандартная "Diecimila" на ATmega168.
(Добавление)
nestandart пишет:
Не будет он компилиться (никак).
Скажите, как пробовали компилировать? А то некоторые и в WinAVR не могут его собрать
27. nestandart - 05 Августа, 2011 - 18:43:11 - перейти к сообщению
dead , сделайте скрин .У меня IDE022 компилить не хочет.
Ни х... себе ! На 168 действительно компилит!
Просто у меня все МК 328 , а для них он компилить не хочет.
Ни х... себе ! На 168 действительно компилит!
Просто у меня все МК 328 , а для них он компилить не хочет.
28. -dead- - 05 Августа, 2011 - 18:47:02 - перейти к сообщению
Скрин мало что докажет
Лучше вы скиньте, что у вас за ошибки IDE выдаёт.
Я могу собрать один скетч, а потом вставить в редактор другой код.
Лучше вы скиньте, что у вас за ошибки IDE выдаёт.
Я могу собрать один скетч, а потом вставить в редактор другой код.
29. cjA - 05 Августа, 2011 - 19:14:24 - перейти к сообщению
пишет что PC1 не найден в этом скопище
'PC1' was not declared in this scope
'PC1' was not declared in this scope
30. -dead- - 05 Августа, 2011 - 19:24:34 - перейти к сообщению
Ну я бы не сказал, что PC1 это стандартный элемент языка Си
Явно вопрос в неподключенных библиотеках - может МК не тот указан или еще что...
Явно вопрос в неподключенных библиотеках - может МК не тот указан или еще что...