Разработка, производство и продажа радиоэлектронной аппаратуры
|
Требуется программист в Зеленограде - обработка данных с датчиков; ColdFire; 40 тыс.
e-mail: jobsmp@pochta.ru
|
INIT_ADC:
CBR FLLL, FL_ERROR_EE ;СБРОСИЛИ ФЛАГ ОШИБКИ
ldi temp, 0b00000001 ;;MODE
RCALL OUT_SPI
ldi temp, 0b00000010; 1 ПРЕОБРАЗОВАНИЕ
RCALL OUT_SPI
Ldi temp, 0b00000010 ;;ADCCON
RCALL OUT_SPI
ldi temp, 0b00001111; канал 4
RCALL OUT_SPI
ldi temp, 0b00000011 ; FILTER
RCALL OUT_SPI
ldi temp,0x45; SF7 SF6 SF5 SF4 SF3 SF2 SF1 SF0
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
Составить ответ | Вернуться на конференцию
Ответы