Jump to content

    

Shedon

Свой
  • Content Count

    110
  • Joined

  • Last visited

Posts posted by Shedon


  1. Собственно сабж, был у меня кусок программы:

    #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

  2. Я задал этот же вопрос в саппорт филипса, вот их ответ:

    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.

  3. В datasheet на сабжевый контроллер сказано, что IOPIN это read only, и для записи в порт надо использовать IOSET и IOCLR, но в иаровском хедере для LPC2214 регистр IO0PIN определен как read/write, т.е. запись в него разрешена и действительно если в IO0PIN_bit писать биты, то они выставляются на ножках процессора.

    Вопрос насколько опасно так делать?

    И почему в таком случае в даташите написанно, то он только для чтения?

  4. Вообще надо подсчитать сколько тактов на все деяния уходит, тогда точно предельную частоту узнаем.

    Вот что по этому поводу в Technical Reference Manual пишут:

    2.9 Interrupt latencies

    The 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.

  5. ну я здесь не вижу преимуществ перед capture, т.е. если настроить его на прерывание скажем по фронту импульса, в обработчике прерываний просто инкрементировать переменную, и запустить таймер на опр. время, и посмотреть сколько импульсов за это время натикает

  6. Не парься, возми 51, его таймер умеет

    считать количество импульсов на входе.

    Чё мелочиться лучше сразу плисину впендюрить. :)

     

    Тогда для медленной частоты можно измерить время импульса с помощью CAPTURE

    настроить один канал на возрастающий фронт, другой канал на падающий и по разнице между регистрами определить длину импульса

    максимальная точность измерения периода 1/60E6 секунды но фот частота она обратна периоду поэтому такой метод хорош если частота не большая.

    А для медленной это какой ?

  7. Зесечь время можно довольно точно на LPC проблема вот посчитать импульсы, апаратных каунтеров у LPC нет! а софтом 4 MHZ не очень то получится считать.

    куёво :(

  8. если настроить таймер с минимальным прескалером то разрешение будет 1/60E6 секунды

    но вот считать импульсы с такой частоты не получится нужно время на обработку прерывания или полинга регистров

    На самом деле мне такая частота и не нужна, надо до 4MHz, в худшем случае до 10MHz(хотя скорее всего не надо).

    И остаётся открытым вопрос о точности.

  9. Есть желание зделать на capture LPC2214 подсчёт импульсов, вопрос до какой максимальной частоты я смогу считать импульсы и с какой точностью ? Fosc = 10MHz(с кварцевого генератора "СОНАТА" класса А), pll будет множить на 6, т.е. частота cclk=60MHz.

  10. Пробовал год назад, но только в текстовом режиме (эмуляция UART). Linux запускается. Сильно не разбирался, только поигрался немного. Радует наличие исходников - при желании можно специфичное железо запрограммировать.

    Линукс, конечно, запускается, тот что идёт вместе с самим симулятором, но вот попробовал иаром скомпилить тестовый проект, не фига не запускается - пишет неправильный формат файла и что-то про неправильную командную строку:( Да доки действительно на китайском, да и форум тоже на китайском у них, негодяи эти китайцы.

  11. вобщем сам разобрался, SOS matrix - 6 столбцовая матрица содержащая коэффециенты b0, b1, b2, 1, a1, a2. Но остаётся непонятным вопрос: почему когда стоит Direct Form II, в си файл он экспортирует Scale factor, вместо коэффицентов...

  12. Я задаю фильтр Батерворда первого порядка, в окне коэффициентов, программа выводит SOS matrix и Scale factor. Вопрос в том, что такое Scale factor и что за значения она выводи перед коэффициентом фильтра? Если поытаться экспортировать коэффециенты в c header, то туда экспортируются не сами коэффециенты, а этот самый Scale factor. Почему ?

  13. Возникла проблема при печати из PCAD2001 на широкоформатном матричном принтере, схема как-то растягивается, хотя при печати той же схемы на струйном принтере всё нормально.

  14. WC320240A встроенного контроллера не имеет.

    X14Q001 - тоже не имеет встроенного контроллера....

     

    Для формирования большего количества цветов необходимо использовать модуляцию. Т.е. количество цветов определяется контроллером.

    т.е. если я подключу к этому дисплею(X14Q001 или WC320240A) контроллер S1D13А04, то получу 65536 цветов ?