Ассемблер (ASM) для AVR в вопросах и ответах

Обсуждаем контроллеры компании Atmel.
Ответить
Поставщик валерьянки для Кота
Сообщения: 1995
Зарегистрирован: Ср май 11, 2011 21:37:45
Откуда: Цветочный город

Сообщение Мастер Ломастер »

ciph писал(а):хм, допустим инициализируем ацп, выставляем биты на 1-й канал. Вызывается прерывание, данные с 1-го канала очучаются в ADCL, ADCH и выводятся на индикатор. Как быть со вторым каналом, что бы данные попали уже на другой индикатор? делаю вольтамперметр, вот и заморачиваюсь
я фигею... найдите 3 отличия со сказанным вами же:
ciph писал(а):инициализируем ацп, выставляем биты на 2-й канал. Вызывается прерывание, данные с 2-го канала очучаются в ADCL, ADCH и выводятся на 2-й индикатор.
:)))
битва с дураками проиграна, победители торжествуют. слава победителям!
Контактная информация:
Реклама
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1334
Зарегистрирован: Ср ноя 30, 2011 18:25:18

Сообщение atac13 »

Приветствую всех КОТОВ1

Прошу помощи у опытных И ЗАМАТЕРЕЛЫХ КОТОВ!
Я только начал изучать программирование и АВР СТУДИО,делаю первые шаги,учусь писать простенькие проги ,юзаю примеры,так что не смейтесь над моими детскими вопросами! :shock:

теперь собственно и вопрос.
написал простенькую прогу -мигалку для меги8А,и когда компелирую ,-такая ошибка

G:\AVR PROECT\migalka\2\2.asm(1): error: Cannot find include file: ATmega8Adef.inc

Посмотрите как я написал и подскажите где я накасячил??? :dont_know:
1.asm
заодно ещё ,пожалуйста скинте ссылку где найти курс обучалки как писать проги на ассемблере ,с примерами,описаниями команд ,регистров,ну в общем то по ЧЁМ ВЫ САМИ УЧИЛИСЬ!

Спасибо всем кто поможет начинающему котёнку :beer:
Реклама
Модератор
Аватара пользователя
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Сообщение ploop »

Замените .include "ATmega8aAdef.inc" на .include "ATmega8def.inc"
8А это новая модификация восьмой меги, по коду полностью совместимы, поэтому файлы те же, что и для восьмой.

Курс: http://easyelectronics.ru/category/avr-uchebnyj-kurs
Друг Кота
Аватара пользователя
Сообщения: 20093
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Сообщение Gudd-Head »

atac13 писал(а):G:\AVR PROECT\migalka\2\2.asm(1): error: Cannot find include file: ATmega8Adef.inc
Вместо

Код: Выделить всё

.include "ATmega8aAdef.inc"
Напишите

Код: Выделить всё

.include "m8def.inc"
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Аватара пользователя
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск

Сообщение pyzhman »

Стек инициализируйте. Иначе работать не будет.
Docendo discimus
Контактная информация:
Реклама
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1334
Зарегистрирован: Ср ноя 30, 2011 18:25:18

Сообщение atac13 »

Gudd-Head писал(а):
atac13 писал(а):G:\AVR PROECT\migalka\2\2.asm(1): error: Cannot find include file: ATmega8Adef.inc
Вместо

Код: Выделить всё

.include "ATmega8aAdef.inc"
Напишите

Код: Выделить всё

.include "m8def.inc"
НАПИСАЛ КАК ВЫ ПОСОВЕТОВАЛИ И ВОТ ЧТО!????
Snap_2012.01.18_11h41m32s_002.png
(38.06 КБ) 466 скачиваний
Реклама
Друг Кота
Аватара пользователя
Сообщения: 20093
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Сообщение Gudd-Head »

atac13 писал(а):НАПИСАЛ КАК ВЫ ПОСОВЕТОВАЛИ И ВОТ ЧТО!????
Snap_2012.01.18_11h41m32s_002.png
Спокойнее, спокойнее. Я ж не знаю что у вас в "...\AVR Tools\AvrAssembler\Appnotes".
UPD: К тому же, дело не в этом.
Последний раз редактировалось Gudd-Head Ср янв 18, 2012 11:50:28, всего редактировалось 1 раз.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Модератор
Аватара пользователя
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Сообщение ploop »

Команда LDI работает со старшими регистрами - R16-R32. А у вас R1-R3 используется. Исправьте.
И стек инициализируйте, т.к. используются подпрограммы.
Друг Кота
Аватара пользователя
Сообщения: 20093
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Сообщение Gudd-Head »

ploop писал(а):Команда LDI работает со старшими регистрами - R16-R32. А у вас R1-R3 используется. Исправьте.
И стек инициализируйте, т.к. используются подпрограммы.
Да, atac13, и почитайте "Микроконтроллеры AVR семейства Tiny Mega фирмы Atmel" А.В.Евстифеев про команды если ещё не скачали.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Поставщик валерьянки для Кота
Сообщения: 1995
Зарегистрирован: Ср май 11, 2011 21:37:45
Откуда: Цветочный город

Сообщение Мастер Ломастер »

ploop писал(а):Команда LDI работает со старшими регистрами - R16-R32.
можно даже уточнить так: любая команда, мнемоника которой оканчивается на i, работает со старшей половиной регистров, т.е. R16-R32.
битва с дураками проиграна, победители торжествуют. слава победителям!
Контактная информация:
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1334
Зарегистрирован: Ср ноя 30, 2011 18:25:18

Сообщение atac13 »

не ребята я спокоен!просто такая простая прога а не компелируеться :oops:

я исправил посмотрите ,правильно или нет??? :dont_know:
1.asm
Друг Кота
Аватара пользователя
Сообщения: 20093
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Сообщение Gudd-Head »

Мастер Ломастер писал(а):можно даже уточнить так: любая команда, мнемоника которой оканчивается на i, работает со старшей половиной регистров, т.е. R16-R32.
reti, brmi, cbi, cli, sbi, sei, :)
atac13 писал(а):я исправил посмотрите ,правильно или нет???
Дык, компилируется или нет???
Последний раз редактировалось Gudd-Head Ср янв 18, 2012 12:07:41, всего редактировалось 1 раз.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Поставщик валерьянки для Кота
Сообщения: 1995
Зарегистрирован: Ср май 11, 2011 21:37:45
Откуда: Цветочный город

Сообщение Мастер Ломастер »

Gudd-Head писал(а):
Мастер Ломастер писал(а):можно даже уточнить так: любая команда, мнемоника которой оканчивается на i, работает со старшей половиной регистров, т.е. R16-R32.
reti :)
а где у этой команды операнды? ;) но согласен, мое определение следует дополнить: "любая команда с операндами"
битва с дураками проиграна, победители торжествуют. слава победителям!
Контактная информация:
Модератор
Аватара пользователя
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Сообщение ploop »

Вот пример инициализации стека

Код: Выделить всё

  ldi r16, high(RAMEND)
  out SPH,r16 
  ldi r16, low(RAMEND)
  out SPL,r16 
GP1
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград

Сообщение GP1 »

инициалирован только SPL а как же SPH? а у м8 ramend - 2х байтовая константа вот и не компилится :tea:

как всегда... опередили :write:
Последний раз редактировалось GP1 Ср янв 18, 2012 12:09:50, всего редактировалось 1 раз.
Чем дальше, тем больше становлюсь занудой...
Изображение
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 20093
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Сообщение Gudd-Head »

Мастер Ломастер писал(а):а где у этой команды операнды? ;) но согласен, мое определение следует дополнить: "любая команда с операндами"
cbi и sbi сбрасывают/устанавливают биты регистров 0...32, а не только старших :)
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Поставщик валерьянки для Кота
Сообщения: 1995
Зарегистрирован: Ср май 11, 2011 21:37:45
Откуда: Цветочный город

Сообщение Мастер Ломастер »

Gudd-Head писал(а):
Мастер Ломастер писал(а):а где у этой команды операнды? ;) но согласен, мое определение следует дополнить: "любая команда с операндами"
cbi и sbi сбрасывают/устанавливают биты регистров 0...32, а не только старших :)
эти команды работают с РЕГИСТРАМИ ВВОДА-ВЫВОДА, а не регистрами ОБЩЕГО НАЗНАЧЕНИЯ, дотошный вы какой :))) очередное уточнение?
битва с дураками проиграна, победители торжествуют. слава победителям!
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 3872
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Сообщение Engineer_Keen »

Ну хорошо хоть BRMI сюда не вписали :)))

А, все-таки вписали на предыдущей станице :facepalm:
Последний раз редактировалось Engineer_Keen Ср янв 18, 2012 12:25:06, всего редактировалось 1 раз.
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1334
Зарегистрирован: Ср ноя 30, 2011 18:25:18

Сообщение atac13 »

ВСЁ РЕБЯТА Я ПОПЛЫЛ!мозги задымились! :oops: :dont_know:

я же начинающий,и не успеваю за ВАМИ !

ПОЖАЛУЙСТА!просто исправте в программе что надо, и выложите как ВЫ бы составили! НА АССЕМБЛЕРЕ!
а я уже потом буду вдумчиво разбираться!
СПАСИБО ВСЕМ ЗА ПОМОЩЬ! :beer:
Модератор
Аватара пользователя
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Сообщение ploop »

Задержку тоже поправил

Код: Выделить всё

            .include "m8def.inc"
            .def x1=r16
            .def x2=r17
            .def x3=r18
            .def temp=r19
            
            ldi x1, high(RAMEND)
            out SPH,x1
            ldi x1, low(RAMEND)
            out SPL,x1 
            
            ldi temp,0b00000011      ; настройка порта PB0,PB1 -на вывод
            out ddrb,temp
            
blink:      cbi portb,1             ;VD2 гаснет
            sbi portb,0             ;VD1 загорается
            rcall del_500           ;задержка 0.5 сек
            sbi portb,1             ;VD2 загорается
            cbi portb,0              ;VD1 гаснет
            rcall del_500           ;задержка 0.5 сек
            rjmp blink              ;зацикливаем моргание светодиодами
            
del_500:
  ldi x3,179
  ldi x2,30
  ldi x1,30
lp1:
  dec x1
  brne lp1
  dec x2
  brne lp1
  dec x3
  brne lp1
ret
Ответить

Вернуться в «AVR»