-
Постов
38 -
Зарегистрирован
-
Посещение
Тип контента
Профили
Форумы
Блоги
Сообщения, опубликованные Skazzi
-
-
Кроме указанных ранее глюков, есть еще такой. Запуск преобразования осуществляется принудительно в main, а сам АЦП натроен на непрерывное преобразование, т.е. преобразование запускается автоматически по окончании предыдущего сеанса.
Нужно в ADCSR загрузить 0b10001011 так будет правильней. Результат преобразования стабильный, а вот вывод нерабочий. Точнее нет динамической индикации как таковой.
Уга. Спасибо, исправлено (написала на время пока было все без слипа, а потом и поменять забыла )
0 -
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
Между этими двумя фрагментами кода с данными регистрами ничего не делаеться.А точнее сказать вообще они больше нигде не встречаються.
Все встречается.. косвенная адресация.
Программа работает стопроцентов, алгоритм правильный и все там пральна считает. просто как у тебя там может чето происходить если на ацп ничего не приходит.. никаких данных??
Проблема были все таки с таймингами, нужна просто чуть более длинная задержка между зажиганиями символов...чтоб просто побольше было времени когда ничего не горит.
Сори, я не ту прогу скинула (почему-то имя того файла совпало с именем хекса... а оказалось что с динамической уже было пересохранено, просто писала я ето еще вначале лета, забылась, простите),
И в той версии действительно нет динамической индикации.. ето более ранняя версия когда все работало на 3х дешифраторах без динамической индикации...но кроме подпрограммы вывода, впринципе ничего не менялось. алгоритм bcd и остальное то же самое...
Всем спасибо. Мой вольтметр уже работает по его прямому назначению Осталось дособирать все добро в корпус.
Схему не смотрел. Но если прошивка та, что NebsteR выложил, то есть некоторые недочеты.1. Цикл main не закрыт.
2. У Mega8 нет ADCSRA, только ADCSR.
Попробуйте этот код (с исправлениями).
Возможно не имеет смысла выводить результат на дисплей в прерывании "преобразование завершено". Достаточно это сделать после Sleep в main. Может вызов прерывания наступает несколько раз с разными значениями, что и приводит к "подсветке" (несколько цифр) сегментов. После преобразования камень выйдет из Sleep-а так и так (если режим настроен правильно).
1. Согласна, спасибо.
2. Не согласна. у меня в файле и так и так оно записано.. ну то есть в м8деф.инке пишется:
.equ ADCSR =$06 .equ ADCSRA =$06
Так что не важно как писать
3. Может и не имеет смысла. не знаю. нужно поэксперементировать, но думаю особо на результате работы это не скажется.. хотя хз...Но все равно спасибо за внимание
0 -
та уже как ток не писала. гашу все естественно... промежуток времени когда не горит ни один елемент имеется...(его хорошо видно если поставить маленькую частоту в протеусе..)
но на деле не так=\
вот про время задержки шифатора не смотрела... почитаю даташит еще посмотрю... но не думаю что оно такое огромное...
ну спасиб еще посмотрю знач..
0 -
бред уже 20 раз перепроверила схему.
еще другой может попробую дешифратор, микросхемку перепаять всмысле.. хз=\
0 -
-
-
Драсте, сори за тупость, но такая вот штука получилась.
Собрала вольтметр. он КАК БЫ показывает..
ну то есть - включаю - на индикаторе показывает нули. Когда подаю напряжение на вход, то нули не исчезают, а немного тускнеют и при етом же там же показывается измеренное напряжение.. то есть он меряет, НО не выключаются "ненужные" палочки на семисегментном индикаторе... а просто становятся чуть-чуть тусклее...
в чем причина может быть?
0 -
Alexeyslav
Спасибо большое за помощь!!!
чичас еще буду писать прогу... посмотрим правильно ли я все поняла)))))
0 -
Основная сложность здесь - это считать нужное значение старших 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в как и на входе...
так или не так? ((((;
спасибо за помощь...
0 -
Alexeyslav спасибо
тогда так...
смотрите, если я включу внутренний ион (2.56в) и мне нужно мерять напряжение с якобы стабилизированного источника питания... 0-12в постоянки.... с точностью...ээ.. ну главное вольты чтоб были точно!, и десятые доли вольта можно с небольшой погрешностью, но тоже достаточно точно... сотые и тыпы не нужны вообще... (1 знак только после запятой нужен)
как правильно следует составить делитель чтобы правильно считало? можно поставить просто 1 переменник?? или делитель с подстроечником? и приблизительно нужные номиналы? в районе десятков килоом, я правильно понимаю? и хватит ли мне для указанной точности внутреннего "микроконтроллерного" референса?
сори за глуповатые вопросы (((;
и спасибо за помощь (;
0 -
Драсте народ.
Вот разбираюсь тут с ацп в мк, и например входное напряжение должно быть от 0 до 5В например.. а у меня 12
то есть нужен делитель.. и вот вопрос, есть ли разница что я поставлю "сверху" 2к "снизу" 1к или например 200к и 100к... всмысле номиналы самих резисторов, в итоге ж коэффициент деления буит одинаков, но что-нить будет менятся в завимимости от номналов?
2k (200k)??? ---------/\/\/\/\--------------- | | --- | |1k(100k)???? --- | ---
спасип
0 -
Ну ясно вообщем, поиграюсь еще с генератором, на досуге...
а потом может когда-то руки дойдут до НОРМАЛЬНОГО (ухаха) программатора (((;
(пока этот вроде остальные мк прошивает норм бгг)
Ну спасиб всем, пока контроллер отправлю спать в коробку бгг
0 -
Хм, когда нет питания или хреновое соединение, то пишет эррор энтерринг программинг моуд...(у меня так..)
притом другой мк то прошивает нормально..а что с этим-то, непойму...
а что значит не правильаная частота? как мне узнать какая должна быть правильная и что где изменять??
п.с. фьюзы прочесть все равно не могу...(как впрочем и все остальное)
0 -
а чем протосовский программатор не нормальный? оО
так вот, читая сигнатуру пишет:
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.
вот такая вот история... что это значит?
п.с. ресетдисейбл я не трогал, так что с этим все ок, ну и аналогично с айсипи, оно разрешено..т.е. с этими фьюзами вроде ок..
0 -
хм, у меня на программаторе есть джампер, понижающий тактовую частоту, но вот данную проблему со старым контроллером он не решает...
или где изменить нужно частоту?
п.с. программатор рабочий точно, новый мк(мега8) прошился без проблем...правда пока 1 раз, не знаю что будет после 2 ахах, но сам факт..
еще сказали что контроллер может заблокироваться как-то, и типа тогда ему жопа...
в чем это выражается? как определить, живой ли он вообще ахах
0 -
там это фиксится в одно нажатие.
и какое же нажатие? (;
п.с. всех с новым годом 2009! (((;
0 -
та не думаю...тем более программатор то юсб вообще...
седня еще поэксперементирую, вечерком отпишусь (;
0 -
программатор - http://prottoss.com/images/shematic.png
а питаю таргет от юсб тоже...
хз кароче, зафтра будет другой мк, проверим, будем дальше думать тогда в чем проблема, если не заработает с другим...
0 -
та же проблема.. че делать кто-то придумал?
0 -
Блин спасиб за помощь, лажа оказалась в гребаном шлейфике все таки
Теперя все работает (;
Спасибо еще раз
0 -
это снова я... а какие еще идеи? что я с ним не делаю, пишет все тоже самое...
0 -
джампера у меня первого нема, я прошивал мк просто отдельно, не в этой схеме...
на плате джампер у меня 1, только тот что для изменения частоты...
© Jozik
0 -
та блин у меня все так же, пробовал на разные ком порты, все равно, это не в них дело походу -\
есть еще 1 идейка, приеду скоро домой, попробую...
п.с. а что ето за штуковина у вас там на последнем кадре? с кучей штырьков бгг
п.с.с. и откуда питается у вас уст-во которое прошиваете?
© Jozik
0 -
так оттуда и читал изначально, порты настроены, когда порты не настроены то пишет что "нет доступа к порту такому-то, попробуйте другой"...а у меня все окей...коннектит, питание в поряке, определяется компом...поставил дрова, а вот сделать что-либо с памятью мк не могу...пишет вот ту фигню );
0
Может Кто-то Поделится
в Литература
Опубликовано
Собственно оч нужен учебник, 2004 год.