Акселерометр smb380
- Сообщения: 9
- Зарегистрирован: Чт июл 02, 2009 15:29:38
Нужна помощь в настройке акселерометра на прерывание по превышению заданного порога ускорения. Если кто имеет опыт работы с данным устройством, отзывайтесь.
- Реклама
- Сообщения: 9
- Зарегистрирован: Вт июн 09, 2009 06:27:51
- Сообщения: 9
- Зарегистрирован: Чт июл 02, 2009 15:29:38
- Сообщения: 9
- Зарегистрирован: Чт июл 02, 2009 15:29:38
тест 1:
; R14--------W
temp,0b00000110 ;данные которые
delay_1ms ;
; R0C--------W
temp,0b00110011 ;данные которые
delay_1ms ;
; R0D--------W
temp,0b00000000 ;данные которые
delay_1ms ;
; R0B--------W
temp,0b01000011 ;данные которые
delay_1ms ;
; R15--------W
temp,0b00000000 ;данные которые
delay_1ms ;
; R0A--------W
temp,0b01000000 ;данные которые
delay_1ms ;
; R0A--------W
temp,0b00001000 ;данные
delay_1ms ;
;------------
; Ожидает прерывание
;------------
count,255 ; Счетчик времени проведения теста
test1_loop: ;
elay_1ms ; Задержка 1мс
; Ппроверяем на наличие внешнего прерывания от датчика
; Если да то выходим все ок
; Уменьшаем счетчик времени
; И повтор если не 0
;---------------------------------------
; Тест 0
;---------------------------------------
; R0A--------W
temp,0b01000000 ;данные которые
delay_1ms ;
; R0A--------W
temp,0b00000100 ;данные которые
delay_1ms ;
; R0A--------W
temp,0b00000000 ;данные которые
call delay_1ms ;
count,255 ; Счетчик времени проведения теста
test0_loop: ;
delay_1ms ; Задержка 1мс
ldi temp,0x09 ;адрес откуда читаем
sts I2C_ADDR,temp ;
call i2c_rx_byte ;
lds temp,I2C_DATA ;здесь принятый байт
sbrc temp,7 ; Ппроверяем на наличие 1 в 7 бите
rjmp PC+3 ; Если да то выходим все ок
; Уменьшаем счетчик времени
; И повтор если не 0
; R14--------W
temp,0b00000110 ;данные которые
delay_1ms ;
; R0C--------W
temp,0b00110011 ;данные которые
delay_1ms ;
; R0D--------W
temp,0b00000000 ;данные которые
delay_1ms ;
; R0B--------W
temp,0b01000011 ;данные которые
delay_1ms ;
; R15--------W
temp,0b00000000 ;данные которые
delay_1ms ;
; R0A--------W
temp,0b01000000 ;данные которые
delay_1ms ;
; R0A--------W
temp,0b00001000 ;данные
delay_1ms ;
;------------
; Ожидает прерывание
;------------
count,255 ; Счетчик времени проведения теста
test1_loop: ;
elay_1ms ; Задержка 1мс
; Ппроверяем на наличие внешнего прерывания от датчика
; Если да то выходим все ок
; Уменьшаем счетчик времени
; И повтор если не 0
;---------------------------------------
; Тест 0
;---------------------------------------
; R0A--------W
temp,0b01000000 ;данные которые
delay_1ms ;
; R0A--------W
temp,0b00000100 ;данные которые
delay_1ms ;
; R0A--------W
temp,0b00000000 ;данные которые
call delay_1ms ;
count,255 ; Счетчик времени проведения теста
test0_loop: ;
delay_1ms ; Задержка 1мс
ldi temp,0x09 ;адрес откуда читаем
sts I2C_ADDR,temp ;
call i2c_rx_byte ;
lds temp,I2C_DATA ;здесь принятый байт
sbrc temp,7 ; Ппроверяем на наличие 1 в 7 бите
rjmp PC+3 ; Если да то выходим все ок
; Уменьшаем счетчик времени
; И повтор если не 0

