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

Сергей Борщ

Модератор
  • Постов

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

  • Посещение

  • Победитель дней

    33

Весь контент Сергей Борщ


  1. Стоимость хорошего дуплексора такова, что чаще проще поставить вторую антенну.
  2. Хорошый способ набора сообщений! В данном случае совершенно правильно указанное направление. Если вам лень воспользоваться поисковиком, то почему остальные участники здесь должны пересказывать вам учебник?
  3. В форматке тоже нигде? У меня постоянно спотыкается на "Схема электрическая принципиальная". Приходится удалять все описание Title. Ибо он при сохранении полей с русскими буквами умудряется "глотать" не только 'я' но и части соседних строк.
  4. Вот у Самсунга есть K9F1208U0B. http://www.samsung.com/products/semiconduc.../K9F1208U0B.htm На K9F1208UOM могу выслать мылом - 818К. Чем они отличаются - не знаю, не изучал внимательно.
  5. Да, нельзя. Тогда я не понял вопроса. А какой таймер позволяет делать больший чем разрядность таймера? Извиняюсь, я тоже бываю невнимателен. Почему-то показалось, что вопрос был про PIT вообще. Видимо чтобы узнать сколько прерываний было потеряно если это прерывание было запрещено надолго и потом программно вызвать обработчик нужное количество раз: volatile dword Tmp = AT91C_BASE_PITC->PITC_PIVR >> 20; while(Tmp--) { SystemTimer_ISR(); }
  6. //Инициализация #define MAINCLK 4032000L #define PLLMUL 36 #define PLLDIV 3 #define MCK ((MAINCLK * PLLMUL) / PLLDIV) #define RTOS_TICK_RATE 100 // Hz // RTOS Timer AT91C_BASE_PITC->PITC_PIMR = (((MCK / 16) / RTOS_TICK_RATE - 1) & AT91C_PITC_PIV) \ | (1 * AT91C_PITC_PITEN) | (1 * AT91C_PITC_PITIEN); AT91C_BASE_AIC->AIC_SMR[AT91C_ID_SYS] = AT91C_AIC_SRCTYPE_INT_LEVEL_SENSITIVE | AT91C_AIC_PRIOR_LOWEST; AT91C_BASE_AIC->AIC_SVR[AT91C_ID_SYS] = (uint32_t)OS::SystemTimer_Wrapper; AT91C_BASE_AIC->AIC_IECR = (1<<AT91C_ID_SYS); //обработчик: OS_INTERRUPT void OS::SystemTimer_Wrapper() { volatile dword Tmp = AT91C_BASE_PITC->PITC_PIVR >> 20; while(Tmp--) { SystemTimer_ISR(); } } Да, именно. НЕ СНИМАЕТСЯ ЕСЛИ НЕ ЧИТАТЬ PIVR. Я вот удивляюсь - а документацию кто читать должен? Уже на gaw.ru и перевод сделали для тех, кому лень выучить необходимые для пониманий 90% текста 50 слов и сочетаний по-английски. 1) Уменьшить MCLK 2) Организовать в прерывании этого таймера хоть 128-битный программный счетчик. Для формирования периодических прерываний с постоянным интервалом. Например системный таймер RTOS, который обычно генерит прерывания с частотой 100-1000Гц.
  7. Какое условие? Может это копирование начальных значений в инициализированные переменные? Или запуск PLL. Для нормальной работы нужна цепочка на выводе PLLRC, даже если PLL в проекте не используется. 1) Создать конфигурацию 2) Подключить правильный .xcl (чтобы код линковался в флеш или RAM) 3) Если отладка из флеш - на вкладке Debugger->Download поставить галочку use flash loader, если в окне под галочкой пусто - добавить туда загрузчик со всеми значениями по умолчанию (должно получиться что-то вроде ",,,,(default),". Если отладка из RAM - убрать галочку use flash loader. 4) Если отладка из флешь - на вкладке линкера поставить галочку allow c-spy extra output file, на вкладке extra output выбрать формат simple-code. 5) В опциях компилятора включить оптимизацию по вкусу. Думаю этим местом и отличаются flash-flash (оптимизация по максимуму) и debug-flash (оптимизации нет) Собственно и все. Тут пас. Никогда не нужна была. Обязательно через JTAG? А то может САМБА умеет этого?
  8. Только вот незадача - в статье не описывается подключение 5в ЖКИ "стекла" к LDC-контроллеру MSP430x4xx, о чем и был вопрос. А если сигналы COMх раскачать на операционниках до 5в? правда потребуется небольшое отрицательное напряжение для питания операционников. И есть вероятность паразитной подсветки выключенных сегментов. Чтобы ее не было надо раскачивать и SEGx, а это неоправданно усложняет схему. Можно попробовать запитатоь контроллер от максимально допустимых 3.6в, подать на R33 напряжение Vcc + 0.3в (отключив его внутри) а на R03 минимально допустимое Vss-0.3в. Поскольку стекло обычно имеет запас по контрасту может такого расширения диапазона будет достаточно.
  9. Тупой вопрос: а ток через светодиоды ограничен резистором?
  10. Полноцнный ресет (дерганьем ногой) ИАР делает только один раз - при старте отладчика. Ето прописано мелкими буквами в хелпе. После этого кнопка "ресет" сбрасывает только ядро. Скрипты можно дописать в ExecUserReset, тогда они будут делать инициализацию при нажатии на иконку "ресет". Маленькая проблема в том, что не всю периферию можно проинитить в исходное состояние даже скриптами :-(
  11. У ИАРа девиз "должно работать как задумал программист и чтодбы при этом ничего лишнего". Нет, тут вы не правы - смотрите мой пример: int main( void ) { char i; i = ST[1]; i += 1; return i; } В этом случае начальное значение ST будет помещено в прошивку - поскольку значение ST[1] дальше используется, а не просто читается во временную переменную которая тут же будет уничтожена т.к. не понадобилась. даже простой вариант char c; int main( void ) { c = ST[1]; return 0; } тоже вызовет генерацию ST в eeprom, т.к. значение глобальной переменной с может быть использовано в других файлах проекта.
  12. Не попадалось. Но мне удалось его заставить работать. Если интересно, могу выложить пример.
  13. AT91SAM7S128 и IAR

    Вот оно, прикладываю. sam7_ddf.zip
  14. Присоединюсь к предыдущим коллегам: Сделайте простой проект который просто читает одно измерение из АЦП и приложите к сообщению. С картами в руках и разговор будет более предметный. Да и в процессе выкидывания всего лишнего велика вероятность обнаружить "ту самую" ошибку.
  15. Слишком умный компилятор :-) Выкинул все лишнее нафиг. Ни одна из этих переменных в проекте не используется, значит не нужна. Дает совсем другой результат. Или на крайний случай (не используется, но очень надо иметь в выходном файле): __root __eeprom char ST[] = "TEST EEPTOM"; __root __eeprom char eee = 245; Нет, до момента когда это содержимое eeprom хоть на что-нибудь сгодится.
  16. Есть подозрение, что к проекту подключен какой-то из стандартных .xcl файлов, который имеет мало общего с LPC2103. Поэтому код слинковался в несуществующие адреса. Глянь в .map, если это действительно так - надо к проекту подключить правильный .xcl, например, из папки examples.
  17. Я тоже долго перечитывал и задавал этот вопрос на сахаре. Пришли к выводу что они просто сделали copy-paste с документации на макрофункцию для ПЛИС.
  18. AT91SAM7S128 и IAR

    Получается. Только надо кроме адресов и размера их еще в желаемое окно запихать - секция [sfrGroupInfo] в конце файла. Я дописал, но сегодня болею а они на работе. Если до завтра терпит, выложу.
  19. А вот чтобы ответ обратно в комп передать эти +-10 (точнее, больше чем +-3) и нужны.
  20. AT91SAM7S128 и IAR

    Чтение AIC_IVR (не важно, программой или через JTAG отладчиком) заставляет AIC выполнять некоторые действия. Чтобы этого не происходило, надо в .ddf - файле исключить AIC_IVR из списка регистров, показываемых в окне AIC.
  21. Atmega8+24C256

    Это очень хорошо и правильно. Приложите весь код одним файлом, гляну.
  22. I2C

    Не знаю, пользовался оригиналом. Стоит поискать на www.gaw.ru Еще может быть полезным маленький FAQ: http://faqs.org.ru/electron/embint.htm#I1
  23. ЖКИ

    Выходит удивительная штука этот VMLab. Ибо в даташитах нет ограничения на максимальное значение задержек.
  24. Говорят, "у дураков мысли сходятся" :-) Однако продолжение почему-то забывают: "но у умных - чаще!" Вроде у Страуструпа читал, что если уж используешь явное преобразование указателей - сам смотри. Ведь в зависимости от контекста этот код может быть как абсолютно правильным (если этот char * в прошлой жизни был float *) и тогда предупреждения компилятора будут мешать или неправильным как в твоем случае. Видимо, придется просто запомнить, что в подобных случаях могут быть грабли.
  25. ЖКИ

    А, дошло. звездочка - это любое число! Привык просто, что обычно в датахшитах Х в таких слуучаях пишут. Да, про 38 согласен. На все остальные команды использую задержку 40 мкс, сдвиг экрана не использую и команду очистки дисплея (которая 1.6мс по даташиту) тоже. Посчитал, что выставить курсор в начала строк и забить строки пробелами быстрее и проще чем городить специальную задержку. "Достаточно одной таблэтки". Для перевода в 4-битный режим 3 раза по 3х и один раз 2х, для перевода в 8-битный режим - 3 раза 3х. Когда-то писал на телесистемах о 4-битном, для 8-битного отбросить команду d. Повторю здесь: Обозначим эти команды как a, b, c, d Допустим, дисплей был в 8-битном режиме. Тогда: команда a - не влияет на работу, он и так в 8-битном режиме команда b - то же самое команда c - то же самое команда d - воспринимается как 8-битная команда и переводит в 4-битный режим. Допустим, дисплей был в 4-битном режиме и ждал команду. Тогда: команда a - воспринимается как старшая тетрада команды перевода в 8-битный режим команда b - воспринимается как младшая тетрада команды перевода в 8-битный режим, дисплей переходит в 8-битный режим команда c - не влияет на работу, он и так в 8-битном режиме команда d - воспринимается как 8-битная команда и переводит в 4-битный режим. Теперь допустим, дисплей был в 4-битном режиме и уже получил первую тетраду команды когда проц сбросили. Тогда: команда a - воспринимается как младшая тетрада предыдущей команды. Да и фиг с ней, все равно инитим дисплей. команда b - воспринимается как старшая тетрада команды перевода в 8-битный режим команда c - воспринимается как младшая тетрада команды перевода в 8-битный режим, дисплей переходит в 8-битный режим команда d - воспринимается как 8-битная команда и переводит в 4-битный режим. P.S. нашел то сообщение на телесистемах. Гы, я его и там тебе в ответ писал :-))))) http://www.telesys.ru/wwwboards/mcontrol/7...ges/66090.shtml
×
×
  • Создать...