roboforum.ru

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

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

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

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");
}
}

crashzoom
 
Сообщения: 7
Зарегистрирован: 15 апр 2009, 14:32
Откуда: Keufycr

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 );


USER777
 
Сообщения: 50
Зарегистрирован: 03 июн 2009, 21:16
Откуда: пос. Актюбинский
Skype: ffaanniiss777

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

Сообщение SERGEY_M » 04 июн 2009, 22:15

В CV очень просто работать с EEPROM
создаешь переменную или массив
например
eeprom char E_rom_code;
или
eeprom char E_rom_code[]={};
а потом тупо в них пишешь или читаешь как обычные переменные
CV сам все устроит :)
Аватара пользователя
SERGEY_M
 
Сообщения: 682
Зарегистрирован: 20 мар 2009, 12:45
Откуда: Украина, Одесса
ФИО: Сергей

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

Сообщение crashzoom » 05 июн 2009, 10:07

А каким образом можно записать несколько ром ключей в eeprom, чтоб можно было впоследствие их считывать и сравнивать с присоединенным ключем iButton?
crashzoom
 
Сообщения: 7
Зарегистрирован: 15 апр 2009, 14:32
Откуда: Keufycr

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

Сообщение galex1981 » 05 июн 2009, 10:24

А также как и один ключ, считывать их также по адресу в памяти
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4363
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

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

Сообщение crashzoom » 05 июн 2009, 10:34

В этом как раз и загвоздка. Немогу найти нормальную информацию по работе с eeprom в CV. Как можно записать масив с данными в eeprom по определенному адресу, Как стереть массив с данными по определенному адресу?
crashzoom
 
Сообщения: 7
Зарегистрирован: 15 апр 2009, 14:32
Откуда: Keufycr

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

Сообщение rig » 05 июн 2009, 12:28

зачем адрес? создаем массив элементов, пишем читаем по номеру элемента.
все как с озу
Аватара пользователя
rig
 
Сообщения: 1437
Зарегистрирован: 03 авг 2007, 19:43
Откуда: Екатеринбург
прог. языки: Си, асм со словарем

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

Сообщение crashzoom » 05 июн 2009, 12:58

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

eeprom char E_rom_code[i,j];

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

Правильно я понял?
crashzoom
 
Сообщения: 7
Зарегистрирован: 15 апр 2009, 14:32
Откуда: Keufycr

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

Сообщение executer » 05 июн 2009, 13:03

Да. Все в один массив. 1- или 2-х мерный - как уж удобней обращатся тебе будет
Аватара пользователя
executer
 
Сообщения: 784
Зарегистрирован: 30 янв 2009, 01:24
Откуда: Запорожье
прог. языки: Си, AvrASM, STL, САС, учу Си++
ФИО: Павел


Вернуться в Микроконтроллеры

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7