123

Dependencies:   mbed

Fork of LG by igor Apu

Committer:
Diletant
Date:
Mon May 09 20:03:26 2016 +0000
Revision:
156:e68ee0bcdcda
Parent:
149:abbf7663d27d
Child:
161:efd949e8d536
Device & ... update. Not final!!!

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Diletant 156:e68ee0bcdcda 1 09.05.2016 Dile Tant
Diletant 156:e68ee0bcdcda 2 Основные циклы:
Diletant 156:e68ee0bcdcda 3 Измерительный плавающий цикл/Measurment floating cycle
Diletant 156:e68ee0bcdcda 4 Цикл задается измерительным таймером с переменной частотой следования прерываний - таймер 0 контроллера
Diletant 156:e68ee0bcdcda 5 Регулярный цикл/Regular cycle
Diletant 156:e68ee0bcdcda 6 Цикл задается управляющим таймером с постоянной частотой следования прерываний - таймер 1 контроллера
Diletant 156:e68ee0bcdcda 7 Основной последовательный плавающий цикл/Main sequential floating cycle
Diletant 156:e68ee0bcdcda 8 Цикл выполняется с переменной частотой, определяемой загрузкой процессора.
Diletant 156:e68ee0bcdcda 9
Diletant 156:e68ee0bcdcda 10 Замечание:
Diletant 156:e68ee0bcdcda 11 Измерение частоты расщепления производится в плавающем цикле, результат измерения - количество импульсов за период вибропривода,
Diletant 156:e68ee0bcdcda 12 для получения частоты нужно поделить импульсы на текущий период измерения.
Diletant 156:e68ee0bcdcda 13 Остальные измеряемые параметры от периода измерений не зависят.
Diletant 156:e68ee0bcdcda 14
Diletant 149:abbf7663d27d 15 Использование портов:
Diletant 149:abbf7663d27d 16 UART0 - порт обслуживания / Service port
Diletant 149:abbf7663d27d 17 UART1 - порт команд/данных / Host port
Diletant 80:7eb5dbb80c81 18
Diletant 149:abbf7663d27d 19 Идентификация параметров:
Diletant 149:abbf7663d27d 20 Всем параметрам присваивается хэш/hash. В качестве хэш-функции можно использовать
Diletant 149:abbf7663d27d 21 hash(name, type) = crc32(name) ^ crc32(type),
Diletant 149:abbf7663d27d 22 где name - имя переменной в RAM или константы в ROM, type - тип.
Diletant 149:abbf7663d27d 23 Например: crc32("uint16_t") ^ crc32("device.settings.address") = 0x4d8e4523
Diletant 149:abbf7663d27d 24
Diletant 149:abbf7663d27d 25 Хранение констант и переменных в RAM:
Diletant 149:abbf7663d27d 26 Все параметры хранятся в переменной device.
Diletant 149:abbf7663d27d 27 При загрузке инициализируется таблица адресов переменных hashParamTable[HASH_PARAM_COUNT] в формате hash32 : address32 : size32,
Diletant 149:abbf7663d27d 28 где hash32 - хэш параметра, address32 - ссылка на параметр, size32 - размер в байтах.
igor_v 70:9cc252048c59 29
Diletant 149:abbf7663d27d 30 Доступ к параметрам через Host port
Diletant 149:abbf7663d27d 31 Формат команды:
Diletant 156:e68ee0bcdcda 32 cc address8 code16 hash32 crc16
Diletant 149:abbf7663d27d 33 code16:
Diletant 149:abbf7663d27d 34 H_PARAM8_R : чтение 1-байтного параметра
Diletant 149:abbf7663d27d 35 H_PARAM16_R: чтение 2-байтного параметра
Diletant 149:abbf7663d27d 36 H_PARAM32_R: чтение 4-байтного параметра
Diletant 149:abbf7663d27d 37 H_PARAM8_W : запись 1-байтного параметра
Diletant 149:abbf7663d27d 38 H_PARAM16_W: запись 2-байтного параметра
Diletant 149:abbf7663d27d 39 H_PARAM32_W: запись 4-байтного параметра
igor_v 70:9cc252048c59 40
Diletant 149:abbf7663d27d 41 Хранение констант и переменных в ROM:
Diletant 149:abbf7663d27d 42 Сектор 22 - таблица адресов в формате hash32 : address32
Diletant 149:abbf7663d27d 43 Сектор 23 - данные по адресам из таблицы адресов
Diletant 149:abbf7663d27d 44 Чтение из ROM:
Diletant 149:abbf7663d27d 45 FlashReadAll()
Diletant 149:abbf7663d27d 46 Запись в ROM:
Diletant 149:abbf7663d27d 47 FlashWriteAll()