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

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: demanik, ivan_fd  
Форум Picbasic.ru » Программирование МК » Proton PicBasic » Не работает AN8-AN12 на pic18f4550 - помогите
Не работает AN8-AN12 на pic18f4550 - помогите
Monolith Дата: Чт, 07.11.2013, 03:23  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Начал соображать
Сообщений: 30
Репутация: 0   ±
Замечания:   ±
На сайте с 04.08.2013

Статус: Offline

Вообщем сделал HID easy USB используя видео http://www.picbasic.ru/publ....-1-0-41
Все заработало сразу. Затем захотелось расширить так сказать возможности устройства:
- разобрался с преобразованиями полученных данных по USB от контроллера
- своего рода сделал выборку согласно кода по каждому отдельному каналу
- пока что корректно работают только  AN0-AN7

Теперь сама проблема при подключении AN8 и работы с ней - Proteus судорожно выкидывает ошибку @[PIC18 ADC] PC=0x007e Write to ADCON0 register select ADC channel 15 - there is no such channel on the PIC18F4550 device@. При этом данные касательно AN8 отправляет верно и программа на компьютере показывает значение. При подключении всех портов AN8-AN12, замечено что что AN7 и AN8 начинают врать так скажем ....

Добавлено (07.11.2013, 03:23)
---------------------------------------------
Вообщем сам себе и отвечаю: 
Покурив даташит увидел одну деталь а именно CONFIG3H .... а его нет в языке протона ... но покурив еще протоновский даташит нахожу то что мне нужно а именно функция PBADEN = On/Off. Она влияет  на работу портов PORTB0-PORTB4 и настройки соответственно ADCON0 и ADCON1... и еще так на всяк случай перенесите блок ССР в ССРмх.

Прикрепления: TempData.rar (413.9 Kb)
ЯНДЕКС Дата: 07.11.2013
anatol Дата: Чт, 07.11.2013, 12:57  |                                                                                                                Сообщение # 2
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 472
Репутация: 32   ±
Замечания:   ±
На сайте с 10.02.2010

Статус: Offline

CONFIG3H и не должен быть в Протоне. Это просто третья область настроек контроллера. В простых контроллерах она всего одна.
Замечательно что вы "покурив еще протоновский даташит" и вдобавок даташит контроллера нашли этот предохранитель.
На будушее есть плагин к протону
http://click-server.com/forumfiles/FuseConfiguratorVer2Install.zip
установите - облегчит мучения, да и вообще познавательно.
Прикрепления: 9277056.gif (21.2 Kb)

Сообщение отредактировал anatol - Чт, 07.11.2013, 12:59
Monolith Дата: Чт, 07.11.2013, 14:09  |                                                                                                                Сообщение # 3
Группа: Проверенные
Ранг:  Начал соображать
Сообщений: 30
Репутация: 0   ±
Замечания:   ±
На сайте с 04.08.2013

Статус: Offline

За плагин спасибо большое - будем разбираться ... Схема заработала но Proteus продолжает судорожно выкидывает ошибку @[PIC18 ADC] PC=0x007e Write to ADCON0 register select ADC channel 15 - there is no such channel on the PIC18F4550 device@. Отключив в коде вызов AN8-AN12 все четко ... думаю что издержки симуляции - буду заказывать живой камень и паять макетку.
mikhail09p Дата: Чт, 07.11.2013, 22:43  |                                                                                                                Сообщение # 4
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 481
Репутация: 14   ±
Замечания:   ±
На сайте с 04.05.2010

Статус: Offline

anatol, а как скачать этот чудесный плагин? Нельзя ли выложить на какой-то адекватный файлообменник. Н яндекс, к примеру. Буду очень признателен.
brown Дата: Чт, 07.11.2013, 23:54  |                                                                                                                Сообщение # 5
Группа: Пользователи
Ранг:  Помогаю всем
Сообщений: 333
Репутация: 12   ±
Замечания:   ±
На сайте с 18.09.2007

Статус: Offline

В архиве лежит какая -то версия http://www.picbasic.ru/load/novyj_fuse_configurator/3-1-0-185

Век живи - век учись! К концу жизни поймешь, что ничего не знаешь...
anatol Дата: Пт, 08.11.2013, 01:47  |                                                                                                                Сообщение # 6
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 472
Репутация: 32   ±
Замечания:   ±
На сайте с 10.02.2010

Статус: Offline

mikhail09p, а когда требуется ввести логин и пароль, в окне запроса они приведены.
Но на всякий случай «UserName:protonuser Password:forumfiles»
По ссылке
FuseConfiguratorVer2Install от 06.06.13

Сообщение отредактировал anatol - Пт, 08.11.2013, 01:49
mikhail09p Дата: Пт, 08.11.2013, 20:57  |                                                                                                                Сообщение # 7
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 481
Репутация: 14   ±
Замечания:   ±
На сайте с 04.05.2010

Статус: Offline

Цитата anatol ()
mikhail09p, а когда требуется ввести логин и пароль, в окне запроса они приведены.

Точно! Спасибо!
Monolith Дата: Вс, 10.11.2013, 19:05  |                                                                                                                Сообщение # 8
Группа: Проверенные
Ранг:  Начал соображать
Сообщений: 30
Репутация: 0   ±
Замечания:   ±
На сайте с 04.08.2013

Статус: Offline

И снова тупик ... не могу моргнуть диодом используя интерфейс - вообще не представляю как это сделать: а именно
- что должно быть в delphi
- что должно быть protone ide
DAlexV Дата: Пн, 11.11.2013, 23:59  |                                                                                                                Сообщение # 9
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 657
Репутация: 27   ±
Замечания:   ±
На сайте с 13.05.2008

Статус: Offline

b]Monolith[/b], приветствую, попробую помочь.
Цитата
Proteus судорожно выкидывает ошибку @[PIC18 ADC] PC=0x007e Write to ADCON0 register select ADC channel 15

Ну все правильно, откуда в 4550 15 каналов АЦП ? Там их вроде бы от 0 до 12.
Нумного подправил код, попробуйте так.
Код

Device = 18F4550
Xtal = 20  
Declare Adin_Res 10
Declare Adin_Tad FRC
Declare Adin_Stime 100
'0all_digital = 1
' descriptor file, located in \inc\usb_18 - a copy
' is located in the same folder as this file  
USB_Descriptor = "TempDataDESC.inc"

' USB Buffer...
Symbol USBBufferSizeMax = 8
Symbol USBBufferSizeTX  = 8
Symbol USBBufferSizeRX  = 8
Dim    USBBuffer[USBBufferSizeMax] As Byte

' some useful flags...
Dim PP0 As Byte System        ' USBPOLL status return
Symbol CARRY_FLAG = STATUS.0  ' high if microcontroller does not have control over the buffer
Symbol ATTACHED_STATE = 6     ' is USB attached
'Настройка портов
'ADCON0 = %00100100      ' советую заремить данную строчку. Протон по идее сам должен все настраивать
'                    76543210

'ADCON1 = %10000101     ' в таком варианте аналоговые порты будут с 0 по 9  
ADCON1 = %00000000      ' в таком варианте аналоговые порты будут с 0 по 12
'                   76543210
'ADCON2 = %10000000     ' так же ремим, так как уже укзывали настройки в начале (Declare Adin_Res 10, Declare Adin_Tad FRC, Declare Adin_Stime 100)
'         76543210

TRISA = %00101111       ' Ну и правильно конфигурируем поты
'        76543210
PORTA = %00000000

'TRISB = %00001000
TRISB = %00001111
'               76543210
PORTB = %00000000

TRISE = %00000111
'               76543210
PORTE = %00000000


Так же советую в пошаговом режиме что говорит Прот (регистр ADCON0). Если больше чем %ХХ1100ХХ, то возможно и глюк Протона. Тогда можно поробовать прописать выбор канала руками.

Ввести переменную № канала АЦП (Chsel as byte) и дописать еще одну подпрограмму:
Код
ADRead:
ADCON0=CHsel<<2  ' смещаем на 2 разряда
ADCON0.0=1  ' вкл. АЦП
ADCON0.1=1  ' вкл. преобразование

EndADCread:
if ADCON0.1=1 then goto EndADCread  ' ждем результата

TempIn=0 ' очистили
TempIn=ADRESH ' записали старший байт
TempIn=TempIn<<8 and ADRESL ' записали младший

Return


Вот где то так. Успехов wink


Будьте оригинальны-не повторяйте чужих ошибок ! Рыба сдохла. Теперь STM32(TS)+C#(VS).Старею :)
demanik Дата: Вт, 12.11.2013, 00:21  |                                                                                                                Сообщение # 10
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 448
Репутация: 10   ±
Замечания:   ±
На сайте с 11.12.2007

Статус: Offline

Цитата DAlexV ()
Если больше чем %ХХ1100ХХ, то возможно и глюк Протона. Тогда можно поробовать прописать выбор канала руками

Был когда-то такой глюк, я его заметил при работе с 18F2620 спасла тогда только прямая запись в регистр номера нужного канала. Сейчас как ситуация не заю. Наверное глюк не исправили.


Попробуй всё и вся... может быть пол...

Monolith Дата: Вт, 12.11.2013, 01:07  |                                                                                                                Сообщение # 11
Группа: Проверенные
Ранг:  Начал соображать
Сообщений: 30
Репутация: 0   ±
Замечания:   ±
На сайте с 04.08.2013

Статус: Offline

DAlexV

Скажем так в процессе добавки канала №9 (AN8) я и настраивал
'ADCON1 = %10000101     ' в таком варианте аналоговые порты будут с 0 по 9
'TRISB = %00001000

насчет глюкавости Proteus'а более чем уверен так как на макетке с 4550 в DIP40 корпусе все ожило ( как по мне то все что связано с RB0-RB4 стороной много буков в мануале надо шерстить) и все 12 каналов работаю верно и 1 врет безбожно.

Сейчас уже на финишной прямой готовый софт на ПК и прошивка микроконтроллера с двухсторонним обменом данными в реальном времени (убежал от RB0-RB4, даже просто управлять диодами не могут то моргают то вообще не включаются, при этом перенося просто код на другой порт вуаля все ожило).
Прикрепления: 9155304.jpg (239.0 Kb)

Сообщение отредактировал Monolith - Вт, 12.11.2013, 01:13
ЯНДЕКС Дата: 12.11.2013
Monolith Дата: Вт, 12.11.2013, 11:33  |                                                                                                                Сообщение # 12
Группа: Проверенные
Ранг:  Начал соображать
Сообщений: 30
Репутация: 0   ±
Замечания:   ±
На сайте с 04.08.2013

Статус: Offline

Проект рабочий, пока только в симуляции и на макетке, умеет:
- считывать данные с 1-го до 8-ой каналы независимо
- управлять нагрузкой с 1-го до 8-ой каналы независимо
- определять включена/выключена программа на ПК и идет двухсторонний обменн, если контроллер подключен к порту USB
- определять подключение/отключение контроллера к порту USB и его готовность в программе на ПК
- ведение лог журнала, каждые 10 с формируется запись в файл с текущей датой в формате HH:MM:SS CH1 CH2 CH3 CH3 CH4 CH5 CH6 CH7 CH8 (в будущем если руки дойдут рисовать графики будет).

Кому надо разбирайтесь, если что пишите предложения и вопросы. Нужна информация по практике настройки портов RB0-RB7, мануалы вещь хорошая - практика лучше. Ушел рисовать, травить и паять плату.
Прикрепления: 7301766.rar (475.5 Kb)
MiXaS Дата: Вт, 12.11.2013, 15:53  |                                                                                                                Сообщение # 13
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 550
Репутация: 27   ±
Замечания:   ±
На сайте с 02.10.2010

Статус: Offline

Как раз актуально! Пишу софт для часов домашних, которые имеют модули разные, температура, влаж, давление и т.д. В качестве индикатора матрицы. Использую PIC18f2550, у которого есть на борту USB. Так вот думаю чтобы кнопки не делать (лень) сделать настройку часов по usb? что-то вроде синхронизация времени с компом. + выводить все измеренное (только непонятно зачем). Осталось вспомнить как писать софт на VB6. Последний раз писал на нем в 2003 году. Нифига уже не помню, да и наработок уже не осталось.

Либо на делфи писать. На работе есть знакомый вроде что-то пишет на делфи, но с usb не работал говорит.

Спасибо! думаю поможет
xaker-sss Дата: Вт, 12.11.2013, 16:07  |                                                                                                                Сообщение # 14
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 208
Репутация: 6   ±
Замечания:   ±
На сайте с 26.04.2009

Статус: Offline

Цитата MiXaS ()
температура, влаж, давление и т.д.
А какой датчик давления используете, давно хочу барометр собрать, но с датчиком не определюсь.


ПРОТОН ЭТО ВЕЩЬ.
MiXaS Дата: Вт, 12.11.2013, 17:38  |                                                                                                                Сообщение # 15
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 550
Репутация: 27   ±
Замечания:   ±
На сайте с 02.10.2010

Статус: Offline

Я заказал BMP085 от Bosch-a, но я пока не знаю на сколько он точен и удобен. В сети его коллеги хвалят. вот и я решил попробовать, стоимость у него подходящая.
Форум Picbasic.ru » Программирование МК » Proton PicBasic » Не работает AN8-AN12 на pic18f4550 - помогите
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск: