Страница 3 из 3
Re: Электронный замок с управлением от таблеток iBUTTON
Добавлено: Пн сен 17, 2012 10:38:31
invisible86
shads, а что у тебя за 8UL, вроде бы сдвиг с присваиванием обратно пишется просто abc <<= 8;
Re: Электронный замок с управлением от таблеток iBUTTON
Добавлено: Пн сен 17, 2012 10:42:14
invisible86
shads, а ты не знаешь как организовать проверку CRC для ds1990, мануал весь мозг вынес, а главное полином что то знакомое но не помню))
Re: Электронный замок с управлением от таблеток iBUTTON
Добавлено: Пн сен 17, 2012 11:22:02
shads
invisible86 писал(а):shads, а что у тебя за 8UL, вроде бы сдвиг с присваиванием обратно пишется просто abc <<= 8;
Ха..... я тоже недавно, немало намучился, пока познал тонкости C, очень он гибкий, спасибо местным профи, прояснили что да как.....
В обчем обычная константа по умолчанию двух байтная.....
т.е. если я пишу abc<<=8 то у меня работа в переменной abc будет проводится только с 2-мя байтами.....
а если я пишу abd<<8UL то я даю знать компилятору, что константа 8 должна быть 4-х байтной (unsigned long) чтобы соответствовать 4-х байтной abc.....
invisible86 писал(а):shads, а ты не знаешь как организовать проверку CRC для ds1990, мануал весь мозг вынес, а главное полином что то знакомое но не помню))
Тоже собаку съел,
подсказали тут, сейчас написал для себя такую процедуру для датчиков DS18B20, вроде работает, но это так, в протеусе, в реале пока не проверял. Думаю и в таблетках такой же вариант должен работать.
Спойлер
Код: Выделить всё
//-----------------------------------------------------------------------------------------------------------------------
//ФУНКЦИЯ ПОДСЧЕТА КОНТРОЛЬНОЙ СУММЫ
//АРГУМЕНТ - байт участвующий в формировании контрольной суммы
//OneWireCheckSumm - глобальная переменная контрольной суммы
void CheckSumm(char data)
{
for (char i=0; i<8; i++){
char temp = data;
temp ^= OneWireCheckSumm;
if (temp & 0x01){
OneWireCheckSumm ^= 0x18;
temp = 0x80;
}
else
temp = 0;
OneWireCheckSumm >>= 1;
OneWireCheckSumm |= temp;
data >>= 1;
}
}
Re: Электронный замок с управлением от таблеток iBUTTON
Добавлено: Вт сен 18, 2012 04:22:29
invisible86
shads, не могу понять как она у тебя вычисляет CRC, ты не мог бы пояснить
Re: Электронный замок с управлением от таблеток iBUTTON
Добавлено: Вт сен 18, 2012 08:10:53
shads
Перед началом приема\передачи обнуляеш глобальную переменную OneWireCheckSumm.
потом в цикле после приема\передачи каждого байта вызываеш процедуру CheckSumm (байт); передавая в значении байт.
после приема\передачи всей серии проверяеш OneWireCheckSumm, там должно быть 0
(если не 0 значит ошибка приема\ъпередачи).
Re: Электронный замок с управлением от таблеток iBUTTON
Добавлено: Вт сен 18, 2012 08:33:54
vano11
Статья "Интерфейс 1-Wire. Описание протокола, алгоритмы реализации, рекомендации по применению. Автор - ARV."
http://radiokot.ru/articles/13/ . Есть примеры расчета CRC
Re: Электронный замок с управлением от таблеток iBUTTON
Добавлено: Ср сен 19, 2012 19:32:08
invisible86
sads, я немного потерялся, осваивал протеус, интересная вещь, смоделировал работу клавиатуры, с ibutton пока не получается
Re: Электронный замок с управлением от таблеток iBUTTON
Добавлено: Ср сен 19, 2012 19:36:40
invisible86
не нашел как в нем смоделировать ibutton ds1990, наверное в нем нет ее в библиотеке
Re: Электронный замок с управлением от таблеток iBUTTON
Добавлено: Ср сен 19, 2012 19:42:18
Аlex
Есть она там.
Re: Электронный замок с управлением от таблеток iBUTTON
Добавлено: Пт сен 21, 2012 05:24:50
invisible86
ага нашел
Re: Электронный замок с управлением от таблеток iBUTTON
Добавлено: Пт сен 21, 2012 05:34:12
invisible86
с ibutton пока притормозил, появился другой вопрос про прерывания, почему светодиод на порту d мигает с частотой раз в секунду только при нажатой кнопке клавиатуры 3х4, что я сделал не так?