-
Постов
15 -
Зарегистрирован
-
Посещение
Репутация
0 ОбычныйИнформация о asmon
-
Звание
Участник
- День рождения 13.04.1984
Контакты
-
Сайт
Array
-
ICQ
Array
Информация
-
Город
Array
Посетители профиля
845 просмотров профиля
-
Да, интересно. Ведь у HI-TECH hex как правило меньше, оптимальней, плюс синтаксис немного отличается (я про #pragma). Очень надеюсь что гибрида между ними не будет, просто самплы портируют на HI-TECH и впредь все дружно на него перейдут :smile3009:
-
microC. Доступ к отдельным битам
asmon ответил Specialist тема в В помощь начинающему
Думаю тут не в компиляторе проблема. Если 18-й пик, то нужно LATD использовать. Если 16-й, я бы ввёл дополнительную переменную, можно всё красиво в виде структуры с соответствующими полями сделать, менял сначала нужный бит в этой переменной и записывал её в порт. Точно помню, что так делал с PORTA. Он тоже "не запоминает" биты. -
Да уж, поглядел. Как это всё собирать ? Боюсь без MPLABа и не соберётся вовсе... :07:
-
Есть другие Си - компиляторы с готовыми примерами. Вот например "фирменный" Майкрочиповский или простенький примерчик mikroC. Всё зависит от задачи. Ну а писать код самому - довольно хлопотное занятие. Для этого нужно обязательно прочитать и разобрать хотябы USB in Nutshell. Есть книга Агурова по ЮСБ - я бы не рекомендовал тратить на неё своё время, но решайте сами. Мне в своё время помогли разобраться вот эти примеры.
-
А кто может обьяснить назначение директивы хайтека #pragma inline func_name ? :07: По логике С++ функци с этой директивой должны быть подобны макросам. И тогда обсуждаемая проблема отпадёт сама собой (и вырастет код :) ). Но как - то непонятно эта директива описана в даташите и в своё время я с ней не разобрался... :wassat:
-
Пасиба. Сегодня послушаю :beer:
-
Попробуйте написать: rlf _RX_BUFF, F или rlf _RX_BUFF, W где RX_BUFF - это имя вашей глобальной переменной, оно не должно быть "f" - думаю ругается поэтому.
-
If testing Full or Low-speed devices, an intervening Hi-Speed USB Hub is required. Если тестировать FS или HS устройства, необходим прожежуточный хаб с поддержкой HS режима. Купил четырёхпортовый хаб Viewcon (Китай, блин) за 45 гривен, всё заработало. Прога USBCV13 теперь видит и вышеупомянутый хаб, и девайс на пике. :08: Спасибо всем, тема закрыта. :beer:
-
http://www.k-mag.ru/communication/usb/d-li..._h4/index.khtml - такой хаб у вас ?
-
Да, на англицком, правда, но написано. :a14: И ещё очень много чего написано, собраться с силами прочитать не могу :07: Стыдно :wub: Правильно ли я понимаю, что флешки ведь хай спид, то есть поддерживают USB 2.0 и именно поэтому USBCV13 их видит ? И как быть с внешним USB-хабом 2.0, где бы его раздобыть или чем заменить ?
-
Да, пожалуй, для 16 пиков лучше хайтека сишных компиляторов не найти. Вот 18 и выше - это другое дело. Тут, как говорится, есть варианты. Итак OPTION_REG,INTCON,STATUS и прочие регистры асм увидит, но вначале каждого нужно ставить нижний пробел, например: #asm bcf _STATUS, 0 #endasm То же самое нужно делать и для объявленных вами глобальных переменных. Например: char i; #asm movlw 0x0D movwf _i #endasm Вот с локальными переменными - проблема. Лучше с этим не заморачиваться, хотя, если очень очень нужно - всегда можно посмотреть асмовский листинг. И ещё один совсем маленький ньюанс - вставки типа asm("bcf _STATUS, 0") и #asm bcf _STATUS, 0 #endasm отличаются, это важно в циклах. Почитайте даташит.
-
Ну конфигурация - то правильная. Иначе б устройство не работоло. А оно работает на ура, в этом то и прикол весь. Ну а насчёт багов c HID - устройствами, если это так, то разработчикам usb.org большой привет :twak: . Кому не лень, протестируйте ваши USB - устройства. Может обнаружится закономерность какая - то.
-
После успешной разработки USB HID - устройства на дешёвом чипе 18F2550, мне пришла в голову вполне нормальная мысль - прверить этот девайс на совместимость со всеми стандартами шины. Естественно на usb.org лежит соответсвующая програмка USBCV13, в которой есть ряд важных тестов, их должны поддерживать все USB - совместмые устрйства. Так вот проблема заключается в том, что описанная программка (USBCV13) не видит подсоединённое устройство на 18F2550. Вместе с тем я пробовал тестировать так несколько флешек - и всех их USBCV13 уверенно распознаёт и тестирует. Проблема на лицо как говорится. :smile3046: Схема устройства - стандартная: питание от шины, на ноге VUSB конденсатор 470 нФ, кварц 20 МГц. Да - самое главное, устройсво стабильно работает, причём на разных компьютерах с Win98 иWinXP. Естественно я попробовал поменять прошивку на так сказать фирменную - взял готовый пример с Microchip MCHPFSUSB v2.1. Устройство - мышь заработало, курсор начал круговое движение. А вот вышеупомянутая USBCV13 всё - равно упорно не видит устройство на шине. Такой - же трюк я проделал и с примером mikroC - компилятора. Эффект ноль. Ещё пробовал другой кабель -глухо. USBCV13 запускаю на иWinXP sp2 - как там в описании и написано. В принципе, это больше похоже на дело принципа. Может нужно поставить резисторы по 20 Ом на D+ и D- для согласования волнового сопротивления ? Или может встроенные в 18F2550 модули слишком дешёвые, такое ощущение что просто модуль не успевает подхватить SETUP - транзакцю, либо вообще чушь - программа USBCV13 после RESET на шине шлёт запросы не по нулевому адресу :07: . Если кто сталкивался с подобной прблемой - подскажите.