Перейти к содержанию
    

alliv

Участник
  • Постов

    21
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о alliv

  • Звание
    Участник
    Участник
  • День рождения 20.02.1974

Контакты

  • Сайт
    Array
  • ICQ
    Array

Информация

  • Город
    Array
  1. Заработная плата в два-три раза отстаёт от жизни, вот и не откликаются, тем более с Вашим спецификом. Ищите студента местного с соответствующими требованиями, только так...
  2. Похоже у них один HR только и развит. Да и чему там возрождаться, продали всё что имели :), да и зарплаты у них плохие, даже стесняются указывать в параметрах вакансии. Раньше указывали, не помню сколько, но мало. Вакансии эти у них годами висят (также как и в КА типа CheckMates, HTG, и прочих), это либо чисто номинальная вакансия, либо они дурачков ищут очередных на испытательный срок. ИМХО связываться с ними не стоит.
  3. Вот не мог пройти мимо. Я работал примерно год с корейскими программистами. Я в Москве, они - в Сеуле. Из 5 (ПЯТИ) !! сменившихся за это время людей с их стороны, 3 (ТРОЕ) были полными абсолютными дебилами в программировании. Мало того, что они косяки лепили, так ещё и динамили по полной программе - пресловутая корейская ментальность, когда нельзя обижать человека. Вывод - в Корее есть нормальные инженеры-программисты, в соотношении 2 к 5.
  4. В Hi Tech Group ищут работников для Самсунга, без учёной степени сейчас туда соваться практически бесполезно.
  5. Что касаемо LCD модулей - опыт в тысячи единиц продукции в месяц. Самое главное, что нужно помнить, это то, что на стекле модуля всегда есть заряд с некоторой поверхностной плотностью. Особенно проблемно,что некоторые производители модулей ставят между стеклом и железной рамкой диэлектрическую прокладку! или красят рамку чёрным цветом! это может приводить в серии как минимум к двум неприятностям, а именно, зависание драйвера стекла или вообще пробой драйвера стекла при дотрагивании пальцем до поверхности стекла. З.Ы. в своё время, когда проблема была глобальна, а именно при протирании тряпочкой устройства перед упаковкой, в 25% случаев LCD подыхали, мы изучали и решили проблему путём припайки металлической рамки к земле непосредственно на шлейф, приходящий от головного устройства. Все прокладки между рамкой и стеклом надо иметь из проводящего материала или удалить. удачи.
  6. RTC FIQ в LPC2148

    Не скажу за UCoS и насчёт правильности обработчика(ов) прерываний, но VICIntSelect |= (1<<VicIntSource); Эта строчка несколько смущает.. В user_manual 2148 нет бита "VicIntSource" в регистре VICIntSelect:-). (чтобы переключить RTC прерывание на FIQ, очевидно должно быть написать VICIntSelect |= (1<<VIC_RTC) ).
  7. JTAG интерфейс - это подключение напрямую (ну или почти напрямую) к ядру микроконтроллера. Таким образом, в режиме реального времени вы можете контролировать ход исполнения отлаживаемой программы, создавать в программе точки останова (в зависимости от микропроцессора кол-во точек и их тип рознятся, но это неважно), просто остановить ядро и посмотреть содержимое каждого регистра итп. Всё это приятно делать из какой-то среды (IDE) для разработки типа Keil, IAR, Eclipse, Code Blocks, итп. В общем полезнейшая штука :-). Для связи IDE с Wiggler надо некую прослойку иметь (их много разных), под Windows это может быть, например, драйвер www.hjtag.com
  8. простыми словами - прерывания (точнее код, который вы пишите для обработки соответствующего прерывания) используются для быстрой реакции на соответствующие запрограммированные ранее события. Например в начале программы вы инициализируете определённый таймер, чтобы этот таймер досчитывал до числа 1000, и после этого происходило прерывание сравнения данного канала таймера. А в обработчике прерывания для данного канала таймера вы пишите код, который выполняет, например, переключение лампочек на гирлянде :-). то же самое можно проделать и для всего остального, у микроконтроллеров богатая периферия, которая при установке соответствующих режимов будет генерить соответствующие прерывания.
  9. Bullit, извините, я в прошлом сообщении ступил и ввёл вас в заблуждение, esaulenka и Alex03 абсолютно правы, максимальная частота на шине pclk 60мГц, а делитель минимальный для мастера SPI составляет 8 (в отличие от режима для чипа, в котором есть SSP, здесь действительно 2 минимум).
  10. ну так даташит смотрите, сколько максимальная частота SPI может быть в этом чипе, а также сколько AD7980 держит. The SPI SCK rate may be calculated as: PCLK / SnSPCCR value. мне кажется так: минимальное значение делителя SPCCR для мастер мода =2. таким образом, вам надо, чтобы PCLK был минимум 30мГц, (чтобы частота SPI 15мГц) то есть для делителя APB=1 надо внешний кварцевый резонатор иметь 30мГц, что НЕ совсем рекомендуется для кристаллов LPC21xx (10-25мГц входной кварцевый резонатор рекомендован, но можно и 30) (я лично не пробовал больше 20) таким образом имхо вроде как всё проходит.
  11. LPC2478 и I2C

    вы забыли устанавливать ACK, который показывает что это не последний байт вот так будет правильно // only master mode () case(0x10): //repeated start case(0x08): //старт проходит нормально, а дальше в I2C0STAT 0xF8 I2C0DAT = 0xC0; I2C0CONSET_bit.AA = 1; I2C0CONCLR_bit.STAC = 1; break; case(0x18): //SLA+W transmitted && ACK received if (data_count>1) { I2C0CONSET_bit.AA = 1; //AA=0x04 если передача более одного байта последовательно иначе передавайте 0 I2C0DAT = 0x09; data_count -=1; }else{ I2C0CONSET =0x14; //set STOP && AA } break; case(0x28): //data transmitted & ack received то же самое что и 0х18, тока ешё если repeated_start нужен, то посылаем 0х24 if (data_count>1) { I2C0CONSET_bit.AA = 1; //0x04 если передача более одного байта последовательно иначе передавайте 0 I2C0DAT = 0x09; data_count -=1; }else{ I2C0CONSET =0x14; //set STOP && AA }else if (need_repeated_start){ I2C0CONSET =0x24; //set REPEATED START && AA } break;
  12. внутри таблица синуса - половинка волны в unsigned c диапазоном значений 0-1024. по-этому нормировка амплитуды = 1/1024 ну а на 2 делится потому-что от середины половинка строится... проект скачайте, поиграйтесь и всё поймёте..
  13. Вариант 2, учитывающий абсолютно верное замечание CEBOTOR и замечание Alex03 насчёт запаздывания обновления на период и за счёт этого выигрыш в использовании предпосчитанного значения. //InitTimer0(): 215 T0MCR = 0x0601; // void timer0_handler(void) { static unsigned int i=0; static unsigned int val=0; if ( T0IR & 0x01 ) { T0MR0 = val; T0IR = (1<<0); } if ( T0IR & 0x08 ) { if (i>399){ val=( (PWM_period_val-( (PWM_period_val*usin[i-400] )>>10))>>1 ); }else{ val=( ((PWM_period_val+((PWM_period_val*usin )>>10))>>1)); } i = (i != 799) ? i+1 : 0; T0IR = (1<<3 ); } return; } За сим предлагаю закончить с данной темой, содружеству спасибо! Не наступайте на такие грабли.
  14. Ок, GetSmart, Вы оказались правы на 100% :a14: . К сожалению в данном случае мне нужен весь диапазон значений PWM и не удастся ввести постоянную корректировочную составляющую. Данный проект синуса - это просто тестовый проект который был собран лишь для нахождения глюка. Насчёт вложенных прерываний - да, придётся сделать вложенность по всей видимости. Alex03, насчёт RC замнём - фильтруется несущая 40кГц для синуса 50Гц; насчёт ++ тоже в курсе У меня в нормальном проекте всего пока 5 прерываний крутится I2C, ADC, 2 периода ПВМ, один из которого системный синхронизующий и второй - достаточно медленный и ещё один таймера сравнения. В целом идей Ваш понятен и принят, насчёт проверок для дебилов - знаете, иногда когда "jmp $" не помогает, очень полезным оказывается писать все проверки и иногда вставлять даже в код NOP .
  15. Alex03, спасибо, я учту в будущем. (серьёзно). Фигню полную написали вы сейчас насчёт возможного пика.
×
×
  • Создать...