roboforum.ru

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

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




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

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


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

Зарегистрирован: 15 ноя 2009, 13:37
Сообщения: 750
Откуда: Porto Franco "Odessa"
Код:
 
  if (PINC.0 == 0)
  {
   PORTD.0 = 1;
  }
else
{
PORTD.0 = 0;
}

так не ?

_________________
die Wahrheit ist irgendwo da draußen


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

Зарегистрирован: 06 июл 2006, 20:42
Сообщения: 650
Откуда: Москва
прог. языки: C/C++, Python
Romikgy писал(а):
Код:
 
  if (PINC.0 == 0)
  {
   PORTD.0 = 1;
  }
else
{
PORTD.0 = 0;
}

так не ?

всё дело в таймере.

_________________
[[Использование библиотеки OpenCV]]
Я в LiveJournal


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

Зарегистрирован: 15 ноя 2009, 13:37
Сообщения: 750
Откуда: Porto Franco "Odessa"
если решил проблемку ок , нет выкладывай протеус проект посмотрим

_________________
die Wahrheit ist irgendwo da draußen


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

Зарегистрирован: 03 авг 2007, 19:43
Сообщения: 1437
Откуда: Екатеринбург
прог. языки: Си, асм со словарем
варианты рабочие, можно сделать так:
PINC.0 = ~PINC.0;
или так
PINC.0 = !PINC.0;

таймер то работает?


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

Зарегистрирован: 06 июл 2006, 20:42
Сообщения: 650
Откуда: Москва
прог. языки: C/C++, Python
Код:
#include <ioavr.h>
#include <intrinsics.h>
#include <iom8.h>

int main( void )
{
  PORTC=(0<<PC0);
  DDRD=255;
  TCCR1B=(0<<ICNC1)|(0<<ICES1)|(0<<WGM13)|(0<<WGM12)|(1<<CS12)|(0<<CS11)|(1<<CS10);
  TCNT1H=0xF0;
  TCNT1L=0x6F; //значение 61551

  //TIMSK=0x04;
  TIMSK=(1<<TICIE1);
 
__enable_interrupt();
 
  while(1)
  {
    PORTD = (1<<1);
  }
}

#pragma vector = TIMER1_OVF_vect
__interrupt void flashing(void)
{
  //if ((PINC & (1 << PC0)) == 1)
  //{
    PORTD = (1<<PD0);
  //}
}

Таймер настроен на прерывание по переполнению, отсчёт начинается со значения (65535-3984)=61551
предделитель 1024, т.е. частота таймера 7813 Гц
время одного такта 0,000128 сек

Вот написал код в IAR, но не работают даже прерывания, моделил в протеусе. Помогите, плиз.

_________________
[[Использование библиотеки OpenCV]]
Я в LiveJournal


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

Зарегистрирован: 03 авг 2007, 19:43
Сообщения: 1437
Откуда: Екатеринбург
прог. языки: Си, асм со словарем
подобная команда у меня не работала
0<<CS11

делал так:
~(1<<CS11)
на выходе в разряде CS11 будет нолик а все остальные единички.

но нолик прилеплять надо через & лог умножение

так что там получится после такой команды непонятно
Код:
TCCR1B=(0<<ICNC1)|(0<<ICES1)|(0<<WGM13)|(0<<WGM12)|(1<<CS12)|(0<<CS11)|(1<<CS10);


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

Зарегистрирован: 05 июн 2007, 12:20
Сообщения: 196
Откуда: Киев
прог. языки: C/C++, ASSEMBLER
rig писал(а):
так что там получится после такой команды непонятно
Код:
TCCR1B=(0<<ICNC1)|(0<<ICES1)|(0<<WGM13)|(0<<WGM12)|(1<<CS12)|(0<<CS11)|(1<<CS10);

Понятно. Лог. "или" нуля с любым числом оставит это же число. Другое дело, если после ресета эти биты не нули или раньше в них не писал что-нибудь.

_________________
Глюк по-немецки означает "счастье"...


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

Зарегистрирован: 06 июл 2006, 20:42
Сообщения: 650
Откуда: Москва
прог. языки: C/C++, Python
Строка:
Код:
TCCR1B=(0<<ICNC1)|(0<<ICES1)|(0<<WGM13)|(0<<WGM12)|(1<<CS12)|(0<<CS11)|(1<<CS10);

Устанавливает режим таймер Normal, Top=0xFFFF

Цитата:
делал так:
~(1<<CS11)
на выходе в разряде CS11 будет нолик а все остальные единички.

но нолик прилеплять надо через & лог умножение

Не совсем понял.
У меня в TCCR1B только CS12 и CS10 должны быть единичками.

Добавлено спустя 1 час 40 минут 6 секунд:
Исправил TIMSK=(1<<TICIE1); на TIMSK=(1<<TOIE1); (не то прерывание обрабатывалось), но всё равно не работает

_________________
[[Использование библиотеки OpenCV]]
Я в LiveJournal


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

Зарегистрирован: 03 авг 2007, 19:43
Сообщения: 1437
Откуда: Екатеринбург
прог. языки: Си, асм со словарем
честно говоря я еще ни разу таймер по даташиту не настраивал, обычно беру мастер, выставляю что хочу. Расчитываю задержки, ставлю константы и пользуюсь готовым кодом.
Мне непонятна эта проблема не решающаяся с 18 мар 2010 18:32.

Добавлено спустя 12 минут 34 секунды:
Lockdog писал(а):
Я хочу чтобы таймер через каждые 0,5 сек вызывал прерывание и в нём проверял состояние ножки и если оно = 1, то выполнять какю-либо команду

Мега 8я?
таймер какой задействовать??
послезавтра могу код таймера дать :)


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

Зарегистрирован: 06 июл 2006, 20:42
Сообщения: 650
Откуда: Москва
прог. языки: C/C++, Python
Ну это тема с 18-го марта=) была большая пауза и недавно я опять взялся за проблему. Да - мега8, таймер любой можно.
Просто сейчас пишщу на IAR.
Мне непонятно, почему прерывание не срабатывает.

_________________
[[Использование библиотеки OpenCV]]
Я в LiveJournal


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

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


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

Зарегистрирован: 06 июл 2006, 20:42
Сообщения: 650
Откуда: Москва
прог. языки: C/C++, Python
:lol: Конечно, всё работает, сигналы переключает, без глюков. Я говорю о том, что у меня в протеусе прерывания не работают.

_________________
[[Использование библиотеки OpenCV]]
Я в LiveJournal


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

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


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

Зарегистрирован: 06 июл 2006, 20:42
Сообщения: 650
Откуда: Москва
прог. языки: C/C++, Python
Я имею ввиду, что контроллер жив, но вот с прерываниями я где-то напортачил.

_________________
[[Использование библиотеки OpenCV]]
Я в LiveJournal


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

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


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

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


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

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