Страница 1 из 1

ATmega8515-16PU - не мигает =(

Добавлено: Пн авг 20, 2007 22:34:48
Simo
Программатор типа 5 проводков.

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

.include "m8515def.inc"	
.def	TMP	= R16	
.def	VERT	= R17	
.def	COUNT1	= R18	
.def	COUNT2	= R19	 
.def	COUNT3	= R20	 
.org	0
rjmp	START
START:			
	ldi	TMP,low(RAMEND)	; ramend ii?aaaeaii a .
	out	SPL,TMP		    ;
	ldi	TMP,high(RAMEND)
	out	SPH,TMP
;********************************************
	ser	TMP
	out	DDRC,TMP
LOOP:
	ldi	VERT,0xFF
	out	PORTC,VERT
	ldi	COUNT3,50
	rcall WAIT

	ldi	VERT,0x00
	out	PORTC,VERT		
	ldi	COUNT3,50	
	rcall WAIT
WAIT:
	dec	COUNT1
	brne	WAIT	
	dec	COUNT2
	brne	WAIT	
	dec	COUNT3
	brne	WAIT
	ret
.exit	
светики горят, но не мигают. не могу понять в чём проблема =( компилятор - AVR Studio, программатор - avreal.

Добавлено: Вт авг 21, 2007 09:33:10
tych
Посомтрите в VMLAB ход программы по шагам и определите чем он отличается от задуманного вами.

Добавлено: Вт авг 21, 2007 09:58:18
Mamonth
Ну есть подозрения что код написан неверно... особенно в части задержки. ;) Пошаговая отладка тебе поможет и хелп на тему brne и compare

Добавлено: Вт авг 21, 2007 11:08:27
Mr.Moss
В конце подпрограммы LOOP, поставь rjmp LOOP, а то он у тебя переходит черт знает куда, а точнее в RESET.
Должно работать :)

Добавлено: Вт авг 21, 2007 14:14:14
Simo
кароч переписал ещё тупее:

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

.include "L:\avr\tavrasm\test\m8515def.inc"
.org   0
rjmp   START
START:
   ldi	R16,0xFF
   out	DDRC,R16
   ldi 	R20,0xFF
   ldi	R21,0xFF
TEST:
	dec	R20
	brne	TEST
	dec	R21
	brne	TEST    	
	ldi	R16,0xFF
	out	PORTC,R16
	ldi	R20,0xFF
	ldi	R21,0xFF
TEST2:
	dec	R20
	brne	TEST2
	dec	R21
	brne	TEST2
	ldi	R16,0x00
	out	PORTC,R16
	ldi	R20,0xFF
	ldi	R21,0xFF
	rjmp	TEST

.exit
самое смешное то, что при подаче плюса на VCC а минуса на GND, ничё не работает. а вот если подать плюс на любой порт C(кроме того, на котором светик) всё работает на ура =\ тот код опробовал ещё раз(добавил rjmp LOOP), тоже самое - про подключениее плюса к VCC светик просто горит, при подключении плюса к портам С - мигает.
P.S.: в случае с ldi R16,0x02 тоже самое

Добавлено: Вт авг 21, 2007 15:44:46
Mr.Moss
Может попробуй другой МК взять :) , мистика какаято :shock:

Добавлено: Вт авг 21, 2007 17:20:30
Simo
проблема решена, всем спс)

Добавлено: Вт авг 21, 2007 17:35:01
tych
КАК ??? :o :o :o

Добавлено: Вт сен 11, 2007 10:59:49
__Alexander
имхо, по ходу не выключил JTAG (он же на порту C висит) :))