roboforum.ru

Технический форум по робототехнике.

ds1990 (iButton) пытаюсь реализовать

ds1990 (iButton) пытаюсь реализовать

crashzoom » 04 июн 2009, 17:37

Пытаюсь реализовать проект чтения, записи в eeprom и сверки ключей ds1990 в CodeVision.
В самой CV есть пример реализации чтения ds1990, с ним я разобрался но немогу разобраться как произвести запись полученного кода ключа в eeprom, а потом сравнить его с новым ром-кодом.

Код: Выделить всёРазвернуть
if (w1_init()){                         //Смотрим присутствует ли на линии устройства 

devices=w1_search(0xF0,rom_code);       // Считываем количество устройств и их ром-коды
if (rom_code[0]==1){                    // Если ром-код принадлежит ds1990
printf("DS1990 #%u serial number:",n); // Производим вывод по USARTу
       for (j=1;j<=6;j++){
           printf(" %02X",rom_code[j]);
           }
       printf("\n\r");
}
}


Re: ds1990 (iButton) пытаюсь реализовать

USER777 » 04 июн 2009, 21:41

В ICCAVR 7 было бы примерно так:


Код: Выделить всёРазвернуть
[b]псевдокод[/b]
#include <eeprom.h>

void eprom_W(void)
{
unsigned char i;
for (i=1;i<=6;i++)
{
EEPROM_WRITE(i-1,rom_code[i]);//запись в епром (адр,данн)
}
}
//чтение EEPROM_READ(adr,data );



Re: ds1990 (iButton) пытаюсь реализовать

SERGEY_M » 04 июн 2009, 22:15

В CV очень просто работать с EEPROM
создаешь переменную или массив
например
eeprom char E_rom_code;
или
eeprom char E_rom_code[]={};
а потом тупо в них пишешь или читаешь как обычные переменные
CV сам все устроит :)

Re: ds1990 (iButton) пытаюсь реализовать

crashzoom » 05 июн 2009, 10:07

А каким образом можно записать несколько ром ключей в eeprom, чтоб можно было впоследствие их считывать и сравнивать с присоединенным ключем iButton?

Re: ds1990 (iButton) пытаюсь реализовать

galex1981 » 05 июн 2009, 10:24

А также как и один ключ, считывать их также по адресу в памяти

Re: ds1990 (iButton) пытаюсь реализовать

crashzoom » 05 июн 2009, 10:34

В этом как раз и загвоздка. Немогу найти нормальную информацию по работе с eeprom в CV. Как можно записать масив с данными в eeprom по определенному адресу, Как стереть массив с данными по определенному адресу?

Re: ds1990 (iButton) пытаюсь реализовать

rig » 05 июн 2009, 12:28

зачем адрес? создаем массив элементов, пишем читаем по номеру элемента.
все как с озу

Re: ds1990 (iButton) пытаюсь реализовать

crashzoom » 05 июн 2009, 12:58

Я так понял создаем двумерный массив

eeprom char E_rom_code[i,j];

где i - номер девайса
j - ром-код ключа

Правильно я понял?

Re: ds1990 (iButton) пытаюсь реализовать

executer » 05 июн 2009, 13:03

Да. Все в один массив. 1- или 2-х мерный - как уж удобней обращатся тебе будет


cron
Rambler\'s Top100 Mail.ru counter