[an error occurred while processing this directive]
И в железе, и в Студии (4.10). Записать в еепром успевает. Только я в тегах не умею, ничего если так?
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено MadMazy 24 апреля 2006 г. 12:30
В ответ на: А "ресетится" - это как, в железе или в Студии? Давай весь код сюда в тегах <pre> и </pre>, вставь пробел перед каждым "<<" отправлено =AVR= 24 апреля 2006 г. 12:07


.include "m128def.inc"

.equ del1=1

.def temp = r16
.def temp2 = r17
.def acc = r18
.def cusb = r20

;==================макросы========================

.macro RByte ;чтение байта из порта F в r0
;rd:
;sbic PINB,7
;rjmp rd
sbi PORTB,4
in cusb,PINF
nop
cbi PORTB,4
.endmacro

.macro ONLEDS ; включение обоих светодиодов
ldi temp, 0
sts PORTG, temp
.endmacro

.macro ONUSB
ldi temp, 0b00000001
sts PORTG, temp
.endmacro

.macro ONSTATUS
ldi temp, 0b00000010
sts PORTG, temp
.endmacro

.macro OFFLEDS
ldi temp, 0b00000011
sts PORTG, temp
.endmacro

.cseg
;ТВП
.org $0000
jmp reset

.org $002C
;jmp eeready
;;EEPROM ready

;=====================begin main program======================
reset:
;initialization

cli

ldi temp,high(RAMEND) ;Stack initialization
out SPH,temp
ldi temp,low(RAMEND)
out SPL,temp

; sleep mode как idle mode
in temp,MCUCR
ori temp,0b00100000
out MCUCR,temp

;конфигурируем порты для начала работы
in temp, SFIOR
ori temp,0b00000100
out SFIOR,temp
; выводы входных портов - в третье состояние

ser temp
out DDRC,temp ;всегда выходные порты
ldi temp, 0b00000011
sts DDRG, temp ; светодиоды

;настройка порта "и туда, и оттуда"
ldi temp, 0b00110000
out DDRB, temp

; ================main program=======================
main:
ONLEDS
;чтение и анализ принимаемых по USB данных
rcall RdAn
ONUSB
sleep
end:


;============подпрограммы=================

RdAn: ;прием из USB

clr temp
sts DDRF,temp ; настройка порта F на прием
RByte
rcall weeprom0
ret


weeprom0: ;запись cusb в EEPROM
cli
wp:
sbic EECR,1
rjmp wp
ldi temp,0
out EEARH,temp
out EEARL,temp
out EEDR,cusb
ldi temp,0b1100
out EECR,temp
sbi EECR,1
sei
ret

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 
NoIX ключ Запомнить

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание

E-mail: info@telesys.ru