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.
      Подскажите, что может быть не так? Может какие другие загрузчики попробовать?
  • Сообщения

    • Vaso по моему на эту тему высказывался весьма конкретно. Вот я и запомнил. Да и в схемах усилителей они часто попадаются. Думаю тоже не с проста
    • Всё правильно,залез в законы и понимаешь какой бред вы все несете,полнейший Рубли как рубли ,вам  осознанным может и фантики дают,всеравно вы их не признаете,а нам нормальные
    • Ничего мы не рекламируем. Просто сразу видно не осознанного гражданина РФ, который гражданином не может являться, согласно №62-ФЗ. Следовательно является физлицом. Которому фирма РФия платит отнюдь не пенсию, а пособие на дожитие, при чём социальное пособие. Да и ведмедев не звиздел, когда говорил, что денег нету. Бибарики- не являются деньгами, а лишь признаком существования банка, и кода валюты не имеют. Все ответы и ЦБ РФ, который отношения к РФ не имеет, и не имел- всё это есть. Фирма- секта РФ просто намеренно вводит своих адептов в заблуждение. Если бы хоть один не! гражданин РФ, залез бы хотя бы в частичку ихних законов- он бы, (если конечно мозг остался) конечно понял бы весь чудовищный обман этой секты. Но, кому не дано- тому и оставаться бараном. И ведь не так это и сложно?
    • С этого момента подробней,плиз.Лучшего проекта,который выше,за последние...лет...5...не встречал. Если он и это не осилит,предоставленное на "блюдечке с золотой каемочкой"...Кто он после этого....Правильно...
    • Охренительно вы придумали ,хочешь рф деньги получать можно,но налоги за это платить немнадо,так одел МАСКУ ,получил пенсию ,отвернулся снял маску,это как детская игра , ручонки сложили домиком над головой , меня не трогать я в домике,.страна петросяния, смехопанорама отдыхает. Сами то понимвете какой вы бред рекламируете? Ну 15 суток точно получит , если не осознал Думаю каждый мэр первым делом на сутки,вторым психиатрическую экспертизу  Кот вот как ты считаешь -к тебе придут в офис на углу там где то в москве и ногами нараспашку исключительно пинком откроют двери,ты ему чай кохфе прежложишь или нахфер пошлёшь? Кстати,когда там прием будут проводить ,хочу зайти ,поеду тут скоро в московию по работе Или всеже ты cnuздeл брат про здания?
    • По  часам. При не подключенных часах на индикаторе 16-51. Подключаю часы, время обнуляется 00-00. Попробовал ставить другие часы- то же самое.Но часы не идут. Попробовал несколько б/у кварцев поменять- результата нет. Что это может быть?  З.Ы. Попробую купить новый кварц, часов все равно в ближайшей округе нет.
×
×
  • Create New...