Обсуждалось уже. 1. КАК тогда он будет дальше программить??? 2. В конце концов, есть много переводчиков.Engineer_Keen писал(а):Что ж вы сразу издеваться, может у человека с английским плохо
Ассемблер (ASM) для AVR в вопросах и ответах
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
- Реклама
Прямо скажем - никак. Переболеет и пройдет.Gudd-Head писал(а):1. КАК тогда он будет дальше программить???
Их же еще понять надо.Gudd-Head писал(а):2. В конце концов, есть много переводчиков.
Docendo discimus
ну и Евстифеев уже постарался, для тех у кого с аглицким (как у меня) напряг ("читаю и перевожу со словарем", ну можно еще с гуглемGudd-Head писал(а): В конце концов, есть много переводчиков.
- Сообщения: 26
- Зарегистрирован: Пн июн 09, 2008 23:40:31
- Сообщения: 8
- Зарегистрирован: Пт июл 09, 2010 10:55:13
затупил
как инвертировать значение в РОН? например, r16?
как инвертировать значение в РОН? например, r16?
- Реклама
- Сообщения: 8
- Зарегистрирован: Пт июл 09, 2010 10:55:13
- Сообщения: 8
- Зарегистрирован: Пт июл 09, 2010 10:55:13
спасибоА даташит на что?
не просек сразу логику, что инвертировать, тоже самое 0xFF - R
В принципе, уже сделал в студии с исключающим или
Код: Выделить всё
ldi r16, 0b11101100
ldi r17, 0b11111111
eor r16, r17
- Сообщения: 26
- Зарегистрирован: Ср сен 22, 2010 23:17:40
привет любителям помяукать. при компиляции такая ошибка, что не так у меня? подскажите плз
- Вложения
-
- ошибка.png
- (26.68 КБ) 312 скачиваний
в файле m8def.inc закоментируй строку:
и полегчает 
Код: Выделить всё
.def OR =3это не его вина, я тоже с таким сталкивался, когда в комплекте с прогой идут *.inc с такой вот фигней, зачем это сделано - хз.akl писал(а):OR не может быть ничем, кроме команды
- Сообщения: 26
- Зарегистрирован: Ср сен 22, 2010 23:17:40
мне, по идее, все три порта необходимо настроить на вывод, (светодиоды висят) при за комментировании или замене or на or0 ошибка пропадает, но тогда мега работать отказывается, горит один светодиод и все.
причем здесь m8def.inc и твой код
а если не коментить OR, ты как проверяешь что работает, если компиляция не проходит.chezetmobile писал(а):мне, по идее, все три порта необходимо настроить на вывод, (светодиоды висят) при за комментировании или замене or на or0 ошибка пропадает, но тогда мега работать отказывается, горит один светодиод и все.
ищи косяк в своем коде.
ну или хотя бы сюда его выложи, кто-нибудь да подскажет.
зы: это принципиально использовать tavrasm? есть же авр-студия, там же и отладчик в куче.
- Сообщения: 26
- Зарегистрирован: Ср сен 22, 2010 23:17:40
я в этом деле новичек. учился из обучалки сайта, поэтому tavrasm, ток с ним получается работать.
вот примерный код
.include "D:\avr\avrasm\appnotes\m8def.inc"
.def Temp=R16
.def Temp1=R17
.def Temp2=R18
.def Temp3=R19
.def Temp4=R20
.def Temp5=R21
.def Temp6=R22
.def Temp7=R23
.def Temp8=R24
.def Temp9=R25
.cseg
.org 0
ldi Temp,low(RamEnd) ;инициализация стека
out SPL,Temp
ldi Temp,0b11111111 ;настройка портов
out DDRB,Temp
ldi Temp5,0b11111111 ;настройка портов
out DDRD,Temp5
ldi Temp8,0b1111111 ;настройка портов
out DDRC,Temp5
LOOP:
ldi Temp,0b00000001 ;загрузка для B
ldi Temp5,0b10000000 ;загрузка для D
ldi Temp8,0b1010101 ;загрузка для c
rcall Delay ;вызов подпрограммы задержки
ldi Temp,0b10000000 ;загрузка для B
ldi Temp5,0b00000001 ;загрузка для D
ldi Temp8,0b1010101 ;загрузка для c
rcall Delay ;вызов подпрограммы задержки
ldi Temp,0b10000000 ;загрузка для B
ldi Temp5,0b00000100 ;загрузка для D
ldi Temp8,0b1010101 ;загрузка для c
rcall Delay ;вызов подпрограммы задержки
ldi Temp,0b00111000 ;загрузка для B
ldi Temp5,0b00101110 ;загрузка для D
ldi Temp8,0b1010101 ;загрузка для c
rcall Delay ;вызов подпрограммы задержки
ldi Temp,0b01000110 ;загрузка для B
ldi Temp5,0b00110000 ;загрузка для D
ldi Temp8,0b1010101 ;загрузка для c
rcall Delay ;вызов подпрограммы задержки
RJMP LOOP
Delay:
out PortB,Temp
out PortD,Temp5
out Portc,Temp8
ldi Temp1,10
ldi Temp2,10
ldi Temp3,4
Loop2: dec Temp1
brne Loop2
dec Temp2
brne Loop2
dec Temp3
brne Loop2
RET
ret
вот примерный код
.include "D:\avr\avrasm\appnotes\m8def.inc"
.def Temp=R16
.def Temp1=R17
.def Temp2=R18
.def Temp3=R19
.def Temp4=R20
.def Temp5=R21
.def Temp6=R22
.def Temp7=R23
.def Temp8=R24
.def Temp9=R25
.cseg
.org 0
ldi Temp,low(RamEnd) ;инициализация стека
out SPL,Temp
ldi Temp,0b11111111 ;настройка портов
out DDRB,Temp
ldi Temp5,0b11111111 ;настройка портов
out DDRD,Temp5
ldi Temp8,0b1111111 ;настройка портов
out DDRC,Temp5
LOOP:
ldi Temp,0b00000001 ;загрузка для B
ldi Temp5,0b10000000 ;загрузка для D
ldi Temp8,0b1010101 ;загрузка для c
rcall Delay ;вызов подпрограммы задержки
ldi Temp,0b10000000 ;загрузка для B
ldi Temp5,0b00000001 ;загрузка для D
ldi Temp8,0b1010101 ;загрузка для c
rcall Delay ;вызов подпрограммы задержки
ldi Temp,0b10000000 ;загрузка для B
ldi Temp5,0b00000100 ;загрузка для D
ldi Temp8,0b1010101 ;загрузка для c
rcall Delay ;вызов подпрограммы задержки
ldi Temp,0b00111000 ;загрузка для B
ldi Temp5,0b00101110 ;загрузка для D
ldi Temp8,0b1010101 ;загрузка для c
rcall Delay ;вызов подпрограммы задержки
ldi Temp,0b01000110 ;загрузка для B
ldi Temp5,0b00110000 ;загрузка для D
ldi Temp8,0b1010101 ;загрузка для c
rcall Delay ;вызов подпрограммы задержки
RJMP LOOP
Delay:
out PortB,Temp
out PortD,Temp5
out Portc,Temp8
ldi Temp1,10
ldi Temp2,10
ldi Temp3,4
Loop2: dec Temp1
brne Loop2
dec Temp2
brne Loop2
dec Temp3
brne Loop2
RET
ret
начнем с того что у тебя лишний RET в конце.
остальное ща гляну.
1. инициализация стека! у М8 SPH:SPL ты инициализируешь только мл.байт
поэтому после первого же вызова п/п ты попадаешь в служебную область мк.
2. такой стиль написания программ носит имя - БЫДЛОКОД, как новичку тебе простительно, но если хочешь научиться чем-нибудь, а не просто светиками поморгать, следует себя сразу приучать к правилам хорошего тона
http://easyelectronics.ru/category/avr-uchebnyj-kurs
http://arv.radioliga.com/content/section/6/49/
в местной обучалке много косяков об этом уже не раз писали.
остальное ща гляну.
1. инициализация стека! у М8 SPH:SPL ты инициализируешь только мл.байт
поэтому после первого же вызова п/п ты попадаешь в служебную область мк.
2. такой стиль написания программ носит имя - БЫДЛОКОД, как новичку тебе простительно, но если хочешь научиться чем-нибудь, а не просто светиками поморгать, следует себя сразу приучать к правилам хорошего тона
http://easyelectronics.ru/category/avr-uchebnyj-kurs
http://arv.radioliga.com/content/section/6/49/
в местной обучалке много косяков об этом уже не раз писали.
- Сообщения: 26
- Зарегистрирован: Ср сен 22, 2010 23:17:40
Спасибо за рекомендации. Исправил, все работает. буду учить "правила хорошего тона"
зы: не хватает кнопочки, типа спасибо. нужно как то людей благодарить
зы: не хватает кнопочки, типа спасибо. нужно как то людей благодарить
Обращайся если что, тут народ в основном доброжелательный.
(ко мне это не относится
)
(ко мне это не относится
ldi Temp8,0b1111111 ;настройка портов
out DDRC,Temp5
Внимательнее надо быть при копипасте!
out DDRC,Temp5
Внимательнее надо быть при копипасте!




