roboforum.ru

Технический форум по робототехнике.
Текущее время: 02 дек 2024, 17:36

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 22 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: помогите разобраться с бесконечным циклом
СообщениеДобавлено: 22 янв 2010, 17:48 
Не в сети
Аватара пользователя

Зарегистрирован: 22 июл 2006, 18:57
Сообщения: 206
Откуда: Москва
прог. языки: Delphi, С/С++, Python
ФИО: Илья Андреевич
привет всем! подскажите что нетак? стандартная схема в протеусе взятая с сайта (http://myrobot.ru/stepbystep/r_firstbot2.php) все работате кроме бесконечного цикла while(1). Вот мой код:
Код:
#include <avr/io.h>
#include <util/delay.h>
int main(void)
{DDRB = 0xff;
DDRD = 0x00;
PORTD = 0x00;
while(1)
{  if (!(PIND & (1<<PIND6)))
{ PORTB |=  _BV(PB0);  //1
   PORTB &= ~_BV(PB1);  //0
   PORTB |=  _BV(PB2);  //1
   PORTB &= ~_BV(PB3);  //0
}
else
{ PORTB |=  _BV(PB1);  //1
   PORTB &= ~_BV(PB0);  //0
   PORTB |=  _BV(PB3);  //1
   PORTB &= ~_BV(PB2);  //0
}
}
}


суть вот в чем - движки изначально крутятся допустим (вправо), если свет падает на фотодиод то подается сигнал и движки начинают крутиться в другую сторону(влево), цикл идет заново, и если свет не попадает, то движки крутятся опять как и раньше (вправо) пока на диод опять не упадет свет. В протеусе моделирую схему, все работает как только на диод падает свет вижки меняют направление, но если свет убрать, то невозвращаются в нужную сторону, т.е. цикл бесконечный не пашет. Извиняюсь за путаное объяснение, вообщем, подскажите может гддето чтото напортачил... кроме этого использовал еще for(;;) тоже непомогло.


Последний раз редактировалось DrZugrik 22 янв 2010, 18:15, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Немогу заставить работать бесконечный цикл
СообщениеДобавлено: 22 янв 2010, 17:52 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Немедля сменить название темы, или убьём её!

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Немогу заставить работать бесконечный цикл
СообщениеДобавлено: 22 янв 2010, 17:53 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 09 фев 2006, 15:36
Сообщения: 3339
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков
Ты сначала скажи, нафига так пишешь? Место на диске экономишь?

_________________
Linux user | Firefox user


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: помогите разобраться с бесконечным циклом
СообщениеДобавлено: 22 янв 2010, 17:59 
Не в сети
Аватара пользователя

Зарегистрирован: 22 июл 2006, 18:57
Сообщения: 206
Откуда: Москва
прог. языки: Delphi, С/С++, Python
ФИО: Илья Андреевич
Цитата:
Ты сначала скажи, нафига так пишешь? Место на диске экономишь?

в каком смысле?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Немогу заставить работать бесконечный цикл
СообщениеДобавлено: 22 янв 2010, 18:00 
Не в сети
Аватара пользователя

Зарегистрирован: 23 окт 2007, 22:03
Сообщения: 3037
Откуда: Москва
прог. языки: С
ФИО: Евгений Яковец
Хорошее питание - залог здоровья! :)
Кондёры по питанию стоят? Питание нормальное?
Запитай движки от отдельного источника. Похоже МК ресетится от помех.
Вот тут аналогичный вопрос обсуждался: http://roboforum.ru/viewtopic.php?f=87&t=7369&start=45

_________________
- Этот человек - не человек! это робот!
- Как? уже делают?!
- Делают!!!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: помогите разобраться с бесконечным циклом
СообщениеДобавлено: 22 янв 2010, 18:01 
Не в сети
Аватара пользователя

Зарегистрирован: 30 янв 2009, 01:24
Сообщения: 784
Откуда: Запорожье
прог. языки: Си, AvrASM, STL, САС, учу Си++
ФИО: Павел
а для main скобку закрывать не надо?

Код:
.....
PORTB &= ~_BV(PB2);  //0
}
}
} //!!!!!!


чтоб скобки не терять какраз и делают отступы на кажый уровень вложенности.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Немогу заставить работать бесконечный цикл
СообщениеДобавлено: 22 янв 2010, 18:15 
Не в сети
Аватара пользователя

Зарегистрирован: 22 июл 2006, 18:57
Сообщения: 206
Откуда: Москва
прог. языки: Delphi, С/С++, Python
ФИО: Илья Андреевич
yak-40 писал(а):
Хорошее питание - залог здоровья! :)
Кондёры по питанию стоят? Питание нормальное?
Запитай движки от отдельного источника. Похоже МК ресетится от помех.
Вот тут аналогичный вопрос обсуждался: http://roboforum.ru/viewtopic.php?f=87&t=7369&start=45


схема в протеусе,я так понимаю проблема в прошивке и именно в цикле.. в той тебе как раз таки бесконечный цикл работал,судя по коду. Питание подключаю от разных источников,это ничего не меняет =(
компилирую в WinAVR, при компиляции ошибок не находит, я даже незнаю в какую сторону смотреть уже...код то пустяковый, а никак не работает как надо.

скобка стояла,пропустил когда копировал.


Последний раз редактировалось DrZugrik 22 янв 2010, 18:23, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: помогите разобраться с бесконечным циклом
СообщениеДобавлено: 22 янв 2010, 18:22 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 09 фев 2006, 15:36
Сообщения: 3339
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков
А что тебе мешает воспользоваться отладчиком в протеусе?

// означает, что я не одобряю такое форматирование

_________________
Linux user | Firefox user


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: помогите разобраться с бесконечным циклом
СообщениеДобавлено: 22 янв 2010, 19:14 
Не в сети
Аватара пользователя

Зарегистрирован: 30 янв 2009, 01:24
Сообщения: 784
Откуда: Запорожье
прог. языки: Си, AvrASM, STL, САС, учу Си++
ФИО: Павел
WinAVR c Proteus - это сказка вообще. попробуй с оптимизацией поигратся - включи-выключи. Мне иногда помогало.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: помогите разобраться с бесконечным циклом
СообщениеДобавлено: 22 янв 2010, 19:19 
Не в сети
Аватара пользователя

Зарегистрирован: 22 июл 2006, 18:57
Сообщения: 206
Откуда: Москва
прог. языки: Delphi, С/С++, Python
ФИО: Илья Андреевич
а где её там найти? и отладчик тоже, ничего похожего не нашел


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: помогите разобраться с бесконечным циклом
СообщениеДобавлено: 22 янв 2010, 19:21 
Не в сети
Аватара пользователя

Зарегистрирован: 30 янв 2009, 01:24
Сообщения: 784
Откуда: Запорожье
прог. языки: Си, AvrASM, STL, САС, учу Си++
ФИО: Павел
в make файле в папке с исходниками твоими должен быть.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: помогите разобраться с бесконечным циклом
СообщениеДобавлено: 22 янв 2010, 19:22 
Не в сети
Аватара пользователя

Зарегистрирован: 23 окт 2007, 22:03
Сообщения: 3037
Откуда: Москва
прог. языки: С
ФИО: Евгений Яковец
Наверное подтяжку к питанию на PORTD.6 надо сделать.
Фототранзистор при освещении его светом сигнал к земле притягивает, а поднимать то его кто будет когда света нет? Или внутренний включит, или внешний надо поставить 5-10ком.

_________________
- Этот человек - не человек! это робот!
- Как? уже делают?!
- Делают!!!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: помогите разобраться с бесконечным циклом
СообщениеДобавлено: 22 янв 2010, 19:22 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Отладчик в PROTEUS это "Пауза" и куча вываливающихся окошек .

А оптиизацию можно подкрутиь в свойствах проекта если через студию работаете в WinAVR.

_________________
Читайте !


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: помогите разобраться с бесконечным циклом
СообщениеДобавлено: 22 янв 2010, 19:23 
Не в сети
Аватара пользователя

Зарегистрирован: 30 янв 2009, 01:24
Сообщения: 784
Откуда: Запорожье
прог. языки: Си, AvrASM, STL, САС, учу Си++
ФИО: Павел
viewtopic.php?f=16&t=6771&p=137459&hilit=%D0%BE%D0%BF%D1%82%D0%B8%D0%BC%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8E#p137459

последний пост посмотри тут


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: помогите разобраться с бесконечным циклом
СообщениеДобавлено: 22 янв 2010, 19:25 
Не в сети
Аватара пользователя

Зарегистрирован: 23 окт 2007, 22:03
Сообщения: 3037
Откуда: Москва
прог. языки: С
ФИО: Евгений Яковец
Кстати в оригинальной прошивке она есть
Код:
   PORTD = 0xff; // установить "1" на всех выводах порта D,
       // включаем подтягивающие резисторы


Добавлено спустя 1 минуту 32 секунды:
Внимательней надо чужие программы копировать :D

_________________
- Этот человек - не человек! это робот!
- Как? уже делают?!
- Делают!!!


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 22 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO