Регистрация | Вход

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: ivan_fd  
PIC16F877A + ADS1100
Gunslinger Дата: Вс, 15.04.2012, 16:15  |                                                                                                                Сообщение # 1
Группа: Удаленные
Ранг: 
Сообщений:
Репутация:   ±
Замечания:   ±
На сайте с

Статус:

Добрый день столкнулся с такой проблемой:
Подключил ADS1100 к PIC16F877A, вывел на LCD показания АЦП, но они не превышают 2047 т.е. 11 бит из 16

Вот код:

Sens var word
Dclock var PortB.3
Ddata var PortB.2
Control con %10010000

main:

I2CREAD Ddata,Dclock,Control,%10010000,[Sens]
LCDOUT $FE,1, Dec Sens
PAUSE 500
GOTO main

В чем может быть проблема?
ЯНДЕКС Дата: 15.04.2012
DNM Дата: Вс, 22.04.2012, 19:04  |                                                                                                                Сообщение # 2
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 75
Репутация: 0   ±
Замечания:   ±
На сайте с 29.09.2011

Статус: Offline

можно упростить постановку задачи... где-то так..-

r var word ' as Sens
'PORTB.0 - CLK
'PORTB.1 - DATA
'PORTB.2 - CS

load:
portb.2=0 'разрешаю считывание
'так как АЦП 16-разрядный, то считываем 16 бит
r.15=.. '16 bit
r.14=.. '15 bit
r.13=.. '14 bit
r.12=.. '13 bit
r.11=.. '12 bit
r.10=.. '11 bit
r.9=portb.1 '10 bit <разряд>
pulsout portb.0,1
r.8=portb.1 '9 bit
pulsout portb.0,1
r.7=portb.1 '8 bit
pulsout portb.0,1
r.6=portb.1 '7 bit
pulsout portb.0,1
r.5=portb.1 '6 bit
pulsout portb.0,1
r.4=portb.1 '5 bit
pulsout portb.0,1
r.3=portb.1 '4 bit
pulsout portb.0,1
r.2=portb.1 '3 bit
pulsout portb.0,1
r.1=portb.1 '2 bit
pulsout portb.0,1
r.0=portb.1 '1 bit
pulsout portb.0,1
portb.2=1 'запрет считывания
return


Более подробно здесь: http://asemlab.net/
  • Страница 1 из 1
  • 1
Поиск: