Автор Сообщение
Пост N: 44
Зарегистрирован: 20.10.08
Откуда: Россия, Горно-Алтайск
Рейтинг:
0
Отправлено: 07.07.09 16:15. Заголовок: вычисление CRC в датчиках температуры DS
Где можно поподробнее посмотреть варианты вычисления CRC в датчиках температуры DS. При использовании одной из подпрограмм лезут на индикаторы "бяки"
Ответов - 3
[только новые ]
постоянный участник
Пост N: 1187
Зарегистрирован: 26.12.06
Откуда: Россия, Заозерск, Мурманской обл.
Рейтинг:
4
Отправлено: 07.07.09 21:20. Заголовок: Попробуйте: ;******..
Попробуйте:
Скрытый текст ;*********************************************************************************************** ; CRC.asm Программа подсчёта контрольной суммы 7 байтов ; Результат вычисления в регистре CRC ;*********************************************************************************************** list p=16F84a ; #include <p16F84A.inc> ; __CONFIG 03FF1H ; ;*********************************************************************************************** CBLOCK 0CH bit bait temp temp1 temp2 temp3 temp4 temp5 temp6 temp7 temp8 CRC ENDC ;*********************************************************************************************** ORG 0x000 ; ;*********************************************************************************************** clrf temp1 ; clrf temp2 ; clrf temp3 ; clrf temp4 ; clrf temp5 ; clrf temp6 ; clrf temp7 ; clrf temp8 ; clrf CRC ; ;*********************************************************************************************** ; (адрес: 00 08 00 E5 31 62 10) Для примера.... ;*********************************************************************************************** movlw 10H ; movwf temp1 ; movlw 62H ; movwf temp2 ; movlw 31H ; movwf temp3 ; movlw 0E5H ; movwf temp4 ; movlw 00H ; movwf temp5 ; movlw 08H ; movwf temp6 ; movlw 00H ; movwf temp7 ; ;*********************************************************************************************** ; Вычисление контрольной суммы (CRC) 7-ми регистров ;*********************************************************************************************** movlw .7 ; movwf bait ; movlw temp1 ; movwf FSR ; SNOVA_2 movlw .8 ; movwf bit ; movf INDF, w ; movwf temp8 ; SNOVA_1 xorwf CRC, w ; movwf temp ; rrf temp, w ; movf CRC, w ; btfsc STATUS, C ; xorlw b'00011000' ; movwf temp ; rrf temp, w ; movwf CRC ; bcf STATUS, C ; rrf temp8, f ; movf temp8, w ; decfsz bit, f ; goto SNOVA_1 ; incf FSR, f ; decfsz bait, f ; goto SNOVA_2 ; goto $ ; Готово ;*********************************************************************************************** END
Пост N: 45
Зарегистрирован: 20.10.08
Откуда: Россия, Горно-Алтайск
Рейтинг:
0
Отправлено: 08.07.09 10:30. Заголовок: RW1ZK пишет: Попроб..
RW1ZK пишет:
цитата: Попробуйте: Скрытый текст
Всё, вопрос снят. Вариант вычисления CRC был опробован из 5.4 Практикума. Подмигивание сегментов возникало при работе с FSR. Сделал так.Перед входом и выходом в подпрограммку CRC сохранил значения FSR во временном регистре и всё! Глюки пропали.
Кстати, эти глюки лезли не тольков железе, но и в протеусе. Так, что и он иногда очень помогает.
постоянный участник
Пост N: 1
Зарегистрирован: 05.03.10
Откуда: Украина, г.Кривой Рог
Рейтинг:
0
Отправлено: 26.03.10 22:47. Заголовок: Объясните, пожалуйст..
Объясните, пожалуйста, как вычислять CRC математически, тоесть каково формула для произвольного числа байтов.
Ответ:
1
2
3
4
5
6
7
8
9
показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:
зарегистрироваться