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

Поиск

Показаны результаты для тегов 'atmega128'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип контента


Форумы

  • Сайт и форум
    • Новости и обсуждения сайта и форума
    • Другие известные форумы и сайты по электронике
    • В помощь начинающему
    • International Forum
    • Образование в области электроники
    • Обучающие видео-материалы и обмен опытом
  • Cистемный уровень проектирования
    • Вопросы системного уровня проектирования
    • Математика и Физика
    • Операционные системы
    • Документация
    • Системы CAD/CAM/CAE/PLM
    • Разработка цифровых, аналоговых, аналого-цифровых ИС
    • Электробезопасность и ЭМС
    • Управление проектами
    • Нейронные сети и машинное обучение (NN/ML)
  • Программируемая логика ПЛИС (FPGA,CPLD, PLD)
    • Среды разработки - обсуждаем САПРы
    • Работаем с ПЛИС, области применения, выбор
    • Языки проектирования на ПЛИС (FPGA)
    • Системы на ПЛИС - System on a Programmable Chip (SoPC)
    • Методы и средства верификации ПЛИС/ASIC
  • Цифровая обработка сигналов - ЦОС (DSP)
    • Сигнальные процессоры и их программирование - DSP
    • Алгоритмы ЦОС (DSP)
  • Микроконтроллеры (MCU)
    • Cредства разработки для МК
    • ARM
    • RISC-V
    • AVR
    • MSP430
    • Все остальные микроконтроллеры
    • Отладочные платы
  • Печатные платы (PCB)
    • Разрабатываем ПП в САПР - PCB development
    • Работаем с трассировкой
    • Изготовление ПП - PCB manufacturing
  • Сборка РЭУ
    • Пайка и монтаж
    • Корпуса
    • Вопросы надежности и испытаний
  • Аналоговая и цифровая техника, прикладная электроника
    • Вопросы аналоговой техники
    • Цифровые схемы, высокоскоростные ЦС
    • RF & Microwave Design
    • Метрология, датчики, измерительная техника
    • АВТО электроника
    • Умный дом
    • 3D печать
    • Робототехника
    • Ремонт и отладка
  • Силовая электроника - Power Electronics
    • Силовая Преобразовательная Техника
    • Обратная Связь, Стабилизация, Регулирование, Компенсация
    • Первичные и Вторичные Химические Источники Питания
    • Высоковольтные Устройства - High-Voltage
    • Электрические машины, Электропривод и Управление
    • Индукционный Нагрев - Induction Heating
    • Системы Охлаждения, Тепловой Расчет – Cooling Systems
    • Моделирование и Анализ Силовых Устройств – Power Supply Simulation
    • Компоненты Силовой Электроники - Parts for Power Supply Design
  • Интерфейсы
    • Форумы по интерфейсам
  • Поставщики компонентов для электроники
    • Поставщики всего остального
    • Компоненты
  • Майнеры криптовалют и их разработка, BitCoin, LightCoin, Dash, Zcash, Эфир
    • Обсуждение Майнеров, их поставки и производства
  • Дополнительные разделы - Additional sections
    • Встречи и поздравления
    • Ищу работу
    • Предлагаю работу
    • Куплю
    • Продам
    • Объявления пользователей
    • Общение заказчиков и потребителей электронных разработок

Поиск результатов в...

Поиск контента, содержащего...


Дата создания

  • Начало

    Конец


Дата обновления

  • Начало

    Конец


Фильтр по количеству...

Регистрация

  • Начало

    Конец


Группа


AIM


MSN


Сайт


ICQ


Yahoo


Jabber


Skype


Город


Код проверки


skype


Facebook


Vkontakte


LinkedIn


Twitter


G+


Одноклассники

Найдено: 0 результатов

  1. Добрый день , возникла проблема чтобы запрограммировать Atmega128, код программы есть с описанием .include "m128def.inc" .def tmp = r16 .def r_zero = r17 .def t_l = r23 .def t_h = r24 .equ kn0 = 0 .equ kn1 = 1 .equ inb = 5 .equ t1b = 6 .equ outb = 7 .cseg .org 0 rjmp RESET // безусловный переход на RESET .org OC1Aaddr rjmp TMR1_COMPA // безусловный переход на TMR1_COMPA .org OC1Baddr reset: ldi tmp,high(RAMEND) // установить high(RAMEND) в младший байт out SPH,tmp // записать единицы в порт ldi tmp,low (RAMEND) // установить low (RAMEND) в младший байт out SPL,tmp // записать нули в порт // 0,1,5,6 - вход, 7 - выход ldi tmp,0b10000000 // установить начальное значение out DDRD,tmp // линии порта D - входы ldi tmp,$FF // Запись содержимого регистра tmp в ячейку памяти out PORTD,tmp // Вывод содержимиго tmp в порт В // программирование таймера 1 //COMPA //WGM12, CS0-CS2 ldi tmp,(1<<WGM12) | 001 // определяет режим работы таймера T1 out TCCR1B,tmp // записать значение tmp в 8-битный регистр TCCR1B ldi tmp,0 //запись в регистр счёта 0 out TCCR1A,tmp // записать значение tmp в 8-битный регистр TCCR1A //первое значение COMPA ldi tmp,0 //запись в регистр счёта 0 out OCR1AH,tmp / / запись значения tmp в 16-битный регистр OCR1AH ldi tmp,10 //запись в регистр счёта 10 out OCR1AL,tmp // запись значения tmp в 16-битный регистр OCR1AL // программирование таймера 3 // обычный счет // CS0-CS2 ldi tmp,001 //запись в регистр счёта 001 sts TCCR3B,tmp // записывает содержимое регистра tmp в TCCR3B ldi tmp,0 //запись в регистр счёта 10 sts TCCR3A,tmp // записывает содержимое регистра tmp в TCCR3A ldi tmp, (1<<OCIE1A) // прерывание 3-го таймера по совпадению с А out TIMSK, tmp // настраивание прерывания по переполнению sei // разрешить прерывания clr r_zero // очистить регистр r_zero m1: //ожидание 1 sbic PIND,inb // Входной сигнал равен 0 jmp m1 // безусловный переход на m1 //включение сигнала sbi PORTD,outb //запуск таймера формирования out TCNT1H, r_zero // записывает содержимое регистра r_zero в TCNT1H out TCNT1L, r_zero // записывает содержимое регистра r_zero в TCNT1L //запуск таймера измерения sts TCNT3H, r_zero // записывает содержимое регистра r_zero в TCCR3H sts TCNT3L, r_zero// записывает содержимое регистра r_zero в TCCR3L //ожидание 0 m2: sbis PIND,inb // Пропустить следующую команду если установлен бит 0 в Порте D jmp m2 // безусловный переход на m2 //выключение таймера измерения //------------------------ lds t_l,TCNT3L // Загрузить t_l содержимым SRAM по адресу TCNT3L lds t_h,TCNT3H // Загрузить t_h содержимым SRAM по адресу TCNT3H jmp m1 // безусловный переход на m1 TMR1_COMPA: //выключение сигнала cbi PORTD,outb // очистить outb в порте D //запись длительности ldi tmp,0 // задаётся параметр формируемого размера импульса записывает в регистр tmp значение 0 sub t_l,tmp // вычитает из t_l значение регистра tmp вычитает записанное число регистра по адресу TCNT3L(t_l) и вычитает из него 0,начало импульса ldi tmp,10 // задаётся параметр формируемого размера импульса записывает в регистр tmp значение 10 sbc t_h,tmp // вычитает страший байт с переносом из t_l значение регистра tmp вычитает записанное число регистра по адресу TCNT3H(t_h) и вычитает из него 10,конец импульса out OCR1AH,t_h // записывает содержимое регистра t_h в OCR1AH записывается значение выполненное командой sbc t_h,tmp out OCR1AL,t_l // записывает содержимое регистра t_l в OCR1AL записывается значение выполненное командой sbc t_l,tmp reti // выполняет возврат из подпрограммы и устанавливает флаг общего разрешения прерываний В данной программе выдаётся прямоугольный импульс по заднему фронту, картинка в прикрепе, но в данном коде работает конечный код некорректно //запись длительности ldi tmp,0 // задаётся параметр формируемого размера импульса записывает в регистр tmp значение 0 sub t_l,tmp // вычитает из t_l значение регистра tmp вычитает записанное число регистра по адресу TCNT3L(t_l) и вычитает из него 0,начало импульса ldi tmp,10 // задаётся параметр формируемого размера импульса записывает в регистр tmp значение 10 sbc t_h,tmp // вычитает страший байт с переносом из t_l значение регистра tmp вычитает записанное число регистра по адресу TCNT3H(t_h) и вычитает из него 10,конец импульса out OCR1AH,t_h // записывает содержимое регистра t_h в OCR1AH записывается значение выполненное командой sbc t_h,tmp out OCR1AL,t_l // записывает содержимое регистра t_l в OCR1AL записывается значение выполненное командой sbc t_l,tmp reti // выполняет возврат из подпрограммы и устанавливает флаг общего разрешения прерываний уже несколько раз пересматривал , но так и не могу найти ошибку. Я думаю ошибка именно тут, т.к. код программы выдаёт выдаёт импульс(синий) некорректного размера или слишком маленький или слишком большой, а должен T/2
  2. Здравствуйте. Выполняю: 1) Напишу программу на C++. Компиляторы: CodeBlocks - для консоли, C++Builder 6 - для приложений на форме; 2) Черчу чертежи в "Компас-3D" версий v12 LT и v16. Для проектов попроще или средней сложности: 1) Напишу программу на Delphi 7, Turbo Pascal, Pascal ABC.NET; 2) Напишу программу на C++ для микроконтроллеров AVR: ATMega128, ATMega328Pи т.д.3) Напишу простую программу на C#, т.к. там я начинающий. 4) +Помощь по математике, физике и радиотехнике для студентов и школьников в силу своих возможностей. Цена договорная. Возможна предоплата 30%. Оплата на карточку. Уважаемые заказчики, пишите мне на почту: [email protected]
×
×
  • Создать...