roboforum.ru

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

Помогите с программой TSOP

Re: Помогите с программой TSOP

yak-40 » 29 сен 2009, 15:31

DiNoZawR писал(а):Если можно дайте код на си.

Есть же в Wiki проект ИК бампера с кодом.
Может стоит там посмотреть?

Re: Помогите с программой TSOP

DiNoZawR » 29 сен 2009, 16:13

Вот код.
Но что странно (для меня :) ). Когда в протеусе проверяю частоту сигнала с пина d5 она какаято странная.
По идее при таких задержках (16 мкс), должна частота быть 30 kHz.
А она, как я понял, всего 3700 герц.

Код: Выделить всёРазвернуть
while (1)
      {
      PORTD.5 = 1;
      delay_us(16);
      PORTD.5 = 0;
      delay_us(16);
      };


Да не халявщик я. Просто плохо во всем этом разбираюсь. Я вообще программист изначально :)

Добавлено спустя 6 минут 22 секунды:
А судя по осциллографу задержки вообще 130 мкс.
Вложения
osc.JPG
prot.JPG

Re: Помогите с программой TSOP

galex1981 » 29 сен 2009, 16:27

А частоту кварца кто будет указывать? Причем и в программе, и в свойстве самой модели МК

Re: Помогите с программой TSOP

DiNoZawR » 29 сен 2009, 16:35

Спасибо! Просто в проге еще не разобрался.
Я вообще в CVAVR делаю. Там вроде при создании проекта указывается частота кварца.

Re: Помогите с программой TSOP

galex1981 » 29 сен 2009, 16:41

Там указывается, и в Протеусе по-умолчанию тоже какая то указывается - может глючить...

Re: Помогите с программой TSOP

DiNoZawR » 29 сен 2009, 16:44

Прошил контроллер.
(указал в проге частоту)
Включаю. Диоды горят, но реакции ни на руку ни на лист бумаги нету.
Код такой собственно.
Код: Выделить всёРазвернуть
while (1)
{
      for(i=0; i<10; i++)
      {
      PORTD.5 = 1;
      delay_us(17);
      PORTD.5 = 0;
      delay_us(17);
      if(PIND.6 == 0) // на всекий случай и сюда поставил.
        {
        walk(1);
        }
      }
delay_us(500); //500 это исходя из того что между пачками задержка 14 тактов.
if(PIND.6 == 0)
{
walk(1);
}

};

Re: Помогите с программой TSOP

galex1981 » 29 сен 2009, 16:54

По моему что то не то, частота скорее всего ниже, нужно осциллографом проверить

Добавлено спустя 1 минуту 52 секунды:
Какая хоть частота кварца?

Re: Помогите с программой TSOP

DiNoZawR » 29 сен 2009, 17:06

Кварц на 8 MHz.
Померил выход с контроллера, тестером (тестер на больше 20KHz берет)
Показывает 3.45 kHz :(

Re: Помогите с программой TSOP

galex1981 » 29 сен 2009, 17:10

Сделай ШИМ не в цикле а по таймеру - точнее во-первых, во вторых проще получить нужную частоту

Re: Помогите с программой TSOP

yak-40 » 29 сен 2009, 17:23

DiNoZawR писал(а):Померил выход с контроллера, тестером (тестер на больше 20KHz берет)
Показывает 3.45 kHz

Осцилографом бы обычным посмотреть.

Re: Помогите с программой TSOP

Yuraskas » 29 сен 2009, 17:44

Заранее извиняюсь за возможный бред...
DiNoZawR, как ты высчитал что тебе нужен период импульса в 34мкс? 1МГц/30кГц=34мкс - продолжительность одного импульса, правильно? Если так, то почему 1МГц, а не 8, как у твоего кварца...

Re: Помогите с программой TSOP

DiNoZawR » 29 сен 2009, 19:13

Сделал через таймер. Вроде правильно)
Протеус показывает нормальную частоту.
Но на выходе все так же 3 с чемто. :(

Код: Выделить всёРазвернуть
void wait(void){
TCNT1=0;
while(TCNT1<120){};
}
...
TCCR1A=0x00;
TCCR1B=0x01;
...
while (1)
{
PORTD.5 = 1;
wait();
PORTD.5 = 0;
wait();

if(PIND.6 == 0)
{
walk(1);
}

};


Добавлено спустя 3 минуты 14 секунд:
Ну мне нужна частота 30 000 герц.
Это 30 000 за 1 секунду или 30 за 1 миллисекунду.
1 миллисекунда равна 1000 микросекунд.
1000/30 = 32 (примерно)

Добавлено спустя 1 час 25 минут 26 секунд:
Интересная вещь.
Если в протеусе не указывать частоту кварца, то на выходе частота будет как раз 3.4-3.8
Я в коде указал частоту
Код: Выделить всёРазвернуть
#define F_CPU 8000000

Это верно? Может что-то еще нужно?

Re: Помогите с программой TSOP

EdGull » 29 сен 2009, 19:55

а у тебя мега на какой частоте работает?

Re: Помогите с программой TSOP

DiNoZawR » 29 сен 2009, 20:05

Кварц я к ней подключил на 8 MHz.

В общем я проверил. Что с кварцем что без все равно она такую же частоту на выход выдает.

Re: Помогите с программой TSOP

EdGull » 29 сен 2009, 20:11

и правильно выдает, потому как я понимаю что в фусибитах ты этот кварц не включил.
т.е. реально у тебя сейча смега работает на внутренем 1МГц

така город свой заполни
или не читай что я тебе тут пишу. :)


cron
Rambler\'s Top100 Mail.ru counter