HELP! Прога для локатора..

Раздел создан специально для людей которым интересна робототехника, но в силу разных причин они не знают с чего начать.
Задавайте ваши вопросы, какими бы простыми они не казались, постоянные посетители форума постараются ответить на них по мере своих сил.
Робот своими руками. Самодельный робот.

HELP! Прога для локатора..

Сообщение BobMarley » 09 апр 2006, 21:04

Народ, прошу помочь!
Делаю ИК локатор на ATtiny13

PB0, PB3 - входы 2-х TSOP1736
PB4, PB1 - выходы на ИК диоды
PB5, PB2 - подключаю к другому МК

Диоды мигают на частоте 36кГЦ, если ловит PB0 - на PB5 посылаю 1, если PB3 - на PB2 посылаю 1, иначе на них 0.

Скажите, возможно ли такое осуществить??
Буду оочень рад если поможете на сях написать (желательно с пояснениями :oops: )!
ПОМОЖЕМ НАЧИНАЮЩИМ!!!  :)
Аватара пользователя
BobMarley
 
Сообщения: 26
Зарегистрирован: 30 мар 2006, 17:04
Откуда: Физтех...

Сообщение EdGull » 09 апр 2006, 21:35

Если все так запущенно, то почему не написать на васике, почему обязательно сразу на сях?
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Сообщение BobMarley » 09 апр 2006, 21:40

Я лишь прошу помочь..
Все когдато бывает в первый раз )
А си я просто знаю, и всякие компиляторы есть к нему..

Ну что, кто поможет?
Аватара пользователя
BobMarley
 
Сообщения: 26
Зарегистрирован: 30 мар 2006, 17:04
Откуда: Физтех...

Re: HELP! Прога для локатора..

Сообщение avr123.nm.ru » 09 апр 2006, 22:35

BobMarley писал(а):если ловит PB0 - на PB5 посылаю 1, если PB3 - на PB2 посылаю 1, иначе на них 0.


я думаю тебе полезней самому написать - начинать именно с простого надо.

используй скелет:  

while(1){  

if  

 else

if  

 else

}

как - на стр. 5 курса и задача 1.

можно и с прерываниями сделать.

======

Заклинаю!  всегда используй Меги !
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва

Re: HELP! Прога для локатора..

Сообщение BobMarley » 09 апр 2006, 22:43

avr123.nm.ru писал(а):
я думаю тебе полезней самому написать - начинать именно с простого надо.

используй скелет:  

while(1){  

if  

 else

if  

 else

}

как - на стр. 5 курса и задача 1.

можно и с прерываниями сделать.


Я курс читал, и остался им очень доволен!
Значит можно таймер вообще не использывать? Просто работать с задержками?

avr123.nm.ru писал(а):Заклинаю!  всегда используй Меги !

Мегу для такой цели на мой взгляд рановато ставить.. Робот будет простейший - тини13 для 2-х ик радаров, а тини2313 основной..
Аватара пользователя
BobMarley
 
Сообщения: 26
Зарегистрирован: 30 мар 2006, 17:04
Откуда: Физтех...

Сообщение BobMarley » 10 апр 2006, 07:56

Вот решил за основу взять машинку из робоклуба!
http://projects.roboclub.ru/index.shtml?attempt
Только возникли сложности.. :(
1) :arrow:
// таблица вероятностей для выбора направления движения
// исходя из текущего направления движения
unsigned char p[7][7] = {
{14, 43, 57, 71, 86, 93, 100},
{7, 43, 71, 100, 100, 100, 100},
{7, 50, 93, 100, 100, 100, 100},
{7, 50, 57, 100, 100, 100, 100},
{29, 29, 29, 29, 57, 79, 100},
{36, 36, 36, 36, 71, 93, 100},
{36, 36, 36, 36, 71, 79, 100},
};

Пишет не хватает "}"
2) :arrow:
case F:
   sbi(OUT, MOTOR_F);
   cbi(OUT, MOTOR_B);
   cbi(OUT, TURN_R);
   cbi(OUT, TURN_L);
break;


#define sbi(port,bit)  port |=  (1<<(bit))
#define cbi(port,bit)  port &= ~(1<<(bit))
Прописал в начале определение sbi, cbi. При компиляции все биты (MOTOR_F, MOTOR_B....) называет undefined symbol 'PB0' и так все.. В чем дело? :?:  HELP!
З.Ы. Компилятор CodeVisionAVR
Аватара пользователя
BobMarley
 
Сообщения: 26
Зарегистрирован: 30 мар 2006, 17:04
Откуда: Физтех...

Сообщение Tracer » 10 апр 2006, 09:36

1. Правильно пишет убери запятую в последней строке инициализации переменных
2. подключи соответствующий файл заголовка где описаны PB0
Аватара пользователя
Tracer
 
Сообщения: 195
Зарегистрирован: 24 ноя 2004, 12:36
Откуда: Харьков

Re: HELP! Прога для локатора..

Сообщение avr123.nm.ru » 10 апр 2006, 11:17

BobMarley писал(а):Я курс читал, и остался им очень доволен!

Значит можно таймер вообще не использывать?

Просто работать с задержками?


я задержек не предлагал!  Задержки это delay например.

if  else  - это именно проверка условий которые вы дали в первом посте и действие по результату!

BobMarley писал(а):
avr123.nm.ru писал(а):Заклинаю!  всегда используй Меги !


Мегу для такой цели на мой взгляд рановато ставить..

Робот будет простейший - тини13 для 2-х ик радаров, а тини2313 основной..


Ну дык...  

ОДНА мега8  попроще ДВУХ МК то будет  - ИМХО конечно.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва

Сообщение BobMarley » 10 апр 2006, 11:30

Tracer писал(а):1. Правильно пишет убери запятую в последней строке инициализации переменных

Пасиб, заработало!
Tracer писал(а):2. подключи соответствующий файл заголовка где описаны PB0

А что подключить??
#include <90s2313.h>
#include <io.h>
#include <stdlib.h>
вот это подключено..
я CodeWizardAVR использовал..
Аватара пользователя
BobMarley
 
Сообщения: 26
Зарегистрирован: 30 мар 2006, 17:04
Откуда: Физтех...

Сообщение BobMarley » 10 апр 2006, 11:59

2 ALL !
Если не сложно помочь..

CodeWizardAVR сделал "болванку"
Добавил
#define sbi(port,bit)  port |=  (1<<(bit))
#define cbi(port,bit)  port &= ~(1<<(bit))

И далее при записи "sbi(PORTB, PB0)" пишет undefined symbol 'PB0' !!!
HELP!
Аватара пользователя
BobMarley
 
Сообщения: 26
Зарегистрирован: 30 мар 2006, 17:04
Откуда: Физтех...

Сообщение avr123.nm.ru » 10 апр 2006, 12:08

BobMarley писал(а):я CodeWizardAVR использовал..


вот это очень правильно - 5 баллов!
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва

Сообщение BobMarley » 10 апр 2006, 12:10

avr123.nm.ru писал(а):вот это очень правильно - 5 баллов!

Да, сомому нравицца :D
Ответь плз на пост перед твоим! Оч прошу..
Аватара пользователя
BobMarley
 
Сообщения: 26
Зарегистрирован: 30 мар 2006, 17:04
Откуда: Физтех...

Сообщение BobMarley » 10 апр 2006, 13:46

Еще вопросик есть!

У меня есть МЕГА8, timer0 = 36kHZ (настроил уже), хочу сделать процедуру, которая выдаст на PB0 пачку из 10 импульсов с частотой 36kHZ, используя этот таймер! Напишите пожалуста на сях (если можно - с пояснениями)! Это же для вас халява)) Не поленитесь уделить 3 мин новичку :)

Только без прерываний - просто отдельная процедура..!!!
Аватара пользователя
BobMarley
 
Сообщения: 26
Зарегистрирован: 30 мар 2006, 17:04
Откуда: Физтех...

Сообщение Tracer » 10 апр 2006, 14:16

BobMarley писал(а):2 ALL !
Если не сложно помочь..

CodeWizardAVR сделал "болванку"
Добавил
#define sbi(port,bit)  port |=  (1<<(bit))
#define cbi(port,bit)  port &= ~(1<<(bit))

И далее при записи "sbi(PORTB, PB0)" пишет undefined symbol 'PB0' !!!
HELP!


Точный ответ дать не могу тк пишу на WinAVR но соображения следующие.
1. #define должны стоять после всех #include

2.В перечисленных хедерах наверняка должно быть описание PB0
если всеравно не работает то проверь может там не цифра ноль а буква "О".

3.Или решение "В ЛОБ" :twisted:

напиши свое определение #define PB0 0
Аватара пользователя
Tracer
 
Сообщения: 195
Зарегистрирован: 24 ноя 2004, 12:36
Откуда: Харьков

Сообщение avr123.nm.ru » 10 апр 2006, 16:37

BobMarley писал(а):Ответь плз на пост перед твоим! Оч прошу..


отвечаю с лева каждого моего поста !

конкретно по ТОМУ вопросу смотри задачу 1

-> Упражнения - задачи по курсу AVR
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва

След.

Вернуться в Новичкам или основы основ роботостроения.

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

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