www.open-tager.ru

открытый лазертаг форум
Текущее время: 25 апр 2024, 14:10

Часовой пояс: UTC + 3 часа [ Летнее время ]


Реклама

Правила форума


В разделе запрещены - обсуждение оборудования не поддерживающего открытых протоколов, реклама и ссылки на готовые продукты лазертага, обсуждение политики производителей и самих производителей. Виден всем.



Начать новую тему Ответить на тему  [ Сообщений: 158 ]  На страницу Пред.  1 ... 9, 10, 11, 12, 13, 14, 15, 16  След.
Автор Сообщение
 Заголовок сообщения: Re: В погоне за аскетизмом (LTKhv)
СообщениеДобавлено: 13 янв 2013, 15:07 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 22 фев 2012, 11:43
Сообщений: 1970
Откуда: Смоленск
KEROL писал(а):
И вот еще сразу вопрос: Может стоит передачу от приема разделить на аппаратном уровне - два чипа вместо одного? Чип на передачу вообще поставить слабенький какой-нибудь. Зато "анализ повязки" будет вне "выстрела"....

Отличная идея.

_________________
Лазертаг в каждый дом...
Чтобы добиться успеха, нужно вкладывать душу.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: В погоне за аскетизмом (LTKhv)
СообщениеДобавлено: 13 янв 2013, 15:16 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 12 авг 2011, 16:55
Сообщений: 7514
Откуда: Барнаул, Алтайский край (не путать с республикой Алтай) :-)
KEROL писал(а):
И вот еще сразу вопрос: Может стоит передачу от приема разделить на аппаратном уровне - два чипа вместо одного? Чип на передачу вообще поставить слабенький какой-нибудь. Зато "анализ повязки" будет вне "выстрела"....

Стоит ли сущности плодить?
Контроллер вполне справляется и с тем и другим.
Единственное - в беспроводной повязке можно попробовать реализовать независимые зоны поражения, так как контроллер все равно будет у повязки свой и три порта для внешних прерываний свободно (я про Атмегу).
2 KEROL - не нужна никакая калибровка при передаче, чтобы не мешали другие прерывания и в то же время чтобы эти прерывания не отключать - есть "приемчик" поинтересней (смотри исходники).

_________________
Ваше оружие становиться значительно эффективней, если его снять с предохранителя!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: В погоне за аскетизмом (LTKhv)
СообщениеДобавлено: 13 янв 2013, 18:09 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 12 авг 2011, 16:55
Сообщений: 7514
Откуда: Барнаул, Алтайский край (не путать с республикой Алтай) :-)
70-ти Ваттный усилок класа D на Atiny 45.

Изображение

Добавить ещё к ней флеш-память и... бомба будет! :)

http://sound.westhost.com/articles/pwm.htm

А вот и прошивка!

Код:
#include <avr/interrupt.h>
#include <avr/sleep.h>
#include <stdint.h>

typedef uint32_t   u32;
typedef uint16_t   u16;
typedef uint8_t      u8;
typedef int32_t      s32;
typedef int16_t      s16;
typedef int8_t      s8;

#define DACP OCR0A
#define DACN OCR0B

__attribute__((naked)) int main(void)
{
//   CLKPR = 0b10000000; // 16 MHz from the high freq PLL clock
//   CLKPR = 0b00000000;
   // Configure ports

   DDRB  = 0b11110111; // OC0AB are L/R PWM output. Drive unused pins low (helps noise).
   PORTB = 0b00000000; // No activate pull-ups
//   DDRB  = 0b00000011;

   // ADC
   ADMUX  = 0b00010011; // PB3, AVcc, 10 bit, 2.56VRef
   ADCSRA = 0b11001101; // CPU/32 sampling rate; Sampling freq: 16 MHz / 32 / 13 = 39 kHz

   // Power reduction
   PRR   = 0b00001010; // Clock-gate USI and Counter1.
   MCUCR = 0b00100000;


   // PWM
   TCCR0A = 0b10100011; // Fast PWM
   TCCR0B = 0b00000001; // Increment TCNT0 at CPU; Sampling freq: 16MHz / 256 = 64 kHz (= MAX)
   //TIMSK  = 0b10; // Interrupt on overflow

   sei();

   while(1) {
      sleep_cpu();
   }
}

#if 0

inline s16 min(s16 a, s16 b) {
   return (a<b)?a:b;
}

inline s16 max(s16 a, s16 b) {
   return (a>b)?a:b;
}

// 0% duty cycle at idle. Pulses too narrow at low volume.
ISR(ADC_vect) {
   static u8 last_error;

   u16 adc      = ADC;

   s16 val      = (s16)(adc >> 1) - 256;

   u8  error   = adc & 1;
   u8  dither   = error & last_error;

   last_error   = error - dither;

   val += dither;
   val  = min(max(val, -255),255);

   DACN = max(val, 0);
   DACP = max(-val, 0);
}

#else
// 50% duty cycle at idle. Slightly less efficient, but better sounding.
ISR(ADC_vect) {
//ISR(TIMER0_OVF_vect) {
   static u8 last_error;

   u16 adc      = ADC;
   s8 val1      = (u8)(adc >> 2) - 128;
   u8 val2      = (u8)(adc & 0b10) >> 1;
   u8 error   = adc & 1;
   u8 dither   = error & last_error;
   last_error   = error - dither;

   u8 pos = 128 + val1 + val2;
   u8 neg = 128 - val1 - dither;

   DACP = pos;
   DACN = neg;

   if(val1 == 127)
      DACP = 255;

   if(val1 == -128)
      DACN = 255;

}

#endif






Всё!!! :) :lol: :lol: :lol:

_________________
Ваше оружие становиться значительно эффективней, если его снять с предохранителя!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: В погоне за аскетизмом (LTKhv)
СообщениеДобавлено: 13 янв 2013, 18:22 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 06 июн 2012, 13:36
Сообщений: 1175
Откуда: Украина
Зачем 75 ватт? это нормальных советских 75 ватт???? Нет таких динамиков малогабаритных, но если даже есть, басы все равно порежутся, и будет тот же писк, немного громче, имхо.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: В погоне за аскетизмом (LTKhv)
СообщениеДобавлено: 13 янв 2013, 18:27 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 12 авг 2011, 16:55
Сообщений: 7514
Откуда: Барнаул, Алтайский край (не путать с республикой Алтай) :-)
Alim писал(а):
Зачем 75 ватт? это нормальных советских 75 ватт???? Нет таких динамиков малогабаритных, но если даже есть, басы все равно порежутся, и будет тот же писк, немного громче, имхо.

Конечно, нам 75 Ватт не надо (разве только если систему "Град" будем делать).
Я про то, что на копеечном контроллере можно сделать высококлассный экономичный мощный усилок! ;) :)
Вот бы ещё его "подружить" с флеш-памятью, чтобы звуки из неё воспроизводить, а не с линейного входа... :?

_________________
Ваше оружие становиться значительно эффективней, если его снять с предохранителя!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: В погоне за аскетизмом (LTKhv)
СообщениеДобавлено: 13 янв 2013, 19:34 
Не в сети
Новосел
Аватар пользователя

Зарегистрирован: 07 янв 2013, 17:48
Сообщений: 68
Pingvin писал(а):
Стоит ли сущности плодить?
Контроллер вполне справляется и с тем и другим.
Единственное - в беспроводной повязке можно попробовать реализовать независимые зоны поражения, так как контроллер все равно будет у повязки свой и три порта для внешних прерываний свободно (я про Атмегу).
2 KEROL - не нужна никакая калибровка при передаче, чтобы не мешали другие прерывания и в то же время чтобы эти прерывания не отключать - есть "приемчик" поинтересней (смотри исходники).


Взглянул на "прошивку" (не первый раз уже). А там файлов тьма и (О, боги!!!) на С всё! А родным АСМом и не пахнет. ООП с наследованием классов... И это на Амеге?))) 8-ми битной?))) А Андроид туды вогнать можно?)))
Это шутка... А если серьезно, то нужна структурная схема! Я понимаю, что в своих прошивках вы и сами разберетесь! И коменты у вас есть! Вот только с наскока все не осилить! Алгоритм то не ясен... Подкажи хоть где искать "приемчик" твой с прерываниями!
Алгоритм первичнее, реализация под конкретный чип!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: В погоне за аскетизмом (LTKhv)
СообщениеДобавлено: 13 янв 2013, 19:36 
Не в сети
Новосел
Аватар пользователя

Зарегистрирован: 07 янв 2013, 17:48
Сообщений: 68
Pingvin писал(а):
Alim писал(а):
Зачем 75 ватт? это нормальных советских 75 ватт???? Нет таких динамиков малогабаритных, но если даже есть, басы все равно порежутся, и будет тот же писк, немного громче, имхо.

Конечно, нам 75 Ватт не надо (разве только если систему "Град" будем делать).
Я про то, что на копеечном контроллере можно сделать высококлассный экономичный мощный усилок! ;) :)
Вот бы ещё его "подружить" с флеш-памятью, чтобы звуки из неё воспроизводить, а не с линейного входа... :?


А что, от МП3-декодера решили отказаться?


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: В погоне за аскетизмом (LTKhv)
СообщениеДобавлено: 13 янв 2013, 21:24 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 12 авг 2011, 16:55
Сообщений: 7514
Откуда: Барнаул, Алтайский край (не путать с республикой Алтай) :-)
KEROL писал(а):

А что, от МП3-декодера решили отказаться?

Да нет, это я маленько темы попутал. :oops:
Но если флеш будет на несколько МБайт, ИМХО, можно и без mp3 обойтись.

_________________
Ваше оружие становиться значительно эффективней, если его снять с предохранителя!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: В погоне за аскетизмом (LTKhv)
СообщениеДобавлено: 13 янв 2013, 21:41 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 12 авг 2011, 16:55
Сообщений: 7514
Откуда: Барнаул, Алтайский край (не путать с республикой Алтай) :-)
KEROL писал(а):
Pingvin писал(а):
Стоит ли сущности плодить?
Контроллер вполне справляется и с тем и другим.
Единственное - в беспроводной повязке можно попробовать реализовать независимые зоны поражения, так как контроллер все равно будет у повязки свой и три порта для внешних прерываний свободно (я про Атмегу).
2 KEROL - не нужна никакая калибровка при передаче, чтобы не мешали другие прерывания и в то же время чтобы эти прерывания не отключать - есть "приемчик" поинтересней (смотри исходники).


Взглянул на "прошивку" (не первый раз уже). А там файлов тьма и (О, боги!!!) на С всё! А родным АСМом и не пахнет. ООП с наследованием классов... И это на Амеге?))) 8-ми битной?))) А Андроид туды вогнать можно?)))
Это шутка... А если серьезно, то нужна структурная схема! Я понимаю, что в своих прошивках вы и сами разберетесь! И коменты у вас есть! Вот только с наскока все не осилить! Алгоритм то не ясен... Подкажи хоть где искать "приемчик" твой с прерываниями!
Алгоритм первичнее, реализация под конкретный чип!


В двух словах - есть у нас прерывание с наивысшим приоритетом, именно оно формирует несущую частоту и оно же используется для подсчета длительности принятых импульсов.
Таким образом, это прерывание должно обрабатываться стабильно без задержек, ему не должны мешать другие прерывания, но отключать другие прерывания мы не хотим. Есть выход?
Есть!
Чтобы дальше было понятно Вы должны знать, как работают прерывания (почитайте сами, не буду тут лекции устраивать).
Короче - во всех других прерываниях, кроме нашего главного, мы принудительно разрешаем главное прерывание, и, вмесе с тем (во избежание рекурсии) запрещаем прерывание, в котором находимся. И лиш на выходе из прерывания возвращаем все на свои места - запрещаем глобально прерывания и разрешаем то, в котором находимся.
В итоге наше главное прерывание молотит стабильно и ничто ему помешать не может! ;) :)

_________________
Ваше оружие становиться значительно эффективней, если его снять с предохранителя!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: В погоне за аскетизмом (LTKhv)
СообщениеДобавлено: 13 янв 2013, 21:51 
Не в сети
Местный

Зарегистрирован: 13 июл 2011, 17:05
Сообщений: 475
Откуда: Perm
KEROL, а прерывания для тсопа на картинке зачем запрещаются? стрёмно выходит. пакет длинный, стопудово будут пересечения.

Pingvin, я правильно понимаю, что часть справа (похожая на Н-мост, кстати) и есть этот Д-класс? тогда и тинька не нужна, можно самим гнать ШИМ на усилок.


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 158 ]  На страницу Пред.  1 ... 9, 10, 11, 12, 13, 14, 15, 16  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на форуме

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


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

Найти:
Перейти:  
cron
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB