Например TDA7294

Форум РадиоКот • Просмотр темы - Millis на Attiny13 и точный отсчет времени
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Вт апр 30, 2024 11:37:50

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


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 39 ]  1,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Millis на Attiny13 и точный отсчет времени
СообщениеДобавлено: Пн апр 15, 2024 09:12:33 
Родился

Зарегистрирован: Сб апр 13, 2024 05:19:33
Сообщений: 2
Рейтинг сообщения: 0
Всем привет!


Как посчитать точно время на Attiny13a?

В процессе экспериментов установил, что Арду Нано (для теста) - миллис работает отлично, задал 10 минут, он отсчитал ровно 10 минут 00 сек.
К слову, Delay 600000 отсчитал на той же Нано 9 минут 59 сек, что вполне хорошо.


В 13-шке миллис вообще работает через пень-колоду, в любое время срабатывает (обычно позже указанных 5 секунд).

Delay - не вариант, но и он работает очень неточно, к тому же вешает систему.

С зависанием выкрутился пока приращением vrodeMillis++ на каждой delay(1), на 10 минут ошибается на 30 секунд, ужас, но что поделать, пока так.

Пробовал все частоты - думал, вдруг поможет, не помогло вообще никак.


Вопрос - вообще есть какой-то способ с помощью Attiny13 отсчитать ровно 10 минут с точностью до секунды?


И еще вопрос. Понравилось пользоваться функцией для ежеминутного срабатывания.
if (millis() % 60000 == 0)

Но, как сказал Alexgyver, эта функция сильно замедляет всю программу, может сработать больше одного раза (т.к. 60000 может держаться два или три прохода условия), а также это условие может вообще проскочить 60000 и не выполниться никогда.

Что еще можно придумать, что еще и заработает на Attiny13a?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Millis на Attiny13 и точный отсчет времени
СообщениеДобавлено: Пн апр 15, 2024 09:36:41 
Друг Кота

Карма: 64
Рейтинг сообщений: 966
Зарегистрирован: Пт мар 07, 2008 06:54:43
Сообщений: 4222
Откуда: Ижевск
Рейтинг сообщения: 0
Пока не будет внешнего кварцованного тактирования tn13, точных временных интервалов не получите.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Millis на Attiny13 и точный отсчет времени
СообщениеДобавлено: Пн апр 15, 2024 09:55:00 
Держит паяльник хвостом

Карма: 10
Рейтинг сообщений: 99
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 968
Рейтинг сообщения: 0
Что еще можно придумать, что еще и заработает на Attiny13a?

Не пользоваться Ардуино IDE. А если пользуетесь, то говорите хотя бы какое ядро.


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Millis на Attiny13 и точный отсчет времени
СообщениеДобавлено: Пн апр 15, 2024 13:32:56 
Сверлит текстолит когтями

Карма: 20
Рейтинг сообщений: 302
Зарегистрирован: Сб май 05, 2012 20:24:52
Сообщений: 1226
Откуда: KN34PC, Болгария
Рейтинг сообщения: 0
От автора MicroCore:
Цитата:
The ATtiny13 only has one timer, timer0. On "regular" arduinos like the UNO, this timer is used for generating millis() and micros(). On the ATtiny13 I'm using the watchdog for generating millis and micros, which frees timer0. The reason for the error you're seeing is that WDT_vect

Цитата:
У ATtiny13 есть только один таймер — timer0. На «обычных» Arduinoх, таких как UNO, этот таймер используется для генерации millis() и micros(). На ATtiny13 я использую сторожевой таймер для генерации милли и микро, который освобождает таймер 0. Причина ошибки, которую вы видите, заключается в том, что WDT_vect

https://github.com/MCUdude/MicroCore/issues/23

Столкнулся с этим моментом некоторое время назад. Используйте millis(), micros() для безответственных дел. Отчет о времени напр. через таймер. Тогда придется не использовать задержку. (Если для небольших периодов можно например nop в цикле).

И "точное время" из внутреннего генератора, тем более: без индивидуальная коррекция OSCALL - невозможно. А некоторые экземпляры МК сильно отличаются частотой внутреннего генератора и там вероятно OSCALL не откалиброван на заводе.


Вернуться наверх
 
Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Millis на Attiny13 и точный отсчет времени
СообщениеДобавлено: Вт апр 16, 2024 01:30:13 
Родился

Зарегистрирован: Сб апр 13, 2024 05:19:33
Сообщений: 2
Рейтинг сообщения: 0
Пока не будет внешнего кварцованного тактирования tn13, точных временных интервалов не получите.


Насколько я понял, к Attiny13 не подключишь кварц, только внешний генератор, а у меня габариты девайса не позволяют кучу дополнительных элементов , к сожалению. И цена девайса тоже возрастет, а мне это также критично.
Пока будем работать с "Примерно минутой", с этим жить можно.

Добавлено after 9 minutes 25 seconds:
Что еще можно придумать, что еще и заработает на Attiny13a?

Не пользоваться Ардуино IDE. А если пользуетесь, то говорите хотя бы какое ядро.

Если честно, я сами не знаю, какое ядро. Ардуино Нано с Али, Attiny13 с Чип Дипа, подключал 13 к Нано 4 проводами + питание и земля. Прошил Нано скетчем ArduinoASP, а далее прошил скетч в 13.
Где посмотреть какое ядро? Вот скрин Arduino IDE на всякий, если это поможет.

Вложение:
1713218866541.png [31.67 KiB]
Скачиваний: 14


И, кстати, "Не пользоваться Ардуино IDE" - а чем пользоваться для корректного решения задачи?

Добавлено after 17 minutes 10 seconds:
От автора MicroCore:
Цитата:
The ATtiny13 only has one timer, timer0. On "regular" arduinos like the UNO, this timer is used for generating millis() and micros(). On the ATtiny13 I'm using the watchdog for generating millis and micros, which frees timer0. The reason for the error you're seeing is that WDT_vect

Цитата:
У ATtiny13 есть только один таймер — timer0. На «обычных» Arduinoх, таких как UNO, этот таймер используется для генерации millis() и micros(). На ATtiny13 я использую сторожевой таймер для генерации милли и микро, который освобождает таймер 0. Причина ошибки, которую вы видите, заключается в том, что WDT_vect

https://github.com/MCUdude/MicroCore/issues/23

Столкнулся с этим моментом некоторое время назад. Используйте millis(), micros() для безответственных дел. Отчет о времени напр. через таймер. Тогда придется не использовать задержку. (Если для небольших периодов можно например nop в цикле).

И "точное время" из внутреннего генератора, тем более: без индивидуальная коррекция OSCALL - невозможно. А некоторые экземпляры МК сильно отличаются частотой внутреннего генератора и там вероятно OSCALL не откалиброван на заводе.

Спасибо! Понятия не имею, как реализовать мою 60сек задержку на сторожевом таймере, поэтому возник более важный вопрос - может, выбрать что-то еще вместо tiny13 для решения моей задачи?

Только мне нужна
1. Миниатюрность (в идеале в дип корпусе,а то SOIC паять тяжеловато).
2. Экономичность по питанию и 3-4 вольта для нормальной работы.
3. Дешевизна.

Готов на неудобства типа покупки программатора именно для этой задачи (хотя USBISP тоже есть, но я его не использую, шью через ArduinoISP в Arduino IDE, так удобнее).

P.S. Заказал пяток attiny85-20pu DIP для эксперимента, но они придут
только через две недели.


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Millis на Attiny13 и точный отсчет времени
СообщениеДобавлено: Вт апр 16, 2024 08:33:24 
Вымогатель припоя

Карма: 6
Рейтинг сообщений: 168
Зарегистрирован: Ср янв 06, 2010 10:01:46
Сообщений: 553
Рейтинг сообщения: 0
RoMario2024 писал(а):
attiny85-20pu
как лично по мне, так крайне сомнительный выбор чипа. Стоимость как у меги88, а возможностей несравнимо меньше.
Для себя применяю серию мега48/88/168/328. Полностью заменимы снизу вверх и адекватная стоимость.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Millis на Attiny13 и точный отсчет времени
СообщениеДобавлено: Вт апр 16, 2024 08:44:52 
Друг Кота

Карма: 64
Рейтинг сообщений: 966
Зарегистрирован: Пт мар 07, 2008 06:54:43
Сообщений: 4222
Откуда: Ижевск
Рейтинг сообщения: 0
Как вариант. Формирователь периода 10 минут (600 секунд) таймером тактируемым WDT.
Вложение:
TEST_10MIN.zip [1.16 KiB]
Скачиваний: 38


Аналогичный период точнее будет формировать tiny25 с часовым кварцем.
Вложение:
TEST_10MIN_TN25.zip [1.2 KiB]
Скачиваний: 15


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Millis на Attiny13 и точный отсчет времени
СообщениеДобавлено: Вт апр 16, 2024 11:05:41 
Держит паяльник хвостом

Карма: 10
Рейтинг сообщений: 99
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 968
Рейтинг сообщения: 0
Если честно, я сами не знаю, какое ядро. Ардуино Нано с Али, Attiny13 с Чип Дипа, подключал 13 к Нано 4 проводами + питание и земля. Прошил Нано скетчем ArduinoASP, а далее прошил скетч в 13.
Где посмотреть какое ядро?

Ну вы же плату выбираете из списка плат. Какой? Для тини13 microCore, DIY tiny core, возможно ещё какая.
Из Arduino IDE можете использовать компилятор. Только не использовать функции Ардуино.
10 минут вполне точно должно отрабатывать и без кварцевого генератора.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Millis на Attiny13 и точный отсчет времени
СообщениеДобавлено: Вт апр 16, 2024 11:35:59 
Сверлит текстолит когтями

Карма: 20
Рейтинг сообщений: 302
Зарегистрирован: Сб май 05, 2012 20:24:52
Сообщений: 1226
Откуда: KN34PC, Болгария
Рейтинг сообщения: 0
В сообщении выше следует читать: автор MicroCore сделал всё необходимое, но функции millis, micros сделани уже с помощью WDT. С соответствующими неудобствами и нестыковками. (не нужно делать ничего дополнительного)

А согласно быстрым собств. тестам, вляния колебания температуры к клока и jitter в AVR хуже, напр. от PIC. Если хотите точности, то хотя бы кварц /в ATtiny13A нет возможности/ или внешой генератор.

Для чего используется конструкция? Анализируйте и делитесь информацией хотя бы относительно времени (и clock МК)?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Millis на Attiny13 и точный отсчет времени
СообщениеДобавлено: Вт апр 16, 2024 12:59:54 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 234
Зарегистрирован: Пт янв 29, 2010 10:27:40
Сообщений: 3851
Откуда: Москва
Рейтинг сообщения: 0
RoMario2024 писал(а):
Насколько я понял, к Attiny13 не подключишь кварц, только внешний генератор, а у меня габариты девайса не позволяют кучу дополнительных элементов , к сожалению. И цена девайса тоже возрастет, а мне это также критично.

Сейчас кварцевые генераторы это одна деталька, размером +- с тот же самый кварц, и стоят не на много дороже этого кварца.

Ну или как выше писали, при старте, читаем OSCCAL, прибавляем/отнимаем +-1, перезаписываем, компилируем, шьем, замеряем, мало (много)? Меняем OSCCAL дальше, пока не подойдем максимально близко к 10:00:000. Но при изменении температуры оно потом все равно уедет :dont_know:

Попадались пару раз tiny2313, которые через UART на 9600 не работали, ошибка по частоте большая была, только изменением OSCCAL выкрутился, там все ноги заняты были, ни кварц ни генератор не подключишь...

_________________
Неправильно собранная из неисправных деталей схема нуждается в отладке и сразу не работает... (С)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Millis на Attiny13 и точный отсчет времени
СообщениеДобавлено: Ср апр 17, 2024 07:06:38 
Встал на лапы

Карма: 2
Рейтинг сообщений: 3
Зарегистрирован: Вс авг 23, 2015 08:14:05
Сообщений: 124
Рейтинг сообщения: 0
возьмите например STM32G030C6T6, его можно купить и подешевле ATTINY13, по размерам тоже сопоставимо, корпус правда LQFP48, но не думаю что это проблема, я и лутом под них платы делал, а с фоторезистом вообще в легкую

зато получите полноценные RTC на борту и свои 10 минут отсчитаете с точностью до сотых секунды если не лучше :) по энергопотреблению STM32 думаю даже лучше AVR будет (но это не точно), и если прям сильно важно энергопотребление смотрите STM32L серию, она специально сделана для батарейных девайсов

ну и ко всему прочему получите кучу дополнительной периферии

Код:
Features
Core
Arm® 32-bit Cortex®-M0+ CPU, frequency up to 64 MHz
-40°C to 85°C operating temperature
Memories
Up to 64 Kbytes of Flash memory with protection
8 Kbytes of SRAM with HW parity check
CRC calculation unit
Reset and power management
Voltage range: 2.0 V to 3.6 V
Power-on/Power-down reset (POR/PDR)
Low-power modes:Sleep, Stop, Standby
VBAT supply for RTC and backup registers
Clock management
4 to 48 MHz crystal oscillator
32 kHz crystal oscillator with calibration
Internal 16 MHz RC with PLL option
Internal 32 kHz RC oscillator (±5 %)
Up to 44 fast I/Os
All mappable on external interrupt vectors
Multiple 5 V-tolerant I/Os
5-channel DMA controller with flexible mapping
12-bit, 0.4 µs ADC (up to 16 ext. channels)
Up to 16-bit with hardware oversampling
Conversion range: 0 to 3.6V
8 timers
16-bit for advanced motor control, four 16-bit general-purpose, two watchdogs, SysTick timer
Calendar RTC with alarm and periodic wakeup from Stop/Standby
Communication interfaces
Two I2C-bus interfaces supporting Fast-mode Plus (1 Mbit/s) with extra current sink, one supporting SMBus/PMBus and wakeup from Stop mode
Two USARTs with master/slave synchronous SPI; one supporting ISO7816 interface, LIN, IrDA capability, auto baud rate detection and wakeup feature
Two SPIs (32 Mbit/s) with 4- to 16-bit programmable bitframe, one multiplexed with I2S interface
Development support
serial wire debug (SWD)
All packages ECOPACK 2 compliant
All packages ECOPACK 2 compliant


ну и минус, после того как освоите STM32 на AVR вы уже никогда не вернетесь :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Millis на Attiny13 и точный отсчет времени
СообщениеДобавлено: Ср апр 17, 2024 07:46:33 
Сверлит текстолит когтями

Карма: 20
Рейтинг сообщений: 302
Зарегистрирован: Сб май 05, 2012 20:24:52
Сообщений: 1226
Откуда: KN34PC, Болгария
Рейтинг сообщения: 0
Denis82, еще раз просмотрите название темы :/.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Millis на Attiny13 и точный отсчет времени
СообщениеДобавлено: Пт апр 19, 2024 18:52:05 
Прорезались зубы
Аватар пользователя

Карма: 7
Рейтинг сообщений: 73
Зарегистрирован: Ср июн 29, 2022 16:25:45
Сообщений: 221
Рейтинг сообщения: 0
Denis82 писал(а):
после того как освоите STM32 на AVR вы уже никогда не вернетесь
Не факт :)
Я возвращаюсь. Но да, армы рвут аврки как тузик грелку.

RoMario2024, возьмите аттини85, она может уже от кварца тактироваться, и в ней 2 таймера.

_________________
Белая и Пушистая


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Millis на Attiny13 и точный отсчет времени
СообщениеДобавлено: Пт апр 19, 2024 20:33:46 
Держит паяльник хвостом

Карма: 10
Рейтинг сообщений: 99
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 968
Рейтинг сообщения: 0
С кварцем и дурак сможет.)
Да нормально там всё и без кварца должно быть. Это ж не часы, а всего лишь 10-ти минутный таймер.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Millis на Attiny13 и точный отсчет времени
СообщениеДобавлено: Пт апр 19, 2024 21:56:42 
Прорезались зубы
Аватар пользователя

Карма: 7
Рейтинг сообщений: 73
Зарегистрирован: Ср июн 29, 2022 16:25:45
Сообщений: 221
Рейтинг сообщения: 0
OKF, согласна. Но если ставится вопрос точности - то кварцу альтернативы нет )))

_________________
Белая и Пушистая


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Millis на Attiny13 и точный отсчет времени
СообщениеДобавлено: Сб апр 20, 2024 10:24:52 
Держит паяльник хвостом

Карма: 10
Рейтинг сообщений: 99
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 968
Рейтинг сообщения: 0
Ну, с этим не поспоришь.) Хотя...
Когда то сталкивался с похожим как у ТС с одним из ядер. Проблема была с удлинением delay на 1,2 мгц (на 9,6 ОК). Удлиняли прерывания от таймера. Но миллис отрабатывал нормально.
Поэтому, если ТС сформулирует свою задачу, то можно попробовать подсказать решение.

Добавлено after 4 hours 32 seconds:
Just_Fluffy, этот пример для того, что если руки кривые, то и кварц не поможет).


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Millis на Attiny13 и точный отсчет времени
СообщениеДобавлено: Сб апр 20, 2024 10:26:35 
Прорезались зубы
Аватар пользователя

Карма: 7
Рейтинг сообщений: 73
Зарегистрирован: Ср июн 29, 2022 16:25:45
Сообщений: 221
Рейтинг сообщения: 0
ну так стандартный делей не учитывает прерывания.
А миллис.... Ну вот никогда не понимала "костыли" в виде ардуины...
В принципе, для простой программы (а в тринадцатую тню другая и не влезет) хватает одного таймера, задающего периодичность выполнения суперцикла.
А уже в самом цикле делать все задержки и отсчеты на программных таймерах.
Тогда уже к периоду суперцикла можно привязать кучу задач, выполняющихся параллельно.
При этом таймер можно использовать и по прямому назначению - генерации ШИМ, если выходная частота таймера не сильно высокая.

_________________
Белая и Пушистая


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Millis на Attiny13 и точный отсчет времени
СообщениеДобавлено: Сб апр 20, 2024 10:43:56 
Сверлит текстолит когтями

Карма: 20
Рейтинг сообщений: 302
Зарегистрирован: Сб май 05, 2012 20:24:52
Сообщений: 1226
Откуда: KN34PC, Болгария
Рейтинг сообщения: 0
millis(), micros() в MicroCore сделали с WDT Oscillator. (Timer0 остается для приложений). WDT Oscillator имеетмеет худшую зависимость от напряжения и температуры, не калибруется на заводе и не можно калибрировать.

См. millis.S:
Код:
    ldi ZL, lo8(wdt_millis_counter)
    ld tmp1, Z
    subi tmp1, -19                      ; Add 19 (not 16) because the WDT clock isn't really 128 kHz

Подправляли "методом проб и ошибок", потому что без этого порядка будет еще хуже. Если для время используете Timer0, будет лучше. Он: по Fclock, он: по OSCALL. Но если не нужен таймер для чего другого. Так что при малом количестве ресурсов в МК - самое то. Мне нравится ATtiny13A именно из-за этого и он один из моих любимых МК - заставляет думать "по-другому" при написании программного кода :).


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Millis на Attiny13 и точный отсчет времени
СообщениеДобавлено: Сб апр 20, 2024 11:05:15 
Держит паяльник хвостом

Карма: 10
Рейтинг сообщений: 99
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 968
Рейтинг сообщения: 0
Ну вот никогда не понимала "костыли" в виде ардуины...

Ну так для домохозяек же.) Ни о чём не думай, используй библиотеки и примеры в сети.
Я ТС-у говорил уже об этом.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Millis на Attiny13 и точный отсчет времени
СообщениеДобавлено: Сб апр 20, 2024 12:12:48 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2809
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18105
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 0
Медали: 1
Лучший человек Форума 2017 (1)
АТмега8, конечно, крупнее, чем АТтини13, но у АТмега8 внутренняя частота 1 МГц хорошо откалибрована - отклонение не более 0,5%.
на 10 минут это составит не более 3 секунд, а может и меньше.
я даже первые версии одного своего проекта делал без кварца, а там у меня работал секундомер для подсчета времени работы. но потом на форуме меня попросили поставить кварц для более точного подсчета времени. когда запущен процесс, то за несколько часов без кварца накапливалась заметная ошибка.

_________________
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 39 ]  1,  

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


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

Сейчас этот форум просматривают: Energizer-A и гости: 16


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

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y