Форум myROBOT.ru » Лаборатория » Микроконтроллеры » atmega8+Assembler+WinAVR

Страниц (1): [1]
 

1. Dmitry_84 - 27 Апреля, 2013 - 20:34:04 - перейти к сообщению
Здравствуйте уважаемые форумчане. Я залил с помощью программатора "пяти проводок" в атмегу8 программу написанную на языке программирования C. у меня всё отлично заработало. Теперь я хочу проделать тоже самое, но на ассемблере. Текст программы на ассемблере у меня есть, правдо он очень сложный. Не могли бы Вы рассказать как с помощью WinAVR влить его в атмегу8
код на ассемблере
CODE:

;********************************************************************
; Учебная программа Led_1.asm
; Мигание светодиода на RB0
; 8,0 мгц
;********************************************************************
.include "m8def.inc" ; Header files
.def temp=r16 ; Временный регистр
.equ Led=0 ; Светодиод
;********************************************************************
; Инициализация контроллера
;********************************************************************
.org 0x0000 ; Вектор сброса
rjmp reset ; процессора
;********************************************************************
reset:
;********************************************************************
; Установка указателя стека
;********************************************************************
ldi temp, low(RAMEND)
out SPL, Temp
ldi temp, high(RAMEND)
out SPH, Temp
;********************************************************************
; Настройка портов
;********************************************************************
ldi temp, 0b11111111 ; Все порты PВ
out DDRB, temp ; на выход
;********************************************************************
; Основная программа
;********************************************************************
main: sbi PORTB, Led ; включить Led
rcall Pause ; пауза 0,5 сек
nop ; выравнивающие
nop ; нопы
cbi PORTB, Led ; выключить Led
rcall Pause ; пауза 0,5 сек
rjmp main ; заново
;********************************************************************
; Пауза 0,5 сек
;********************************************************************
Pause: ldi r17, 21
ldi r18, 75
ldi r19, 187
delay: dec r19
brne delay
dec r18
brne delay
dec r17
brne delay
nop
nop
ret
;********************************************************************

только не отсылайте к книгам Мне нужен работающий пример, который вдохновитель бы меня на дальнейшие изучение.
Заранее большое спасибо всем тем кто откликнется.
2. Dimka_18rus - 29 Апреля, 2013 - 21:58:31 - перейти к сообщению
ассемблер лучше компилировать под AVR Studio, последующий НЕХ файл заливать через любой программатор. если заинтересовал именно WinAVR, тут вроде расписано http://www.myrobot.ru/stepbystep/mc_makefile.php . Если микроконтроллерами заинтересовались, лучше собрать программатор посложнее, варианты тут: http://radiokot.ru/lab/controller/29/
Сам пользуюсь программатором PROTTOS. Удобно, когда прошивать приходится с ноута.
PS: в данной программе не нужны выравнивающие нопы, подпрограмма задержки делает тоже самое.
3. Dmitry_84 - 02 Мая, 2013 - 21:52:26 - перейти к сообщению
у меня установлен WinAVR. в папке своего проекта я делаю два файла my_pro_asm.asm и Makefile. эти два я прикрепил сюда в форум. Далее я открываю my_pro_asm.asm в natepad2 и делаю tools-> make clear. всё проходит без ошибок. далее я нажимаю make oll и в окне лога появляется надпись:
CODE:

> "make.exe" all

-------- begin --------
avr-gcc (WinAVR 20100110) 4.3.3
Copyright (C) 2008 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

make.exe: *** No rule to make target `my_pro_asm.elf', needed by `elf'. Stop.

> Process Exit Code: 2
> Time Taken: 00:01



подскажите пожалуйста в чём проблема. Вторую неделю мучаюсь
4. mihail - 03 Мая, 2013 - 10:32:26 - перейти к сообщению
Если хотите работать с ассемблером, устанавливайте AVR Studio и не мучайтесь. Если хотите использовать ассемблер в GCC, то RTFM Улыбка http://we.easyelectronics.ru/AVR...i-v-avr-gcc.html http://we.easyelectronics.ru/AVR...nom-proekte.html
5. cjA - 03 Мая, 2013 - 14:20:14 - перейти к сообщению
я make не понимаю, и не вижу нужды, поэтому что он там пишет переписываю в *.ват или *.sh (если в Лынукс) какой-нибудь и переписываю все построчно что он там предлагает.Dimka_18rus, вовсе нет , пишите gcc -c ля-ля.asm , получаете ля-ля.o , прикрепляете его в линковке.