Например TDA7294

Форум РадиоКот • Просмотр темы - Вопросы по С/С++ (СИ)
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Чт апр 18, 2024 05:03:42

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


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



Начать новую тему Ответить на тему  [ Сообщений: 7581 ]     ... , , , 359, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Вт янв 18, 2022 20:05:33 
Друг Кота
Аватар пользователя

Карма: 86
Рейтинг сообщений: 1018
Зарегистрирован: Чт апр 11, 2013 11:19:59
Сообщений: 4875
Откуда: Минск
Рейтинг сообщения: 0
Наверняка, не заинлайнилось и вызывается как обычная функия. Поэтому код медленнее (за счёт вызова функций MIN/MAX), но меньше по размеру.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Вт янв 18, 2022 20:23:28 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 403
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2479
Рейтинг сообщения: 0
А ничего что это вооооообще разные действия? Функция зачем возвращает bool ?

Зацени разницу Compiler Exploer


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Вт янв 18, 2022 20:37:44 
Друг Кота
Аватар пользователя

Карма: 86
Рейтинг сообщений: 1018
Зарегистрирован: Чт апр 11, 2013 11:19:59
Сообщений: 4875
Откуда: Минск
Рейтинг сообщения: 0
Да уж, слона-то и не приметили...


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

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

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Вт янв 18, 2022 20:56:22 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 403
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2479
Рейтинг сообщения: 0
СпойлерИзображение
Вложение:
min.png [31.96 KiB]
Скачиваний: 38
Зато программа сильно меньше стала :)

ЗЫ: Кстати, а кто заметил тут шаблоны?


Вернуться наверх
 
Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Вт янв 18, 2022 21:04:21 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
а, извиняюсь, auto - это ведь на самом деле int? то есть макрос и функция вообще принципиально разное поведение будут иметь!

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

Мой уютный бложик... заходите!


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

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

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Вт янв 18, 2022 21:09:23 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 403
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2479
Рейтинг сообщения: 0
Нет, не int. С auto делать будет то же самое что и макрос.


Последний раз редактировалось VladislavS Вт янв 18, 2022 21:56:42, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Вт янв 18, 2022 21:43:33 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
Ну да, это ж не си... Как обманчива природа!

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

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Вт янв 18, 2022 21:49:56 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 403
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2479
Рейтинг сообщения: 0
Дело в том, что там не просто функция, а шаблон. Полная запись как-то так выглядит
Код:
template<typename T, typename U>
auto min(T a, U b) { return a<b?a:b; }
В обычном применении это будет эквивалентно макросу.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Вт янв 18, 2022 23:20:17 
Прорезались зубы
Аватар пользователя

Зарегистрирован: Вт фев 05, 2019 17:20:08
Сообщений: 229
Откуда: Днепр, Украина
Рейтинг сообщения: 0
Всем привет. В этой теме уже была похожая проблема, но не такая как у меня..
Вообщем создаю меню. Создал структуру, засунул ее в прогмем, потом создал массив структур и туда же положил. Следом создаю указатель на структуру и хочу ему присваивать разные структуры (из массива) которые соответствуют текущему пункту меню. Но во время присвоения получаю какой то левый адрес. Почему так происходит?
И еще, если я присваиваю не через макросы прогмема то адрес получаю правильный, но дальше программа отказывается работать...
Изображение

Спойлер
Код:
uint8_t MenuCurent, znak = 10;
extern  char send_buf [20];
char buf_char [6];
void(* on_clicks)(void);
typedef void (*StateFunc) (void);

enum {
   SKROL_MENU = 1,
   NUMBER_ENTRY,

};

typedef struct PROGMEM  {
   const char format[5];           // Имя меню
   void(* on_click)(void);                   // Ссылка на функцию вызова обрабоки изменения значения, параметр +1 или -1)
   uint8_t *param;                  // Ссылка на переменную значения
   uint8_t  max_value;               
   uint8_t  min_value;
   uint8_t  key_state;
} MenuItem;

MenuItem* parent ;


MenuItem const MenuItems[] = {
   {"PAR1", &Level1Item1Sub1,   &znak, 10, 0, SKROL_MENU},
   {"PAR2", &Level1Item1Sub1,   &znak, 20, 0, NUMBER_ENTRY},
};

void main_menu (void)
{
   if (button_press (KEY_UP) ) {  parent = (MenuItem*) &MenuItems[0]; }
   if (button_press (KEY_DOWN)){  parent = (MenuItem*) &MenuItems[1];}
   strcpy_P(send_buf, MenuItems[MenuCurent].format );
   znak = pgm_read_byte(parent->key_state);    // тут тоже получаю фигню
       // znak = (parent->key_state);                        // и так тоже
   if (znak==NUMBER_ENTRY){LEDON ;}
   else {LEDOFF ;}
   //if (pgm_read_byte(parent->key_state)==SKROL_MENU){LEDOFF ;}
   //on_clicks = (StateFunc) pgm_read_ptr(&MenuItems[1].on_click);
   //on_clicks ();
}

void init_menu (void)
{
   //parent = ((MenuItem*)pgm_read_ptr(&MenuItems[1]));   // так получаю фигню
   parent = ((MenuItem*)&MenuItems[1]);      // так получаю правильный адрес
}

_________________
Одержать сто побед в ста битвах — это не вершина воинского искусства. Повергнуть врага без сражения — вот вершина.


Последний раз редактировалось Аlex Ср янв 19, 2022 04:51:57, всего редактировалось 1 раз.
[code] [/code]


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Ср янв 19, 2022 05:01:38 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1289
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4510
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Я с AVR не работал никогда, но, сдаётся мне, что добавление PROGMEM в typedef, ничего не даёт.
Уберите этот квалификатор оттуда и вставляйте его туда, где непосредственно нужно разместить объект во флеши (массив MenuItems и в указателе parent).


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Ср янв 19, 2022 06:51:22 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
Если вы работаете с современным тулчейном, прочитайте, наконец, о новых возможностях компилятора и пользуйтесь ими! Я сейчас о квалификаторе __flash и __memx
Эти квалификаторы позволяют абсолютно прозрачно работать с памятью программ через типизованные указатели, как с ОЗУ. Я в другой теме не раз об этом писал.

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

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Ср янв 19, 2022 09:10:19 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
Вообщем создаю меню

можно для подсказки подсмотреть микроменю исходник:
https://github.com/abcminiuser/micromenu-v2
там действительно
Код:
typedef const struct Menu_Item {
      const struct Menu_Item *Next; /**< Pointer to the next menu item of this menu item */
      const struct Menu_Item *Previous; /**< Pointer to the previous menu item of this menu item */
      const struct Menu_Item *Parent; /**< Pointer to the parent menu item of this menu item */
      const struct Menu_Item *Child; /**< Pointer to the child menu item of this menu item */
      void (*SelectCallback)(void); /**< Pointer to the optional menu-specific select callback of this menu item */
      void (*EnterCallback)(void); /**< Pointer to the optional menu-specific enter callback of this menu item */
      const char Text[]; /**< Menu item text to pass to the menu display callback function */
   } Menu_Item_t;

и в конфиге настраивается в какой памяти
#define MENU_ITEM_STORAGE PROGMEM


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Ср янв 19, 2022 19:22:28 
Прорезались зубы
Аватар пользователя

Зарегистрирован: Вт фев 05, 2019 17:20:08
Сообщений: 229
Откуда: Днепр, Украина
Рейтинг сообщения: 0
ARV, наверное из за того что дя PROGMEM есть куча примеров. а для __flash не особо.
oleg110592, да основная идея взята от туда, но дело в том что я многое там не понимаю, и по этому решил написать так как мне будет понятно.. и вот такой результат.
пробовал уже и другой тип данных в место указателя на структуру делать. тогда вообще нули получаю.
Может я как то неправильно беру адрес структуры?
Код:
parent = ((MenuItem*)pgm_read_ptr(&MenuItems[1]));
даже если я изменяю в квадратных скобках структуру первую или вторую все равно получаю один и тот же адрес

кажется разобрался тут нужно считывать адрес во флеш где хранятся данные znak = pgm_read_byte(&parent->key_state);
Но теперь вопрос, почему же вот таким способом я получаю правильный адрес? parent = ((MenuItem*)&MenuItems[1]);
Ведь я считываю из памяти программ без каких либо макросов..

_________________
Одержать сто побед в ста битвах — это не вершина воинского искусства. Повергнуть врага без сражения — вот вершина.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Ср янв 19, 2022 19:57:01 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
Roman Solovey писал(а):
а для __flash не особо
я здесь на форуме выкладывал свой проект с активным использованием __flash, и как раз для меню :))) FlexMenu
но, если вы с указателями на ты, всю суть можно объяснить несколькими строками:
Код:
// вот так строка помещается в память программ
const __flash char str[] = "string";

// вот так создается тип-структра, которую затем будем помещать в памяти программ
typedef const __flash struct{
  int data;
  const __flash char *fstr; // а это указатель на строку во flash
} flash_data;

// вот массив в памяти программ, наполненный теми структурами:
const __flash flash_data array[] = {
  {.data=1, .fstr = str},
  {/* и так далее*/}
};

// вот так выводится строка из памяти программ
printf("%S\n", str); // как видите, никаких pgm_read_xxxx

// вот собственная функция перебора символов подобной строки
int flash_strlen(const __flash char *s){
  int result = 0;
  while(*s++)
     result++;
  return result;
}

i = flash_strlen(str);
как видите, достаточно описать тип с префиксом const __flash, и данные окажутся в памяти программ, а доступ к ним можно осуществлять так, как будто они в озу, т.е. по имени переменной или через разыменование указателя соответствующего типа.

всё просто

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

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Ср янв 19, 2022 20:14:08 
Прорезались зубы
Аватар пользователя

Зарегистрирован: Вт фев 05, 2019 17:20:08
Сообщений: 229
Откуда: Днепр, Украина
Рейтинг сообщения: 0
аа. я понял. тогда реально отпадает потребность во всех этих извращениях с тем что и от куда читать.
но все же, я такой человек который хочет докопаться до истины, почему я могу получить правильный адрес без использования спец макросов. Единственное что наталкивает на мысль что на этапе компиляции туда подставляются нужные значения..

_________________
Одержать сто побед в ста битвах — это не вершина воинского искусства. Повергнуть врага без сражения — вот вершина.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Ср янв 19, 2022 20:15:35 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
Roman Solovey писал(а):
я такой человек который хочет докопаться до истины
ну, успехов в раскопках :)))

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

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Ср янв 19, 2022 20:42:34 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
может поможет - нашел примерчик в своих раскопках, давненько, когда тоже меню ковырял
Спойлер
Код:
#include <avr/io.h>
#include <stdint.h>
#include <util/delay.h>
#include <avr/pgmspace.h>

int led = 5;  // In port B

uint8_t (*pStateFunc) (uint8_t);
typedef uint8_t (*StateFunc) (uint8_t);
uint8_t input;
volatile uint8_t nextstate;

uint8_t doSomething(uint8_t input);

enum MENUSTATES {STATE1, STATE2};

typedef struct {
   unsigned char state;
   uint16_t someNumber;   // Just arbitrary information
   uint8_t (*pFunc) (uint8_t input);
} MENU_STATE;

const MENU_STATE menu_state[] PROGMEM = {
   //  state  someNumber  pFunc
   {STATE1,   2,          NULL},
   {STATE2,   4,          doSomething},
   {0,        0,          NULL}
};

uint8_t doSomething(uint8_t input) {
   PORTB = PORTB | 1 << led;     // Take PB5 high
   _delay_ms(1000);              // Wait for a second
   PORTB = PORTB & ~(1 << led);  // Take PB5 low
   _delay_ms(1000);              // Wait for a second
   return STATE1;
}

void setup()
{
   DDRB = DDRB | 1 << led;  // Define PB5 as an output
}

void loop() {
   // Get the Function
   pStateFunc = (StateFunc) pgm_read_ptr(&menu_state[1].pFunc);

   // Execute the Function and save the returned state
   nextstate = pStateFunc(input);
}

з.ы. проверил в протеусе - блинкает


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Чт янв 20, 2022 00:14:21 
Встал на лапы
Аватар пользователя

Зарегистрирован: Пн ноя 04, 2019 09:58:29
Сообщений: 102
Откуда: г. Нижний Тагил Свердл. обл.
Рейтинг сообщения: 0
Добрый вечер. Переписал библиотеку для дисплейчика SSD1306 (128х64) с Arduino на нормальный C++(14). для МК ATmega328P. hardware SPI. Работает нормально. Прошел весь тест. Поменяв pinReset, pinDC протесстировал и на ATmega 2560. Работает на любой меге если позволяет размер памяти. Далее планирую переписать и для цветных дисплейчиков. Заказал - уже в пути (4 шт. разных). Вкурил в абстрактные классы, наследование, виртуальные методы, поверхностно в темплеты. hardware SPI для Ардуины также переписан и затемплетен - файл SPI(AVR_T).h. Все файлики в архиве. (пирожок только что из печки - прошу откушать) :P

Добавлено after 13 minutes 29 seconds:
Питание дисплея по сигнальным проводам, так что отсутствует необходимость подключения внешнего иcточника 3,3 V.


Вложения:
Комментарий к файлу: Картинка, тестовая плата
IMG_0500.JPG [84.67 KiB]
Скачиваний: 59
Комментарий к файлу: Подключение и работа дисплея SSD1306
ATmega328P AtmelStudio -std=c++14

SSD1306(ATmega326P).png [15.99 KiB]
Скачиваний: 54
Комментарий к файлу: Подключение и работа дисплея SSD1306
ATmega328P AtmelStudio -std=c++14

ssd1306(new).rar [98.03 KiB]
Скачиваний: 73
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Чт янв 20, 2022 08:14:03 
Друг Кота
Аватар пользователя

Карма: 46
Рейтинг сообщений: 1368
Зарегистрирован: Пт авг 28, 2009 21:34:30
Сообщений: 7214
Откуда: 845-й км.
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Поучите,пожалуйтса, как правильно сделать следующее. Продолжаю развивать систему журналирования. У меня каждые 2,5мс пишется уже 23байта:
Код:
    typedef struct data_buffer {
        int16_t setspeedLeft;       // 2
        int16_t setspeedRight;      // 2
        int16_t RealSpeedLeft;      // 2
        int16_t RealSpeedRight;     // 2
        int32_t StepsLeft;          // 4
        int32_t StepsRight;         // 4
        uint32_t Time;              // 4
        uint8_t vbat;
        uint8_t sensors;
        uint8_t whereami;
    }  __attribute__((packed)) data_buffer_t;
Это быстрый поток. Но еще хочу добавить медленный поток, который за 28 секунд планируется около десятка записей. Для этого я ввёл байт whereami, который показывает в каком программном модуле я нахожусь. Но если в этом байте записан 0, то это типа признака медленного потока и при интепретации данные передаются другие (и пока что меньше чем в быстром потоке):
Код:
typedef struct slow_data {
    int coordX;
    int coordY;
    uint segmentLength;
    int nodeNum;
}
Как объявить это дело, чтобы размер записи всегда был одинаковым и байт whereami тоже находился в одном и том же месте. Конечно я могу просто дефайнами переобозвать, что #define coordX SetSpeedLeft итд. Но, ведь, наверняка, есть более красивый способ записи? Слышал про union, но не могу сообразить как его сюда приделать, чтобы поле whereami никуда не уехало.

до вечера...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Чт янв 20, 2022 08:29:39 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 4
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
так?
Код:
typedef struct data_buffer {
   union{
      struct {
        int16_t setspeedLeft;       // 2
        int16_t setspeedRight;      // 2
        int16_t RealSpeedLeft;      // 2
        int16_t RealSpeedRight;     // 2
      };
      struct{
        int coordX; //2
        int coordY; // 2
        uint segmentLength; // 2
        int nodeNum; // 2
      };
   };
   int32_t StepsLeft;          // 4
   int32_t StepsRight;         // 4
   uint32_t Time;              // 4
   uint8_t vbat;
   uint8_t sensors;
   uint8_t whereami;
 }  __attribute__((packed)) data_buffer_t;

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

Мой уютный бложик... заходите!


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

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


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

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


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

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


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