Алгоритм поиска. ATmega32.
Добавлено: Пт июн 25, 2010 23:07:03
Всем доброго времени суток. Необходима помощь с алгоритмом поиска заданного значения в памяти .
Есть некое число размером в 10 байт (ориентировочно, но порядок такой), которое поступает в контроллер по последовательному интерфейсу (тут на самом деле неважно, как и откуда поступают эти 10 байт), есть микросхема памяти EEPROM 256 килобит, разбитая на ячейки по 10 байт (тоже не принципиально), в каждую ячейку которой записаны некоторые числа.
Необходимо как можно быстрее определить, есть ли вновь поступившее 10-ти байтное число в памяти и в какой ячейке оно находится.
Думаю самым простым способом будет перебор всех ячеек, но это очень долго. EEPROM подключена по i2c и тактируется на частоте 200кГц. Есть способ посложнее с подгрузкой в RAM контроллера части EEPROM с дальнейшим перебором и сравнением значений уже в памяти контроллера, думаю будет быстрее, но все же может есть способ побыстрее? может алгоритм какой нибудь хитрый? подскажите, кто что думает.
Есть некое число размером в 10 байт (ориентировочно, но порядок такой), которое поступает в контроллер по последовательному интерфейсу (тут на самом деле неважно, как и откуда поступают эти 10 байт), есть микросхема памяти EEPROM 256 килобит, разбитая на ячейки по 10 байт (тоже не принципиально), в каждую ячейку которой записаны некоторые числа.
Необходимо как можно быстрее определить, есть ли вновь поступившее 10-ти байтное число в памяти и в какой ячейке оно находится.
Думаю самым простым способом будет перебор всех ячеек, но это очень долго. EEPROM подключена по i2c и тактируется на частоте 200кГц. Есть способ посложнее с подгрузкой в RAM контроллера части EEPROM с дальнейшим перебором и сравнением значений уже в памяти контроллера, думаю будет быстрее, но все же может есть способ побыстрее? может алгоритм какой нибудь хитрый? подскажите, кто что думает.
