roboforum.ru

Технический форум по робототехнике.
Текущее время: 27 ноя 2024, 12:45

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




Начать новую тему Ответить на тему  [ Сообщений: 266 ]  На страницу Пред.  1 ... 9, 10, 11, 12, 13, 14, 15 ... 18  След.
Автор Сообщение
 Заголовок сообщения: Re: Магический кристалл
СообщениеДобавлено: 12 мар 2010, 19:02 
Не в сети
Аватара пользователя

Зарегистрирован: 18 апр 2009, 22:18
Сообщения: 10668
можно и фоново, но лучше в это не лезть. проверяеться может там же, где вы проверяете, подсоединён ли он или переодически в таймере проверять.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Магический кристалл
СообщениеДобавлено: 12 мар 2010, 20:32 
Не в сети
Аватара пользователя

Зарегистрирован: 03 авг 2007, 19:43
Сообщения: 1437
Откуда: Екатеринбург
прог. языки: Си, асм со словарем
один миллион операций в секунду куда еще быстрее?
что тут можно пропустить? мало? можно 8 миллионов оп. в секкунду!\!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Магический кристалл
СообщениеДобавлено: 12 мар 2010, 20:43 
Не в сети

Зарегистрирован: 06 июн 2009, 20:42
Сообщения: 231
Откуда: Москва
Объясните мне, пожалуйста, а то я не уверен вот в чём:
например, если запрограммировать МК проверять перемычку - если она есть (контакты замкнуты), то светить светодиодом 5 секунд, а потом проверить снова. Если же нет, то проверить снова.

Так вот, если на третьей секунде свечения перемычку сняли/контакты разомкнули, то МК ведь продолжит питать светодиод, хотя мне нужно, чтобы он перестал это делать, т.е. повёл бы себя так же, как если бы он проверил перемычку, а её бы не оказалось.

Вот этот момент я не понимаю. Это только некой одновременностью (питания светодиода и постоянной проверки) можно сделать или как?


P.S.- я задаю вопросы по маленьким примерам, а получив ответ - делаю по аналогии уже со своим кодом, чтобы не нагружать вас лишний раз :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Магический кристалл
СообщениеДобавлено: 12 мар 2010, 20:46 
Не в сети
Аватара пользователя

Зарегистрирован: 15 сен 2007, 13:03
Сообщения: 6338
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович
проверку на наличие перемычки мона делать тысячи раз в секунду..

_________________
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Магический кристалл
СообщениеДобавлено: 12 мар 2010, 20:58 
Не в сети
Аватара пользователя

Зарегистрирован: 23 окт 2007, 22:03
Сообщения: 3037
Откуда: Москва
прог. языки: С
ФИО: Евгений Яковец
GrayHunter писал(а):
Это только некой одновременностью (питания светодиода и постоянной проверки) можно сделать или как?

Если питать светодиод через аппаратный ШИМ, то ему(светодиоду) до лампочки что в это время МК делает. На то он и аппаратный, что-бы ресурсы не занимать.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Магический кристалл
СообщениеДобавлено: 12 мар 2010, 22:10 
Не в сети

Зарегистрирован: 06 июн 2009, 20:42
Сообщения: 231
Откуда: Москва
Почитал про "аппаратный ШИМ" и пришёл к мнению, что нужно просить вас пример кода как сделать так, чтобы светодиод "дышал", иначе пока сложно понять, не от чего не отталкиваясь :)

P.S.- теперь уже на С. :Bravo:


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

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

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


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

Зарегистрирован: 28 дек 2004, 20:33
Сообщения: 10211
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович
особенно если писать на васике :P


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

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Подписываешься? Вот поймают на слове - что делать будешь? :D

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


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

Зарегистрирован: 28 дек 2004, 20:33
Сообщения: 10211
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович
меня никогда никто не переубедит что на васике писать быстрей чем на сях, а уж тем более на асме. :P


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Магический кристалл
СообщениеДобавлено: 12 мар 2010, 23:27 
Не в сети

Зарегистрирован: 06 июн 2009, 20:42
Сообщения: 231
Откуда: Москва
Решил, как обычно, начать с маленького примерчика, чтобы мне проще было понять.
Почему вот это не работает:
Код:
#include <C:\Documents and Settings\123\Рабочий стол\Программатор\inc\mega8.h>  // подключаем заголовочный файл для ATmega8(L)
#include <C:\Documents and Settings\123\Рабочий стол\Программатор\inc\delay.h>  /* файл содержит функции для создания пауз в программе,
                                                               Например: delay_ms(x); /* сделать паузу x милиСек
                                                               x - может быть переменная, выражение или число от 0 до 65535 (тип unsigned int) */

   // Функция в которой описано начальное конфигурирование МК:
(void)_init_mk(void){
   // Инициализация Port_B:
DDRB=0b00000001;  // определение ножек МК портов B (1 = вывод | 0 = ввод).
PortB=0b00000000;

   // Главная функция - с неё начинается выполнение программы:
void main(void){
_init_mk();  /* Вызываем функцию инициализации, настроийки аппаратуры МК.
            Выполнив её программа вернется сюда и будет выполнять следующую строку */
again:  // метка "again"
PortB=0b00000001; // подаём напряение на светодиод
delay_ms(500);  // задержка 1/2 секунды
PortB=0b00000000; // обесточиваем светодиод
delay_ms(500);  // задержка 1/2 секунды
goto again;  // переход к метке "again"
}

Прошивать пытаюсь в Студии. Что я неправильно сделал?


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

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

Что-то вы наворотили всего, должно быть что-то типа:

Код:
#include "delay.h"

void main(void){
  DDRB=0x01;
  while(1=1){
    PORTB^=0x01;
    _delay_ms(500);  // задержка 1/2 секунды
  };
}

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


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

Зарегистрирован: 23 окт 2007, 22:03
Сообщения: 3037
Откуда: Москва
прог. языки: С
ФИО: Евгений Яковец
GrayHunter писал(а):
Прошивать пытаюсь в Студии.

Чего за студия?
PortB наверное надо писАть PORTB

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


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

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Магический кристалл
СообщениеДобавлено: 12 мар 2010, 23:51 
Не в сети

Зарегистрирован: 06 июн 2009, 20:42
Сообщения: 231
Откуда: Москва
попробовал код ниже и в CVAVR и в AVRStudio - не работает...
Код:
#include "mega8.h"  // подключаем заголовочный файл для ATmega8(L)
#include "delay.h"

void main(void){
  DDRB=0x01;
  while(1=1){
    PORTB^=0x01;
    _delay_ms(500);  // задержка 1/2 секунды
  };
}

Можно плз работающий код в AVRStudio? :roll:
З.Ы.- хотелось бы определение DDRB в двоичной форме - мне так нагляднее будет.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 266 ]  На страницу Пред.  1 ... 9, 10, 11, 12, 13, 14, 15 ... 18  След.

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


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

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


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

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