roboforum.ru

Технический форум по робототехнике.

 

Магический кристалл

Обсуждаем рождающиеся мысли и результаты экспериментов.

Re: Магический кристалл

Сообщение Angel71 » 12 мар 2010, 19:02

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

Re: Магический кристалл

Сообщение rig » 12 мар 2010, 20:32

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

Re: Магический кристалл

Сообщение GrayHunter » 12 мар 2010, 20:43

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

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

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


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

Re: Магический кристалл

Сообщение Duhas » 12 мар 2010, 20:46

проверку на наличие перемычки мона делать тысячи раз в секунду..
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6341
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: Магический кристалл

Сообщение yak-40 » 12 мар 2010, 20:58

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

Если питать светодиод через аппаратный ШИМ, то ему(светодиоду) до лампочки что в это время МК делает. На то он и аппаратный, что-бы ресурсы не занимать.
- Этот человек - не человек! это робот!
- Как? уже делают?!
- Делают!!!
Аватара пользователя
yak-40
 
Сообщения: 3019
Зарегистрирован: 23 окт 2007, 22:03
Откуда: Москва
прог. языки: С
ФИО: Евгений Яковец

Re: Магический кристалл

Сообщение GrayHunter » 12 мар 2010, 22:10

Почитал про "аппаратный ШИМ" и пришёл к мнению, что нужно просить вас пример кода как сделать так, чтобы светодиод "дышал", иначе пока сложно понять, не от чего не отталкиваясь :)

P.S.- теперь уже на С. :Bravo:
GrayHunter
 
Сообщения: 231
Зарегистрирован: 06 июн 2009, 20:42
Откуда: Москва

Re: Магический кристалл

Сообщение =DeaD= » 12 мар 2010, 22:11

Если бы вы соскочили с асма - тут наверное давно бы уже написали всю программу :wink:
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24053
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: Pascal / C++ / PHP / 1C
ФИО: Антон Ботов

Re: Магический кристалл

Сообщение EdGull » 12 мар 2010, 22:23

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

Re: Магический кристалл

Сообщение =DeaD= » 12 мар 2010, 22:31

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

Re: Магический кристалл

Сообщение EdGull » 12 мар 2010, 22:42

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

Re: Магический кристалл

Сообщение GrayHunter » 12 мар 2010, 23:27

Решил, как обычно, начать с маленького примерчика, чтобы мне проще было понять.
Почему вот это не работает:
Код: Выделить всёРазвернуть
#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"
}

Прошивать пытаюсь в Студии. Что я неправильно сделал?
GrayHunter
 
Сообщения: 231
Зарегистрирован: 06 июн 2009, 20:42
Откуда: Москва

Re: Магический кристалл

Сообщение =DeaD= » 12 мар 2010, 23:34

И что пишет? :D

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

Код: Выделить всёРазвернуть
#include "delay.h"

void main(void){
  DDRB=0x01;
  while(1=1){
    PORTB^=0x01;
    _delay_ms(500);  // задержка 1/2 секунды
  };
}
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24053
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: Pascal / C++ / PHP / 1C
ФИО: Антон Ботов

Re: Магический кристалл

Сообщение yak-40 » 12 мар 2010, 23:35

GrayHunter писал(а):Прошивать пытаюсь в Студии.

Чего за студия?
PortB наверное надо писАть PORTB
- Этот человек - не человек! это робот!
- Как? уже делают?!
- Делают!!!
Аватара пользователя
yak-40
 
Сообщения: 3019
Зарегистрирован: 23 окт 2007, 22:03
Откуда: Москва
прог. языки: С
ФИО: Евгений Яковец

Re: Магический кристалл

Сообщение =DeaD= » 12 мар 2010, 23:38

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

Re: Магический кристалл

Сообщение GrayHunter » 12 мар 2010, 23:51

попробовал код ниже и в 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 в двоичной форме - мне так нагляднее будет.
GrayHunter
 
Сообщения: 231
Зарегистрирован: 06 июн 2009, 20:42
Откуда: Москва

Пред.След.

Вернуться в Идеи

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

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

Mail.ru counter