roboforum.ru

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

ИК-бампер, нужен пример на С

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

ИК-бампер, нужен пример на С

Сообщение FireFly » 24 июл 2005, 00:22

Доброго времени суток коллеги :D

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

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

Буду безмерно благодарен за инфу :D
Последний раз редактировалось FireFly 06 авг 2005, 15:01, всего редактировалось 1 раз.
Аватара пользователя
FireFly
 
Сообщения: 1576
Зарегистрирован: 19 июн 2005, 18:27
Откуда: Камышин

Сообщение nest » 25 июл 2005, 11:22

ATinny12 , правда на ассемблере ... , но это даже лучше

линк : http://parts.roboclub.ru/index.shtml?ik
Аватара пользователя
nest
 
Сообщения: 977
Зарегистрирован: 21 янв 2005, 12:16
Откуда: Germany
Предупреждения: -4
прог. языки: asm

Сообщение FireFly » 25 июл 2005, 22:53

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

Сообщение setar » 26 июл 2005, 15:07

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

Сообщение FireFly » 26 июл 2005, 23:37

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

Сообщение FireFly » 27 июл 2005, 16:16

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

Сообщение North » 27 июл 2005, 18:06

У меня есть рабочий вариант на 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 кГц

Примерно так.
Аватара пользователя
North
 
Сообщения: 197
Зарегистрирован: 27 июл 2005, 14:12
Откуда: Дмитров, Москва
прог. языки: С, asm

Сообщение FireFly » 27 июл 2005, 21:27

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

Сообщение FireFly » 06 авг 2005, 11:51

Мдя, мож я тупой такой, только нифига так и не разобрался :cry:

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

Сообщение gambit6 » 17 авг 2005, 01:24

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

Сообщение FireFly » 17 авг 2005, 23:55

ороче мыкался я мыкался - плюнул и изготовил генератор в "железе" :D  - заодно память и ногу на проце освободил :D

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

Сообщение setar » 18 авг 2005, 10:59

FireFly писал(а):ороче мыкался я мыкался - плюнул и изготовил генератор в "железе" :D  - заодно память и ногу на проце освободил :D

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

:wink: не спортивно
к тому же опыт! так и не приобретён
Аватара пользователя
setar
Site Admin
 
Сообщения: 10989
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

Сообщение FireFly » 19 авг 2005, 00:29

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

Сообщение North » 26 авг 2005, 18:44

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


Вернуться в Микроконтроллеры

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

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