Разработка, производство и продажа радиоэлектронной аппаратуры
|
Требуется программист в Зеленограде - обработка данных с датчиков; ColdFire; 40 тыс.
e-mail: jobsmp@pochta.ru
|
Кто работал c AD7708, почему она иногда встает колом REDY нет и все, посмот...{+}(+)
Отправлено
luba 04 мая 2008 г. 07:10
Текст заголовка сообщения полностью: Кто работал c AD7708, почему она иногда встает колом REDY нет и все, посмотрите исходники, мож я чегото не понимаю?
INIT_ADC:
CBR FLLL, FL_ERROR_EE ;СБРОСИЛИ ФЛАГ ОШИБКИ
ldi temp, 0b00000001 ;;MODE
RCALL OUT_SPI
ldi temp, 0b00000010; канал 4 1 ПРЕОБРАЗОВАНИЕ
;Mode Register
; 7--CHOP 0- 1-
; 6--NEGBUF 0-AINCOM на земле
; 5--REFSEL 0-REF1 1-REF2
; 4--CHCON 0-8 каналов 1-10каналов
; 3--OSCPD 0-ме5жду преобразованиями генератор работает 1-выглюч осцилятор
; 2--MD2 000- эконом режим 001-выключить преобразования осцилятор вкл
; 1--MD1 010- еденичное преобразование разрешонных каналов
; 0--MD0 011 -непрерывное преобразование 100-каллибровка нуля по каналам
; 101-каллибровка каналов по VREF 110-каллибровка каналов по нулю
RCALL OUT_SPI
Ldi temp, 0b00000010 ;;ADCCON
RCALL OUT_SPI
ldi temp, 0b00001111; канал 4
;Control Register(ADCCON)
;7-4 CH3 CH2 CH1 CH0 каналы
;3 U/B 1-однополярный 0-биполярный
;2-0 RN2 RN1 RN0 диапазон 111--- +-2,56 В
RCALL OUT_SPI
ldi temp, 0b00000011 ; FILTER
RCALL OUT_SPI
ldi temp,0x45; 7 ;195 Hz
;Filter Register SF7 SF6 SF5 SF4 SF3 SF2 SF1 SF0
; частота преобразования(24*SF)/ 32768 CHOP =0 состояние регистра пофиг
; (8*SF)/32768 CHOP =1
RCALL OUT_SPI
RET
;КОНЕЦ ИНИЦИАЛИЗАЦИИ ЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖ
READ_SPI:
;ЧТЕНИЕ 16-БИТ ДАННЫХ
CBR FLLL, FL_ERROR_EE ;СБРОСИЛИ ФЛАГ ОШИБКИ
ldi temp, 0b01000100 ;;DATE(READ)
RCALL OUT_SPI
ldi TEMP,0xFF
RCALL OUT_SPI
IN TEMP1,SPDR ; hight(DATE)
RCALL OUT_SPI
IN TEMP,SPDR ;low (DATE)
ret
;переключили на следующий канал
INC_CHANAL:
CBR FLLL, FL_ERROR_EE ;СБРОСИЛИ ФЛАГ ОШИБКИ
ldi temp, 0b00000010 ;;ADCCON
RCALL OUT_SPI
swap temp2
ori temp2,0b00001111 ;(ADCCON)
mov temp,temp2
RCALL OUT_SPI
ldi temp, 0b00000001 ;;MODE
RCALL OUT_SPI
ldi temp, 0b00000010; канал 1 ПРЕОБРАЗОВАНИЕ
RCALL OUT_SPI
RET
;ОТПРАВКА БАЙТА В SPI
OUT_SPI :
out SPDR,temp
push temp2
ldi temp2,0xff
DEELL: dec temp2
BREQ ERR
; sbic SPSR,WCOL;выход если установлен error
; breq err
sbis SPSR,SPIF;выход если установлен
RJMP DEELL
POP temp2
RET
err: in TEMP2, spsr
POP temp2
sbr flll, FL_ERROR_EE ;ошибка чтения или записи
ret
Составить ответ | Вернуться на конференцию
Ответы