Электронный замок с управлением от таблеток iBUTTON
-
invisible86
- Первый раз сказал Мяу!
- Сообщения: 33
- Зарегистрирован: Вт сен 11, 2012 07:09:52
Re: Электронный замок с управлением от таблеток iBUTTON
shads, а что у тебя за 8UL, вроде бы сдвиг с присваиванием обратно пишется просто abc <<= 8;
Последний раз редактировалось invisible86 Пн сен 17, 2012 10:42:50, всего редактировалось 1 раз.
-
invisible86
- Первый раз сказал Мяу!
- Сообщения: 33
- Зарегистрирован: Вт сен 11, 2012 07:09:52
Re: Электронный замок с управлением от таблеток iBUTTON
shads, а ты не знаешь как организовать проверку CRC для ds1990, мануал весь мозг вынес, а главное полином что то знакомое но не помню))
Re: Электронный замок с управлением от таблеток iBUTTON
Ха..... я тоже недавно, немало намучился, пока познал тонкости C, очень он гибкий, спасибо местным профи, прояснили что да как.....invisible86 писал(а):shads, а что у тебя за 8UL, вроде бы сдвиг с присваиванием обратно пишется просто abc <<= 8;
В обчем обычная константа по умолчанию двух байтная.....
т.е. если я пишу abc<<=8 то у меня работа в переменной abc будет проводится только с 2-мя байтами.....
а если я пишу abd<<8UL то я даю знать компилятору, что константа 8 должна быть 4-х байтной (unsigned long) чтобы соответствовать 4-х байтной abc.....
Тоже собаку съел, подсказали тут, сейчас написал для себя такую процедуру для датчиков DS18B20, вроде работает, но это так, в протеусе, в реале пока не проверял. Думаю и в таблетках такой же вариант должен работать.invisible86 писал(а):shads, а ты не знаешь как организовать проверку CRC для ds1990, мануал весь мозг вынес, а главное полином что то знакомое но не помню))
Спойлер
Код: Выделить всё
//----------
//ФУНКЦИЯ ПОДСЧЕТА КОНТРОЛЬНОЙ СУММЫ
//АРГУМЕНТ - байт участвующий в формировании контрольной суммы
//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;
}
} -
invisible86
- Первый раз сказал Мяу!
- Сообщения: 33
- Зарегистрирован: Вт сен 11, 2012 07:09:52
Re: Электронный замок с управлением от таблеток iBUTTON
shads, не могу понять как она у тебя вычисляет CRC, ты не мог бы пояснить
Re: Электронный замок с управлением от таблеток iBUTTON
Перед началом приема\передачи обнуляеш глобальную переменную OneWireCheckSumm.
потом в цикле после приема\передачи каждого байта вызываеш процедуру CheckSumm (байт); передавая в значении байт.
после приема\передачи всей серии проверяеш OneWireCheckSumm, там должно быть 0
(если не 0 значит ошибка приема\ъпередачи).
потом в цикле после приема\передачи каждого байта вызываеш процедуру CheckSumm (байт); передавая в значении байт.
после приема\передачи всей серии проверяеш OneWireCheckSumm, там должно быть 0
(если не 0 значит ошибка приема\ъпередачи).
Re: Электронный замок с управлением от таблеток iBUTTON
Статья "Интерфейс 1-Wire. Описание протокола, алгоритмы реализации, рекомендации по применению. Автор - ARV." http://radiokot.ru/articles/13/ . Есть примеры расчета CRC
-
invisible86
- Первый раз сказал Мяу!
- Сообщения: 33
- Зарегистрирован: Вт сен 11, 2012 07:09:52
Re: Электронный замок с управлением от таблеток iBUTTON
sads, я немного потерялся, осваивал протеус, интересная вещь, смоделировал работу клавиатуры, с ibutton пока не получается
-
invisible86
- Первый раз сказал Мяу!
- Сообщения: 33
- Зарегистрирован: Вт сен 11, 2012 07:09:52
Re: Электронный замок с управлением от таблеток iBUTTON
не нашел как в нем смоделировать ibutton ds1990, наверное в нем нет ее в библиотеке
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: Электронный замок с управлением от таблеток iBUTTON
Есть она там.
-
invisible86
- Первый раз сказал Мяу!
- Сообщения: 33
- Зарегистрирован: Вт сен 11, 2012 07:09:52
-
invisible86
- Первый раз сказал Мяу!
- Сообщения: 33
- Зарегистрирован: Вт сен 11, 2012 07:09:52
Re: Электронный замок с управлением от таблеток iBUTTON
с ibutton пока притормозил, появился другой вопрос про прерывания, почему светодиод на порту d мигает с частотой раз в секунду только при нажатой кнопке клавиатуры 3х4, что я сделал не так?
- Вложения
-
- Proteus.rar
- (30.59 КБ) 239 скачиваний