Электронный ключ

Обсуждаем контроллеры компании Atmel.
Ответить
Родился
Сообщения: 2
Зарегистрирован: Чт май 23, 2013 13:49:03

Сообщение прохожий »

Приветствую. Помогите пожалуйста! Нужна прошивка на мк atmega16 которая будет открывать на sd определенный файл, копировать в буфер одну строку инф. примерно в 20 байт. Затем сравнивать скопированное значение с заложенным в программе и если оно совпадает просто пустить ток на одну из ножек. О статусе проходящей операции должен извещать светодиод (нет сд в слоте, допустим, - не горит. Ошибка чтения - моргает. все успешно выполнено - горит постоянно).


~~~~~~~~~~~~~~~~~~~~~~
unsigned char buf[150]; //буфер для UART
static FRESULT f_err_code; //FRESULT для функций модуля
static FATFS FATFS_Obj; //структура - логический раздел
FIL fil_obj; //структура файла, с которым работаем
char var[30]=""; //буфер, сюда мы поместим то, что считаем из файла.
UINT ByteRead = 0;

int main(void)
{
uart0_init(); //настраиваем UART.
sendStr("*************Чтение из файла*************"); //отправляю через UART строку на терминал.

BYTE status = disk_initialize(0); //инициализируем карточку
sprintf((char*)buf,"initialize return: %X",status); //возвратит 0 в случае успеха
sendStr(buf);

f_err_code = f_mount(0, &FATFS_Obj); //монтируем логический раздел
sprintf((char*)buf,"f_mount return: %X",f_err_code); //возвратит FR_OK=0 в случае успеха
sendStr(buf);

f_err_code = f_open(&fil_obj, "foo.txt", FA_READ); //пытаемся открыть файл
sprintf((char*)buf,"f_open return: %X",f_err_code); //возвратит FR_OK=0 в случае успеха, FR_NO_FILE=4, если файл не существует...(остальные значения см. в ff.h)
sendStr(buf);

f_err_code = f_read(&fil_obj,var,20,&ByteRead); //пытаемся читать 20 байтов с начала файла в переменную var
sprintf((char*)buf,"f_read return: %X, byte read: %d",f_err_code,ByteRead); //возвратит FR_OK=0 в случае успеха, также выводим сколько байтов удалось считать
sendStr(buf);

sprintf((char*)buf,"var: %s",var);
sendStr(buf);TX_NEWLINE; //выводим в терминал значение буфера

f_close(&fil_obj); //закрываем файл
}

Вот такой код нашел в интернете. Можно ли его как-то подкорректировать что бы вместо терминала был светодиод. И в конце if "var == значение" то все гуд.
Реклама
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень

Сообщение vitalik_1984 »

Это что же такое получается? Карта памяти будет использоваться как ключ? не слишком дорого?
Есть прекрасные примеры использования микросхемы i-button от Dallas.
Контактная информация:
Реклама
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Сообщение ibiza11 »

vitalik_1984, сколько стоит Ваш ibutton? вот флешка 4Gb - 129 рублей
прохожий писал(а):Можно ли его как-то подкорректировать что бы вместо терминала был светодиод.
Конечно можно! Или Вы просите нас его подкорректировать?
Ставим плюсы: )
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень

Сообщение vitalik_1984 »

вообще около 70рублей вместе с прошивкой, наверняка можно в китае купить дешевле.
А использовать 4 гб флеш для 20 байт это как то нерационально. тем более эти i-button еще и удобный держатель имеют.
Позже:
вот 100 штук по 16 рублей
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Ответить

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