Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
Makee
1

Чтение датчика абсолютного давления BMP085

09.06.2014, 17:31. Показов 1334. Ответов 1
Метки нет (Все метки)

Помогите, пожалуйста, разобраться! Датчик был куплен уже на плате.Подключался к ATMEGA 128. При попытке считать с него калибровочные данные просто выдает последнее отправленное значение. Вот код для считывания 2 байт (0xaa, 0xab) . И в результате в r25 и r26 загружается 0xef. Проверки статуса здесь нет, однако после установки старта статус вообще никак не обновляется, а изначально равен 0x88
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
.include "m128def.inc"
.macro OUTI 
 LDI R16,@1
 .if @0 < 0x40
 OUT @0,R16 
 .else
 STS @0,R16
 .endif
 .endm
 .macro UOUT 
 .if @0 < 0x40
 OUT @0,@1 
 .else
 STS @0,@1
 .endif
 .endm
.dseg
.def temp = r16
.def temp1 = r17
.cseg
ldi temp, low (RAMEND)
out spl, temp
ldi temp, high (ramend)
out sph, temp
cbi ddrd, 0
cbi ddrd, 1
sbi portd, 0
sbi portd, 1
ldi temp, 32
sts twbr, temp
ldi temp, 0x00
sts twsr, temp
ldi temp, 255
sts twdr, temp
ldi temp1, 200
v:ldi temp, 240
w: dec temp    ;небольшая задержка
cpi temp, 0
brne w
dec temp1
cpi temp1, 0
brne v
OUTI    TWCR,1<<TWINT|1<<TWSTA|1<<TWEN|0<<TWIE
 
IIC_S:      lds r16,TWCR
ANDI    r16,1<<TWINT            
BREQ    IIC_S   
ldi temp, 0xee
sts TWDR,TEMP
        OUTI    TWCR,1<<TWINT|1<<TWEN|0<<TWIE
 
 
IIC_B:      lds r16,TWCR
        ANDI    r16,1<<TWINT    
        BREQ    IIC_B
        LDI TEMP, 0XAA
sts TWDR,TEMP
        OUTI    TWCR,1<<TWINT|1<<TWEN|0<<TWIE
 
 
IIC_B0:     lds r16,TWCR
        ANDI    r16,1<<TWINT    ;           
        BREQ    IIC_B0
        OUTI    TWCR,1<<TWINT|1<<TWSTA|1<<TWEN|0<<TWIE
 
IIC_S0:     lds r16,TWCR
ANDI    r16,1<<TWINT            
BREQ    IIC_S0      ;
ldi temp, 0xeF
sts TWDR,TEMP
        OUTI    TWCR,1<<TWINT|1<<TWEN|0<<TWIE
 
 
IIC_B1:     lds r16,TWCR
        ANDI    r16,1<<TWINT    ;   
        BREQ    IIC_B1
OUTI    TWCR,1<<TWINT|1<<TWEN|1<<TWEA|0<<TWIE
IIC_R:      lds r16,TWCR
        ANDI    r16,1<<TWINT            
        BREQ    IIC_R   
        lds r25, twdr
        OUTI    TWCR,1<<TWINT|1<<TWEN|0<<TWEA|0<<TWIE
IIC_R0:     lds r16,TWCR
        ANDI    r16,1<<TWINT            
        BREQ    IIC_R0  
        lds r26, twdr
        OUTI    TWCR,1<<TWINT|1<<TWSTO|1<<TWEN|0<<TWIE
 
IIC_ST:     lds r16,TWCR
        ANDI    r16,1<<TWSTO            
        BREQ    IIC_ST
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.06.2014, 17:31
Ответы с готовыми решениями:

KP1878BE1. Передача значений с датчика давления по UART
Суть проблемы в следующем: Есть датчик с которого непрерывно посылаются данные (датчик давления),...

Есть ли у кого примеры применения датчика давления bm085?
с I2C не очень силен, пока читаю даташит как китайскую грамоту) примеров найти не смог, есть...

PIC16F690. Чтение датчика температуры и влажности DHT-11
pic16f690 не читает DHT11 проблема следующего характера... есть библиотека DHT11 нормально...

Чтение датчика температуры и влажности DHT-11 (ATMega16)
Есть почти готовая программа на мкк атмега16, с подключенным к ней датчиком DHT11, единственное что...

1
10214 / 6595 / 495
Регистрация: 28.12.2010
Сообщений: 21,164
Записей в блоге: 1
09.06.2014, 17:43 2
...есть же либа для работы с датчиком http://www.avislab.com/blog/bmp085, в этой меге экономить особо нет необходимости.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.06.2014, 17:43

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Помогите разобраться с датчиком BMP085
Помогите, пожалуйста, разобраться! Датчик был куплен уже на плате.Подключался к ATMEGA 128. При...

[ Решено] Чтение датчика DS18b20 в опен драй. Не работает.
Взял за основу механизм работы датчика описанный здесь. http://mycontroller.ru/old_site/stm32-d ......

BMP085 и STM8L
Доброго времени суток. Пытаюсь разобраться, как подружить STM8L и BMP085, нашел API для датчика...

bmp085+stm32vl discovery
Добрый вечер. Хочу прикрутить датчик давления bmp085 к stm32vl discovery. I2c использую...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.