roboforum.ru

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

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

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

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

Сообщение yak-40 » 29 сен 2009, 15:31

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

Есть же в Wiki проект ИК бампера с кодом.
Может стоит там посмотреть?
- Этот человек - не человек! это робот!
- Как? уже делают?!
- Делают!!!
Аватара пользователя
yak-40
 
Сообщения: 3037
Зарегистрирован: 23 окт 2007, 22:03
Откуда: Москва
прог. языки: С
ФИО: Евгений Яковец

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
E=mc2
Аватара пользователя
DiNoZawR
 
Сообщения: 25
Зарегистрирован: 18 дек 2008, 09:54
Откуда: Москва

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

Сообщение galex1981 » 29 сен 2009, 16:27

А частоту кварца кто будет указывать? Причем и в программе, и в свойстве самой модели МК
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4363
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

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

Сообщение DiNoZawR » 29 сен 2009, 16:35

Спасибо! Просто в проге еще не разобрался.
Я вообще в CVAVR делаю. Там вроде при создании проекта указывается частота кварца.
E=mc2
Аватара пользователя
DiNoZawR
 
Сообщения: 25
Зарегистрирован: 18 дек 2008, 09:54
Откуда: Москва

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

Сообщение galex1981 » 29 сен 2009, 16:41

Там указывается, и в Протеусе по-умолчанию тоже какая то указывается - может глючить...
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4363
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

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);
}

};
E=mc2
Аватара пользователя
DiNoZawR
 
Сообщения: 25
Зарегистрирован: 18 дек 2008, 09:54
Откуда: Москва

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

Сообщение galex1981 » 29 сен 2009, 16:54

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

Добавлено спустя 1 минуту 52 секунды:
Какая хоть частота кварца?
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4363
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

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

Сообщение DiNoZawR » 29 сен 2009, 17:06

Кварц на 8 MHz.
Померил выход с контроллера, тестером (тестер на больше 20KHz берет)
Показывает 3.45 kHz :(
E=mc2
Аватара пользователя
DiNoZawR
 
Сообщения: 25
Зарегистрирован: 18 дек 2008, 09:54
Откуда: Москва

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

Сообщение galex1981 » 29 сен 2009, 17:10

Сделай ШИМ не в цикле а по таймеру - точнее во-первых, во вторых проще получить нужную частоту
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4363
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

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

Сообщение yak-40 » 29 сен 2009, 17:23

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

Осцилографом бы обычным посмотреть.
- Этот человек - не человек! это робот!
- Как? уже делают?!
- Делают!!!
Аватара пользователя
yak-40
 
Сообщения: 3037
Зарегистрирован: 23 окт 2007, 22:03
Откуда: Москва
прог. языки: С
ФИО: Евгений Яковец

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

Сообщение Yuraskas » 29 сен 2009, 17:44

Заранее извиняюсь за возможный бред...
DiNoZawR, как ты высчитал что тебе нужен период импульса в 34мкс? 1МГц/30кГц=34мкс - продолжительность одного импульса, правильно? Если так, то почему 1МГц, а не 8, как у твоего кварца...
Ты приснись ей, ангел белый, пусть ей будет хорошо...
Аватара пользователя
Yuraskas
 
Сообщения: 119
Зарегистрирован: 20 июл 2009, 13:59
Откуда: Канск

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

Это верно? Может что-то еще нужно?
E=mc2
Аватара пользователя
DiNoZawR
 
Сообщения: 25
Зарегистрирован: 18 дек 2008, 09:54
Откуда: Москва

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

Сообщение EdGull » 29 сен 2009, 19:55

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

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

Сообщение DiNoZawR » 29 сен 2009, 20:05

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

В общем я проверил. Что с кварцем что без все равно она такую же частоту на выход выдает.
E=mc2
Аватара пользователя
DiNoZawR
 
Сообщения: 25
Зарегистрирован: 18 дек 2008, 09:54
Откуда: Москва

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

Сообщение EdGull » 29 сен 2009, 20:11

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

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

Пред.След.

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

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

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