USB HID + VB6 отладка
|
|
AndreyD |
Дата: Сб, 06.12.2014, 22:57 | Сообщение # 1 |
Группа:
Проверенные
Ранг:
Новенький
Сообщений:
7
Замечания:
±
На сайте с 03.12.2014
Статус:
Offline
|
Собрал прибор по проекту. Возникли сложности. 1) Заработало только с такими настройками: // настроечные фьюсы Config PLLDIV = 5, CPUDIV = OSC1_PLL2, USBDIV = 2, FOSC = HSPLL_HS, PWRT=OFF, BOR= ON, BORV =3, VREGEN = ON, WDTPS =32768, WRTB = ON, MCLRE= ON, LPT1OSC= OFF, PBADEN= OFF, CCP2MX = ON 2) Подключил подстроечный резистор для регулировки напряжения на входе АЦП (вх АН0) обнаружил, что напряжение например 2,04 и 2,4 вольт выводятся на экран одинаково 2,4 вольт. Ну это правиться в проекте: Старший байт *100 + младший байт. 3) А вот совсем засада: До напряжения 2,5 вольт все нормально выводиться, Потом напряжение меняешь, а с PIC данные все равно 2,5. Потом прыгает до 4-х, далее до 5 нормально. Подсобите, кто может.
PS VB6 виснет при прогоне программы , если до останова не отключить прибор.
|
|
|
|
ADMIN |
Дата: Вс, 07.12.2014, 18:44 | Сообщение # 2 |
Администратор
Группа:
Администраторы
Ранг:
Специалист
Сообщений:
1086
Замечания:
±
На сайте с 20.08.2007
Статус:
Offline
|
Vref, однако, смотреть надо. Что-то, возможно по АЦП недостроено. А по зависанию vb по отладчику смотреть надо, в каком месте и почему виснет
|
|
|
|
AndreyD |
Дата: Пн, 08.12.2014, 13:56 | Сообщение # 3 |
Группа:
Проверенные
Ранг:
Новенький
Сообщений:
7
Замечания:
±
На сайте с 03.12.2014
Статус:
Offline
|
Похоже. Файл adc.bas в проекте для других pic ************************************************************** Name : ADC.bas * * Author : David John Barker * * Notice : Copyright © 2007 Mecanique * * : All Rights Reserved * * Date : 12/01/2007 * * Version : 1.0 * * : 1.1 Corrected bitnames for 18F1220, 18F1320 devices ******************************************************************** придется разбираться.
|
|
|
|
demanik |
Дата: Пн, 08.12.2014, 16:10 | Сообщение # 4 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
448
Замечания:
±
На сайте с 11.12.2007
Статус:
Offline
|
Цитата AndreyD ( ) Собрал прибор по проекту. Выложите полностью. посмотрим.
Попробуй всё и вся... может быть пол...
|
|
|
|
AndreyD |
Дата: Пн, 08.12.2014, 20:56 | Сообщение # 5 |
Группа:
Проверенные
Ранг:
Новенький
Сообщений:
7
Замечания:
±
На сайте с 03.12.2014
Статус:
Offline
|
RE\\Выложите все... - я не понял. Проект с этого сайта USB HID + Visual Basic 6 все просто http://www.picbasic.ru/publ....-1-0-28
ADC.bas из дистрибутива SWORDFISH (тоже с сайта) Это нужно? Мне бы хотелось просто считать байты из 4х АЦП , а любой пересчет вести в приложении
Сообщение отредактировал
AndreyD - Вт, 09.12.2014, 18:48
|
|
|
|
demanik |
Дата: Пн, 08.12.2014, 21:25 | Сообщение # 6 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
448
Замечания:
±
На сайте с 11.12.2007
Статус:
Offline
|
Цитата AndreyD ( ) Я хотел увидеть как у ВАС инициализирован ацп.
Попробуй всё и вся... может быть пол...
|
|
|
|
demanik |
Дата: Пн, 08.12.2014, 21:28 | Сообщение # 7 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
448
Замечания:
±
На сайте с 11.12.2007
Статус:
Offline
|
AndreyD, отредактируйте 5-сообщение и разместите листинг между тегами "код" так будет компактнее.
Попробуй всё и вся... может быть пол...
|
|
|
|
AndreyD |
Дата: Вт, 09.12.2014, 18:51 | Сообщение # 8 |
Группа:
Проверенные
Ранг:
Новенький
Сообщений:
7
Замечания:
±
На сайте с 03.12.2014
Статус:
Offline
|
В том и засада, что никак не пойму где настройки АЦП в проекте. Мне бы хотелось просто считать байты из 4х АЦП , а любой пересчет вести в приложении.
|
|
|
|
demanik |
Дата: Вт, 09.12.2014, 20:00 | Сообщение # 9 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
448
Замечания:
±
На сайте с 11.12.2007
Статус:
Offline
|
Попробуйте добавить инициализацию:
ADC.SetConvTime(FOSC_16) ADC.SetAcqTime(4)
Попробуй всё и вся... может быть пол...
|
|
|
|
AndreyD |
Дата: Ср, 10.12.2014, 22:03 | Сообщение # 10 |
Группа:
Проверенные
Ранг:
Новенький
Сообщений:
7
Замечания:
±
На сайте с 03.12.2014
Статус:
Offline
|
demanik Вы мастер! ЗАРАБОТАЛО! Спасибо. PS/ Я заценил шутку юмора DAlexV -USB HID + Visual Basic 6 все просто 400 страниц -мануал PIC18F 100 стр - picbasic 100 стр SWORDFISH PIC BASIC 800 стр программирование на VB6 и месячишко танцев с бубном.
|
|
|
|
DAlexV |
Дата: Чт, 11.12.2014, 21:00 | Сообщение # 11 |
Группа:
Проверенные
Ранг:
Разобрался
Сообщений:
657
Замечания:
±
На сайте с 13.05.2008
Статус:
Offline
|
Цитата AndreyD ( ) Я заценил шутку юмора DAlexV -USB HID + Visual Basic 6 все просто Да не какая это не шутка. Мануалы читать то же иногда нужно. А если уже пошло изменение его, то могут возникнуть кракозябры. Полного кода Мы не видели. Плюс ко всем дело может быть и в железе. Не зря не пошло в выложенной в статье конфигурации. Цитата demanik ( ) ADC.SetConvTime(FOSC_16) ADC.SetAcqTime(4) возможно кварц стоит на меньшую частоту. Что гадать на кофейной гуще.
Цитата AndreyD ( ) VB6 виснет при прогоне программы , если до останова не отключить прибор. это нормальное явление при работе с HID. Хотя и в режиме CDC если прервать не закрыв порт, то потом его не откроешь, предварительно не закрыв(проходит невсегда). Ну если вопрос снят, тогда снят. Успехов
Будьте оригинальны-не повторяйте чужих ошибок ! Рыба сдохла. Теперь STM32(TS)+C#(VS).Старею :)
|
|
|
|
AndreyD |
Дата: Пт, 12.12.2014, 12:14 | Сообщение # 12 |
Группа:
Проверенные
Ранг:
Новенький
Сообщений:
7
Замечания:
±
На сайте с 03.12.2014
Статус:
Offline
|
Еще вопросик. Как в SwordFish скомпилировать программу так, что-бы она в PIC начиналась не с 0 адреса? Хочу заливать программу в PIC через USB без программатора прогой "PICDEM™ FS USB Demo Tool. Попробовал с демопрошивкой, все работает. Т.е зашиваю ботлоадер программатором, а свою прошивку потом "PICDEM- ом. Но нужно сделать еще вот это: при создании основной программы, которую впоследствии будем вшивать в ПИК, необходимо, во первых, указать с какого адреса памяти программ она стартует. А во вторых, с каких адресов "уходить" в обработчики прерываний. Ниже приведен пример реализации этих процедур на ассемблере:
;============================================================================= ; На адрес 0х0800 перенесен вектор сброса процессора ;============================================================================= org 0x0800 ; Новый адрес вектора сброса GOTO START ; Переходим на старт программы;============================================================================= ; На адрес 0х0808 перенесен вектор прерываний с высоким приоритетом ;============================================================================= org 0x0808 ; Новый адрес вектора прерываний высокого приоритета GOTO HIGH_INT_ROUTINE ; Переходим на обработчик соотв. прерываний;============================================================================= ; На адрес 0х0818 перенесен вектор прерываний с низким приоритетом ;=============================================================================
org 0x0818 ; Новый адрес вектора прерываний низкого приоритета GOTO LOW_INT_ROUTINE ; Переходим на обработчик соотв. прерыванийСледует учесть, что вся остальная программа должна быть расположена уже после указанных команд.
И как это сделать на Бейсике в SwordFish?
|
|
|
|
DAlexV |
Дата: Пт, 12.12.2014, 12:32 | Сообщение # 13 |
Группа:
Проверенные
Ранг:
Разобрался
Сообщений:
657
Замечания:
±
На сайте с 13.05.2008
Статус:
Offline
|
Цитата AndreyD ( ) Еще вопросик. Как в SwordFish скомпилировать программу так, что-бы она в PIC начиналась не с 0 адреса? Самому не приходилось с данной задачей сталкиваться. Нашел на офф. форуме в помощь: Поисковый запрос bootloader http://sfcompiler.co.uk/phpBB3....=Search
http://sfcompiler.co.uk/phpBB3....tloader http://sfcompiler.co.uk/phpBB3....tloader http://sfcompiler.co.uk/phpBB3....tloader
из увиденного да. Удачи
Будьте оригинальны-не повторяйте чужих ошибок ! Рыба сдохла. Теперь STM32(TS)+C#(VS).Старею :)
|
|
|
|
AndreyD |
Дата: Пт, 12.12.2014, 21:45 | Сообщение # 14 |
Группа:
Проверенные
Ранг:
Новенький
Сообщений:
7
Замечания:
±
На сайте с 03.12.2014
Статус:
Offline
|
Шикарно! Все получилось. Сделал так: в файле USB_VBA_Project.bas // устройство и частота Device = 18F4550 Clock = 48 #option org_reset = $800 ' вектор сброса процессора #option org_program = $808 ' Новый адрес вектора прерываний высокого приоритета?? // настроечные фьюсы ...... Теперь без программатора можно заливать прошивку. А то задолбался перетыкивать PIC. И записывает быстро 1-2 сек. Громадное спасибо!!!!
Сообщение отредактировал
AndreyD - Пт, 12.12.2014, 22:16
|
|
|
|
AndrF |
Дата: Пн, 15.12.2014, 12:25 | Сообщение # 15 |
Группа:
Проверенные
Ранг:
Продвинутый
Сообщений:
145
Замечания:
±
На сайте с 03.02.2012
Статус:
Offline
|
Цитата AndreyD ( ) Теперь без программатора можно заливать прошивку. А то задолбался перетыкивать PIC. И пошаговой отладкой, небось, никогда не пользовались?
|
|
|
|