27.12.2010, 00:30
|
|
Прохожий
Регистрация: 09.09.2010
Сообщений: 1
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
Разбираюсь с USB. Используя стандартный пример из библиотеки IAR "usb-device-hid-transfer-project".
Пытаюсь передавать принимать данные. Прием происходит без проблем, а вот передать данные в мк никак не получается.
ПО хоста на основе книги Агурова "Интерфейс USB" в delphi.
Что упустил из виду?
Код:
|
// Получаем информацию об интерфейсе мк
Success := SetupDiEnumDeviceInterfaces(PnPHandle, nil, HidGuid, AtmelIndex, DeviceInterfaceData);
begin
// Открываем Hid-устройство в режиме чтения и записи
HidHandle:= CreateFile(PChar(@ATMELHidName[1]),
GENERIC_READ or GENERIC_WRITE, //
FILE_SHARE_READ or FILE_SHARE_WRITE,
nil,
OPEN_EXISTING, 0, 0);
lbLog.Items.Add('Открыли AT91SAM7');
AssignFile(Varfin,'sin2.dat');
Reset (Varfin); // открыть файл для чтения
for i:=0 to 33 do
write(Varfin,bufout[i]);
CloseFile(Varfin);
// передаем данные 10 раз
for i:=1 to 10 do
begin
if ((WriteFile(HidHandle, bufout,32,iread,nil))) then
lbLog.Items.Add('Данные переданы')
else
lbLog.Items.Add('Данные не переданы');
// считываем данные
if (ReadFile(HidHandle, bufin, 33, iread, nil)) then
begin
lbLog.Items.Add('Данные прочитаны');
lbLog.Items.Add(Format('данные =%d',[bufin[2]]));
end
end;
end; |
|
|
|
|
10.01.2011, 12:39
|
|
Частый гость
Регистрация: 12.10.2010
Сообщений: 14
Сказал спасибо: 2
Сказали Спасибо 2 раз(а) в 1 сообщении
|
Re: Здравствуй, ARM. Запуск "на коленке"
Сообщение от kison
|
А чисто программно ничего не испортить, всегда можно стереть все и записать правильную программу.
|
А вы не могли бы прочитать? https://kazus.ru/forums/showthread.php?t=28820
|
|
|
|
10.01.2011, 16:26
|
|
Прописка
Регистрация: 02.01.2011
Сообщений: 159
Сказал спасибо: 8
Сказали Спасибо 32 раз(а) в 28 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
Заметил забавный кусок кода
Цитата:
|
Код:
|
Reset (Varfin); // открыть файл для чтения
for i:=0 to 33 do
write(Varfin,bufout[i]); |
|
|
|
|
|
10.01.2011, 19:51
|
|
Временная регистрация
Регистрация: 09.07.2005
Сообщений: 91
Сказал спасибо: 1
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
Сообщение от Snacker
|
Ну, к примеру, у арм7 есть семь режимов работы процессора, которые кодируются пятью битами, т.е. 32 варианта, что гораздо больше семи. При желании, с помощью асемблера и такой-то матери можно попробовать ввести процессор в недокументированное состояние. Это один пример, но если внимательно почитать мануал, то можно и другие дырки найти. Сишный компилятор сконструирован так, что он в принципе таких вещей делать не будет.
|
Вы исследовали, что будет, если включить один из оставшихся
25 вариантов и нашли режим, в котором при 72 МГц тактовой
можно читать порт и писать в кольцевой буфер в ОЗУ с частотой 20
МГц?
Или просто распаралелили свои 8 бит в 32 и читаете порт/пишите в кольцевой
буфер 32 бита с частотой 5 МГц?
Если второе, то это не интересно.
Да и первое - не очень, этот проц уже сильно устарел.
Щас в моде кортексы - с однотактовым вводом из порта на частоте 120 МГц.
Кстати, затронутый здесь вариант - читать из порта в регистры представляет
интерес. Хоть длина записи получается всего 13 слов ( SP трогать нельзя,
так как выход будет по прерыванию ), в случае, еесли это используется
в стробоскопе - при умножении на 16 длина кривой получается вполне
ничего - 208 точек при эффективной частоте выборок 120*4*16 MSPS.
|
|
|
|
12.01.2011, 18:30
|
|
Частый гость
Регистрация: 11.12.2010
Сообщений: 10
Сказал спасибо: 1
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
Сообщение от kison
|
Так же. Запускаем таймер в свободный полет. Потребовался интервал - считываем счетный регистр, добавляем к считанному значению задержку, полученное в регистр сравнения выбранного канала и разрешаем прерывания от совпадения. Если нужна цикличная задержка - в обработчике считываем уже значение регистра сравнения, добавляем задержку и обратно в регистр сравнения.
|
Абалдеть. Ну и гемморой.
Так это получается ничем не отличается от обычного таймера без всяких каналов сравнения, как в каком-нибудь вшивом ПИКе. На котором можно дополнительными регистрами получить любою нужную кратную задержку и организовать разнопериодные счетчики.
Так в ПИКе при этом есть несколько независимых таймеров , которые настроил раз и забыл.
А тут всего один. Н-да... не ожидал от АРМа, честно говоря.
|
|
|
|
12.01.2011, 19:08
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
Сообщение от ritmauto
|
Абалдеть. Ну и гемморой.
Так это получается ничем не отличается от обычного таймера без всяких каналов сравнения, как в каком-нибудь вшивом ПИКе. На котором можно дополнительными регистрами получить любою нужную кратную задержку и организовать разнопериодные счетчики.
Так в ПИКе при этом есть несколько независимых таймеров , которые настроил раз и забыл.
А тут всего один. Н-да... не ожидал от АРМа, честно говоря.
|
Честно говоря не ожидал таких выводов. От человека даже в документацию заглянуть поленившегося. Таймеров два. По 4 канала в каждом. Каждый канал почти не отличается от таймера во "вшивом ПИКЕ", правда они 32 разрядные. Ну и есть еще PWM модуль на 6 каналов. А что Вы ожидали то? От контроллера, который стоит как тот самый ПИК? Да и все равно разрядность в 32 бита дает известные преимущества. Например можно чисто аппаратно дрыгнуть ногой через 5 секунд с точностью до 1 такта таймера. В том же ПИКЕ это потребует отслеживать переполнение таймера программно. Мне лично 8 каналов хватает за глаза. Пока недостатка таймеров не ощущал.
|
|
|
|
13.01.2011, 11:37
|
|
Временная регистрация
Регистрация: 09.07.2005
Сообщений: 91
Сказал спасибо: 1
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
Сообщение от kison
|
Честно говоря не ожидал таких выводов. От человека даже в документацию заглянуть поленившегося. Таймеров два.
|
Это в каком кортексе всего два таймера?
Или Вы имете в виду, что два тайсера общего применения, остальные
все с прилагательными?
|
|
|
|
13.01.2011, 13:52
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
Сообщение от Vallav
|
Это в каком кортексе всего два таймера?
|
При чем тут Кортекс? Если пройти по цитатам вверх придем к https://kazus.ru/forums/showpost.php...&postcount=695
|
|
|
|
17.01.2011, 16:27
|
|
Гражданин KAZUS.RU
Регистрация: 01.01.2007
Адрес: Таганрог
Сообщений: 571
Сказал спасибо: 26
Сказали Спасибо 213 раз(а) в 91 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
Господа знатоки, тут у меня такой вопрос. Сделал девайс на базе LPC2366, все работает замечательно, вот токо ток потребления проца черезчур великоват около 150мА при частоте 24Мгц (включеы таймера, ШИМ и SPI), поотрубал ненужную периферию - особо легче не стало. Даташит смотрел, о токе потребление особо ничего. Вопрос к людям работаюми с данными процами как снизить ток потребления девайса или такое потребление на такой частоте это нормально.
__________________
То, что нас не убивает - делает нас сильнее
|
|
|
|
18.01.2011, 20:11
|
|
Прохожий
Регистрация: 18.01.2011
Сообщений: 1
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
Помогите люди добрые!!! у меня возникла проблема с мк ЛПС1768. На выводах всех портов напряжение 2.3В. пробовал отлаживать в ИАР с помощью jetseven, доходит до подключения генератора к ядру и на этом шаге выскакивает ошибка связаная со стеком. 3.3 вольта поданы на аналоговые выводы питания. что это может быть?
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 07:38.
|
|