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

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: ivan_fd  
Форум Picbasic.ru » Программирование МК » PicBasicPro » АЦП PIC16F877 (не работает)
АЦП PIC16F877
Magvay Дата: Сб, 13.10.2007, 23:22  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Новенький
Сообщений: 2
Репутация: 0   ±
Замечания:   ±
На сайте с 12.10.2007

Статус: Offline

омогите разобраться с АЦП в PIC16F877.
При 1 вольте на входе почему-то на вызоде: portc=%10000000

Программа:

@ DEVICE HS_OSC,WDT_ON,CPD_OFF,PROTECT_OFF,PWRT_ON,BOD_OFF

define OSC 20
DEFINE ONINT_USED 1

Define ADC_BITS 10
Define ADC_CLOCK 3
Define ADC_SAMPLEUS 50

portc=%00000000
trisc=%00000000

portd=%00000000
trisd=%00000000

adval var word
TRISA = %00000011
ADCON1 = %10000011
ADCIN 1, ad
if adval >3 then
gosub w
endif

if adval <3 then
gosub r
endif

r:
portc=%00100000
portd.3=1
GOSUB r

w:
portc=%10000000
portd.3=1
GOSUB w

Спасибо

ЯНДЕКС Дата: 13.10.2007
ADMIN Дата: Вс, 14.10.2007, 04:16  |                                                                                                                Сообщение # 2
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1087
Репутация: 32   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

У ва так много Gosub и ни одного Return. Попробуйте разобраться. Если сложно, то посмотрите в каталоге файлов в рубрике готовые проекты - проект АЦП. Полностью рабочий. Написан в протоне, отлажен в протеусе. Работает реально.
Yrok Дата: Пн, 15.10.2007, 11:37  |                                                                                                                Сообщение # 3
Группа: Проверенные
Ранг:  Продвинутый
Сообщений: 112
Репутация: 2   ±
Замечания:   ±
На сайте с 27.09.2007

Статус: Offline

Code

ADCON1 = %10000011  

Ай-я-я-й---так ты переключаешь Весь PortA на цифровой ввод/вывод--поэтому и считываешь оттуда >3
смотри табличку какие порты тебе нужно включить как аналоговые
PCFG1:PCFG0 AN3 AN2 AN1 AN0
00 A A A A
01 VREF+ A A A
10 D D A A
11 D D D D

A = аналоговый вход
D = цифровой канал ввода/вывода

Magvay Дата: Пн, 15.10.2007, 21:24  |                                                                                                                Сообщение # 4
Группа: Проверенные
Ранг:  Новенький
Сообщений: 2
Репутация: 0   ±
Замечания:   ±
На сайте с 12.10.2007

Статус: Offline

Все, вроде разобрался. Работает нормально. Всем спасибо smile
Форум Picbasic.ru » Программирование МК » PicBasicPro » АЦП PIC16F877 (не работает)
  • Страница 1 из 1
  • 1
Поиск: