Jump to content
  • ×   Pasted as rich text.   Restore formatting

      Only 75 emoji are allowed.

    ×   Your link has been automatically embedded.   Display as a link instead

    ×   Your previous content has been restored.   Clear editor

    ×   You cannot paste images directly. Upload or insert images from URL.

  • Similar Content

    • By Atreides
      Добрый день. Мне требуется реализовать программный юарт на атмеге16. Он нужен для того, чтобы принятые по нему данные отправить на аппаратный юарт. В интернете нашел примеры кода, но понять его мне трудно. Прошу вас словами в общих чертах объяснить принцип реализации программного юарта. Буду рад примерам, которые, на ваш взгляд, являются наиболее простыми и понятными. Заранее спасибо.
    • Guest Константин
      By Guest Константин
      Приветствую всех! Прошу помощи у вас, форумчане в программировании системы из 2х контроллеров atmega16, суть системы заключается в:
      Есть мастер и слэйв, это два отдельных омк
      всего 1 мастер и 2 слэйва
      Что входит в мастер: 1)настойка времени путем набора из 8 4 2 и 1 минуты(кнопки), выбор адреса, те кому будет послан сигнал, 1 или 2 слэйву, индикация ответа( красный диод если не ответил, зеленый если ответил в течении заданного времени), если ответ есть - зеленый, если ответа нет красный и кнопка полного сброса всех указаний, те возврат к исходной точке где никто не опрашивается
      Что входит в слэйв, это кнопка подтверждения, визуализация таймера ( те 4 диода, когда 1/4 времени прошла 1 тухнет итд) и если кнопка не нажата отправка информации о аларме
      собственно все
      те
      1 ввод адреса и времени
      2 отправка сигнала
      3 сигнал есть?
      3.1 (нет) аларм
      3.2 (зелень)
      Заранее благодарю!
      (popovkostya96@icloud.com)
    • By Max1201
      Код с помощью которого двигатель вращается в одном направлений по часовой стрелке.
      А нужно "составить программу на языке ассемблера для реверсивного управления электродвигателем постоянного тока". так написано в заданий
      Но я думаю можно новую не писать, а можно изменить эту так что бы двигатель вращался в одну сторону и потом в другую, наверно так. Помогите, а то я вообще не понимаю этот ассемблер(( 
      ;* На выходе OC1A МК АТmega16 получаем выходные импульсы ;* с частотой 50 Гц и коэффициентом заполнения g=0,025. ;* Тактовая частота MK AVR: 4 МГц .nolist .include"m16def.inc" .list .def STAT = r15 ;Регистр для хранения состояния главной программы .def WorkH = r16 ;Рабочий регистр для главной программы .def WorkI = r17 ;Рабочий регистр для прерывания от таймера .def AddLo = r18 ;Вспомогательный регистр для прибавления константы .equ Impuls = 9000 ;Число тактовых сигналов, соответствующее импултсу .equ Pause = 1000 ;Число тактовых сигналов, соответствующее паузе Reset: rjmp Initial ;Переход к части инициализации reti ;Внешнее прерывание 0 (не используется) reti ;Внешнее прерывание 1 (не используется) reti ;Прерывание по захвату (не используется) Timer1CompA: ;Прерывание CompareA для ATmega16 in STAT,SREG ;Сохраняем флаги главной программы in WorkI,TCCR1A ;Регистр управления А счетчика Т/С1 sbrs WorkI,COM1A0 ;Пропускаем следующую команду, если COM1A0 = 1 rjmp TC1 ;Пропускаем следующую команду, если COM1A0 = 0 cbr WorkI,1<<COM1A0 ;При следующем прерывании OC1A -> 1 out TCCR1A,WorkI ;Сохраняем новое значение in AddLo,OCR1AL ;Младший байт OCR1A subi AddLo,Low(-Impuls) ;Прибавляем младший байт значения импульса in WorkI,OCR1AH ;Старший байт OCR1A sbci WorkI,High(-Impuls) ;Прибавляем старший байт значения импульса rjmp IntEnde TC1: sbr WorkI,1<<COM1A0 ;При следующем прерывании OC1A -> 1 out TCCR1A,WorkI ;Сохраняем новое значение in AddLo,OCR1AL ;Младший байт OCR1A subi AddLo,Low(-Pause) ;Прибавляем младший байт значения длительности импульса in WorkI,OCR1AH ;Старший байт OCR1A sbci WorkI,High(-Impuls) ;Прибавляем старший байт значения длительности импульса IntEnde: out OCR1AH,WorkI ;Назад - старший байт нового значения out OCR1AL,AddLo ;Назад - младший байт нового значения out SREG,STAT ;Восстанавливаем старые флаги reti ;Выход из обработки прерывания CompareA Initial: ;Инициализация регистра ввода/вывода ldi WorkH,High(RamEnd) out sph,WorkH ldi WorkH,Low(RamEnd) out spl,WorkH ;Инициализируем стек clr WorkH ;Все разряды = 0 out PortD,WorkH ;Вывод в порт D ldi WorkH,$20 ;Разряд 5 - в 1, остальные - в 0 out DDRD,WorkH ;OC1A (PD5) - выход, остальные входы ldi WorkH,High(Pause) ;Старший байт значения паузы out OCR1AH,WorkH ;в старший байт регистра сравнения А ldi WorkH,Low(Pause) ;Младший байт значения паузы out OCR1AL,WorkH ;в младший байт регистра сравнения А ldi WorkH,$C0 ;OC1A -> 1 out TCCR1A,WorkH ;Сохраняем новое значение ldi WorkH,$02 ;Входной такт Т/С1 = такт сист. синхр./8 out TCCR1B,WorkH ;Запускаем Т/С1 ldi WorkH,$40 out TIMSK,WorkH ;Разрешаем прерывание CompareA sei ;Общее разряшение прерываний (разряд I) Haupt: rjmp Haupt ;Главная часть программы: ожидаем возникновения прерывания Программа работает двигатель крутиться по часовой стрелке, Препод сказал что на один вход мы сигнал подали теперь нужно его сохранить и подать на другой, на фотках схема подключения и установка




      В методичке это 4 лаба, там программа не та но теория та что и вновой методичке
      lab_rab_MK_AVR.pdf
    • Guest Дмитрий
      By Guest Дмитрий
      Добрый день. Начал осваивать Atmega16. МК перезагружается, в регистре MCUCSR нули. Пробовал менять код не помогает. В чем может быть причина?
    • By Ivan_Tyurin
      Здравствуйте. Недавно решил перейти с моделек в Протеус на реальный МК. Купил "Ready for AVR Board" ( http://www.mikroe.com/ready/avr/ ) с Atmega16. На плате есть уже встроенный FTDI FT232 и выход на USB для прошивки с помощью mikroBootLoader с сайта разработчиков.
      Установил драйвера с сайта FTDI. Плата, подключенная через USB, успешно отображается как подключение к COM порту.
      Всё по инструкции: http://www.mikroe.co...manual_v101.pdf . Запускаю mikroBootLoader, выбираю COM-порт. Жму RESET на схеме, жму Conntct в бутлоадере. Ответ: "Disconnected".
      Перебирал разные BaudRate. Ничего не помогает.
      Ноут ASUS X550 с Windows 8.1 x64.
      Подскажите, что может быть не так? Может какие другие загрузчики попробовать?
  • Сообщения

    • Всё это есть на Али. Закажите и через месяц он приедет к вам. Цена та же (с доставкой). А мистера уже давно на сайте не было...
    • И где я видел ЭТО - так вот каким Максим Галкин теперь стал ... неужто пол сменил?  
    • 17:00 Панама вошла в состав России 17:01 Израиль  вошел в состав России 17:02 Великобритания вошла в состав России 17:03 Швейцария вошла в состав России .... .... 17:30 Президент России не принял отставку правительства и поздравил сотрудников ГРУ завершением удачной операции , с получением очередных званий и наград.
    • и что - стало легче? Нужно сразу в АСЦ нести его, причем со справкой от психиатра, что   не есть видения, вызванные проблемами со здоровьем.
    • И 30лет назад техника была разного уровня. Но современная тенденция бизнеса сводится к обществу потребления. Народ приучают и приучили покупать нужное и не нужное. Раньше народ не имел возможности часто менять технику да и производители не могли (да и не было необходимости) насытить рынок. Китай всё перевернул. Тот китаец сказал со своей колокольни. Если они не будут продавать ширпотреб в таких количествах то они себя не прокормят. Хотя китай и умеет делать качественный продукт основной доход даёт ширпотреб. За китаем подтянулись и остальные производители. Вместо старых моделей покупаются новые. Таким образом конвейер работает без перебоя. И вообще, делать более надёжную технику стало не выгодно со времён Зингера. Первый опыт опробован с лампочкой Эдиссона. Производитель намеренно выпускал лампочки с уменьшенным сроком работы. Убили двух зайцев. С одной стороны прибыль а с другой "дискредитация" лампочки и продвижение газовых фонарей. С led лампами происходит нечто подобное. Причём качество обычных лампочек стало много хуже чтобы народ покупал дорогие сберегайки. А у многих (особенно в глубинке) работают ещё советские лампочки за 25копеек и старая бытовая техника. Современные пылесосы столько не работают. Всё начинается от хреновых подшипников и щёток до некачественных материалов шланга, корпуса. Давеча приходил чел с двумя самсунговскими моторами пылесосов. Надо было перепаять щётки с годовалого на десятилетний. У годовалого подшипники в хлам а у старого хоть бы хны.  Делал кап ремонт оригинальному макитовскому перфику. Написал список подшипников. Хозяин привёз китайские пятидесяти рублёвые, все люфтят. Сказал чтоб купил хорошие иначе ремонт нецелесобразен. Хозяин купил двойной комплект чтоб ещё заменить в новой такой же маките, но китайской. После замены всех подшипников от оригинального не отличить.  Вот сколько сталкиваюсь с дешёвым электро инструментом везде подшипники хреновые. Меняешь на хорошие и агрегат просто не узнать.
    • указано в паспорте на них.
×
×
  • Create New...