Shedon
-
Постов
108 -
Зарегистрирован
-
Посещение
Сообщения, опубликованные Shedon
-
-
Собственно сабж, был у меня кусок программы:
#define SD IO0PIN_bit.P0_6 for(unsigned char i=0; i<8; i++) { SD = *p & 0x80; *p <<= 1; SCLK=1; SCLK=0; Sleep(2); }
да вот заметил я, что в SD всегда ноль в независимоти от того, что находится в *p
перепивал код так
#define SD IO0PIN_bit.P0_6 for(unsigned char i=0; i<8; i++) { if( *p & 0x80 ) SD = 1; else SD = 0; *p <<= 1; SCLK=1; SCLK=0; Sleep(2); }
и заработало!
Кто-то сталкивался с подобным?
----------------------------------------
Процессор: LPC2214
Компилятор: IAR 4.30A
Отладчик: jLink
-
Я задал этот же вопрос в саппорт филипса, вот их ответ:
Philips Semiconductors answer:Yes, The write cabability was intented for test purposes so that is why it was not in the documentation since the IOSET and IOCLR are most often used to set port pin states. But, there is no problem writing to IO0PIN.
Regards
Jim E.
-
Понятно, спасибо.
-
В datasheet на сабжевый контроллер сказано, что IOPIN это read only, и для записи в порт надо использовать IOSET и IOCLR, но в иаровском хедере для LPC2214 регистр IO0PIN определен как read/write, т.е. запись в него разрешена и действительно если в IO0PIN_bit писать биты, то они выставляются на ножках процессора.
Вопрос насколько опасно так делать?
И почему в таком случае в даташите написанно, то он только для чтения?
-
Вообще надо подсчитать сколько тактов на все деяния уходит, тогда точно предельную частоту узнаем.
Вот что по этому поводу в Technical Reference Manual пишут:
2.9 Interrupt latenciesThe calculations for maximum and minimum latency are described in:
• Maximum interrupt latencies
• Minimum interrupt latencies.
2.9.1 Maximum interrupt latencies
When FIQs are enabled, the worst-case latency for FIQ comprises a combination of:
Tsyncmax The longest time the request can take to pass through the synchronizer.
Tsyncmax is four processor cycles.
Tldm The time for the longest instruction to complete. The longest instruction
is an LDM that loads all the registers including the PC. Tldm is 20 cycles
in a zero wait state system.
Texc The time for the Data Abort entry. Texc is three cycles.
Tfiq The time for FIQ entry. Tfiq is two cycles.
The total latency is therefore 29 processor cycles, just over 0.7 microseconds in a
system that uses a continuous 40MHz processor clock. At the end of this time, the
ARM7TDMI processor executes the instruction at 0x1c.
The maximum IRQ latency calculation is similar, but must allow for the fact that FIQ,
having higher priority, can delay entry into the IRQ handling routine for an arbitrary
length of time.
2.9.2 Minimum interrupt latencies
The minimum latency for FIQ or IRQ is the shortest time the request can take through
the synchronizer, Tsyncmin, plus Tfiq, a total of five processor cycles.
-
ну я здесь не вижу преимуществ перед capture, т.е. если настроить его на прерывание скажем по фронту импульса, в обработчике прерываний просто инкрементировать переменную, и запустить таймер на опр. время, и посмотреть сколько импульсов за это время натикает
-
Наверное придётся делить частоту, и мерить период.
-
Опубликовано · Изменено пользователем Shedon · Пожаловаться
Не парься, возми 51, его таймер умеетсчитать количество импульсов на входе.
Чё мелочиться лучше сразу плисину впендюрить. :)
Тогда для медленной частоты можно измерить время импульса с помощью CAPTUREнастроить один канал на возрастающий фронт, другой канал на падающий и по разнице между регистрами определить длину импульса
максимальная точность измерения периода 1/60E6 секунды но фот частота она обратна периоду поэтому такой метод хорош если частота не большая.
А для медленной это какой ?
-
Зесечь время можно довольно точно на LPC проблема вот посчитать импульсы, апаратных каунтеров у LPC нет! а софтом 4 MHZ не очень то получится считать.
куёво :(
-
Вот если надо померять частоту это другой вопрос.
Именно.
-
если настроить таймер с минимальным прескалером то разрешение будет 1/60E6 секунды
но вот считать импульсы с такой частоты не получится нужно время на обработку прерывания или полинга регистров
На самом деле мне такая частота и не нужна, надо до 4MHz, в худшем случае до 10MHz(хотя скорее всего не надо).
И остаётся открытым вопрос о точности.
-
И корпус у этой заразы BGA'шный
-
Есть желание зделать на capture LPC2214 подсчёт импульсов, вопрос до какой максимальной частоты я смогу считать импульсы и с какой точностью ? Fosc = 10MHz(с кварцевого генератора "СОНАТА" класса А), pll будет множить на 6, т.е. частота cclk=60MHz.
-
у иар 7,01 линковщик далеко не досовский. Попробуйте убрать в настройках проекта в разделе XLINK, вкладке Include галочку "Override default library name"Вполне может быть линковщик досовский. -
Так мы еще ничего не добились...
может через пару недель...
-
Пробовал год назад, но только в текстовом режиме (эмуляция UART). Linux запускается. Сильно не разбирался, только поигрался немного. Радует наличие исходников - при желании можно специфичное железо запрограммировать.
Линукс, конечно, запускается, тот что идёт вместе с самим симулятором, но вот попробовал иаром скомпилить тестовый проект, не фига не запускается - пишет неправильный формат файла и что-то про неправильную командную строку:( Да доки действительно на китайском, да и форум тоже на китайском у них, негодяи эти китайцы.
-
Virtio - это конечно хорошо, только он всего 7 дней работает, а его цену я даже на ихнем сайте не нашёл...
-
кто знает какие есть симуляторы КПК на арм платформе, с возможностью загружать собственные прошивки, нужна для тестирования rtos c gui...
-
вобщем сам разобрался, SOS matrix - 6 столбцовая матрица содержащая коэффециенты b0, b1, b2, 1, a1, a2. Но остаётся непонятным вопрос: почему когда стоит Direct Form II, в си файл он экспортирует Scale factor, вместо коэффицентов...
-
Я задаю фильтр Батерворда первого порядка, в окне коэффициентов, программа выводит SOS matrix и Scale factor. Вопрос в том, что такое Scale factor и что за значения она выводи перед коэффициентом фильтра? Если поытаться экспортировать коэффециенты в c header, то туда экспортируются не сами коэффециенты, а этот самый Scale factor. Почему ?
-
Возникла проблема при печати из PCAD2001 на широкоформатном матричном принтере, схема как-то растягивается, хотя при печати той же схемы на струйном принтере всё нормально.
-
WC320240A встроенного контроллера не имеет.
X14Q001 - тоже не имеет встроенного контроллера....
Для формирования большего количества цветов необходимо использовать модуляцию. Т.е. количество цветов определяется контроллером.т.е. если я подключу к этому дисплею(X14Q001 или WC320240A) контроллер S1D13А04, то получу 65536 цветов ?
-
Чем определяется количество цветов, поддерживаемых цветным stn дисплеем ?
в частности интересует, сколько цветов поддерживают индикаторы WC320240A и SX14Q001 ?
-
Но в VDSP 4.0, как я понял не поддерживается процессор ADSP-2185...
Some problems with writing into the pin of a port
в ARM
Опубликовано · Пожаловаться
ступил, спасибо, просто как-то думалось что бит должен быть равен единице при любом значение не равном нулю