roboforum.ru

Технический форум по робототехнике.
Текущее время: 29 апр 2025, 22:51

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




Начать новую тему Ответить на тему  [ Сообщений: 106 ]  На страницу Пред.  1 ... 3, 4, 5, 6, 7, 8  След.
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: 13 мар 2007, 10:53 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Myp писал(а):
а в симуляторе написан именно символ который передаётся


Симулятор отображает так как настроен - он изображает терминал.  Вклюите вывод чисел и будут числа.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 13 мар 2007, 10:59 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Myp писал(а):
тоесть в итоге я получу массив вида 0х52, 0х32, 0х30 что будет соответствовать общечеловеческой строке "R20"

и дальше уже
switch(massiv[1])
case 'R'



зря вы все же не найдете время ВНИМАТЕЛЬНО прочитать курс.

там написано что в массиве нумерация элементов с нуля идет !

======

А в задаче - avr123.nm.ru/z5.htm  - написано на выделеном фоне в каком порядке символы-числа располагаются в буфере.

======

Если вам нужно дождаться прихода символа R и ни чего больше не делать то так

while (getchar() =='R');

тут вы окажетесь когда из приемного буфера будет считан символ R.

теперь можете анализировать что дальше.

сделайте 2 раза "гетчар"  и сложите это в  десятичное число.

а дальше "Свитч"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 13 мар 2007, 11:01 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
как конкретно реализовать алгоритм зависит от количества нужных комбинаций символов.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 13 мар 2007, 12:29 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

Зарегистрирован: 18 сен 2006, 12:26
Сообщения: 18018
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич
Цитата:
там написано что в массиве нумерация элементов с нуля идет !
да я вспомнил что с нуля, только я уже спать ушёл, по этому не стал исправлять=)

Цитата:
зря вы все же не найдете время ВНИМАТЕЛЬНО прочитать курс.
ой блин там стока всего что не усваиваю =/

Цитата:
Если вам нужно дождаться прихода символа R и ни чего больше не делать то так

немного сложнее
мне нужно ждать прихода одного из скольких то заранее определённых символов и в завис от символа чёто делать


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 13 мар 2007, 15:41 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

Зарегистрирован: 18 сен 2006, 12:26
Сообщения: 18018
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич
Код:
char buffer[3];
void Priem(void)                    
{
   gets(buffer, 3);
       
}


не работает
хз в чём дело но в этом месте Мк вваливаеться в непрерывный цикл
тоесть gets(buffer, 3) выполняеться и новые символы записываются но процедура не кончается на этом


Вложения:
Комментарий к файлу: вот такой вот бред
ACDSee6 BMP Image.jpg
ACDSee6 BMP Image.jpg [ 2.85 КиБ | Просмотров: 2359 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 13 мар 2007, 16:10 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

Зарегистрирован: 18 сен 2006, 12:26
Сообщения: 18018
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич
блин бред какойто
я непонимаю =/


почему getchar(); вводит программу в ступор?


блин пойду выпью йаду =/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 13 мар 2007, 16:18 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
дак кода не видно ктож скажет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 13 мар 2007, 16:24 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

Зарегистрирован: 18 сен 2006, 12:26
Сообщения: 18018
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич
хмммм

протеус задница


пишем вот такой код
Код:
while (1)
     {
    PORTB.0=0;
    delay_ms(20);
    PORTB.0=1;
    delay_ms(20);
    PORTC = getchar();
    putchar(PORTC);
     };

и что мы видим в протеусе???
а вот что, на PORTB.0 вобще всегда лог единица
пофиг на всё
единица горит, симуляция идёт...
если вводим в терминал символ он отображается в порту С и отсылается обратно...
а PORTB.0 форева единица...

как это понимать?
почему  портб не моргает пока идёт симуляция? :(


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 13 мар 2007, 16:55 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 09 фев 2006, 15:36
Сообщения: 3339
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков
Код:
while (1)
{
    PORTB.0 = 0;
    delay_ms (20); // а вы успеете увидеть такую задержку ? :)
    PORTB.0 = 1;
    delay_ms (20); // нафих ненужна
    PORTC   = getchar(); // здесь мы сидим до тех пор пока что-нибудь не придет - вот вам и кажется что всегда 1
    putchar (PORTC);
};


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 13 мар 2007, 17:04 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

Зарегистрирован: 18 сен 2006, 12:26
Сообщения: 18018
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич
это чисто для протеуса такая задержка
там  это вполне отчётливо видно=)
а вторая пауза чтоб видно было моргание
ибо если делать паузу один раз то невидно будет так как будет моментально переключатся состояние ноги

блин
а как мне тогда это сделать то?
чтоб по прерыванию записывалось 3 символа в массив :(

я тогда не понимаю как мне взять в мой массив то что уже фактически физически пришло и лежит в буфере Rx_buffer


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 13 мар 2007, 17:12 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
сделать 3 раза  в цикле

элемент массива (номер такой то) = getchar();


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 13 мар 2007, 17:21 
Не в сети
Правохранитель
Аватара пользователя

Зарегистрирован: 23 фев 2007, 02:23
Сообщения: 197
Откуда: Зеленоград
Прерывание виснет по двум причинам.

1. Не успевает обрабатываться код.
Тоесть прерывание вызывается снова, когда предыдущее еще не завершено.

2. После выполнения прерывания автозапуск прерывания отключается.
Как это сделано в АЦП у АВР.

И вообще понимайте объективнее суть проблемы, а не сразу пишите в форум. Так большего добьетесь... и проблемы станут решаемыми.

Любую проблему можно понять и решить самому.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 13 мар 2007, 17:29 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

Зарегистрирован: 18 сен 2006, 12:26
Сообщения: 18018
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич
avr123.nm.ru писал(а):
сделать 3 раза  в цикле

элемент массива (номер такой то) = getchar();


дык блин
уже раз 5 наверно написал здесь не работает
как только доходим до getchar висим и ждём от неба погоды...
и висим висим висим


char buffer[3];

void Priem(void)                        
{
 int i = -1;
 while ((i+1) <= 3)
 {          
 buffer[i] = getchar();
 }
}

ну нет выхода из этой процедуры, счётчик не тикает висим на getchar


Последний раз редактировалось Myp 13 мар 2007, 17:34, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 13 мар 2007, 17:32 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

Зарегистрирован: 18 сен 2006, 12:26
Сообщения: 18018
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич
maktep писал(а):
И вообще понимайте объективнее суть проблемы, а не сразу пишите в форум. Так большего добьетесь... и проблемы станут решаемыми.

Любую проблему можно понять и решить самому.

вы время создания темы посмотрите
месяц уже минул
вот я до сих пор немогу осознать в чём косяк

я невижу в чём проблема потмоу и прошу помочь

я знаю что мне нужно в итоге и знаю как это реализовать
но не работает...
(мне нужно выполнять основную программу  и при поступлении 3 символов поуарту записывать эти символы в массив. потом возвращаться обратно в основную программу)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 13 мар 2007, 17:50 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

Зарегистрирован: 18 сен 2006, 12:26
Сообщения: 18018
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич
кстати краткий курс накрылся
не работает...http://www.avr123.nm.ru/


и вот как в таких условиях можно чтото сделать...


вопрос элементарный
а ответа нет ....

чтоб было понятно о чем речь повторюсь

есть контроллер мега8
контроллер управляет 2мя двигателями

необходимо помимо основной программы обрабатывать данные по прерыванию

ТЗ:
.выполняеться основная программа использующая массив из 3х символов
.при  поступлении символа в МК срабатывает прерывание Rx
.после приёма 3х символов, эти 3 символа записываются в массив
.возврат в основную программу
.выполнение основной программы с изменёнными выше значениями массива


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 106 ]  На страницу Пред.  1 ... 3, 4, 5, 6, 7, 8  След.

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


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

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


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

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