коррекция времени ds1307

Обсуждаем контроллеры компании Atmel.
Ответить
Родился
Сообщения: 19
Зарегистрирован: Ср ноя 28, 2018 13:27:24

Сообщение Mavlid »

Я начинающий,извините-возможно этот вопрос повторялся
Как делается коррекция времени ?У меня часы спешат на 5 сек в сутки,программа на
СпойлерBASCOM AVR

Код: Выделить всё

$Regfile = "m328pdef.dat"
$Crystal = 8000000
$hwstack = 40
$swstack = 16
$framesize = 32
Config lcd = 20 * 4
Config lcdpin = PIN , DB4 = PORTc.3 , DB5 = PORTc.4 , DB6 = PORTc.5 , DB7 = PORTd.7 , E = PORTc.2 , RS = PORTc.1
Config lcdmode = PORT
Initlcd
Cursor Off
Deflcdchar 0 , 15 , 31 , 31 , 31 , 31 , 31 , 31 , 15
Deflcdchar 1 , 30 , 31 , 31 , 31 , 31 , 31 , 31 , 30
Deflcdchar 2 , 31 , 31 , 32 , 32 , 32 , 32 , 32 , 32
Deflcdchar 3 , 32 , 32 , 32 , 32 , 32 , 32 , 31 , 31
Deflcdchar 4 , 31 , 31 , 32 , 32 , 32 , 32 , 24 , 28
Deflcdchar 5 , 32 , 32 , 32 , 32 , 32 , 32 , 24 , 28
Deflcdchar 6 , 31 , 31 , 32 , 32 , 32 , 32 , 31 , 31
Deflcdchar 7 , 28 , 28 , 32 , 32 , 32 , 32 , 24 , 28
Dim Posx As Byte
Dim Posy As Byte
Dim I As Byte
Declare Sub set_ds1307(byval Adress As Byte , dane As Byte)
Declare Sub Style_time
Declare Sub Digit
Config Sda = Portb.7       ' I2C Data
Config Scl = Portb.6       ' I2C Clock
Dim Seco As Byte
Dim Mine As Byte
Dim Hour As Byte
dim day as byte
dim dane as byte : dane = 0
dim _out as bit : _out = 0
dim _SQWE as bit : _SQWE = 1
dim _RS as byte : _RS = 3       '0=1 hz,1= 4.096 khz,2=8.192 khz,3=32.768 khz
dim button as byte
dim x as byte , y as byte , z as byte

gosub Ds1307_start

Config Adc = Single , Prescaler = Auto , Reference = Avcc       'конфигурация АЦП

'объявляем переменные
Dim W As Word


Start Adc
'cls
'lcd "Hello !!!"
'wait 1
cls
do
 gosub Ds1307
 call Style_time
 'W = Getadc(7)       'считываем результат с пина 0 порта А.


 'if W < 1000 then
     gosub buttons
     'Locate 3 , 16
     'Lcd "" ; W ; "  "       'выводим результат преобразования на ЖК
     'Locate 4 , 16       ' позиция курсора
     lcd button ; "  "
   'else
     'button = 10
 'end if
 select case button
    Case 5 : gosub set_menu



 end select
  waitms 300
loop


set_menu:
  x = 2
  y = 2
  z = 2
  cls
  locate 1 , 8
   lcd "MENU"
  locate 2 , 3
   lcd "Set time and data"
  locate 3 , 3
   lcd "Set budilnik"
  locate 4 , 3
   lcd "Set LCD contrast"
  while button <> 6
    gosub buttons
  wend
  do
   locate x , 1
   lcd ">"
   gosub buttons

   select case button
      'case 0 : exit do
      case 1 : gosub set_time_date       'уствановка времени и даты
      'case 1 :
      case 2 : locate x , 1
               lcd " "
               decr x
               if x < 2 then x = 4
               locate x , 1
               lcd ">"
               waitms 500
      case 3 : locate x , 1
               lcd " "
               incr x
               if x > 4 then x = 2
               locate x , 1
               lcd ">"
               waitms 500
      case 4 : if x = 2 then gosub set_time_date       'уствановка времени и даты

   end select
   waitms 100
  loop until button = 0       'or button = 1       ' or button = 5
  cls
  while button = 0
    gosub buttons
  wend
return
set_time_date:       'уствановка времени и даты
cls
'y = 2
  cls
  locate 1 , 3
   lcd "Set time and data"
  locate 2 , 3
   lcd "Set time "
  locate 3 , 3
   lcd "Set data"
  locate 4 , 3
   lcd "Set day of theweek"
  while button <> 6
    gosub buttons
  wend
do
 locate y , 1
   lcd ">"
   gosub buttons
   select case button
      'case 1 : gosub set_time_date       'уствановка времени и даты
      case 0 : exit do
      case 2 : locate y , 1
               lcd " "
               decr y
               if y < 2 then y = 4
               locate y , 1
               lcd ">"
               waitms 500
      case 3 : locate y , 1
               lcd " "
               incr y
               if y > 4 then y = 2
               locate y , 1
               lcd ">"
               waitms 500
      case 4 : if y = 2 then gosub set_time       'уствановка времени
               if y = 3 then gosub set_data       'уствановка даты
               if y = 4 then gosub set_day       'уствановка дня недели
   end select
  waitms 100
  loop       'until button = 0
  'cls
  while button = 0
    gosub buttons
  wend
  goto set_menu
return

set_time:       'уствановка времени
 cls
'z = 2
  cls
  locate 1 , 3
   lcd "Set time"
  locate 2 , 3
   lcd "Hour:"
  locate 3 , 3
   lcd "Minut:"
  locate 4 , 3
   lcd "Sekund:"
  while button <> 6
    gosub buttons
  wend
  do
   gosub Ds1307
   'locate 1 , 3
     'lcd "Set time"
   locate 2 , 10
     lcd Hour ; " "
   locate 3 , 10
     lcd Mine ; " "
   locate 4 , 10
     lcd Seco ; " "


   locate z , 1
   lcd ">"
   gosub buttons
   select case button
      case 0 : exit do       'уствановка времени
      case 1 : if z = 2 then       'плюс минус
                   decr Hour
                   if Hour > 200 then Hour = 23
                   call set_ds1307(2 , Hour)
               end if
               if z = 3 then       'плюс минус
                   decr Mine
                   if Mine > 200 then Mine = 59
                   call set_ds1307(1 , Mine)
               end if
               if z = 4 then       'плюс минус
                   decr Seco
                   if Seco > 200 then Seco = 59
                   call set_ds1307(0 , Seco)
               end if
               waitms 100
      case 2 : locate z , 1
               lcd " "
               decr z
               if z < 2 then z = 4
               locate z , 1
               lcd ">"
               waitms 500
      case 3 : locate z , 1
               lcd " "
               incr z
               if z > 4 then z = 2
               locate z , 1
               lcd ">"
               waitms 500
      case 4 : if z = 2 then       'плюс минус
                   incr Hour
                   if Hour > 23 then Hour = 0
                   call set_ds1307(2 , Hour)
               end if
               if z = 3 then       'плюс минус
                   incr Mine
                   if Mine > 59 then Mine = 0
                   call set_ds1307(1 , Mine)
               end if
               if z = 4 then       'плюс минус
                   incr Seco
                   if Seco > 59 then Seco = 0
                   call set_ds1307(0 , Seco)
               end if
               waitms 100


   end select
  waitms 100
  loop       'until button = 0
  goto set_time_date       'set_menu
return

  set_data:       'уствановка даты


 cls
'z = 2
  cls
  locate 1 , 3
   lcd "Set data:"
  locate 2 , 3
   lcd "Year:20"
  locate 3 , 3
   lcd "Month:"
  locate 4 , 3
   lcd "Data:  "
  while button <> 6
    gosub buttons
  wend
  do
   gosub Ds1307_data
   'locate 1 , 3
     'lcd "Set time"
   locate 2 , 10
     lcd Hour ; " "
   locate 3 , 10
     lcd Mine ; " "
   locate 4 , 10
     lcd Seco ; " "

   locate z , 1
   lcd ">"
   gosub buttons
   select case button
      case 0 : exit do       'уствановка  даты
      case 1 : if z = 2 then       'плюс минус
                   decr Hour
                   if Hour > 200 then Hour = 99       'ГОД
                   call set_ds1307(6 , Hour)
               end if
               if z = 3 then       'плюс минус
                   decr Mine
                   if Mine > 200 or mine = 0 then Mine = 12       ' МЕСЯЦ
                   call set_ds1307(5 , Mine)
               end if
               if z = 4 then       'плюс минус
                   decr Seco
                   if Seco > 200 or seco = 0 then Seco = 31       ' ДЕНЬ
                   call set_ds1307(4 , Seco)
               end if
               waitms 100
      case 2 : locate z , 1
               lcd " "
               decr z
               if z < 2 then z = 4
               locate z , 1
               lcd ">"
               waitms 500
      case 3 : locate z , 1
               lcd " "
               incr z
               if z > 4 then z = 2
               locate z , 1
               lcd ">"
               waitms 500
      case 4 : if z = 2 then       'плюс минус
                   incr Hour
                   if Hour > 99 then Hour = 0       ' ГОД
                   call set_ds1307(6 , Hour)
               end if
               if z = 3 then       'плюс минус
                   incr Mine
                   if Mine > 12 then Mine = 1       ' МЕСЯЦ
                   call set_ds1307(5 , Mine)
               end if
               if z = 4 then       'плюс минус
                   incr Seco
                   if Seco > 31 then Seco = 1       'ДЕНЬ
                   call set_ds1307(4 , Seco)
               end if
               waitms 100

   end select
  waitms 100
  loop       'until button = 0
  goto set_time_date       'set_menu
return

set_day:       'уствановка дня недели
 cls
 locate 1 , 3
 lcd "Set day:"
 while button <> 6
    gosub buttons
  wend
 do
   locate 1 , 11
   gosub Ds1307_data
   lcd day ; " "
   gosub buttons
   select case button
      case 0 : exit do
      case 1 :       'минус
                   decr day
                   if day > 200 or day = 0 then day = 7       'день недели
                   call set_ds1307(3 , day)
      case 4 :       'плюс
                   incr day
                   if day > 7 then day = 1       ' день недели
                   call set_ds1307(3 , day)
    end select
  waitms 300

 loop       'until button = 0
 goto set_time_date
return
buttons:
 W = Getadc(7)
 w = w / 10
 button = w / 15
return


Ds1307_start:
  dane = _RS : dane.7 = _out : dane.4 = _SQWE
i2cstart
I2cwbyte &HD0
I2cwbyte 7
I2cwbyte dane
I2cstop
gosub Ds1307
if seco > 59 then
   i2cstart
   I2cwbyte &HD0
   I2cwbyte 0
   I2cwbyte 0
   I2cstop
end if

return

Ds1307:
I2cstart
I2cwbyte &HD0
I2cwbyte &H00
I2cstart
I2cwbyte &HD1
I2crbyte Seco , Ack
I2crbyte Mine , Ack
I2crbyte Hour , Nack
I2cstop
Seco = Makedec(seco)
Mine = Makedec(mine)
Hour = Makedec(hour)
Return
Ds1307_data:
I2cstart
I2cwbyte &HD0
I2cwbyte &H03
I2cstart
I2cwbyte &HD1
I2crbyte day , Ack
I2crbyte Seco , Ack
I2crbyte Mine , Ack
I2crbyte Hour , Nack
I2cstop
Seco = Makedec(seco)
Mine = Makedec(mine)
Hour = Makedec(hour)
day = Makedec(day)
Return



Sub set_ds1307(byval Adress As Byte , dane As Byte)
  dane = Makebcd(dane)
  I2cstart
  I2cwbyte &HD0       ' бит записи
  I2cwbyte Adress
  I2cwbyte dane
  I2cstop

end sub

Sub Style_time
Posx = 1
i = hour / 10
 Call Digit
 i = hour mod 10
 Posx = 4
 Call Digit
 i = mine / 10
 Posx = 10
 Call Digit
i = mine mod 10
 Posx = 14
 Call Digit
 Locate 1 , 9
Lcd "."
'i = Seco mod 10
locate 2 , 9
Lcd "."
locate 2 , 18
if Seco < 10 then Lcd "0"
Lcd Seco ; " "
End Sub

Sub Digit:
if posx = 4 then incr posx
'Select Case Stroka
if i = 0 then
Locate 1 , Posx
Lcd Chr(0) ; Chr(2) ; Chr(1)
Locate 2 , Posx
Lcd Chr(0) ; Chr(3) ; Chr(1)
end if
'--------------------------------------
if i = 1 then
Locate 1 , Posx
Lcd Chr(2) ; Chr(1) ; " "
Locate 2 , Posx
Lcd Chr(3) ; Chr(0) ; Chr(3)
end if
'--------------------------------------
if i = 2 then
Locate 1 , Posx
Lcd Chr(2) ; Chr(6) ; Chr(1)
Locate 2 , Posx
Lcd Chr(0) ; Chr(3) ; Chr(3)
end if
'--------------------------------------
if i = 3 then:
Locate 1 , Posx
Lcd Chr(6) ; Chr(6) ; Chr(1)
Locate 2 , Posx
Lcd Chr(3) ; Chr(3) ; Chr(1)
end if
'--------------------------------------
if i = 4 then
Locate 1 , Posx
Lcd Chr(1) ; " " ; Chr(3)
Locate 2 , Posx
Lcd Chr(2) ; Chr(2) ; Chr(0)
end if
'--------------------------------------
if i = 5 then
Locate 1 , Posx
Lcd Chr(0) ; Chr(6) ; Chr(4)
Locate 2 , Posx
Lcd Chr(3) ; Chr(3) ; Chr(1)
end if
'--------------------------------------
if i = 6 then
Locate 1 , Posx
Lcd Chr(0) ; Chr(6) ; Chr(7)
Locate 2 , Posx
Lcd Chr(0) ; Chr(3) ; Chr(1)
end if
'--------------------------------------
if i = 7 then
Locate 1 , Posx
Lcd Chr(2) ; Chr(2) ; Chr(1)
Locate 2 , Posx
Lcd " " ; " " ; Chr(1)
end if
'--------------------------------------
if i = 8 then
Locate 1 , Posx
Lcd Chr(0) ; Chr(6) ; Chr(1)
Locate 2 , Posx
Lcd Chr(0) ; Chr(3) ; Chr(1)
end if
'--------------------------------------
if i = 9 then
Locate 1 , Posx
Lcd Chr(0) ; Chr(6) ; Chr(1)
Locate 2 , Posx
Lcd Chr(3) ; Chr(3) ; Chr(1)       '" " ; Chr(3) ; Chr(1)
end if
'--------------------------------------
if i = 10 then       '-
Locate 1 , Posx
Lcd Chr(6) ; Chr(6) ; Chr(6)
'Locate 2 , Posx
'Lcd Chr(3) ; Chr(3) ; Chr(1)       '" " ; Chr(3) ; Chr(1)
end if
if i = 11 then       'о
Locate 1 , Posx
lcd " " ; "o" ; " "
end if
if i = 12 then       'c
Locate 1 , Posx
Lcd Chr(0) ; Chr(2) ; Chr(2)
Locate 2 , Posx
Lcd Chr(0) ; Chr(3) ; Chr(3)
end if
End Sub
Реклама
Друг Кота
Аватара пользователя
Сообщения: 39197
Зарегистрирован: Сб сен 13, 2014 16:27:32
Откуда: СпиртоГонск созвездия Омега

Сообщение musor »

это невозможно !!! зависит от подборра кварца и терминирующих емкостей при точном подборе идут точно

Добавлено after 2 minutes 47 seconds:
RTC там АПАРАТНЫЙ!! можно 1 из кондероф сделать подстроечным и подстроить по периоду 1гц на 8-10разрядно повереном частотомере а можно тупо забить вводя корекцию програмно раз в недел-месяц

Добавлено after 9 minutes 3 seconds:
обычно точности хватает для тех нудж без запарок с корекцией но могу заблуждатся в суждениях для меня +-1минута давно не время изза которого стоит ломать копья и схемв
ZМудрость(Опыт и выдержка) приходит с годами.
Все Ваши беды и проблемы, от недостатка знаний.
Умный и у дурака научится, а дураку и ..
Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает
Реклама
Родился
Сообщения: 19
Зарегистрирован: Ср ноя 28, 2018 13:27:24

Сообщение Mavlid »

+-1минута давно не время изза которого стоит ломать
+-минута в сутки=полчаса в месяц,не то ...
Друг Кота
Аватара пользователя
Сообщения: 39197
Зарегистрирован: Сб сен 13, 2014 16:27:32
Откуда: СпиртоГонск созвездия Омега

Сообщение musor »

у меня счас на мамке компа такой кварц стоит(софсем производители опнаглели точности подбора не какой в начале 90х-точне было.. за месяц убегает вперед на 10-12мин...-настроил интернет корекцию в системе раз в неделю

Добавлено after 1 minute 39 seconds:
кстати у кота тожеи часы врут и их не кто не коректирует ВСЕМ ПОХ...
ZМудрость(Опыт и выдержка) приходит с годами.
Все Ваши беды и проблемы, от недостатка знаний.
Умный и у дурака научится, а дураку и ..
Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Аватара пользователя
Сообщения: 15600
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

1307 рассчитана не на ежесекундное считывание, а на "обмен по требованию" при генерации тактового сигнала для внутренних часов на основе регистров/ячеек памяти в МК.
Т.е.
1. при включении системы данные из RTC считываются в рабочие счетчики МК и начинается работа внутренних часов по прерываниям от соответствующего вывода RTC;
2. при коррекции времени - сначала считываем значение из RTC, затем модифицируем и при необходимости загружаем обратно новые значения.
"Кольцевое" чтение ВСЕХ регистров RTC штука весьма затратная и по времени и по возможным "примораживаниям" хода самих часов.
Также как и ежесекундное считывание всех регистров счетчиков времени.
8)
Внутренней коррекции в автономном режиме (ход при питании от батарейки) у DS1307 не существует, однако "уход" не слишком уж и критичен - обычно не более минуты в сутки в худшем случае.
:roll:

И дополнительную информацию можно накопать ВОТ ТУТ:
https://radiokot.ru/forum/viewtopic.php ... 0%BF%D0%BE
:beer:
Реклама
OKF
Это не хвост, это антенна
Сообщения: 1407
Зарегистрирован: Вт июн 07, 2011 08:03:18

Сообщение OKF »

Программно. Например, раз в сутки на +/- сек.
Реклама
Родился
Сообщения: 19
Зарегистрирован: Ср ноя 28, 2018 13:27:24

Сообщение Mavlid »

Подключаю к кварцу 32768 Гц подстроечный смд конденсатор 6-30 пф(один выв к кварцу второй к минусу питания) -генерация пропадает,пробовал разные кварцы,результат одинаковый
Буду думать о программной коррекции например раз в неделю,сделаю опрос DS1307 раз в минуту
Друг Кота
Аватара пользователя
Сообщения: 15600
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Просто учесть время последнего посещения (записанное в ОЗУ в соответствующий момент)и текущее время при последующем обращении - вычисляем поправку и перезаписываем.
:roll:
Вымогатель припоя
Сообщения: 615
Зарегистрирован: Вс дек 28, 2014 21:54:05

Сообщение dgrett »

[uquote="BOB51",url="/forum/viewtopic.php?p=3542947#p3542947"]Просто учесть время последнего посещения (записанное в ОЗУ в соответствующий момент)и текущее время при последующем обращении - вычисляем поправку и перезаписываем.
:roll:[/uquote]
И ставим флаг, что сегодня уже скорректировали. А то я отвожу Часы назад и натыкаюсь опять на время, когда надо делать поправку. Или по другому как то можно?
Я всё-всё узнAю и стану профессором.
Родился
Сообщения: 19
Зарегистрирован: Ср ноя 28, 2018 13:27:24

Сообщение Mavlid »

Тоже вот думаю-раз в месяц наверно вполне достаточно корректировать время,например первого числа,а флаг(месяц) записываем в озу DS1307,потому как часы питаются от своего источника питания=аккумулятор сотового (а DS1307 питаются от своего ист питания-батарейка СР2032),так вот-сядет аккум и можно пропустить коррекцию времени,а тут если вдруг питание конструкции пропало а потом восстановилось сразу смотрим-если флаг в озу DS1307 и считанный текущий месяц не совпадает то корректируем время
Пока этот вопрос отложу,надо NRF-ку подключать
Я только учусь,охота собрать часы-дистанционный термометр (будет стоять на улице),может и будильники поставлю но это если баском авр осилю
Друг Кота
Аватара пользователя
Сообщения: 15600
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Это уж как мявтору пожелактся - ОЗУ в 1307 весьма великое.
Да и кто ж его знает каков конкретный процент отклонения попадется.
У каждого экземпляра вероятен свой... плюсом разность окружающей температуры и проччая "мелочевка" для любителей ХРОНОМЕТРОВ...
8)
Родился
Сообщения: 19
Зарегистрирован: Ср ноя 28, 2018 13:27:24

Сообщение Mavlid »

А как еще можно корректировать?заказывал на али 2 m590 gprs модуля,оба пришли дохлые-кз по питанию
пока получилось так
Изображение
Встал на лапы
Аватара пользователя
Сообщения: 83
Зарегистрирован: Вс ноя 01, 2015 00:09:59

Сообщение Core-X »

Хоте речь идет о DS1307. Но все же. Если владеете навыками программирования мк, то лучше взять микросхему DS3231. А не покупать модули gps, подбирать кварц, придумывать алгоритм корректора хода. У DS3231 кварц уже встроен в чип + термокомпенсированный. Точность хода DS3231 +/- 2 минуты в год. :tea:
Последний раз редактировалось Core-X Вт янв 08, 2019 16:46:43, всего редактировалось 1 раз.
Для связи email: risctronix собака gmail.com
Родился
Сообщения: 19
Зарегистрирован: Ср ноя 28, 2018 13:27:24

Сообщение Mavlid »

[uquote="Core-X",url="/forum/viewtopic.php?p=3543660#p3543660"]то лучше взять микросхему DS3132. А не покупать модули gps, подбирать кварц, придумывать алгоритм корректора хода.[/uquote]
у меня есть похожее- DS3231,плата со слотом для батарейки,жалко ее здесь ставить,охота помучаться...

Добавлено after 25 minutes 11 seconds:
Всем откликнувшимся спасибо,я нашел как сделать коррекцию!
Встал на лапы
Аватара пользователя
Сообщения: 83
Зарегистрирован: Вс ноя 01, 2015 00:09:59

Сообщение Core-X »

Опечатался (DS3132). Речь конечно шла о DS3231. Дела ваше.
Для связи email: risctronix собака gmail.com
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2406
Зарегистрирован: Ср фев 23, 2011 12:12:31

Сообщение AndTer »

[uquote="Mavlid",url="/forum/viewtopic.php?p=3543821#p3543821"]я нашел как сделать коррекцию![/uquote]
Если так хочется сделать точные часы, и не хочется брать GPS, то коррекция должна быть по температуре. Ибо в квартире вполне может быть от 18 до 30 градусов и даже шире. Проще 3221 поставить. У китайцев можно найти вполне сносные клоны. Только лучше без буквы М.
Через интернет сверять часы я бы не стал, не очень надёжно. ЖПС надёжней, но где нибудь в подвале вполне может не поймать ни одного спутника.
Так что проще, надёжней и что важно более чем достаточно поставить термокомпенсированный 3221, при условии что чип не мусор из кучки брака.
Глупый не задает вопросы. Глупый и так все знает.
Родился
Сообщения: 19
Зарегистрирован: Ср ноя 28, 2018 13:27:24

Сообщение Mavlid »

Можно полное название 3221.Я не нашел на али-пробовал DS3221,нет такого,только DS3231
Встал на лапы
Аватара пользователя
Сообщения: 83
Зарегистрирован: Вс ноя 01, 2015 00:09:59

Сообщение Core-X »

[uquote="Mavlid",url="/forum/viewtopic.php?p=3543918#p3543918"]Можно полное название 3221.Я не нашел на али-пробовал DS3221,нет такого,только DS3231[/uquote]
AndTer видимо тоже опечатался. Есть микросхема DS3231. И есть еще DS3232.
Для связи email: risctronix собака gmail.com
Родился
Сообщения: 19
Зарегистрирован: Ср ноя 28, 2018 13:27:24

Сообщение Mavlid »

заказал,буду ждать,а пока двигаюсь дальше...
Ответить

Вернуться в «AVR»