Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Вопросы начинающих

Вопросы начинающих Прежде чем задать вопрос, стоит воспользоваться поиском

Ответ
 
Опции темы Опции просмотра
Старый 10.12.2016, 22:11   #1
gen22
Member
 
Аватар для gen22
 
Регистрация: 09.03.2009
Возраст: 66
Сообщений: 95
Вес репутации: 124/31
gen22 will become famous soon enoughgen22 will become famous soon enough
По умолчанию Запись/чтение EEPROM на ассемблере

Подскажите Плз как заставить 12ф629 запомнить изменения в простой программе и исполнять ее после очередного отключения питания. Т.е. использовать EEPROM
Из даташита не понял-опишите на русском алгоритм действий.:confused
gen22 вне форума   Ответить с цитированием
Старый 10.12.2016, 22:28   #2
DmitrijVDN
Senior Member
 
Регистрация: 09.04.2010
Сообщений: 660
Вес репутации: 1160/43
DmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud of
По умолчанию Re: Запись/чтение EEPROM на ассемблере

это что особо извращенный вид тролинга????
адрес поместить в EEADR
данные поместить в EEDATA
разрешить запись в EEPROM
запретить прерывания
выполнить обязательную последовательность команд
разрешить прерывания
DmitrijVDN вне форума   Ответить с цитированием
Старый 10.12.2016, 22:35   #3
gen22
Member
 
Аватар для gen22
 
Регистрация: 09.03.2009
Возраст: 66
Сообщений: 95
Вес репутации: 124/31
gen22 will become famous soon enoughgen22 will become famous soon enough
Question Re: Запись/чтение EEPROM на ассемблере

Нет. Без шуток я не профи' на самом деле не понимаю как подойти к Eeprom у !?
gen22 вне форума   Ответить с цитированием
Старый 10.12.2016, 22:37   #4
gen22
Member
 
Аватар для gen22
 
Регистрация: 09.03.2009
Возраст: 66
Сообщений: 95
Вес репутации: 124/31
gen22 will become famous soon enoughgen22 will become famous soon enough
По умолчанию Re: Запись/чтение EEPROM на ассемблере

Программа без прерываний.
gen22 вне форума   Ответить с цитированием
Старый 10.12.2016, 22:41   #5
DmitrijVDN
Senior Member
 
Регистрация: 09.04.2010
Сообщений: 660
Вес репутации: 1160/43
DmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud of
По умолчанию Re: Запись/чтение EEPROM на ассемблере

Цитата:
Сообщение от gen22 Посмотреть сообщение
Нет. Без шуток я не профи' на самом деле не понимаю как подойти к Eeprom у !?
что из этого не понятно????
Миниатюры
114.png  
DmitrijVDN вне форума   Ответить с цитированием
Старый 10.12.2016, 22:44   #6
gen22
Member
 
Аватар для gen22
 
Регистрация: 09.03.2009
Возраст: 66
Сообщений: 95
Вес репутации: 124/31
gen22 will become famous soon enoughgen22 will become famous soon enough
По умолчанию Re: Запись/чтение EEPROM на ассемблере

адрес поместить в EEADR
данные поместить в EEDATA
Выделенный слова где их обнаружить в моей программе?
gen22 вне форума   Ответить с цитированием
Старый 10.12.2016, 22:45   #7
DmitrijVDN
Senior Member
 
Регистрация: 09.04.2010
Сообщений: 660
Вес репутации: 1160/43
DmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud of
По умолчанию Re: Запись/чтение EEPROM на ассемблере

Цитата:
Сообщение от gen22 Посмотреть сообщение
адрес поместить в EEADR
данные поместить в EEDATA
Выделенный слова где их обнаружить в моей программе?
адрес это ячейка EEPROM куда будете сохранять переменную
данные это значение переменной
DmitrijVDN вне форума   Ответить с цитированием
Старый 10.12.2016, 22:51   #8
gen22
Member
 
Аватар для gen22
 
Регистрация: 09.03.2009
Возраст: 66
Сообщений: 95
Вес репутации: 124/31
gen22 will become famous soon enoughgen22 will become famous soon enough
По умолчанию Re: Запись/чтение EEPROM на ассемблере

У меня несколько переменных' значит несколько адресов?
gen22 вне форума   Ответить с цитированием
Старый 10.12.2016, 22:53   #9
DmitrijVDN
Senior Member
 
Регистрация: 09.04.2010
Сообщений: 660
Вес репутации: 1160/43
DmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud of
По умолчанию Re: Запись/чтение EEPROM на ассемблере

ага
а еще костели обеспечивающие питание МК при отключении основного питания на время записи в EEPROM
DmitrijVDN вне форума   Ответить с цитированием
Старый 10.12.2016, 22:55   #10
gen22
Member
 
Аватар для gen22
 
Регистрация: 09.03.2009
Возраст: 66
Сообщений: 95
Вес репутации: 124/31
gen22 will become famous soon enoughgen22 will become famous soon enough
По умолчанию Re: Запись/чтение EEPROM на ассемблере

Спасибо' буду пробовать.
gen22 вне форума   Ответить с цитированием
Старый 11.12.2016, 23:13   #11
GoshaGrek
Senior Member
 
Регистрация: 29.09.2011
Сообщений: 249
Вес репутации: 316/26
GoshaGrek is a jewel in the roughGoshaGrek is a jewel in the roughGoshaGrek is a jewel in the roughGoshaGrek is a jewel in the rough
По умолчанию Re: Запись/чтение EEPROM на ассемблере

Ну в общем как то так....
если кому не понятно...то рация- на бронепоезде

Код:
    list      p=12f629           ; list directive to define processor
    #include <p12f629.inc>        ; processor specific variable definitions

    errorlevel  -302              ; suppress message 302 from list file

    __CONFIG   _CP_OFF & _CPD_OFF & _BODEN_ON & _MCLRE_OFF & _WDT_ON & _PWRTE_ON & _INTRC_OSC_NOCLKOUT  

;***** VARIABLE DEFINITIONS
    w_temp        EQU     0x20        ; variable used for context saving 
    status_temp   EQU     0x21        ; variable used for context saving
    dannie        EQU     0x22
    
    ;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    ORG     0x000             ; processor reset vector
    clrf    PCLATH            ; ensure page bits are cleared
      goto    main              ; go to beginning of program

;**********************************************************************

;***********************************************************************
    main
          ;начальная инициализация
                clrf GPIO
                clrf dannie
                movlw 0x07
                movwf CMCON
                
;----------------------------------------------------------------------

     loop       nop
                incf dannie
                call SEEPROM
                goto loop
;----------------------------------------------------------------------

;процедура сохранения значения SCH1 в энергонезависимой
;памяти данных
;         
    SEEPROM
        bcf INTCON,GIE
        movf dannie,w
        bsf STATUS,RP0
        movwf EEDATA
        movlw 0x00
        movwf EEADR
        nop
        call ZAPIS
        bcf STATUS,RP0
        return
    ZAPIS
        bsf STATUS,RP0
        bcf INTCON,GIE
        bsf EECON1,WREN
        movlw 0x55
        movwf EECON2
        movlw 0xAA
        movwf EECON2
        bsf EECON1,WR
  L20   nop
        btfsc EECON1,WR
        goto L20
        bcf EECON1,WREN
        bcf STATUS,RP0
        bcf PIR1,7
        bsf INTCON,GIE
        return
;----------------------------------------------------------------------

       end
GoshaGrek вне форума   Ответить с цитированием
Старый 12.12.2016, 19:53   #12
gen22
Member
 
Аватар для gen22
 
Регистрация: 09.03.2009
Возраст: 66
Сообщений: 95
Вес репутации: 124/31
gen22 will become famous soon enoughgen22 will become famous soon enough
По умолчанию Re: Запись/чтение EEPROM на ассемблере

GoshaGrek,спасибо'здесь мне ближе как то. Надо только увязать с моей прогой.
gen22 вне форума   Ответить с цитированием
Старый 21.12.2016, 20:39   #13
gen22
Member
 
Аватар для gen22
 
Регистрация: 09.03.2009
Возраст: 66
Сообщений: 95
Вес репутации: 124/31
gen22 will become famous soon enoughgen22 will become famous soon enough
По умолчанию Re: Запись/чтение EEPROM на ассемблере

GoshaGrek, прога без прерываний, но мне надо бы записать и считывать в EEPROM 4 переменные ?
Можно ли это сделать сразу в одном цикле записи / чтении ?
gen22 вне форума   Ответить с цитированием
Старый 21.12.2016, 23:06   #14
IceS
Super Moderator
 
Регистрация: 01.03.2007
Адрес: St. Petersburg
Возраст: 38
Сообщений: 3,236
Вес репутации: 3684/106
IceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond repute
Отправить сообщение для IceS с помощью ICQ
По умолчанию Re: Запись/чтение EEPROM на ассемблере

Цитата:
Сообщение от gen22 Посмотреть сообщение
GoshaGrek, прога без прерываний, но мне надо бы записать и считывать в EEPROM 4 переменные ?
Можно ли это сделать сразу в одном цикле записи / чтении ?
Одновременно не получится, запись одного байта занимает несколько милисекунд, после инициализации записи нужно ждать её завершения и только после этого лезть к еепрому (даже читать нельзя, иначе может криво записаться, а прочитается неизвестно что).
Так что пишем процедуру записи, и последовательно для каждого байта её вызываем с разными параметрами.
Чтение происходит без задержек - читаем подряд сколько нужно.
__________________
- Готово, мастер !!!
- Что готово ???
- Сломал ...
IceS вне форума   Ответить с цитированием
Старый 22.12.2016, 05:20   #15
gen22
Member
 
Аватар для gen22
 
Регистрация: 09.03.2009
Возраст: 66
Сообщений: 95
Вес репутации: 124/31
gen22 will become famous soon enoughgen22 will become famous soon enough
Smile Re: Запись/чтение EEPROM на ассемблере

IceS, спасибо. Буду ломать голову.
gen22 вне форума   Ответить с цитированием
Старый 22.12.2016, 08:51   #16
DmitrijVDN
Senior Member
 
Регистрация: 09.04.2010
Сообщений: 660
Вес репутации: 1160/43
DmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud of
По умолчанию Re: Запись/чтение EEPROM на ассемблере

Цитата:
Сообщение от gen22 Посмотреть сообщение
мне надо бы записать и считывать в EEPROM 4 переменные ?
Можно ли это сделать сразу в одном цикле записи / чтении ?
нет нельзя, открываем даташит, электрические характеристики и находим параметры D120 - D122 , время записи = 8мс, напряжение питания >4,5в
запись проводится в момент отключения , иначе ресурс еепром очень быстро закончится...
DmitrijVDN вне форума   Ответить с цитированием
Старый 22.12.2016, 13:05   #17
IceS
Super Moderator
 
Регистрация: 01.03.2007
Адрес: St. Petersburg
Возраст: 38
Сообщений: 3,236
Вес репутации: 3684/106
IceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond repute
Отправить сообщение для IceS с помощью ICQ
По умолчанию Re: Запись/чтение EEPROM на ассемблере

Цитата:
Сообщение от gen22 Посмотреть сообщение
IceS, спасибо. Буду ломать голову.
А что её ломать?
Уже все сломано до нас :-).
Если нужно какую-то статистику вести (время наработки и т.п.), то писать лучше при пропадании питания либо, к примеру, раз в минуту (две, три и т.д.).
В первом случае нужно городить схему контроля напряжения питания и иметь резервный источник на время записи ЕЕПРОМ.
Во втором может произойти потеря данных, но она будет не существенная (чем-то надо жертвовать), но в этом случае нужно хранить несколько образов переменных с СРС. При старте определять какая запись сделана последней и делать следующую запись в следующий образ, чтобы при новом запуске хоть одна запись была гарантированно верной.

Если нужно хранить некоторые значения меняемые "раз в сто лет" оператором - то по приходу этих данных просто пишем их в ЕЕПРОМ.
__________________
- Готово, мастер !!!
- Что готово ???
- Сломал ...
IceS вне форума   Ответить с цитированием
Старый 22.12.2016, 14:36   #18
yeskela
Senior Member
 
Аватар для yeskela
 
Регистрация: 28.01.2010
Адрес: Новочеркасск
Возраст: 34
Сообщений: 1,062
Вес репутации: 3282/69
yeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond repute
По умолчанию Re: Запись/чтение EEPROM на ассемблере

Цитата:
Сообщение от IceS Посмотреть сообщение
Если нужно какую-то статистику вести (время наработки и т.п.), то писать лучше при пропадании питания .......
В первом случае нужно городить схему контроля напряжения питания и иметь резервный источник на время записи ЕЕПРОМ.
Ещё можно гибридную ram+eeprom поставить типа этой EERAM 47C04 и рассказать всем, хороша она или нет))))
__________________
Отсутствие доступа в интернет с рабочего места очень замедляет работу. Наличие - полностью парализует её.
yeskela вне форума   Ответить с цитированием
Старый 22.12.2016, 16:09   #19
Zhuk72
Member
 
Аватар для Zhuk72
 
Регистрация: 09.11.2015
Адрес: Baku
Возраст: 45
Сообщений: 74
Вес репутации: 207/8
Zhuk72 has a spectacular aura aboutZhuk72 has a spectacular aura aboutZhuk72 has a spectacular aura about
По умолчанию Re: Запись/чтение EEPROM на ассемблере

Цитата:
Сообщение от IceS Посмотреть сообщение
В первом случае нужно городить схему контроля напряжения питания и иметь резервный источник на время записи ЕЕПРОМ.
Если использовать такую схему (MCLR работает как порт), успеет ли МК сохранить хоть сколько-то байт до разрядки конденсатора, если в момент пропадания питания выключить всю периферию и все силы бросить на запись в ЕЕПРОМ? Тут-то периферии кот наплакал, но я просто пример привел, МК может быть и посолиднее.
Миниатюры
test.GIF  
Zhuk72 вне форума   Ответить с цитированием
Старый 22.12.2016, 16:36   #20
IceS
Super Moderator
 
Регистрация: 01.03.2007
Адрес: St. Petersburg
Возраст: 38
Сообщений: 3,236
Вес репутации: 3684/106
IceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond repute
Отправить сообщение для IceS с помощью ICQ
По умолчанию Re: Запись/чтение EEPROM на ассемблере

Цитата:
Сообщение от Zhuk72 Посмотреть сообщение
Если использовать такую схему (MCLR работает как порт), успеет ли МК сохранить хоть сколько-то байт до разрядки конденсатора, если в момент пропадания питания выключить всю периферию и все силы бросить на запись в ЕЕПРОМ? Тут-то периферии кот наплакал, но я просто пример привел, МК может быть и посолиднее.
Ну да, как-то так.
Только для этих целей нужно использовать или компаратор или АЦП.
Но мысль правильная. Диод, кондер большой емкости - питания для проца. Питание до диода - на компаратор или АЦП.
На счет хватит или нет - считать надо сколько будет потреблять контроллер в режиме записи ЕЕПРОМ с отключенной периферией и исходя из этого выбирать емкость кондера, можно даже ионистор поставить (но они дороже, и время зарядки при включении будет очень большое).
__________________
- Готово, мастер !!!
- Что готово ???
- Сломал ...
IceS вне форума   Ответить с цитированием
Старый 22.12.2016, 18:15   #21
gen22
Member
 
Аватар для gen22
 
Регистрация: 09.03.2009
Возраст: 66
Сообщений: 95
Вес репутации: 124/31
gen22 will become famous soon enoughgen22 will become famous soon enough
По умолчанию Re: Запись/чтение EEPROM на ассемблере

IceS, и Все кто откликнулся на мой вопрос, спасибо за советы. В моем устройстве все ноги проца заняты, костылей нет, батарейку вынес наружу-земерзнет внути! все не подходит кроме стандартной записи в ЕЕПром.
Буду доламывать голову-может до первого понедельника успею.
Осталось полтора всего!
gen22 вне форума   Ответить с цитированием
Старый 22.12.2016, 18:49   #22
IceS
Super Moderator
 
Регистрация: 01.03.2007
Адрес: St. Petersburg
Возраст: 38
Сообщений: 3,236
Вес репутации: 3684/106
IceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond repute
Отправить сообщение для IceS с помощью ICQ
По умолчанию Re: Запись/чтение EEPROM на ассемблере

Цитата:
Сообщение от gen22 Посмотреть сообщение
IceS, и Все кто откликнулся на мой вопрос, спасибо за советы. В моем устройстве все ноги проца заняты, костылей нет, батарейку вынес наружу-земерзнет внути! все не подходит кроме стандартной записи в ЕЕПром.
Буду доламывать голову-может до первого понедельника успею.
Осталось полтора всего!
В очередной раз не понятна.
Какая стоит задача? Может там и еепром не нужна.
__________________
- Готово, мастер !!!
- Что готово ???
- Сломал ...
IceS вне форума   Ответить с цитированием
Старый 22.12.2016, 18:56   #23
gen22
Member
 
Аватар для gen22
 
Регистрация: 09.03.2009
Возраст: 66
Сообщений: 95
Вес репутации: 124/31
gen22 will become famous soon enoughgen22 will become famous soon enough
По умолчанию Re: Запись/чтение EEPROM на ассемблере

Прошу только без сарказма. Для электронной удочки.
Батарейка на проводе в сапоге. Там тепло' но иногда надо отцеплять ее' переходя от лунки к лунке. И чтобы не настраивать нужный режим повторно-EEProm.
gen22 вне форума   Ответить с цитированием
Старый 22.12.2016, 19:44   #24
IceS
Super Moderator
 
Регистрация: 01.03.2007
Адрес: St. Petersburg
Возраст: 38
Сообщений: 3,236
Вес репутации: 3684/106
IceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond repute
Отправить сообщение для IceS с помощью ICQ
По умолчанию Re: Запись/чтение EEPROM на ассемблере

Цитата:
Сообщение от gen22 Посмотреть сообщение
Прошу только без сарказма. Для электронной удочки.
Батарейка на проводе в сапоге. Там тепло' но иногда надо отцеплять ее' переходя от лунки к лунке. И чтобы не настраивать нужный режим повторно-EEProm.
Ну так Вы же режим не будете менять 100 раз в секунду?
Вы же его будете менять вручную?
Писать значения в ЕЕПРОМ только тогда, когда меняется режим.
При старте брать значения из еепрома, сравнивать контрольную сумму, если совпала - ок, если нет - брать значения по умолчанию.
__________________
- Готово, мастер !!!
- Что готово ???
- Сломал ...
IceS вне форума   Ответить с цитированием
Старый 22.12.2016, 19:46   #25
IceS
Super Moderator
 
Регистрация: 01.03.2007
Адрес: St. Petersburg
Возраст: 38
Сообщений: 3,236
Вес репутации: 3684/106
IceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond repute
Отправить сообщение для IceS с помощью ICQ
По умолчанию Re: Запись/чтение EEPROM на ассемблере

Цитата:
Сообщение от gen22 Посмотреть сообщение
Прошу только без сарказма. Для электронной удочки.
Батарейка на проводе в сапоге. Там тепло' но иногда надо отцеплять ее' переходя от лунки к лунке. И чтобы не настраивать нужный режим повторно-EEProm.
А батарейка какая? Что реально на морозе замерзает?
А если что-нибудь свинцово-кислое взять?
__________________
- Готово, мастер !!!
- Что готово ???
- Сломал ...
IceS вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Многофункциональные часы. Н.Заяц.Книга 4. samko Вопросы начинающих 11 12.06.2012 09:26
MPLAB не находит c018i.o qwerty1 Продукция MICROCHIP 45 22.04.2011 12:14
Вывод значения с АЦП 16F877 на ассемблере Den_GF5 Продукция MICROCHIP 4 21.09.2009 22:29
ГОСТ или ЕСПД на ALTERA и EEPROM Romantic Общетехнические вопросы 12 29.06.2009 20:31
помогите переложить рабочую прог с P16F628 на 12f629 gen22 Общетехнические вопросы 3 15.06.2009 14:27


Часовой пояс GMT +3, время: 07:08.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd. Перевод: zCarot