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

lamerok

Свой
  • Постов

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

  • Посещение

Весь контент lamerok


  1. IAR, Wigler, RTOS uC/OS-II. (Исходили из бюджета, денег не выделяют на покупку демо бордов и ПО, поэтому все пиратское или самодельное) Метрологическое оборудование (калибраторы давления, температуры) Philips пока... Виглер самопаяный... IAR 4.10B и 4.11а, лежит по-моему на фтп, крак по-моему там же, точно не знаю. uC/OS-II тоже на фтп. Проблемы ИАР не шьет Филипок 2124 программу с кодом больше 144 кБ. Почему не знаю...... Никто не знает, наверное кроме ИАРа... -) Если прога, меньше 144 кБ проблем замечено не было.
  2. Еще поправим маленько. Вечер глучу малость :blink: #pragma vector = TIMER1_COMPB_vect __interrupt void CompareB(void) { union {unsigned char B[2];unsigned int I} Temp; Temp.B[0]=OCR1BL; Temp.B[1]=OCR1BH; Temp.I +=PERIOD; OCR1BH = Temp.B[1]; OCR1BL = Temp.B[0]; TIFR |= (1<<OCF1B); } Вот теперь точно все правильно :) :P
  3. Блин нечаяно нажалось, первое не смотрите.... Вот это код будет все время генерить период в сколько надо, задается PERIODом #define PERIOD 0x186 #pragma vector = TIMER1_COMPB_vect __interrupt void CompareB(void) { union {unsigned char B[2];unsigned int I} Temp; Temp.B[0]=TCNT1L; Temp.B[1]=TCNT1H; Temp.I +=PERIOD; OCR1BH = Temp.B[1]; OCR1BL = Temp.B[0]; TIFR |= (1<<OCF1B); } void InitTimer (void) { union {unsigned char B[2];unsigned int I} Temp; Temp.I = 0; TCCR1A = 0; TCCR1B = ((1<<CS10)|(1<<CS12)); //делим на 1024; TIFR |= (1<<OCF1B); Temp.I = PERIOD; TCNT1H = TCNT1L = 0; OCR1BH = Temp.B[1]; OCR1BL = Temp.B[0]; TIMSK |= (1<<OCIE1B); }
  4. void InitTimer (void) { TCCR1A = 0; TCCR1B = ((1<<CS10)|(1<<CS12)); //делим на 1024; TCNT1H = TCNT1L = 0; TIFR |= (1<<OCF1B); Temp.B[0]=TCNT1L; Temp.B[1]=TCNT1H; Temp.I += PERIOD; OCR1BH = TimerOn2Char1.B[1]; OCR1BL = TimerOn2Char1.B[0]; TIMSK |= (1<<OCIE1B); /*разрешаем прерывание по сравнению для таймера на 2 символов*/ }
  5. romez777 В принципе все правильно, за исключением того, что наверное писать в таймер не надо, можно просто прочитать из него и прибавть к этому значению, period. Насчет авр студио, тут я вам не помошника, так как работаю под ИРОм, возможно авр студио не может в прерывания ходить в симуляторе, но я не знаю. Проверьте еще у вас вообще меняется значение TCNT??? Может оно не менятся. Проверьте тот ли захват вы используете, там их несколько.
  6. romez Я думаю, что не правильно ;) Основное отличие - это что, что блок compare он для того и нужен, чтобы задавать нужные интервалы, формировать задержки и т.д. А счетчик он просто считает себе и считает, и трогать его не рекомендуется.
  7. работа в IAR

    А, вообще все написано в доке MSP430 IAR C/EC++ Compiler Reference Guide for Texas Instruments’ MSP430 Microcontroller Family Сразу с рекомендациями, не использовать его так -))) INLINE ASSEMBLER It is possible to insert assembler code into a C module. The asm keyword assembles and inserts the supplied assembler statement in-line, for example: asm("MOV.W R4,R7"); Note: The asm keyword reduces the compiler’s ability to optimize the code. We recommend the use of modules written in assembler language instead of inline assembler, since the function call to an assembler routine causes less performance reduction.
  8. В некоторых современных датчиках расхода, используется алгоритм распознавания степени загрязнения тела обтекания или стенок трубы с использованием нейросетей. По закгрязнению они пото корретируют расход. Была написана модель загрязнения, по ней обучили нейросеть, подобрали веса нейронов и все такое. Сеть получилась не очень большая, веса нейронов известны, поэтому она легко влезла в микроконтроллер, правда DSP. Будучи студентом, была у меня на практике тема. Определение источника загрязнения воздуха и его параметров в городе. Так вот вообщем-то задача решается собычным методами(наменьшей среднеквадратической ошибки) путем сравнивания с эталонной моделью. Но оказалось, что нейросети были как нельзя кстати. Так мат модель распространения примесей в городе была известна. Все что нужно было - это просто подобрать тип нейросети и обучить ее. И она превосходно решала эту задачу. Еще знаю разработана система управления снабжения города электроэенргией. Сеть обучалась на основе данных за н-ое количество дней. Полсе этого она прекрасно предсказывала, сколько энергии сейчас нуно, чтобы не перегружать подстанции. И еще знаю, система диспетчерезации и распределения грузовых поездов на перегонах. Да еще в теории финаннсов и на бирже есть системы работающие под управлением самообучающихся нейросетей.
  9. Ну в принципе если вы используете прерывание по переполнению или опрашивате флаг переполнения. ИМХО, лучше использовать блок сравнения, тогда просто надо будет в регистр сравнения = TCNT+INTERVAL(7812). Так можно организовать служюу времени, без сбития счетчика, непосредственной записи в регистр TCNT.
  10. KingGeorg Попробывал маленький проектик, аля мигание...Вобщем то работает-). Тока кода получилось многовато. Ок. Понятно. Т.е я так понимаю, что резонно применять С++ только в здоровых приложениях, в которых есть нормальный запас по памяти. Для мелких проектов С++ избыточен.
  11. Прошивание LPC2124

    Проблема в следующем: Проц LPC2124. Почему-то с помощью IAR 4.11A и 4.10B не шьется больше чем 144 кБ. Причем, если брать прошивалку из папки Flash FlashPhilipsLPC210x.d7, то она шьет только до 72 кБ... а если FlashPhilipsLPC2212.d79, то до 144 кБ. В чем проблема может быть??? И еще есть там в папке flashloader файды с теми же названиями, но размер их в два раза больше. Для чего они нужны. Если я правильно понял - это бутлоадары??? Тогда как их прошить? Пользуюсь виглером. Заранее Спасибо за ответы.
  12. Уважаемый KingGeorg Я все таки так и не пойму, зачем все это делать через С++????? Можете вы мне объяснить преимущества???? А то до сих пор пока не вижу никаких преимуществ. И никто толком объяснить не можем в чем фишка. Все это можно, точно также лаконично, только без объявления класса описать на обысчном С и оформить в виде библиотеки....
  13. Хотя нет погарячился влезет.. но с трудом, там только 512 байт надо для считывания сегмента.. + еще всякие прибомбасы... и того байт 700 займет...
  14. В 1 Кило точно не влезет.... Возьмитеисходники для АВР.. они лекго портируются на любой контроллер...
  15. Вообще для такой задачи и ARM то не совсем то.. что надо... А оперционка РЕАЛЬНОГО ВРЕМЕНИ.. вам упростит задачу.. Например одна задача управляет одним двигателем, другая другим... третья обрабатывает клаву езе одна связь и т.д.
  16. oleg_rudakov А где можно скачать WinCVS? или он платный? И где можно почитать книжку или руководства по работе в коллективе например прогрммистов? Основные принципы?
  17. Там бутлоадер и программка на писюке на филипсе лежит...по RS232.. через UART0
  18. Спасибо... Но это скорее всего на будущее... Сейчас только 32 кб ОЗУ..:) Крутые требования то...
  19. Кстати не подскажет кто где взять uLinux под АРМ с прибомбасами???
  20. IAR EWARM

    4.11А Взять тут на ftp и лечилка тут же.. ИМХО, Но лучше пользваться 4.10B
  21. Вам не угодишь :))) А зачем вам так много таймеров??? Там же захваты есть 6 штук аж.. и сравнения есть... тоже 6 штук... С помощью их можно 6 независимых интервалов считать...
  22. А нельзя ли сделать список того что есть на фтп и пояснение что это такое... А то там заблюдится можно... и не всегда понятно что за дока или программа и есть ли она там..
  23. Согласен с one_man_show Нуно писать все вначале в общем... а отлаживать только конктретную железку.. Вот например чего клаву то олаживать, можно пока виртуальными кнопками обойтись в отладчике.... Например зарезервировать здачу под опрос кнопок и пусть она эмулирует нажатие этих кнопок. Тоже самое с RS.. его вообще можно на компе отработать написать все фунции (например У меня HART протокол).... а потом эти же функции втавить в проц. Вот ГУИ понравилось отлаживать.. симулятор написан по VC6.0... Вот там все и отладили...ПОтом код один в один на филипок перекинули и все сразу заработало.. Все остальное только аппаратная реализация под данный контроллер. Один раз отладил и используй везде... Кроме того столкнулся например с проблемами, что из=под Житаг отладчика связь с компом нестабильная... Его убираешь-все стабильно. Но вообщем как кому нравится.. :)
×
×
  • Создать...