roboforum.ru

Технический форум по робототехнике.
Текущее время: 20 май 2025, 21:41

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




Начать новую тему Ответить на тему  [ Сообщений: 26 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: tiny13 низкая скорость и вопросы по ИК и прот. RC5
СообщениеДобавлено: 11 фев 2008, 22:40 
Не в сети
Аватара пользователя

Зарегистрирован: 04 фев 2008, 13:18
Сообщения: 1060
Откуда: Москва
прог. языки: PHP
Здравствуйте.

Собрал плату и зашил программу в неё.
Перепрограммироваться контроллер отказался второй раз.

Всё проверил и был в замешательстве, но потом в программаторе выставил паузы большие для медленных МК.
И МК стал прошиваться без проблем.

Программу пишу в CodeVisionAVR и ничего не менял в окошке программирования(то есть фусе бит не трогал).

Вот код программы:

Код:
/*****************************************************
This program was produced by the
CodeWizardAVR V1.25.7 beta 5 Standard
Automatic Program Generator
© Copyright 1998-2007 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com

Project :
Version :
Date    : 10.02.2008
Author  : F4CG                           
Company : F4CG                           
Comments:


Chip type           : ATtiny13
Clock frequency     : 1,000000 MHz
Memory model        : Tiny
External SRAM size  : 0
Data Stack size     : 16
*****************************************************/

#include <tiny13.h>
#include <delay.h>

// Declare your global variables here
int timen = 0;// изменение по прерыванию каждые 4 Гц.

// Timer 0 overflow interrupt service routine
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
// Place your code here
timen++;
}

void main(void)
{
// Declare your local variables here

// Crystal Oscillator division factor: 1
#pragma optsize-
//CLKPR=0x80;
//CLKPR=0x00;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif

// Input/Output Ports initialization
// Port B initialization
// Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State5=T State4=T State3=T State2=T State1=T State0=T
DDRB = 0b00010001;//выходы на диоды

//подымаем кнопки
PORTB = 0b00101110;


// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 0,977 kHz
// Mode: Normal top=FFh
// OC0A output: Disconnected
// OC0B output: Disconnected
TCCR0A=0x00;
TCCR0B=0x05;
TCNT0 = 244;
OCR0A=0x00;
OCR0B=0x00;

// External Interrupt(s) initialization
// INT0: Off
// Interrupt on any change on pins PCINT0-5: Off
GIMSK=0x00;
MCUCR=0x00;

// Timer/Counter 0 Interrupt(s) initialization
TIMSK0=0x02;

// Analog Comparator initialization
// Analog Comparator: Off
ACSR=0x80;
ADCSRB=0x00;

// Global enable interrupts
#asm("sei")

while (1)
      {

if(PINB.3 == 0)
        {
        if(timen > 2) {timen = 0; PORTB.4++;}
        }
else    {
        if(timen > 20) {timen = 0; PORTB.4++;}
         }
      }
}

По идеи диод должен мигать через 5 сек и при нажатой кнопке через 1\2 сек, но диод мигает через 48 сек.
Из чего я делаю вывод, что МК работает на 128кГц примерно частоте.

1) Как МК перевёлся на такой медленный режим работы ?
2) Как вернуть скорость 1МГц ?
3) Если вынуть батарейки и подключить к параллельному интерфейсу компьютера МК начинает работать, как это ?


Последний раз редактировалось Digit 12 фев 2008, 11:08, всего редактировалось 2 раз(а).
тег CODE!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: После прог-ния стал медленно работать tiny13
СообщениеДобавлено: 11 фев 2008, 23:37 
Не в сети
Аватара пользователя

Зарегистрирован: 15 сен 2007, 13:03
Сообщения: 6338
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович
1) видимо там по умолчанию стоит предделитель частоты ... поковыряй даташит..
2) фьюзы придется трогать.. см пункт 1 и будь осторожен
3) это называется паразитное питание... есть цепи по которым 5в с лпт проходят в МК.. и за счет них он питается... никаккой магии тут нет :crazy:

_________________
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: После прог-ния стал медленно работать tiny13
СообщениеДобавлено: 12 фев 2008, 00:16 
Не в сети
Аватара пользователя

Зарегистрирован: 03 авг 2007, 19:43
Сообщения: 1437
Откуда: Екатеринбург
прог. языки: Си, асм со словарем
вот тут какие цифры стоят?
Вложение:
1.JPG
1.JPG [ 20.32 КиБ | Просмотров: 4183 ]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: После прог-ния стал медленно работать tiny13
СообщениеДобавлено: 12 фев 2008, 00:20 
Не в сети
Аватара пользователя

Зарегистрирован: 04 фев 2008, 13:18
Сообщения: 1060
Откуда: Москва
прог. языки: PHP
Думаю, что при программировании синхронизация перенастроилась.
Наверно в МК что то вшито и если его переписывают, то начинают работать фюзы которые все по 1 были и МК работал на 128кГц.
Прошил CKSEL 01 и МК стал тактироваться примерно с 4.8МГц и таймер стал нормально работать и шиться МК стал без задержек.

Добавлено спустя 2 минуты 13 секунд:
rig писал(а):
вот тут какие цифры стоят?
Вложение:
1.JPG


Когда спрашивал, стояло 1МГц, как у вас.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: После прог-ния стал медленно работать tiny13
СообщениеДобавлено: 12 фев 2008, 00:28 
Не в сети
Аватара пользователя

Зарегистрирован: 03 авг 2007, 19:43
Сообщения: 1437
Откуда: Екатеринбург
прог. языки: Си, асм со словарем
RoboTok писал(а):
Наверно в МК что то вшито и если его переписывают, то начинают работать фюзы которые все по 1 были и МК работал на 128кГц.

ну это врятли. в кодевижене галочки по умолчанию стоят программировать фьюзы, если ее не снять в тут
Вложение:
1.JPG
1.JPG [ 39.65 КиБ | Просмотров: 4180 ]

то можно пролететь случайно прошив все единицами.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: После прог-ния стал медленно работать tiny13
СообщениеДобавлено: 12 фев 2008, 01:59 
Не в сети
Аватара пользователя

Зарегистрирован: 04 фев 2008, 13:18
Сообщения: 1060
Откуда: Москва
прог. языки: PHP
rig писал(а):
то можно пролететь случайно прошив все единицами.


Похоже у меня так и получилось.
Я считал с МК Фусе и там были все единицы.

Так же я шил mega48 и после прошивки он тоже стал не так работать.

Добавлено спустя 28 минут 20 секунд:
Re: tiny13 низкая скорость и вопросы по ИК и прот. RC5
Хочу сделать джойстик для управления машинкой.

Решил делать на ИК и уже собрал всё.

Осталось написать программу для передатчика-джойстика и приёмника.

Протокол RC5 как я понял передаёт данные импульсами с частотой 30кГц (у меня приёмник на 30кГц).

Мне надо написать программу для tiny13, которая будет генерировать эту несущую.

МК работает сейчас на частоте 4.8МГц с делителем 2, то есть 2.4МГц тактируется таймер.

Настраиваю таймер на режим Fast PWM top=OCR0A и ставим делитель в настройках таймера на 300кГц.
Далее делим 300\30 = 10 и записываем в OCR0A = 10 и на выходе PWM 30кГц.

И у меня вопрос: я правильно всё посчитал или где то ошибка ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: tiny13 низкая скорость и вопросы по ИК и прот. RC5
СообщениеДобавлено: 12 фев 2008, 02:03 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

Зарегистрирован: 18 сен 2006, 12:26
Сообщения: 18018
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич
во первых протокол RC5 не зависит от частоты
во вторых частота задаётся TSOP'ом который ты будешь использовать
самые типичные это tsop1736 на частоту 36 кГц(2 последние цифры это частота)

_________________
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: tiny13 низкая скорость и вопросы по ИК и прот. RC5
СообщениеДобавлено: 12 фев 2008, 02:16 
Не в сети
Аватара пользователя

Зарегистрирован: 04 фев 2008, 13:18
Сообщения: 1060
Откуда: Москва
прог. языки: PHP
у меня tsop1730

-------------------

Господа подскажите пожалуйста, как настроить PWM на частоту 30кГц у tiny13 или хоть кинте ссылочку на инфу полезную.

П.С.
Я то сам могу настроить, но будет ли 30кГц на выходе большой вОпРоС.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: tiny13 низкая скорость и вопросы по ИК и прот. RC5
СообщениеДобавлено: 13 фев 2008, 16:47 
Не в сети
Аватара пользователя

Зарегистрирован: 04 фев 2008, 13:18
Сообщения: 1060
Откуда: Москва
прог. языки: PHP
Вот код программы для tiny13 на 4 МГц:

Код:
#include <tiny13.h>

unsigned long int timen = 0;//счётчик для светодиода
bit empty = 0;//флаг отправки
unsigned long int pulse = 0;//длительность ипульса

// Timer 0 output compare A interrupt service routine
interrupt [TIM0_COMPA] void timer0_compa_isr(void)
{
timen++;//счётчик для мигания светодиода

if(empty) PORTB.0++;//пульсируем несущей, если нужно отправить
        else PORTB.0 = 0;

if(pulse)//устанавливаем флаг отправки и уменьшаем оставшееся время импульса
        {
        empty = 1;
        pulse--;
        }
if(!pulse)//пульс окончен и скидываем флаг
        {        empty = 0;    }

}

void ir_send (unsigned long int byte)//записываем байт на передачу
{
if (!empty)   pulse = byte;
}

void main(void)
{
// Crystal Oscillator division factor: 1
#pragma optsize-
CLKPR=0x80;
CLKPR=0x00;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif

DDRB = 0b00010001;//выходы для светодиода и ИК

//подтяжка кнопок
PORTB = 0b00101110;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 600,000 kHz
// Mode: CTC top=OCR0A
// OC0A output: Disconnected
// OC0B output: Disconnected
TCCR0A=0x02;
TCCR0B=0x02;
TCNT0=0x00;
OCR0A=0x04;//60кГц по формуле из ДШ
OCR0B=0x00;

// Timer/Counter 0 Interrupt(s) initialization
TIMSK0=0x04;

// Global enable interrupts
#asm("sei")

while (1)
      {

#asm("nop");

if(PINB.3 == 0)//кнопка 1
        {        ir_send(500);        }

if(PINB.5 == 0)//кнопка 2
        { ir_send(5000); }

if(PINB.1 == 0) //кнопка 3
        {        ir_send(10000);        }

if(PINB.2 == 0) //кнопка 4
        {        ir_send(30000);        }

      }
}



То есть это не совсем протокол RC5, а я просто хочу получить ноль на TOSOP1730 в течении заданных промежутков.
Приемник устроен почти по такому же принципу, он записывает изменение на ноль входного сигнала с TSOP1730 и увеличивает счётчик, после изменения на + на входе считаем длительность и запускаем команду.

Но у меня всё это не работает и диоды на приёмнике мигают хаотично.

Подскажите пожалуйста будет ли с таким кодом у меня на выходе несущая 30кГц ?
Или может в коде ошибки, которая я не смог найти ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: tiny13 низкая скорость и вопросы по ИК и прот. RC5
СообщениеДобавлено: 13 фев 2008, 17:06 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

Зарегистрирован: 18 сен 2006, 12:26
Сообщения: 18018
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич
а ты в симуляторе попробуй

посмотришь там на осциллографе частоту...

_________________
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: tiny13 низкая скорость и вопросы по ИК и прот. RC5
СообщениеДобавлено: 13 фев 2008, 18:45 
Не в сети
Аватара пользователя

Зарегистрирован: 04 фев 2008, 13:18
Сообщения: 1060
Откуда: Москва
прог. языки: PHP
Myp писал(а):
посмотришь частоту...


Не выходит.
В протеусе виснит, в VMLAB нету такого МК.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: tiny13 низкая скорость и вопросы по ИК и прот. RC5
СообщениеДобавлено: 13 фев 2008, 19:40 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

Зарегистрирован: 18 сен 2006, 12:26
Сообщения: 18018
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич
а ты возьми тот который есть :)

код простенький
он на любом камне пойдёт

_________________
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: tiny13 низкая скорость и вопросы по ИК и прот. RC5
СообщениеДобавлено: 13 фев 2008, 20:46 
Не в сети
Аватара пользователя

Зарегистрирован: 04 фев 2008, 13:18
Сообщения: 1060
Откуда: Москва
прог. языки: PHP
Мне кажется у меня передатчик глючит и частота у него гуляет сильно.
Настроил задержки для команд и он то хорошо срабатывает, то плохо.
Потом, передатчик срабатывает ошибочно сам и посылает импульсы, хотя кнопки я не нажимаю на нём.


Вложения:
Комментарий к файлу: плата передатчика
plata3.gif
plata3.gif [ 7.8 КиБ | Просмотров: 5940 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: tiny13 низкая скорость и вопросы по ИК и прот. RC5
СообщениеДобавлено: 13 фев 2008, 21:01 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

Зарегистрирован: 18 сен 2006, 12:26
Сообщения: 18018
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич
3 вольта

а у тебя точно тинька 13 низковольтная?

_________________
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: tiny13 низкая скорость и вопросы по ИК и прот. RC5
СообщениеДобавлено: 14 фев 2008, 02:27 
Не в сети
Аватара пользователя

Зарегистрирован: 04 фев 2008, 13:18
Сообщения: 1060
Откуда: Москва
прог. языки: PHP
Точнее точного :shock:

Короче МК глючило из-за бросков напряжения вообще ппц.

Я у себя в достижениях отписал подробно из-за чего.

И прошу посоветовать, как стабилизировать МК и увеличить дальность с углом приёма ИК.

Сделал по типу как тут: http://fi-com.ru/mcu/rc5.htm

Только несущую генерирую через прерывание таймера, а не ШИМом и приёмник по прерываниям работает, а не как в примере опрашивает ноги.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 26 ]  На страницу 1, 2  След.

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


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

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


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

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