6 690 сообщений в этой теме

slavik.ksu    0

памагите начать выполнение задания , начинается так : " Запишите в регистры R1 и R2 адрес ячейки памяти 001D " С помощью какой "mnemonic" можно это записать??

заранее спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alexeyslav    630

Недостаточно входных данных. Может конечно для тебя и существует только ОДИН контроллер, но для остальных людей разновидностей контроллеров - море, и для всех них мнемоники ассемблерных комманд могут отличаться.

Судя по наименованию регистров, это контроллер ATMEL, команда загрузки константы в регистр - LDI Rx,K , но если ты внимательно почитаешь документацию на контроллер, ты удивишься что эта команда для многих контроллеров работает только с регистрами R16-R31... поэтому загрузить константу в R1 и R2 можно только через промежуточный регистр, затем используя команду MOV, чтобы загрузить ноль в регистр - не обязательно загружать константу, можно его просто обнулить: CLR Rx.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
slavik.ksu    0

спасибо большое! да, да контроллер ATMEL ! а можно сразу вопрос по этому поводу: а какие еще есть контроллеры? просто навскидку назовите еще парочку...

команда LDI загружает именно костанту в регистр, а в задании "адрес ячейки памяти", или это и есть константа??

и почему тогда написано " 001D " а не " 00 и 1D " ?

про то как обнулить младший регистр спасибо отдельное, возьму на заметку!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alexeyslav    630

Там же говорится Адрес ячейки, а не содержимое.

Адрес - 16 битное число, а регистры 8 бит значит одна половинка адреса идет в один регистр, другая в другой. Надо только уточнить в какой ложить младшую часть адреса, а в какой старшую.

Поскольку регистр этот не индексный, то разницы нет никакой... лишь бы потом не забыть что куда.

Но есть еще индексные регистры, X, Y, Z. Эти регистры 16-битные, и образуются из пар R27-R28, R29-R30, R31-R32. Лучше конечно использовать другие регистры аналогично. Посмотри, как в этих регистрах распределяется старший-младший разряд.

Контроллеры производят Microchip, Atmel, motorola и т.д. и у каждой фирмы есть ряды контроллеров различного назначения.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
slavik.ksu    0

тяжеловато, но из сказанного решил написать код:

clr r1

ldi r16 , 1D

mov r2 , r16

во второй строчке ошибка.. " 1D " это в16ричной форме написано что ли? мне надо перевести в 10чную и получившееся значение записать во второй строчке...?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alexeyslav    630

Почитай хелп к компилятору как указываются 16-ричные числа, во многих записываются как 0x1D

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
slavik.ksu    0

просветления какие то есть в голове, Спасибо!

А вот дальше задание:

" Запишите в регистры R1 и R2 адрес ячейки памяти 001D . ЗАПИШИТЕ В ЭТУ ЯЧЕЙКУ ЧИСЛО 44. "

У меня в голове два варианта: 1) это как то сделать через R1 и R2 , но я не знаю как?

2) в програме написать:

ldi 0x001D , 44 но кажется это какойто бред,и прога выдает ошибку

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alexeyslav    630

Скачай даташит на контроллер, и читай по нему способ адресации.

Для прямой загрузки в ячейку памяти используется команда STS k, Rn где k - адрес ячейки памяти, Rn - регистр значение которого туда загружается. Есть еще ST X,Rn где X - индексный регистр, в котором должен находится адрес ячейки из общего адресного пространства.

Почитай все-таки даташит ... на сайте атмела, есть переведенная документация по всему семейству контроллеров разделенная на части.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
slavik.ksu    0

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

" Для прямой загрузки в ячейку памяти используется команда STS k, Rn где k - адрес ячейки памяти, Rn - регистр значение которого туда загружается. "

ldi r18 , 44 ; т.е. регистру r18 присвоил число 44

sts 0x001D , r18 ; теперь в ячейку памяти загрузил r18 со значением 44

далее складываю число 55 с содержимым ячейки памяти 001D :

ldi r19 , 55

subi r19 , -0x001D ; получается я сложил 55 с числом 0x001D , а мне надо с содержимым ячейки..? вопрос : как обратиться к содержимому ячейки памяти ??

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alexeyslav    630

Проще всего это делать при помощи регистров X, Y, Z. Нет команд для операций непосредственно над содержимым ячеек памяти, чтобы что-то с ними сделать, надо выгрузить значение в регистр. Хотя, есть исключение - инкремент и декремент можно производить непосредственно с ячейками памяти.

Еще раз посмотри модель памяти контроллера, память адресуемая при помощи регистров X,Y,Z - это общее адресное пространство регистров, портов и RAM... т.е. чтобы регистр X показал на ячейку памяти с адресом, нужно к этому адресу прибавить смещение с которого начинается память.

Кстати, а почему нельзя использовать команду сложения, ADD ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
slavik.ksu    0

ADD нельзя использовать потому что операндами являются два регистра, а в нашем случае регистр и "ячейка памяти" - это я так думал! :)

просто не хватало вот этих слов для полного правильного понимания : " Нет команд для операций непосредственно над содержимым ячеек памяти, чтобы что-то с ними сделать, надо выгрузить значение в регистр "

теперь все получилось! УРААААААА!!!

Alexeyslav, С П А С И Б О ОГРОМНОЕ!!!

еще надо будет попробовать с регистрами Х, Y, Z....

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
TR@M@DOL    1

Добрый вечер. Такой вот вопрос от начинающего.

При подключенном питании к дисплею WH1602B на выводах 4 (RS), 5 (R/W), 11-14 (D4, D5, D6, D7) напряжение 5 В. При этом вся нижняя сторока засвечена. Вопрос: это нормально?

post-48557-076609300 1286725480_thumb.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
slavik.ksu    0

из прочитанной мною литературы я понял что r26 это одно и то же что XL ? т.е. я понял что в проге можно писать и то и другое , но почему например на строчку " mov r2 , r26 " компилятор ошибку не выдает, а на " mov r2 , XL " показывает ошибку.?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alexeyslav    630

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
malecdima    0

Подскажите, что означаетнадпись обведеная красным (скрин из даташита на mega16)? Нужно припаивать нижнюю часть к общему проводу? Это обязательно?

post-6787-023982500 1287040188_thumb.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
mazzi    32

 Нужно припаивать нижнюю часть к общему проводу? Это обязательно?

post-6787-023982500 1287040188_thumb.jpg

Буквальный перевод надписи.

"Примечание:

Нижний контакт должен бытьприпаян к земле."

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
COKPOWEHEU    257

Как вы себе это представляете? Микросхема не выдержит такого издевательства. Скорее всего достаточно пружинящего контакта.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alexeyslav    630

Нижняя часть. Вообще-то, это означает что там как минимум должна быть площадка фольги подключенная на общий для экранирования кристалла. Причем, не абы где - а минимальным путем к контакту общего провода контроллера.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
my504    348

Как вы себе это представляете? Микросхема не выдержит такого издевательства. Скорее всего достаточно пружинящего контакта.

Ничего необычного в пайке термопада нет. Практически все QFN, DFN корпуса паяют в печке или феном. И при этом паяется земляной полигон внизу корпуса. Как пример можно привести трансивер CC1100 Техаса или драйвер МОСФЕТов uCC27324 той же фирмы. Последнюю микросхему вообще нельзя эксплуатировать без припаянного термопада. Она попросту сгорит. Корпус размером 3х3 мм способен рассеять 3 ватта..., ессно, что без термоконтакта он сгорит в первые несколько секунд работы...

Впрочем и трансивер тоже не заработает без паяного основания... Но уже по сигнальным соображениям.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
COKPOWEHEU    257
Практически все QFN, DFN корпуса паяют в печке или феном
Не у всех есть такое оборудование.
(скрин из даташита на mega16)
Вроде АТмеги так сильно не греются, если их, конечно, не заводить на слишком высоких частотах и не снимать слишком большой ток с выводов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
noise1    1 329

Нет фена, кто мешает микропаяльник купить? Свободно паяются 30 микронные золотые выводы  низкотемпературным припоем.  

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
my504    348
Практически все QFN, DFN корпуса паяют в печке или феном
Не у всех есть такое оборудование.
(скрин из даташита на mega16)
Вроде АТмеги так сильно не греются, если их, конечно, не заводить на слишком высоких частотах и не снимать слишком большой ток с выводов.

Причем тут нагрев?

Речь идет о высокочастотной топологии. Хотите уверенной работы МК в условиях помех - делайте как написано в даташите.

Есть допустимая температура и время пайки термопада. Указана в даташите. Фен (технический) никакая не экзотика и его стоит иметь если применяете такие корпуса. А уж демонтаж микросхем с ним вообще плевое дело...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
slavik.ksu    0

помогите пожалуйста разобраться:

Вот начало задачи: " наша программа будет просто включать СИД и удерживать его в этом состоянии. Прежде всего, необходимо определить входы и выходы. В этом проекте нам потребуется только один выход, в качестве которого будем использовать вывод RB0. "

почитав теорию я написал такой код:

ldi r16 , 0b11111110

out DDRB , r16 ; т.е.используется только один вывод туда и пишем 0, в остальные 1чки

в учебнике же написан ответ:

ser r16

out DDRB , r16

как я понимаю это ж не одно и то же! в этом случе устанавливаутся все 1чки и получается что ни один вывод не задействован...

Правильна моя логика?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
rtfcnf    1

Запись в регистр направления DDR лог. 1 превращает его в выход, а лог. 0 превращает в вход

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ваша публикация должна быть проверена модератором

Гость
Вы не авторизованы. Если у вас есть аккаунт, пожалуйста, войдите.
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Восстановить форматирование

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Загрузка...

  • Похожие публикации

    • Автор: Сергей Скопинцев
      Нужно разработать циклическую программу сбора информации от 10 измерительных источников. Период повторения цикла - одна секунда
      Источники:
       М - тензопреобразователь давления. Мостовая схема питается постоянным напряжением, выходной сигнал от 0 до 100 милливольт
       Т, ТМ, ТА- три канала измерения изменения напряжения в диапазоне от 400 до 600 милливольт (тоже нужен мост?)
       ЛМ - анализатор максимума напряжения (от 0 до 5 Вольт) по 10 точкам более-менее распределённых в измерительном цикле. Найденный максимум потом должен участвовать в анализе, постепенно уменьшаясь на 20% каждый цикл
       ВЛ - измерить напряжение на Малой емкости (50 пФ) с помощью емкостного делителя по алгоритму:
                         Снять Землю со средней точки емкостного делителя, подать на емкостной делитель положительный Импульс
                         Замерить нужное нам напряжение в средней точке делителя
                         Снять положительный Импульс с делителя, посадить на землю среднюю точку делителя
      - остальные каналы К7...К10  служебные
      Разрядность данных - 16 двоичных.

      Результаты писать на MicroSD текстовым файлом, на первом месте в строке текущее время в секундах, остальные каналы разделены пробелами
      Порядок каналов:
      Т - М -ТМ - Вл - ЛМ -...
      Коэффициенты усиления по каждому информационному каналу должен иметь возможность изменить оператор по формуле y = Ax + B
      Прибор автономный, питается от + 5 Вольт.
       
    • Автор: Ru_s
      Здравствуйте. Подскажите пожалуйста, возможно ли на attiny13 реализовать такую штуку. Мне в процессе работы программы нужно поменять режим работы таймера/счетчика с fast PWM на обычный счёт, отсчитать длительный промежуток времени и опять вернутся в режим ШИМ. Т.е. я подаю на ногу сигнал ШИМ и когда он в максимальном значении, я его отключаю, и тупо подаю на ногу высокий лог. уровень. В это время Т/С по идее свободен, и мне надо посчитать время работы выхода на максимальном лог. уровне, при достижении какого-то значения времени нужно перевести т/с обратно в ШИМ. Возможно ли это? И как приблизительно это реализовать
    • Автор: Kiraspbkiev Kira
      День Добрый. Есть два вопроса от новичка: 1) Правильная ли схема сделанная мною? 2) если схема верна то как правильно подключить к atmega328p-mu usb на чипе cp2102-grm?
      На схеме колодка JP1 это AVR ISP а JP2 это UART
      С проектированием столкнулся в первый раз, цель узнать что то новое и сделать своими руками:)

    • Автор: ITSpec
      Привет всем. Это мой первый пост здесь  прошу отнестись снисходительно.
      Просматривал ролики на Ютуб и понравилась тема одного из блогеров: "Воруем у китайцев". Идея понравилась и полез на Алиэкспресс поискать какой нибудь конструктор чтобы сплагиатить.
      Выбор пал на этот.

      Схему даже с платы не пришлось перечерчивать она была на странице продавца.

      Основная часть этой схемы обычный мультивибратор, который "перемигивает" параллельно подключенные диоды. Вторая часть схемы служит для музыкального сопровождения и состоит из трех компонентов: музыкальной микросхемы, усилителя звука в виде транзистора и громкоговорителя в виде пьезового зумера.
      Такой микросхемы у меня конечно же небыло и я заменил ее на чип H-83a который не нуждался в усилителе.

      Сразу припаял на него SMD резистор и кнопку для переключения мелодий согласно схеме.

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

      Открыл EASYEDA и нарисовал схему.

      Потом спроектировал плату.

      После прибегнул к технологии ЛУТ.

      Припаял все элементы. Отсек для батарейки и чип посадил на термоклей.

      Вот фото окончательного устройства.

      Включается устройство от переключателя, а мелодии от кнопки на музыкальном чипе. Если кому-то хочется чтоб мелодия играла при включении вместо кнопки можно впаять перемычку.
      Ссылка на видео как собиралось:
       
    • Автор: Михаил Савин
      Добрый день. Подскажите есть устройство на плате для регулирования дроссельной заслонки от Калины. Довольно специфическое, индивидуальная разработка, аналогов не купить. Основывается на микроконтроллере ATXMEGA128A3U AU 1651. Возможно ли скопировать залитый в него код что бы изготовить данное устройство ? Или это невозможно в принципе ?
  • Сообщения

    • Типа того: - какой у вас IQ? - 40 градусов, а с утричка рассол помогает.
    • Изначально работали 2 канала, потом левый "згорел"(наверное), лампочка на перегруз постоянно горела и канал выдавал громкий "гул" не зависимо от уровня громкости (запись прилагается, похожее на 50 герц). Поставил все на правый и включил моно.  Все на правом канале. Было что на 15-20 % громкости (без басов) срабатывало реле защиты, а было что отсечка срабатывала на 40-50% громкости. Сегодня работала отсечка 10% громкости, потом вообще реле не срабатывало! Разобрал, снял "защиту с реле", попробовать включить "нахально" (думал згорели каналы), заработал. Поджал немного ножки на реле, правый работает отлично, отсечка (если еквалайзер и т.п. по 0) срабатывает около 90 %. Левый при етом так и гудит! Все замеры могу сделать тестером.  Скажите пожалуйста, что сделать что бы работал левый канал на стерео? про акустику. достался мне амфитон с одной калонкой 25АС027! С колонки снял ВЧ. СЧ и НЧ пустил через фильтр НЧ, работает как сабвуфер. Для СЧ и ВЧ две колонки от центра.  Моя запись #2.wav
    • предлагаю различные резисторы, все новые (в работе не были) , находятся в Новосибирске, вышлю почтой Росси или ТК Энергия, почта на покупателе.   КЭВ 0,5  5,1ГОМ2115 88г КЭВ-1  5,6М5025  с2-29в-0,25   1%2к6001,5  с2-29в-0,125  2,87ом  1%401  млт-0,125100ом  5%40000,3  с2-23-0,25   5%200ом24000,3  млт-0,125210ом3000,3  ВС 0,125а300ом8000,3  с2-23-0,5390ом1000,5  млт 0,125470ом4000,3  с2-14-0.52,84к202  с1-4-0,12520ом6000,3 0,05с1-4 0,2524ом8000,3  с1-4 0,2527ом11000,3  вс-0,25180ом2501  с1-4 0,25430ом8000,3  млт-0,25620ом9000,3  млт 0,25910ом24000,3  с2-23-0,125  1к  1%1к100000,7  с2-23-0,125  1к   5%1к10000,3  с2-23-0,25  2,4к   5%2,4к14000,3  ВС 0,12510к4000,3  млт-0,2513к  5%8000,3  омлт 0,2513к  5%7000,3  с2-23-0,12521,5к  1%4800,7  с1-4-0,12523,7к  2%3800,5  с2-23-0,12527к  5%1900,3 импортмлт-0,2530к3500,3  МЛТ0,12568к1800,3  с2-33н-0,25120к7000,3   3,3к  5%28000,5  млт-0,5 27ом  10%16000,7  с2-33-0,5  91ом  5%9000,7  с2-23-1100ом  5%3001  с2-23-1150ом2900,7  млт-0,51,5к3000,5  омлт-0,53,3к   5%3000,5  МЛТ-1680ом2001  МЛТ-210ом2601,5  МЛТ-2 имп3к1801,5  с2-10  0,252,21ом201,5  с2-10 0,5  0,5%3,92ом1201,5  с2-10  0,53,01ом5801,5  с2-10  0,25   1%2,61ом26801  с2-10  0,253,92ом551  с2-10 0,125  1%75ом24801  с2-14-0,25    0,25%2,08к3801,5  с2-14-0,25  1%2,08к14801  с2-14-0,25  1%2,13к6801 резист безкорпр1-11-0,2551ом15000,5   упак 92гр1-11-0,25470ом1800   р1-11-0,25510ом3400   р1-11-0,25680ом800   р1-11-0,25820ом1700   р1-11-0,251к3500   р1-11-0,251,5к3600   р1-11-0,252,2к1800   р1-11-0,254,7к800   р1-11-0,2512к1800   р1-11-0,2539к1500   р1-11-0,25150к1600   р1-11-0,25220к1800   р1-11-0,25680к1500  УПАК  92гРП1-48-0,25470ом1005   1к2005   4,7к1005   10к2005   22к205 91гс5-16мв  1вт0,1ом1405 88гс5-16мв  1вт0,43ом   5%165  с5-16мв  2вт0,51ом956  с5-16мв  2вт0,75ом2406 92г упакс5-16мв  5вт0,36ом  1%3607 93г  упакс5-16мв  5вт5,1ом  5%307 87гс5-16в    10вт10ом   1%6308  с5-5в  1вт910ом155   сп3-24  0,125  100к1310 91гСП-1   1ВТ2,2к2315 91гСП-1   1ВТ470ом2315  сп3-36  220к3410  сп3-4ам47к1210  сп3-4ам100к7010  сп3-4бм10к2510  сп3-4бм47к3710 92гсп3-4вм220к2210  сп3-4вм330к1810  TELPOD100к1110 91г сп1 1вт  6,8к3010  сп2-2  0,5вт470ом  20%256  сп3-1б 0,25вт3,3к401,5  сп3-1б  0,25вт4,7к1001,5  сп3-1б  0,25вт150к221,5 91гупсп3-9  0,5вт  10к6668   сп3-10вм  10к  150 92гупаксп3-19б  1к1253 92гупаксп3-19б 100к6303   сп3-23и  0,125   22к3025   сп3-23в 0,125вт 33к2025   сп3-30а 100к325   сп3-33-32  100к5010 88гупаксп3-38в  0,25вт  100ом801  упаксп3-38г  0,25вт  470ом801   сп3-38г 0,25вт   1к801  упаксп3-38в 0,25вт  4,7к3101  упаксп3-38г  0,25   47к14801  упсп3-38в 0,125 150к1801  упсп3-38г    1м1801,5   сп3-39  4,7к801   сп3-43  1к125   сп3-43  2,2к225   сп3-43  47к225 90гупсп3-44а 0,5вт  220ом315   сп3-44а 0,5вт  1,5к415 91гупсп5-16ва 0,25  5%  3,3к4710 92гупсп5-16вв 0,125вт 6,8к9010 88г сп5-50ма  47ом5310  сп3-38100к10001 92г нр1-1-1-8   330ом4902 91гупакнр1-4-9м  220ом  5%3002   нр1-9а2010  упакнр1-19-3   100к20002 71г ПП3-11   680ом125   пп3-43  2,2к325   пп3-43   47к325   тво-0,25   820ом406   ули 0,125  2,61к  2%58   130ом1410   1,1к3810   5,9к3510   7,07к1510   7,15к1410 терморезисторММТ-42к6810  ММТ-8200ом415 часть фото разместил, по запросу на адрес radiuss1@mail.ru  вышлю общий прайс и интересующие фото
    • было много продаж и поступлений, актуальный список -    91гупаккр140уд8б     395шт       8р 92г кр140уд20а          58шт          8р                  общий прайс во вложении          прайс 12 июля.xls
    • Да большинство нынешних школьников даже понятия не имеет, что такое стерео. ...настоящее, полноценное стерео . Этот дефект - не результат какой-то травмы; это -  заслуга нынешних школьных образователей. Слушают-то школьники в основном не музыку в "стерео", а всякое 3-сортное гавно, воспроизводимое китайскими говняными гаджетами через говняные китайские "фасолины". Так что говнянный девайс, что на картинке, пусть  даже и натурально сделанный "маршаллом", а не отштампован в китайской подворотне, для потребителей этого гавна само то.
    • Действительно, проблема похожая, значит и решение тоже аналогичное - вскрывать, искать неисправность и ремонтировать, либо поменять прибор на исправный.
    • Нет, видимо, есть опасения за пожаробезопасность приёмника ДУ. И они обоснованы. Любая схема может загореться, если сделана кривыми руками из некачественных деталей, разработана обдолбаным конструктором, неправильно эксплуатируется или просто по стечению обстоятельств. Даже сам пульт, в принципе, может коротнуть внутри и загореться.
      Поэтому в деревянном доме лучше вовсе не применять никакие электроприборы - днём держать ставни открытыми, чтобы было светло, а с заходом солнца ложиться спать.