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

evc

Свой
  • Постов

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

  • Посещение

Репутация

0 Обычный

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

  • Звание
    Местный
    Местный
  • День рождения 11.12.1971

Контакты

  • Сайт
    Array
  • ICQ
    Array

Информация

  • Город
    Array

Посетители профиля

2 295 просмотров профиля
  1. Станция в отличном состоянии. Продается вместе с несколькими жалами: 102PDLF0.2 - 2 шт.(одна б/у) 102CDLF1.6 - 2 шт.(одна б/у) 102WDLF1.6 - 1 шт (микроволна, б/у) Цена: 45000р. Контакт: Здесь на форуме или [email protected].
  2. Здравствуйте! Продаю Tektronix 2465A. Состояние отличное (если не считать пыль). Отличная яркость трубки, весь функционал работает нормально. Цена - 45000р. Территориально - юг Москвы. Переслать могу по РФ за ваш счет, упакую нормально. В комплекте кабель питания и два щупа 100МГц. Контакт: Здесь на форуме или [email protected].
  3. Здравствуйте! Можете предоставить какие-то характеристики (даташит) - угол излучения, яркость, напряжение, максимальный импульсный ток и т.д.?
  4. добрый вечер, Дарю PICKit3 и ICD3 актуально еще?

    1. Рамуальд Альгедрасович

      Рамуальд Альгедрасович

      Мне удобней вести переписку на адресе  [email protected]

  5. IDE и DevBoards

    Да нет, я такое не писал. Мы-то с вами это понимаем. Однако грустно, конечно, но есть достаточно большое количество молодых людей, которые смотрят на ассемблерский листинг как собака Павлова - с такими большими умными глазами, как будь-то бы вот-вот и начнут говорить... Я имел ввиду, что "железо" нужно знать и понимать как оно работает. Это моя философия, никому, конечно, не навязываю. И, кстати, ни один листинг вам не скажет что происходит, например, с логическими ячейками (logic cell - новая выдумка Майкрочипа)... Так что, ничего не надо доводить до абсолютизма, я считаю. Но это уже флуд в данной теме.
  6. IDE и DevBoards

    "Хэ", это еще цветочки! Чего стоит одна только "MPLAB® Harmony Software Framework"...
  7. IDE и DevBoards

    Боже! Почувствовал себя полным лохом. Но да. Я тоже пользуюсь отладчиком при переходе на новую платформу, потому что для меня важно разобратся как оно там внутри тикает. И кстати, когда принимаю новых коллег, если они мне не успевают объяснить как "оно там внутри тикает", прикрываясь фразами "С компилятор все сам сделает", я их просто ... не принимаю. Vanity, defenitely my favorite sin!
  8. IDE и DevBoards

    Спасибо за ответ! Да, действительно на счет энергопотребления вы правы - батарейное питание вносит свою корекцию. Мне не приходилось, вот и не задумывался. Я одно время поглядывал в сторону Cypress-а, но потом появились 16-ые пики с расширенной аналоговой периферией и они меня устроили.
  9. IDE и DevBoards

    И после этого вы еще утверждаете, что: =АК=, если серьезно, мне вот, интересно, почему АРМ? Почему не МИПС? Я после 24-й серии перешел на 32 и прекрасно себя чувствую. Может я что-то пропустил? Вопрос серьезный, без подкола.
  10. Нет, только один - PCLATH. Я наверное, старею, поэтому все таки вам отвечу: в STATUSе хранятся биты для определения страницы оперативной памяти. В PCLATHе хранятся биты для определения страницы программной памяти. Еще в первом посте на этой странице я вам привел код для обработчика который сохраняет и то и другое, чего в вашем коде нет. Но, к сожалению, выходит правда - очевидные вещи, самые малозаметные - вы вцепились в этот STATUS и в упор не замечаете PCLATH.
  11. из-за этого получаете несанкционированные входы в обработчик прерываний ... но как скажете.
  12. ddd-ekb, слово "скрываете" я использовал в шутку. ViKo, однако прав, я давно на ассемблере не писал, вот и забылось. Как я вам и писал - именно адресация страниц портится у вас, в обработчике прерываний. Уважаемый ViKo, навел на правильную мысль. Попытайтесь поставить вот такую преамбулу обработчика прерываний и соответственно на выходе тоже обратный код: ORG 0x004 ; interrupt vector location movwf w_temp ; save off current W register contents movf STATUS,w ; move status register into W register movwf status_temp ; save off contents of STATUS register movf PCLATH,w movwf PCLATH_temp clrf PCLATH ... здесь ваш обработчик прерываний... movf status_temp,w ; retrieve copy of STATUS register movwf STATUS ; restore pre-isr STATUS register contents movf PCLATH_temp,w movwf PCLATH swapf w_temp,f swapf w_temp,w ; restore pre-isr W register contents retfie ; return from interrupt
  13. По поводу предделителя и буквой "i" я тоже так прикинул, как вы потом и написали. По поводу таймера и п.6.4, там действительно несколько строчек, которые меня тоже насторожили, но имеется ввиду (в п. 6.4. и потом), что если во время записи произойдет переполнение таймера, результат может быть непредсказуемым. Если вы от нас ничего не скрываете (вы не обижайтесь, я немножко отклонюсь: приходят сюда, значит, [не]определенные товарищи и подбрасывают всякие казусы. Мы начинаем здесь ломать копья, стрелы, организуем интеллектуальные [и не очень] битвы титанов, и наконец, где-то на десятой странице обсуждения, когда чуть ли не мы уже подрались здесь всем форумом, приходит топик стартер и такой, "а вот и не угадали! у меня MCLR был не подключен, вот и болтался в воздухе, вот и происходили случайные сбросы." и ставит три улыбочки, для подчеркивания эффекта.), значит нужно посмотреть другое: Судя по вашим продуманным (в общем) действиям, с железом у вас все в порядке. Но не помешало бы, еще раз перепроверить. Потом. Это действительно старый процессор. Я смотрю, вы весь PIR1 обнуляете. Но это - только периферийные прерывания. Есть еще и в INTCON-е. Не забывайте, что, например Таймер0 нельзя отключить, он всегда работает, даже и если настроить его брать такт с T0CKI. Но! Самый главный подводный камень - по-страничная организация памяти. Если у вас осуществляется переход (типа goto, return, retlw и т.д.) из одной страницы на другую, то это вам нужно позаботиться правильно переключить биты RP0 и RP1 в STATUS-е. Скорее всего это именно ваш случай. Таким образом вы можете попасть аккурат в середину обработчика прерываний и он исполнится. Другая очень часто встречаемая ошибка - табличное чтение. Если при чтении из таблицы (вычисляемый офсетный переход), вы проскочите и попадете в пустую область, программный счетчик просто перелопатит всю программную память и вернется на адрес 0. Опять со всеми вытекающими. Для этого перед табличным чтением всегда нужно проверять аргумент функции - не превышает ли его значение количество объектов в таблице. Также, имейте ввиду (хотя, это вряд ли ваш случай), при переполнении или при попытке уменьшать указатель стека ниже ноля, происходит сброс. Это может случится, например, если по какой-то причине не сбросился флаг прерываний (IF). Так что - посмотрите все очень внимательно и если есть новые соображения - спрашивайте.
  14. Каждый раз когда перезаписываете один из регистров Таймера1, вы обнуляете предделитель. ???
×
×
  • Создать...