roboforum.ru

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

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




Начать новую тему Ответить на тему  [ Сообщений: 227 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7 ... 16  След.
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: 12 авг 2006, 21:15 
Не в сети
Аватара пользователя

Зарегистрирован: 22 мар 2005, 03:59
Сообщения: 257
Откуда: Питер
И еще подкиньте плиз матерьяльчика по таймерам(желательно с примерами и на русском) :D


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 12 авг 2006, 21:24 
Не в сети

Зарегистрирован: 29 дек 2004, 23:15
Сообщения: 3744
Откуда: Санкт-Петербург
прог. языки: C, C++, C#, Asm
ФИО: Кашликов Сергей
Я вот пытаюсь создать программу для серв(смотрите в разделе Новичков и тема "проблема с WinAVR" =) но вот народ не тянется мне помогать, а самому трудно разбираться.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 12 авг 2006, 23:33 
Не в сети

Зарегистрирован: 26 фев 2006, 15:21
Сообщения: 400
Откуда: Омск
Литературы с описанием Т/С довольно много, в т.ч. и в электронном виде (http://www.natahaus.ru lord-n.narod.ru и т.д. загляните в курс, там все написано, показано).
Есть апноуты с того же http://www.gaw.ru/html.cgi/txt/app/micros/avr/index.htm, AVR130: Инициализация и использование таймеров AVR-микроконтроллеров. С примерами, тоько EN.
Да и гугль, например http://dfe3300.karelia.ru/koi/posob/avr ... tcnt1.html http://dfe3300.karelia.ru/koi/posob/avr ... tcnt0.html
...


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

Зарегистрирован: 22 мар 2005, 03:59
Сообщения: 257
Откуда: Питер
2 Johnny Bravo: За ссылки спасибо.

ЗЫ Интересная арифметика выходит:1000(1 секунда)/1,5(среднее положение сервы)=666.66666666667MHZ

Чур меня,чур,чур,чур,чур :D  :D  :D  :D  :D


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

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Друзья ! Еще раз ОЧЕНЬ прошу.

делайте как  написано в курсе  avr123.nm.ru/04.htm  и все будет работать !

Поставиви WinAVR  больше НИКОГДА в него не лазайте !

Работайте из VMLAB !!  Он сам генерит ПРАВИЛЬНЫЙ мэйк-файл, которые вы затем при желании можете исправить !

Редактор WinAVR можно подключитьк VMLAB

Из VMLAB ведется редактирование исходника и его перекомпиляция по "ребилд олл".

в проекте VMLAB  у вас должно быть то что в примере VMLAB из папки WinAVR

.MICRO "какой"
.TOOLCHAIN "GCC"
.GCCPATH   "c:\WinAVR"

.GCCMAKE AUTO  ; приказ сделать мэйк фал самому

.SOURCE "main.c"
.TARGET "main.hex"


в исходник на Си  НЕОБХОДИМО включить библиотеки (хидеры .h) из исходника из папки WinAVR

==============

Уанс мо:  

делайте как написано в курсе - и у вас будет работать быстро и правильно.

Вот файлы - попробуйте.


Вложения:
SvS_by_avr123.nm.ru _.rar [3.55 КиБ]
Скачиваний: 26
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 13 авг 2006, 20:58 
Не в сети
Аватара пользователя

Зарегистрирован: 22 мар 2005, 03:59
Сообщения: 257
Откуда: Питер
УРРАА!!!
Мне получилось сделать задержку в 20мс на 1-ом таймере(8-битном);
Решив прекратить с поиском готового решения, я вооружившись [url=http://dfe3300.karelia.ru/koi/posob/avrlab/mega16tcnt0.html]этой
[/url]информацией стал внимательно копаться в ДШ.
В итоге получился следующий код:

ВНИМАТЕЛЬНО ЧИТАЙТЕ КОММЕНТЫ!!!
Код:
#define SET_B(x) |= (1<<x)
#define CLR_B(x)  &=~(1<<x)

//****************ИНИЦИАЛИЗАЦИЯ ТАЙМЕРА***************************
void timer0_init(void)
{
TCCR0 = 0x00; //Остановить таймер
TCNT0 = 0x06; //записать в регистр таймера число 184
PORTD CLR_B(7);
TIMSK SET_B(TOIE0);//Разрешение прерывания по переполнению таймера 0
SREG SET_B(7);//Бит i в регистре SREG включен(разрешить глобальные прерывания)
TCCR0 =0x05; //Старт таймера при делителе = 1024
//Биты CS02 и CS00 включены
//а CS01 - выключен
}
//**************ПРОЦЕДУРА ПЕРЕПОЛНЕНИЯ ТАЙМЕРА***********************
SIGNAL(SIG_OVERFLOW0)
{   TCNT0 = 0x06; //записать в регистр таймера число 184
PORTD SET_B(7);//В ПРОТЕУСЕ загорелся соответствующий пин!!!!

}


Вот так!!! :D  :D  :D

2Сергей: ПОЛЬЗУЙСЯ!!!


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

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Можно так решить:
http://avr123.nm.ru/z3.htm

Cоздание скелета  программы  и кода для начальной конфигурации МК с  помощью мастера - генератора начального кода CodeWizardAVR

еще так:
http://avr123.nm.ru/z6.htm

Сконфигурировать таймер_0 МК  ATmega16 и создать программу прерывающуюся 50 раз в секунду от переполнения таймера

Продолжаем учиться генерировать (создавать) начальный код программы на Си, или текст программы инициализации периферии МК с помощью специального инструмента - программы мастера  "Application Builder"

и еще кучей способов.


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

Зарегистрирован: 22 мар 2005, 03:59
Сообщения: 257
Откуда: Питер
"Генерировать" начальный код нажимая на кнопочки каждый сможет,
а вот понять и ручками написать код основываясь на информации из ДШ врятли.
Согласитесь новичку будет гораздо полезнее вникнуть в принцип действия кода который он САМ написал, чем  воспользоваться мастером.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 13 авг 2006, 21:53 
Не в сети

Зарегистрирован: 26 фев 2006, 15:21
Сообщения: 400
Откуда: Омск
Lirzman писал(а):
TCNT0 = 0x06; //записать в регистр таймера число 184

:?:  :?:  :?:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 13 авг 2006, 22:00 
Не в сети

Зарегистрирован: 11 авг 2006, 01:02
Сообщения: 69
Откуда: ----
avr123.nm.ru писал(а):
Можно так решить:
http://avr123.nm.ru/z3.htm


То 123: Хватит посылать всех на  123, у Человека свои мозги есть.


Последний раз редактировалось aesok 13 авг 2006, 22:07, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 13 авг 2006, 22:05 
Не в сети

Зарегистрирован: 11 авг 2006, 01:02
Сообщения: 69
Откуда: ----
То Lirzman: c PWM я погорячился, для вашей задачи он не подходит, но Вы двигаетесь в правильном направлениии!!!

Анатолий.


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

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
aesok писал(а):
То 123: Хватит посылать всех на  123, у Человека свои мозги есть.


... а без мозгов на 123 ходить бесполезно.  

Я прдлагаю к мозгам удобные инструмены для написания программ.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 13 авг 2006, 22:46 
Не в сети

Зарегистрирован: 29 дек 2004, 23:15
Сообщения: 3744
Откуда: Санкт-Петербург
прог. языки: C, C++, C#, Asm
ФИО: Кашликов Сергей
Да ладно Вам на 123 гнать, я вот изучил таймер0 нормально благодаря примерам 123. Действительно в курсе бывает полезная информация. =)


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

Зарегистрирован: 22 мар 2005, 03:59
Сообщения: 257
Откуда: Питер
Курс avr123.nm.ru мне помог по определенным моментам, но я не брал его за основу.Просто компилю я на avr-gcc, симуляции провожу в PROTEUS а в курсе подробно рассматривается CodeVision и VMLAB.
Т.к я не хотел отказываться от выбранных инструментов, то пришлось приспосабливать имеющиеся примеры к моему компилятору с другими хидерами.
Так что avr123.nm.ru неумышленно подвиг меня в правильном направлении.    :D  :D

Всё-таки очень полезно хоть иногда лазить в ДШ, я вот никогда бы не подумал что бит i в регистре SREG отвечает за прерывания всех таймеров при переполнении:shock:  :shock:  :shock:

Lirzman писал(а):
TCNT0 = 0x06; //записать в регистр таймера число 184
Johnny bravo писал(а):
:?::?::?:



Просто коммент забыл поправить :D
0xB8 конечно :D

aesok писал(а):
у Человека свои мозги есть.

Похвально :D  :D  :D


Последний раз редактировалось Lirzman 14 авг 2006, 00:08, всего редактировалось 1 раз.

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

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Lirzman писал(а):
Всё-таки очень полезно хоть иногда лазить в ДШ


Да, я это настоятельно рекомендую на 1-й странице курса !

Причем не только читать а брать из ДШ куски кода !

Еще апноуты скачать советую и тоже использовать.


Последний раз редактировалось avr123.nm.ru 13 авг 2006, 23:42, всего редактировалось 1 раз.

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

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


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

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


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

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