Страница 210 из 400
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Ср ноя 20, 2013 00:33:32
Black_Wolf
Ванюшка писал(а):
У меня почему-то "0" на выходе только в одном случае: PA3 - "1", PA4 - "1", PA5 - "0". Во всех остальных случаях PC0 - "1"
Если в коде есть "тупейшие" ошибки, не судите меня строго, это моя первая программа.

Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Ср ноя 20, 2013 14:37:29
ibiza11
вот так проще наверное в Вашем случае?
Код: Выделить всё
.equ Input = ((1<<PA3)|(1<<PA4)|(1<<PA5))
.equ Condition = ((1<<PA3)|(1<<PA4))
.equ Output = PORTC
loop:
in r16, PINA
andi r16, Input
cpi r16, Condition
breq set_to_zero
sbi Output, 0
rjmp loop
set_to_zero:
cbi Output, 0
rjmp loop
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Ср ноя 20, 2013 17:01:35
Ванюшка
Всем огромнейшее СПАСИБО. Я не правильно высчитывал таблицу истинности.
ibiza11 спасибо за код, в котором, я хотя многих инструкций еще не знаю и приемов не понимаю, т.к. я только-только начинающий, думаю разобраться.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Пт ноя 29, 2013 11:30:48
FreshMan
есть некая незамысловатая ф-ция
Код: Выделить всё
;*************************************************************************
; delay half period
; For I2C in normal mode (100kHz), use T/2 > 5us
; For I2C in fast mode (400kHz), use T/2 > 1.3us
;*************************************************************************
.stabs "",100,0,0,i2c_delay_T2
.stabs "i2cmaster.S",100,0,0,i2c_delay_T2
.func i2c_delay_T2 ; delay 5.0 microsec with 4 Mhz crystal
i2c_delay_T2: ; 4 cycles
rjmp 1f ; 2 "
1: rjmp 2f ; 2 "
2: rjmp 3f ; 2 "
3: rjmp 4f ; 2 "
4: rjmp 5f ; 2 "
5: rjmp 6f ; 2 "
6: nop ; 1 "
ret ; 3 "
.endfunc ; total 20 cyles = 5.0 microsec with 4 Mhz crystal
;*************************************************************************
что значат данные строки ?
Код: Выделить всё
.stabs "",100,0,0,i2c_delay_T2
.stabs "i2cmaster.S",100,0,0,i2c_delay_T2
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Пт ноя 29, 2013 12:18:44
Engineer_Keen
В AVR-ассемблере встроенном в студию (4) я таких директив не видел...
7.54 .stabd, .stabn, .stabs
Эти три директивы, начинающиеся с .stab, формируют символы (смотрите главу 5 "Символы") для использования их в символических отладчиках. Эти символы не входят в hash-таблицу as: на них не может быть как-либо ссылок в исходном файле
источник
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Пт ноя 29, 2013 12:41:41
FreshMan
почему в выше нриведенной ф-ции написано так
а не
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Пт ноя 29, 2013 12:54:20
Engineer_Keen
Фиг его знает, нужно читать хелп к этому ассемблеру. Может быть из-за того, что это какая-то функция (похожа на макрос в обычном AVR-ассемблере) и суффикс f стоит как указатель на то, что это не абсолютная метка, а метка в конкретно этой функции.
Короче нужно выяснить что это за ассемблер, а там видно будет...
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Пт ноя 29, 2013 15:18:22
BOB51
похоже на самодельно определенные макросы...
только вот явно не avrasm...
предположительно
rjmp 2f обращается к выполнению какого-то фрагмента 2f(1f,3f,4f,5f), которого в вышеприведенном тексте нету... а чего в тех фрагментах нарисовано, только их автору ведомо.
текущие метки 1: и иже сними отношение к 1f и остальным имеют через пока неведомый кусочек.
или определение "локальной метки" (у каждого компилятора по-своему)
А чего на самом деле только справка по тому компилятору поможет.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Пт ноя 29, 2013 15:26:23
Gudd-Head
Короче, Свежий ошибся веткой

Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Пт ноя 29, 2013 15:27:17
ploop
похоже на самодельно определенные макросы...
Я бы сказал больше похоже на листинг какого-то компилятора...
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Пн дек 02, 2013 20:36:42
tohafox
Помогите решить простые задачки на ассемблере (типо лабораторная работа)
1) Задать 9 однобайтовых чисел расположенных в EEPROM, начиная с адреса 0x0B05. Найти отрицательные элементы массива и записать их в ОЗУ начиная с адреса 0x0D99. Для адресации использовать индексные регистры.
2) Произвести вычисление следующего выражения R=4*x2*x3+x1^4-3*x3 операнды целые однобайтные числа находящиеся в ОЗУ, начиная с адреса 0x0220. Результат заносится в память, начиная с адреса 0x0228.
3) К порту B подключено 8 светодиодов. Необходимо включить 0 и 1 биты на 0,2 мс, выключить их на 0,1 мс, снова включить их на 0,3 мс и выключить.
По идее все элементарно...
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Пн дек 02, 2013 22:42:09
coredumped
tohafox писал(а):По идее все элементарно...
Я тоже так думаю.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Пн дек 02, 2013 22:57:14
SmarTrunk
tohafox
Напишите, что получилось, мы Вас поправим, если что.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Вт дек 03, 2013 22:00:31
ANALOG
Вообще, задание некорректно сформулировано:
Во-первых, не указано какой именно AVR используется - от этого зависит возможно ли использовать команду mul для умножения или нужно писать свою функцию для этого.
Во-вторых, не указана частота, на которой будет работать МК, а без этого в программе невозможно задать временные интервалы (можно задать интервалы в тактах, а уж сколько это будет миллисекунд - зависит от частоты)
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Вт дек 03, 2013 22:09:01
tohafox
Благодарю всех за помощь, особую благодарность выражаю pyzhman.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Пт дек 13, 2013 01:42:04
valera_sr
Доброго времени суток. Я пытаюсь разобраться с формированием временных интервалов. Я пытаюсь записать значение TCNT0 в R16 регистр, для последующего сравнения, но этого не происходит, счетчик работает до момента записи в temp и обнуляется. В регистре R16 ноль.
Собственно, не могу разобраться, где я накосячил. Контроллер attiny2313 AtmelStudio 6.1.2730
Код: Выделить всё
ldi temp, 0b0000001;
out TCCR0,temp; задаем предделитель
Start:
nop
nop
nop
nop
nop
nop
out TCNT0, temp; значение таймера записываем в R16
nop
rjmp Start;
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Пт дек 13, 2013 02:32:17
akl
valera_sr писал(а):Я пытаюсь разобраться с формированием временных интервалов. Я пытаюсь записать значение TCNT0 в R16 регистр
Для этого нужно
Сейчас Вы заносите 1 в TCNT0 в конце каждого цикла.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Пт дек 13, 2013 07:13:28
pyzhman
Вообще говоря, в байте восемь бит. Мелкий огрех, но тем не менее.
Раз уж вы запустили таймер, то может проще все сравнения делать в прерываниях от него? И зачем эти сравнения, если можно задать время прерывания?
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Пт дек 13, 2013 08:07:44
akl
Замечу, что
или
студией (3.21 и 4.19) понимаются одинаково.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Пт дек 13, 2013 14:25:15
Gudd-Head