Цифровая шкала с LED линейкой на MSP430
Цифровая шкала с LED линейкой на MSP430
Возникла необходимость в цифровой шкале для QRP трансивера. Настройка трансивера производится 20 оборотным потенциометром, диапазон выходного напряжения на варикапы от 1,5 до 5,5 вольт. Перестройка очень линейна. В качестве МК планирую использовать МК из состава ланчпада MSP430, а именно m430g2452. По-идее, могу к нему подцепить 13 светодиодов в качестве светодиодной линейки, и останется одна нога для входа АЦП. Возникли следующие вопросы:
могу я использовать ноги xin, xout, rst в качестве выходов?
нужна помощь в написании прошивки, реализующей след. функционал - снять с делителя (приведённый к верхнему порогу +3.3 в) напряжения варикапов, и линейно отобразить их светящейся точкой на шкале.
могу я использовать ноги xin, xout, rst в качестве выходов?
нужна помощь в написании прошивки, реализующей след. функционал - снять с делителя (приведённый к верхнему порогу +3.3 в) напряжения варикапов, и линейно отобразить их светящейся точкой на шкале.
- Реклама
Re: Цифровая шкала с LED линейкой на MSP430
Unrealee писал(а):могу я использовать ноги xin, xout, rst в качестве выходов?
xin, xout - да, rst - нет.
Unrealee писал(а):нужна помощь в написании прошивки
Какая конкрето нужна помощь? Если написать за Вас программу - это элементарно и мне неинтересно. Но могу ответить на конкретные вопросы. Для начала почитайте обучалку:
http://we.easyelectronics.ru/msp430/uroki-msp430-launchpad-urok-15-preobrazovanie-analogovogo-signala.html
Re: Цифровая шкала с LED линейкой на MSP430
Накидал схемку, сразу возник вопрос - можно ли для упрощения разводки соединить выходы портов 1 и 2 в перемешку со светодиодами, а уже потом в программе поправить?
- Вложения
-
- цшс.GIF
- (16 КБ) 638 скачиваний
Re: Цифровая шкала с LED линейкой на MSP430
Конечно можно. Можно еще повесить пару светодиодов на ноги 18, 19. Аналоговый сигнал следует подавать на входы обозначенные А0 - А5, т.е. ноги 2-7. А вывод rst следует подтянуть на питание через 47Ком и бросить с него на землю кондер в 2200 пф. И обязательно шунтировать выводы питания керамикой в 0.1 мкф.
Re: Цифровая шкала с LED линейкой на MSP430
Схема преобразуется в следующий вид.
- Вложения
-
- цшс.GIF
- (17.66 КБ) 594 скачивания
- Реклама
Re: Цифровая шкала с LED линейкой на MSP430
Отлично! Но на вывод 3 можно тоже светодиод поставить, если хотите.
Re: Цифровая шкала с LED линейкой на MSP430
На третий буду снимать со второго потенциометра.
Возникают следующий вопрос:
Начинаю делать соответствия между битами и портами, получается следующее
Каким битам будут соответствовать xin и xout???
Возникают следующий вопрос:
Начинаю делать соответствия между битами и портами, получается следующее
Код: Выделить всё
//что бы не запутаться в порядке следования светодиодов
//1 BIT2 1DIR
//2 BIT3 1DIR
//3 BIT4 1DIR
//4 BIT5 1DIR
//5 BIT0 2DIR
//6 BIT1 2DIR
//7 BIT2 2DIR
//8 BIT3 2DIR
//9 BIT4 2DIR
//10 BIT5 2DIR
//11 BIT6 1DIR
//12 BIT7 1DIR
//13
//14
Каким битам будут соответствовать xin и xout???
Re: Цифровая шкала с LED линейкой на MSP430
На этот вопрос отвечает распиновка выводов на стр. 3 ДШ. Согласно ей xin = P2.6, xout = P2.7.
Re: Цифровая шкала с LED линейкой на MSP430
Начал писать прошивку. Вопросы:
не понимаю как работает функция ADC_init, как в ней установить верхний и нижний предел?
Как реализовать последовательное зажигание светодиодов, на ум лезут конструкции if ... else, может можно проще? Прога:
не понимаю как работает функция ADC_init, как в ней установить верхний и нижний предел?
Как реализовать последовательное зажигание светодиодов, на ум лезут конструкции if ... else, может можно проще? Прога:
Код: Выделить всё
#include <msp430g2553.h>
//что бы не запутаться в порядке следования светодиодов
//1 BIT2 1DIR
//2 BIT3 1DIR
//3 BIT4 1DIR
//4 BIT5 1DIR
//5 BIT0 2DIR
//6 BIT1 2DIR
//7 BIT2 2DIR
//8 BIT3 2DIR
//9 BIT4 2DIR
//10 BIT5 2DIR
//11 BIT6 1DIR
//12 BIT7 1DIR
//13 BIT7 2DIR
//14 BIT6 2DIR
void ADC_init(void); //объявляем функцию для АЦП
void led_init(void); //объявляем функцию для вывода горящего светодиода
float volts=0.0; //объявляем переменную для результата измерения
void main( void )
{
WDTCTL = WDTPW + WDTHOLD; //отключаем ждущий таймер
P1OUT = 0; //инициализируем выключенными светодиоды на первом порту
P1DIR &= ~(BIT2+BIT3+BIT4+BIT5+BIT6+BIT7);
P2OUT = 0; //инициализируем выключенными светодиоды на втором порту
P2DIR &= ~(BIT0+BIT1+BIT2+BIT3+BIT4+BIT5+BIT6+BIT7);
ADC_init();
led_init();
for (;;)
{
ADC10CTL0 |= ADC10SC; // начинаем новое преобразование
while ((ADC10CTL1 & ADC10BUSY) == 0x01); // ждем, когда преобразование закончится
volts=ADC10MEM; //сохраняем результат преобразования
}
}//main
void ADC_init(void)
{
// Используем Vcc/Vss(аналоговая земля) для верхнего/нижнего ИОН,
// 16 x ADC10CLKs (выборка за 16 тактов), включаем АЦП.
ADC10CTL0 = SREF_0 + ADC10SHT_2 + ADC10ON;
// Вход A1, делитель ADC10CLK на 1, одноканальный режим.
ADC10CTL1 = INCH_1 + SHS_0 + ADC10SSEL_0 + ADC10DIV_0 + CONSEQ_0;
ADC10AE0 = BIT1; // Разрешаем вход АЦП на порту P1.1
ADC10CTL0 |= ENC; // Разрешаем преобразования.
} // ADC_init
void led_init(void)
{
}
Re: Цифровая шкала с LED линейкой на MSP430
Я совсем не хочу отговаривать Вас от освоения МК и даже наоборот, но может быть для конкретного устройства будет проще применить микросхемы светодиодной шкалы, например LM3914. Поэтому прежде чем продолжать дайте знать насколько сильно/серьезно у Вас желание сделать это устройство на МК.
Re: Цифровая шкала с LED линейкой на MSP430
АЦП функцией init() уже сконфигурирован на работу с напряжением питания в качестве опорного. А обработку уровней АЦП можно сделать, например, так: разбить интервал кодов АЦП (0 - 1023) на равное число частей по числу светодиодов и затем начать обработку с низшего уровня:
if (volts < низший порог)
включаем первый светик;
if (volts < второй порог)
включаем следующий светик);
и т.д. по числу светиков. Кстати, переменная volts может быть типа int. Согласно предшествующей дискуссии Вы хотель подавать напряжение на вывод 2, что соответствует P1.0, а в коде настройка на P1.1 через BIT1.
if (volts < низший порог)
включаем первый светик;
if (volts < второй порог)
включаем следующий светик);
и т.д. по числу светиков. Кстати, переменная volts может быть типа int. Согласно предшествующей дискуссии Вы хотель подавать напряжение на вывод 2, что соответствует P1.0, а в коде настройка на P1.1 через BIT1.
Re: Цифровая шкала с LED линейкой на MSP430
Добавляю делитель на вход. Получается, если входное сопротивление АЦП велико, то его не принимаем во внимание и делитель получится 1,7.
Соответственно, считаю напряжения, при которых загорятся светодиоды (в excel табличке).
Вопросы:
как установить опорные напряжения (нижнее в 1,2 вольта, верхнее в напряжение питания Vss)
Как я понял, чтобы организовать зажигание сетодиода, нужно перевести полученную переменную volts в реальные вольты (умножив на какой-то коэффициент) и организовать сравнение в цикле с определённой частотой переменной с массивом:
если 0<volts<= 1,2 зажигаем первый светодиод, тут же всё гасим, иначе
если 1,2<volts<=1,36 зажигаем второй светодиод, тут же всё гасим, иначе
и т.д.
всё это с частотой 200-300 гц чтобы не видно было мерцания?
Или есть решение по-изящней???
Соответственно, считаю напряжения, при которых загорятся светодиоды (в excel табличке).
Вопросы:
как установить опорные напряжения (нижнее в 1,2 вольта, верхнее в напряжение питания Vss)
Как я понял, чтобы организовать зажигание сетодиода, нужно перевести полученную переменную volts в реальные вольты (умножив на какой-то коэффициент) и организовать сравнение в цикле с определённой частотой переменной с массивом:
если 0<volts<= 1,2 зажигаем первый светодиод, тут же всё гасим, иначе
если 1,2<volts<=1,36 зажигаем второй светодиод, тут же всё гасим, иначе
и т.д.
всё это с частотой 200-300 гц чтобы не видно было мерцания?
Или есть решение по-изящней???
- Вложения
-
- Снимок.PNG
- (6.78 КБ) 593 скачивания
-
- цшс.GIF
- (18.18 КБ) 585 скачиваний
Последний раз редактировалось Unrealee Пн дек 03, 2012 00:04:16, всего редактировалось 1 раз.
Re: Цифровая шкала с LED линейкой на MSP430
Ser60 писал(а):Я совсем не хочу отговаривать Вас от освоения МК и даже наоборот, но может быть для конкретного устройства будет проще применить микросхемы светодиодной шкалы, например LM3914. Поэтому прежде чем продолжать дайте знать насколько сильно/серьезно у Вас желание сделать это устройство на МК.
Желание сильное и серьёзное. Это первая моя конструкция на микроконтроллере. Раньше немного программировал моторолловские МК на асме, сейчас работа заставляет изучать серию MSP430 TI. Заказал пару ланчпадов, решил совместить приятное с полезным. (С нового года, наш отдел промышленной автоматизации переходит на MSP430), ведущий программист уволился, так что придётся разбираться...
Ser60 писал(а):Согласно предшествующей дискуссии Вы хотель подавать напряжение на вывод 2, что соответствует P1.0, а в коде настройка на P1.1 через BIT1.
Поправил.
Re: Цифровая шкала с LED линейкой на MSP430
Все понял насчет желания, тогда продолжаем. В принципе нижний порог АЦП можно установить внешним опорником на 1.2в, кот. подключается к выводу 5 корпуса. При этом в битах 13-15 регистра ADC10CTL0 надо поставить 100 (стр. 567 ДШ на семейство 2хх). Иначе, можно и без опорника, просто кодам АЦП соответствующим ниже 1.2в будет соответствовать включение лишь самого нижнего светодиода.
Насчет более элегантного решения все зависит от того что Вы считаете элегантным. Можно, например, создать таблицу с 1024 строками, где каждому коду АЦП будет соответствовать значение подаваемое в порт и все светики загорятся сразу. Памяти на это хватит. Измерять уровень АЦП достаточно каждые 100 мсек, может и раза в 2 реже. Это-же не динамическая индикация, а лишь регулировка времени отклика схемы на изменение напряжения на входе.
Переводить коды АЦП в вольты не нужно. Достаточно все закодить в кодах АЦП, предварительно посчитав в сторонке какому напряжению соответствует какой код.
Кстати, будьте готовы к введению гистерезиса в схему, чтобы исключить мигание соседних светодиодов при подходе напряжения к точке переключения. Но об этом потом, давайте сначала сделаем простой вариант. И зачем Вы пишите этот простой код на С? Как насчет АСМа?
Насчет более элегантного решения все зависит от того что Вы считаете элегантным. Можно, например, создать таблицу с 1024 строками, где каждому коду АЦП будет соответствовать значение подаваемое в порт и все светики загорятся сразу. Памяти на это хватит. Измерять уровень АЦП достаточно каждые 100 мсек, может и раза в 2 реже. Это-же не динамическая индикация, а лишь регулировка времени отклика схемы на изменение напряжения на входе.
Переводить коды АЦП в вольты не нужно. Достаточно все закодить в кодах АЦП, предварительно посчитав в сторонке какому напряжению соответствует какой код.
Кстати, будьте готовы к введению гистерезиса в схему, чтобы исключить мигание соседних светодиодов при подходе напряжения к точке переключения. Но об этом потом, давайте сначала сделаем простой вариант. И зачем Вы пишите этот простой код на С? Как насчет АСМа?
Re: Цифровая шкала с LED линейкой на MSP430
Ser60 писал(а):Все понял насчет желания, тогда продолжаем. В принципе нижний порог АЦП можно установить внешним опорником на 1.2в, кот. подключается к выводу 5 корпуса. При этом в битах 13-15 регистра ADC10CTL0 надо поставить 100 (стр. 567 ДШ на семейство 2хх). Иначе, можно и без опорника, просто кодам АЦП соответствующим ниже 1.2в будет соответствовать включение лишь самого нижнего светодиода.
Насчет более элегантного решения все зависит от того что Вы считаете элегантным. Можно, например, создать таблицу с 1024 строками, где каждому коду АЦП будет соответствовать значение подаваемое в порт и все светики загорятся сразу. Памяти на это хватит. Измерять уровень АЦП достаточно каждые 100 мсек, может и раза в 2 реже. Это-же не динамическая индикация, а лишь регулировка времени отклика схемы на изменение напряжения на входе.
Переводить коды АЦП в вольты не нужно. Достаточно все закодить в кодах АЦП, предварительно посчитав в сторонке какому напряжению соответствует какой код.
Кстати, будьте готовы к введению гистерезиса в схему, чтобы исключить мигание соседних светодиодов при подходе напряжения к точке переключения. Но об этом потом, давайте сначала сделаем простой вариант. И зачем Вы пишите этот простой код на С? Как насчет АСМа?
Начал накидывать код, заодно выпаял 14 светодиодов из старого хаба
Ser60 писал(а): И зачем Вы пишите этот простой код на С? Как насчет АСМа?
Хочу немного разобраться с С. Асм к тому подзабыл, 5 лет на нём не писал. В последнее время писал на Фортране и в G-кодах для ЧПУ.
Сама прога:
#include <msp430g2553.h>
//что бы не запутаться в порядке следования светодиодов
//1 BIT2 1DIR
//2 BIT3 1DIR
//3 BIT4 1DIR
//4 BIT5 1DIR
//5 BIT0 2DIR
//6 BIT1 2DIR
//7 BIT2 2DIR
//8 BIT3 2DIR
//9 BIT4 2DIR
//10 BIT5 2DIR
//11 BIT6 1DIR
//12 BIT7 1DIR
//13 BIT7 2DIR
//14 BIT6 2DIR
void ADC_init(void); //объявляем функцию для АЦП
void led_init(void); //объявляем функцию для вывода горящего светодиода
float volts=0.0; //объявляем переменную для результата измерения
void main( void )
{
WDTCTL = WDTPW + WDTHOLD; //отключаем ждущий таймер
P1OUT = 0; //инициализируем выключенными светодиоды на первом порту
P1DIR &= ~(BIT2+BIT3+BIT4+BIT5+BIT6+BIT7);
P2OUT = 0; //инициализируем выключенными светодиоды на втором порту
P2DIR &= ~(BIT0+BIT1+BIT2+BIT3+BIT4+BIT5+BIT6+BIT7);
ADC_init();
led_init();
for (;;)
{
ADC10CTL0 |= ADC10SC; // начинаем новое преобразование
while ((ADC10CTL1 & ADC10BUSY) == 0x01); // ждем, когда преобразование закончится
volts=ADC10MEM*0.0032258; //сохраняем результат преобразования
}
}//main
void ADC_init(void)
{
// Используем Vcc/Vss(аналоговая земля) для верхнего/нижнего ИОН,
// 16 x ADC10CLKs (выборка за 16 тактов), включаем АЦП.
ADC10CTL0 = SREF_0 + ADC10SHT_2 + ADC10ON;
// Вход A1, делитель ADC10CLK на 1, одноканальный режим.
ADC10CTL1 = INCH_1 + SHS_0 + ADC10SSEL_0 + ADC10DIV_0 + CONSEQ_0;
ADC10AE0 = BIT0; // Разрешаем вход АЦП на порту P1.1
ADC10CTL0 |= ENC; // Разрешаем преобразования.
} // ADC_init
void led_init(void)
{
{
if (volts <= 1.2)
P1OUT |= BIT2; //если напряжение меньше 1.2 включаем первый светодиод
else
P1OUT &= ~BIT2;
}
{
if (volts <= 1.36 && volts > 1.2)
P1OUT |= BIT3; //если напряжение меньше 1.36 и больше 1.2 включаем 2-ой светодиод
else
P1OUT &= ~BIT3;
}
}//led_init off
Re: Цифровая шкала с LED линейкой на MSP430
Я-бы убрал функцию init_led() и поставил ее тело в конец основного цикла, перепесав его так:
После всех проверок должна быть задержка миллисек на 100-200. Лучше отправить процессор в сон с пробуждением от таймера. Тогда и для радио помех меньше будет.
Код: Выделить всё
P1OUT = 0; // выключаем все светики
if (volts >= 1.2)
P1OUT |= BIT2; //если напряжение больше 1.2 включаем первый светодиод
if (volts >= 1.36)
P1OUT |= BIT3; //если напряжение больше 1.36 включаем еще 2-ой светодиод
После всех проверок должна быть задержка миллисек на 100-200. Лучше отправить процессор в сон с пробуждением от таймера. Тогда и для радио помех меньше будет.
Re: Цифровая шкала с LED линейкой на MSP430
Код: Выделить всё
#include <msp430g2553.h>
//что бы не запутаться в порядке следования светодиодов
//1 BIT2 1DIR
//2 BIT3 1DIR
//3 BIT4 1DIR
//4 BIT5 1DIR
//5 BIT0 2DIR
//6 BIT1 2DIR
//7 BIT2 2DIR
//8 BIT3 2DIR
//9 BIT4 2DIR
//10 BIT5 2DIR
//11 BIT6 1DIR
//12 BIT7 1DIR
//13 BIT7 2DIR
//14 BIT6 2DIR
void ADC_init(void); //объявляем функцию для АЦП
float volts=0.0; //объявляем переменную для результата измерения
void main( void )
{
WDTCTL = WDTPW + WDTHOLD; //отключаем ждущий таймер
P1OUT = 0; //инициализируем выключенными светодиоды на первом порту
P1DIR &= ~(BIT2+BIT3+BIT4+BIT5+BIT6+BIT7);
P2OUT = 0; //инициализируем выключенными светодиоды на втором порту
P2DIR &= ~(BIT0+BIT1+BIT2+BIT3+BIT4+BIT5+BIT6+BIT7);
ADC_init();
for (;;)
{
ADC10CTL0 |= ADC10SC; // начинаем новое преобразование
while ((ADC10CTL1 & ADC10BUSY) == 0x01); // ждем, когда преобразование закончится
volts=ADC10MEM*0.0032258; //сохраняем результат преобразования
P1OUT = 0; // выключаем все светики
P2OUT = 0;
if (volts >= 1.2)
P1OUT |= BIT2; //если напряжение больше 1.2 включаем первый светодиод
if (volts >= 1.36)
P1OUT |= BIT3; //если напряжение больше 1.36 включаем еще 2-ой светодиод
if (volts >= 1.52)
P1OUT |= BIT4; //если напряжение больше 1.2 включаем 3 светодиод
if (volts >= 1.69)
P1OUT |= BIT5;
if (volts >= 1.85)
P2OUT |= BIT0;
if (volts >= 2.01)
P2OUT |= BIT1;
if (volts >= 2.17)
P2OUT |= BIT2;
if (volts >= 2.33)
P2OUT |= BIT3;
if (volts >= 2.5)
P2OUT |= BIT4;
if (volts >= 2.67)
P2OUT |= BIT5;
if (volts >= 2.82)
P1OUT |= BIT6;
if (volts >= 2.99)
P1OUT |= BIT7;
if (volts >= 2.15)
P2OUT |= BIT7;
if (volts >= 3.3)
P2OUT |= BIT6;
}
}//main
void ADC_init(void)
{
// Используем Vcc/Vss(аналоговая земля) для верхнего/нижнего ИОН,
// 16 x ADC10CLKs (выборка за 16 тактов), включаем АЦП.
ADC10CTL0 = SREF_0 + ADC10SHT_2 + ADC10ON;
// Вход A1, делитель ADC10CLK на 1, одноканальный режим.
ADC10CTL1 = INCH_1 + SHS_0 + ADC10SSEL_0 + ADC10DIV_0 + CONSEQ_0;
ADC10AE0 = BIT0; // Разрешаем вход АЦП на порту P1.1
ADC10CTL0 |= ENC; // Разрешаем преобразования.
} // ADC_init
Задержка делается через delay ()???
Re: Цифровая шкала с LED линейкой на MSP430
Лучше сделать задержку на таймере, но чтобы попробовать можно и без нее пока.
Re: Цифровая шкала с LED линейкой на MSP430
Прога в таком виде:
МК прошился без ошибок, вне зависимости от уровня напряжения на 2-ой ноге, все светодиоды горят
Код: Выделить всё
#include <msp430g2553.h>
//что бы не запутаться в порядке следования светодиодов
//1 BIT2 1DIR
//2 BIT3 1DIR
//3 BIT4 1DIR
//4 BIT5 1DIR
//5 BIT0 2DIR
//6 BIT1 2DIR
//7 BIT2 2DIR
//8 BIT3 2DIR
//9 BIT4 2DIR
//10 BIT5 2DIR
//11 BIT6 1DIR
//12 BIT7 1DIR
//13 BIT7 2DIR
//14 BIT6 2DIR
void ADC_init(void); //объявляем функцию для АЦП
float volts=0.0; //объявляем переменную для результата измерения
void main( void )
{
WDTCTL = WDTPW + WDTHOLD; //отключаем ждущий таймер
P1DIR = (BIT2 + BIT3 + BIT4 + BIT5 + BIT6 + BIT7);
P1OUT = 0; //инициализируем выключенными светодиоды на первом порту
P2DIR = (BIT0 + BIT1 + BIT2 + BIT3 + BIT4 + BIT5 + BIT6 + BIT7);
P2OUT = 0; //инициализируем выключенными светодиоды на втором порту
ADC_init();
for (;;)
{
ADC10CTL0 |= ADC10SC; // начинаем новое преобразование
while ((ADC10CTL1 & ADC10BUSY) == 0x01); // ждем, когда преобразование закончится
volts=ADC10MEM*0.0032258; //сохраняем результат преобразования
P1OUT = 0; // выключаем все светики
P2OUT = 0;
if (volts >= 1.2)
P1OUT |= BIT2; //если напряжение больше 1.2 включаем первый светодиод
if (volts >= 1.36)
P1OUT |= BIT3; //если напряжение больше 1.36 включаем еще 2-ой светодиод
if (volts >= 1.52)
P1OUT |= BIT4; //если напряжение больше 1.52 включаем 3 светодиод
if (volts >= 1.69)
P1OUT |= BIT5;
if (volts >= 1.85)
P2OUT |= BIT0;
if (volts >= 2.01)
P2OUT |= BIT1;
if (volts >= 2.17)
P2OUT |= BIT2;
if (volts >= 2.33)
P2OUT |= BIT3;
if (volts >= 2.5)
P2OUT |= BIT4;
if (volts >= 2.67)
P2OUT |= BIT5;
if (volts >= 2.82)
P1OUT |= BIT6;
if (volts >= 2.99)
P1OUT |= BIT7;
if (volts >= 2.15)
P2OUT |= BIT7;
if (volts >= 3.3)
P2OUT |= BIT6;
}
}//main
void ADC_init(void)
{
// Используем Vcc/Vss(аналоговая земля) для верхнего/нижнего ИОН,
// 16 x ADC10CLKs (выборка за 16 тактов), включаем АЦП.
ADC10CTL0 = SREF_0 + ADC10SHT_2 + ADC10ON;
// Вход A1, делитель ADC10CLK на 1, одноканальный режим.
ADC10CTL1 = INCH_1 + SHS_0 + ADC10SSEL_0 + ADC10DIV_0 + CONSEQ_0;
ADC10AE0 = BIT0; // Разрешаем вход АЦП на порту P1.1
ADC10CTL0 |= ENC; // Разрешаем преобразования.
} // ADC_init
МК прошился без ошибок, вне зависимости от уровня напряжения на 2-ой ноге, все светодиоды горят
Re: Цифровая шкала с LED линейкой на MSP430
У меня есть таком МК на работе. Я завтра принесу домой, тогда продолжим.


