roboforum.ru

Технический форум по робототехнике.
Текущее время: 06 июн 2025, 13:46

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




Начать новую тему Ответить на тему  [ Сообщений: 14 ] 
Автор Сообщение
 Заголовок сообщения: ИК-бампер, нужен пример на С
СообщениеДобавлено: 24 июл 2005, 00:22 
Не в сети
Аватара пользователя

Зарегистрирован: 19 июн 2005, 18:27
Сообщения: 1576
Откуда: Камышин
Доброго времени суток коллеги :D

Тэк сказать изготовил своего первого "робота" - гусеницами уже крутит :D, но как выразилась жена - слепоглухонемотупой инвалид получился :D  :D  :D Глазки одним словом делаем, но как то не могу себе представить формирование импульсов для ИК-бампера.

Просьба к гуру - для примера, хотелось бы увидеть код, формирующий сигнал по 10 испульсов с частотой 36кГц с задержкой между пачками 100 мкс - ну чего то не получается, мож не то чтото делаю :cry:
камень - ATmega8L
кварц - 4мГц
юзаю CodeVision
Код нужен на С

Буду безмерно благодарен за инфу :D


Последний раз редактировалось FireFly 06 авг 2005, 15:01, всего редактировалось 1 раз.

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

Зарегистрирован: 21 янв 2005, 12:16
Сообщения: 977
Откуда: Germany
прог. языки: asm
ATinny12 , правда на ассемблере ... , но это даже лучше

линк : http://parts.roboclub.ru/index.shtml?ik


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

Зарегистрирован: 19 июн 2005, 18:27
Сообщения: 1576
Откуда: Камышин
Гм, спасибо, но это мне знакомо, но не то - мне именно на С-шнике надо :cry:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 26 июл 2005, 15:07 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 04 окт 2004, 12:58
Сообщения: 10990
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко
сам на сях не пишу, а они разве не делает вставки АСМ ?


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

Зарегистрирован: 19 июн 2005, 18:27
Сообщения: 1576
Откуда: Камышин
Гм, честноо гря не знаю, мож и делает, но все :? таки интересно ка оно на С реализовано могет быть (я так думаю это не только мне интересно)


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

Зарегистрирован: 19 июн 2005, 18:27
Сообщения: 1576
Откуда: Камышин
Фиг с ним с С-шником :cry:  пример кода на ассемблере тьо же покатит (тот который для тини12 не то)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 27 июл 2005, 18:06 
Не в сети
Аватара пользователя

Зарегистрирован: 27 июл 2005, 14:12
Сообщения: 197
Откуда: Дмитров, Москва
прог. языки: С, asm
У меня есть рабочий вариант на Algorithm Builder-е. Я его переделал на С (IAR)  так сказать в демонстрационных целях. Так что пример чисто ознакомительный.

/********************************************************************************
* Старший бит счётчика InpulseCounter служит в качестве флага идет ли пачка или *
* нет. Пачка состоит из десяти импульсов. При каждом переполнении светодиод *
* переключается, следовательно счётчик должен досчитать до 10*2=20 плюс (точнее *
* OR) флаг пачки (старший бит): *
* 0x14 OR 0x80 = 0x94 *
* Время паузы между пачками равно: *
* 1/(6000000/(0x7F*(0xFFFF-0xFFB8)))= *
* 1/(6000000/((0x7F*0x47))=1/(6000000/9017)=1/665,4=0,0015=1.5 мс. *
* В расчётах правда не уверен. Если надо проверяйте сами ;) *
********************************************************************************/

#define CPUFrequency=6000000;

unsigned char ImpulseCounter;

#pragma vector=Timer1OverflowInterruptVector
__interrupt void IRTimerInterrupt(void)
{
 ImpulseCounter++;
 if (ImpulseCounter>0x80) //Если старший бит установлен, то:
 {
   if (ImpulseCounter==0x94) //если ImpulseCounter досчитал до 0х94-х
   {
     ImpulseCounter=0; //то пачка закончилась. Обнуляем счётчик
     PORTD4=1; //и гасим светодиод
   }
   else
     PORTD^=0x10; //если не закончилась, то переключаем светодиод
 }
 else //если старший бит сброшен, то
   PORTD4=1; //на всякий случай гасим светодиод
 TCNT1H=0xFF;
 TCNT1L=0xB8; //Заводим таймер на 65464, чтобы
} //частота переполнения была равна 36 кГц

Примерно так.


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

Зарегистрирован: 19 июн 2005, 18:27
Сообщения: 1576
Откуда: Камышин
ОК, сенкс бошльшой - бум пробовать :D


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

Зарегистрирован: 19 июн 2005, 18:27
Сообщения: 1576
Откуда: Камышин
Мдя, мож я тупой такой, только нифига так и не разобрался :cry:

неужели ни кто ничего подобного на Code Vision не делал?
тема опять получила актуальность


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 17 авг 2005, 01:24 
Не в сети
Аватара пользователя

Зарегистрирован: 10 янв 2005, 12:18
Сообщения: 189
Откуда: Санкт-Петербург
Мой совет, установи несколько компиляторов. И попробуй AVRedit 3.5


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

Зарегистрирован: 19 июн 2005, 18:27
Сообщения: 1576
Откуда: Камышин
ороче мыкался я мыкался - плюнул и изготовил генератор в "железе" :D  - заодно память и ногу на проце освободил :D

кстати пашет отлично :twisted:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 18 авг 2005, 10:59 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 04 окт 2004, 12:58
Сообщения: 10990
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко
FireFly писал(а):
ороче мыкался я мыкался - плюнул и изготовил генератор в "железе" :D  - заодно память и ногу на проце освободил :D

кстати пашет отлично :twisted:

:wink: не спортивно
к тому же опыт! так и не приобретён


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

Зарегистрирован: 19 июн 2005, 18:27
Сообщения: 1576
Откуда: Камышин
Дык, я больше по "железу" - схемку там разработать спаять и отладить, а вот в программировании.... слабовато :D  ничего, подтянемся, начало стал быть положено - железо ездиет и машет крылышками (шучу) 8)  теперь и программами займемся - благо есть на чем пробовать, а с таймерами и формированием различных частот все равно столкнуться придется - вот тада бум рыть копытом :D  ща пока цель стоит - железом обрасти


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 26 авг 2005, 18:44 
Не в сети
Аватара пользователя

Зарегистрирован: 27 июл 2005, 14:12
Сообщения: 197
Откуда: Дмитров, Москва
прог. языки: С, asm
Блин, ну на тебе ещё вариант на Algorithm Builder-e, этот точно рабочий, так сказать боевой. Будут вопросы - задавай.


Вложения:
Timer1Overflow.rar [3.04 КиБ]
Скачиваний: 179
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 14 ] 

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


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

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


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

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