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

Skazzi

Members
  • Постов

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

  • Посещение

Сообщения, опубликованные Skazzi

  1. Кроме указанных ранее глюков, есть еще такой. Запуск преобразования осуществляется принудительно в main, а сам АЦП натроен на непрерывное преобразование, т.е. преобразование запускается автоматически по окончании предыдущего сеанса.  

    Нужно в ADCSR загрузить 0b10001011 так будет правильней. Результат преобразования стабильный, а вот вывод нерабочий. Точнее нет динамической индикации как таковой.

    Уга. Спасибо, исправлено (написала на время пока было все без слипа, а потом и поменять забыла :wub: )

  2. Skazzi ты писала программу? Программа не рабочая, Сегодня скачал и закинул её в AVRStudio. Там вообще по портам ничего не происходит. Да и как может происходить если туда постоянно записываються нули.

    Сначала:

    ldi r22,0

    ldi r23,0

    ldi r24,0

    Следующий раз регистр 22,23,24 используються

    mov temp,r22

    swap temp

    or temp,r23

    swap temp

    out PORTB,temp

    out PORTD,r24

    ret

    Между этими двумя фрагментами кода с данными регистрами ничего не делаеться.А точнее сказать вообще они больше нигде не встречаються.

    Все встречается.. косвенная адресация.

    Программа работает стопроцентов, алгоритм правильный и все там пральна считает. просто как у тебя там может чето происходить если на ацп ничего не приходит.. никаких данных??

    Проблема были все таки с таймингами, нужна просто чуть более длинная задержка между зажиганиями символов...чтоб просто побольше было времени когда ничего не горит. :blink:

    Сори, я не ту прогу скинула (почему-то имя того файла совпало с именем хекса... а оказалось что с динамической уже было пересохранено, просто писала я ето еще вначале лета, забылась, простите),

    И в той версии действительно нет динамической индикации.. ето более ранняя версия когда все работало на 3х дешифраторах без динамической индикации...но кроме подпрограммы вывода, впринципе ничего не менялось. алгоритм bcd и остальное то же самое...

    Всем спасибо. ;) Мой вольтметр уже работает по его прямому назначению :P Осталось дособирать все добро в корпус.

    Схему не смотрел. Но если прошивка та, что NebsteR выложил, то есть некоторые недочеты.

    1. Цикл main не закрыт.

    2. У Mega8 нет ADCSRA, только ADCSR.

    Попробуйте этот код (с исправлениями).

    Возможно не имеет смысла выводить результат на дисплей в прерывании "преобразование завершено". Достаточно это сделать после Sleep в main. Может вызов прерывания наступает несколько раз с разными значениями, что и приводит к "подсветке" (несколько цифр) сегментов. После преобразования камень выйдет из Sleep-а так и так (если режим настроен правильно).

    1. Согласна, спасибо.

    2. Не согласна. у меня в файле и так и так оно записано.. ну то есть в м8деф.инке пишется:

    .equ	ADCSR   =$06
    .equ	ADCSRA	=$06

    Так что не важно как писать <_<

    3. Может и не имеет смысла. не знаю. нужно поэксперементировать, но думаю особо на результате работы это не скажется.. хотя хз...Но все равно спасибо за внимание :rolleyes:

  3. та уже как ток не писала. гашу все естественно... промежуток времени когда не горит ни один елемент имеется...(его хорошо видно если поставить маленькую частоту в протеусе..)

    но на деле не так=\

    вот про время задержки шифатора не смотрела... почитаю даташит еще посмотрю... но не думаю что оно такое огромное...

    ну спасиб еще посмотрю знач.. :o

  4. Драсте, сори за тупость, но такая вот штука получилась.

    Собрала вольтметр. он КАК БЫ показывает..

    ну то есть - включаю - на индикаторе показывает нули. Когда подаю напряжение на вход, то нули не исчезают, а немного тускнеют и при етом же там же показывается измеренное напряжение.. то есть он меряет, НО не выключаются "ненужные" палочки на семисегментном индикаторе... а просто становятся чуть-чуть тусклее...

    в чем причина может быть? :blink:

  5. Основная сложность здесь - это считать нужное значение старших 8 бит результата, поскольку в регистре результат представлен чаще всего в виде - младшие 8 бит + старшие 2-3бита в зависимости от разрядности. Нам же надо старшие биты сдвинуть в сторону младших записав их поверх 8 бит результата АЦП, и сдвинув циклически вправо необходимое количество раз.

    ээ всмысле взять старшие откинув младшие? в аврке есть битик в регистре где можно указать как записать ети 10 бит преобразования..

    Выравнивание может быть как по правому краю — старшие два бита в ADCH, а младшие в ADCL, либо по левому — старшие биты в ADCH, а два младших бита в ADCL.

    [x][x][x][x][x][x][9][8]:[7][6][5][4][3][2][1][0] или [9][8][7][6][5][4][3][2]:[1][0][x][x][x][x][x][x]

    то есть просто можно забрать нужные старшие 8 бит, откинув те 2 младших бита...ничего не сдвигая...?? я правильно поняла??

    теперь вообщем:

    включаю внутренний ион на 2.56, режим ацп - 10бит, но буду забирать только старшие 8 бит, следовательно по формуле АDC=(Vin*1024)/Vref

    можно место 1024 поставить 256 и потом результат нужно будет умножать на 10 перед выводом на индикатор?

    adc=( Vin/10(делитель?) * 256) / 256(Vref внутренний) например вход 10в и по формуле 10\10*256\256=1в в ацп ... *10 = 10в как и на входе...

    так или не так? ((((;

    спасибо за помощь... :huh:

  6. Alexeyslav спасибо

    тогда так...

    смотрите, если я включу внутренний ион (2.56в) и мне нужно мерять напряжение с якобы стабилизированного источника питания... 0-12в постоянки.... с точностью...ээ.. ну главное вольты чтоб были точно!, и десятые доли вольта можно с небольшой погрешностью, но тоже достаточно точно... сотые и тыпы не нужны вообще... (1 знак только после запятой нужен)

    как правильно следует составить делитель чтобы правильно считало? можно поставить просто 1 переменник?? или делитель с подстроечником? и приблизительно нужные номиналы? в районе десятков килоом, я правильно понимаю? и хватит ли мне для указанной точности внутреннего "микроконтроллерного" референса?

    сори за глуповатые вопросы (((;

    и спасибо за помощь (;

  7. Драсте народ.

    Вот разбираюсь тут с ацп в мк, и например входное напряжение должно быть от 0 до 5В например.. а у меня 12

    то есть нужен делитель.. и вот вопрос, есть ли разница что я поставлю "сверху" 2к "снизу" 1к или например 200к и 100к... всмысле номиналы самих резисторов, в итоге ж коэффициент деления буит одинаков, но что-нить будет менятся в завимимости от номналов?

    			  2k (200k)???
    ---------/\/\/\/\---------------
    					 |
    					 |
    					---				   
    				   |   |1k(100k)????
    					---
    					 |
    					---

    спасип

  8. Ну ясно вообщем, поиграюсь еще с генератором, на досуге...

    а потом может когда-то руки дойдут до НОРМАЛЬНОГО (ухаха) программатора (((;

    (пока этот вроде остальные мк прошивает норм бгг)

    Ну спасиб всем, пока контроллер отправлю спать в коробку бгг

  9. Хм, когда нет питания или хреновое соединение, то пишет эррор энтерринг программинг моуд...(у меня так..)

    притом другой мк то прошивает нормально..а что с этим-то, непойму...

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

    п.с. фьюзы прочесть все равно не могу...(как впрочем и все остальное)

    :unsure:

  10. а чем протосовский программатор не нормальный? оО

    так вот, читая сигнатуру пишет:

    Chip Signature: Byte0=FFh Byte1=FFh Byte2=FFh.
    Chip: Unknown.

    все разы шо нажимаю — всегда такая...

    при попытке стереть мк пишет:

    Can't read Chip Signature because LB1=0 & LB2=0.

    при попытке чтения памяти:

    Chip Signature mismatch
    Read: Byte0=FFh Byte1=FFh Byte2=FFh
    Must be: Byte0=1Eh Byte1=93h Byte2=07h.

    вот такая вот история... что это значит?

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

  11. хм, у меня на программаторе есть джампер, понижающий тактовую частоту, но вот данную проблему со старым контроллером он не решает...

    или где изменить нужно частоту?

    п.с. программатор рабочий точно, новый мк(мега8) прошился без проблем...правда пока 1 раз, не знаю что будет после 2 ахах, но сам факт..

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

    в чем это выражается? как определить, живой ли он вообще ахах

    ^_^

  12. та блин у меня все так же, пробовал на разные ком порты, все равно, это не в них дело походу -\

    есть еще 1 идейка, приеду скоро домой, попробую...

    п.с. а что ето за штуковина у вас там на последнем кадре? с кучей штырьков бгг

    п.с.с. и откуда питается у вас уст-во которое прошиваете?

    © Jozik

  13. так оттуда и читал изначально, порты настроены, когда порты не настроены то пишет что "нет доступа к порту такому-то, попробуйте другой"...а у меня все окей...коннектит, питание в поряке, определяется компом...поставил дрова, а вот сделать что-либо с памятью мк не могу...пишет вот ту фигню );

×
×
  • Создать...