Пожалуйста помогите найти ошибку в программе для avr.

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15571
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Пожалуйста помогите найти ошибку в программе для avr.

Сообщение BOB51 »

прежде, чем работать с симулятором, прочитайте его ограничения!!! :cry:
(сам попадался :facepalm: )
Реклама
astrgan
Встал на лапы
Сообщения: 103
Зарегистрирован: Чт мар 08, 2012 01:13:30

Re: Пожалуйста помогите найти ошибку в программе для avr.

Сообщение astrgan »

А есть чтонибудь наподоби avr studio, чтобы можно было отслеживать как ведут себя регистры по тактам?
Реклама
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15571
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Пожалуйста помогите найти ошибку в программе для avr.

Сообщение BOB51 »

Конечно есть : М О З Г И
8)
Аватара пользователя
mazda
Потрогал лапой паяльник
Сообщения: 382
Зарегистрирован: Сб фев 18, 2012 14:50:22

Re: Пожалуйста помогите найти ошибку в программе для avr.

Сообщение mazda »

если правильно понимаю вопрос, то есть, скачайте студию 5.
(но можно и мозги скачать)
я его в гугл на дрц прогнал, вы знаете, пи-када нет.
Реклама
Эиком - электронные компоненты и радиодетали
astrgan
Встал на лапы
Сообщения: 103
Зарегистрирован: Чт мар 08, 2012 01:13:30

Re: Пожалуйста помогите найти ошибку в программе для avr.

Сообщение astrgan »

А как в proteus открыть это окно?

Изображение
Реклама
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3872
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Re: Пожалуйста помогите найти ошибку в программе для avr.

Сообщение Engineer_Keen »

Во время симуляции нажать паузу ткнуть на контроллере правую кнопку мыши и выбрать пункт AVR -> source code
Реклама
astrgan
Встал на лапы
Сообщения: 103
Зарегистрирован: Чт мар 08, 2012 01:13:30

Re: Пожалуйста помогите найти ошибку в программе для avr.

Сообщение astrgan »

Engineer_Keen писал(а):Во время симуляции нажать паузу ткнуть на контроллере правую кнопку мыши и выбрать пункт AVR -> source code
Спасибо.
astrgan
Встал на лапы
Сообщения: 103
Зарегистрирован: Чт мар 08, 2012 01:13:30

Re: Пожалуйста помогите найти ошибку в программе для avr.

Сообщение astrgan »

Никак немогу понять в чем проблемма.

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

.CSEG
	RJMP VECT_END
.ORG $0034      ;Вектор прерывания таймера T при совпадении
	RJMP SINOUT
.ORG $0036
	RJMP SINOUT
.ORG $0038

	RJMP SINOUT    ;Адрес подпрограммы обработки прерывания

VECT_END:
	
;***** инициализация стека

	ldi r19,0x04	
	out	SPH,r19    
	ldi r19,0x5F
	out	SPL,r19
;***** инициализация таймера


	LDI r20,0		
	OUT OCR3AH, r20		;в регистр совпадений таймера T
	LDI r21,0x3F	
	OUT OCR3AL, r21		;в регистр совпадений таймера T

	LDI r20,0		
	OUT OCR3BH, r20		;в регистр совпадений таймера T
	LDI r21,0x4F	
	OUT OCR3BL, r21		;в регистр совпадений таймера T

	LDI r20,0		
	OUT OCR3CH, r20		;в регистр совпадений таймера T
	LDI r21,0x5F	
	OUT OCR3CL, r21		;в регистр совпадений таймера T




	LDI R16,0b01010101
	OUT TCCR3A,R16

	LDI R17,0b00001001
	OUT TCCR3B,R17

	LDI R18, 0b00000000
	OUT TIMSK,R18
	LDI R25,0b00011010
	OUT ETIMSK,R25
	SEI


LOOP:
	RJMP loop
	
SINOUT:
	LDI R22,10
	RETI
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3872
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Re: Пожалуйста помогите найти ошибку в программе для avr.

Сообщение Engineer_Keen »

А что не так? Код компилируется?
akl
Друг Кота
Сообщения: 4445
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

Re: Пожалуйста помогите найти ошибку в программе для avr.

Сообщение akl »

astrgan А какой камень Вы сейчас мучаете? Если mega16, то у него нет Т3 и таблица векторов другая и переходы на обработчики выполняются командами JMP.
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3872
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Re: Пожалуйста помогите найти ошибку в программе для avr.

Сообщение Engineer_Keen »

Это судя по всему 128-я мега. А переходы по RJMP никто не запрещает, если они не дальше +-2килослов...
astrgan
Встал на лапы
Сообщения: 103
Зарегистрирован: Чт мар 08, 2012 01:13:30

Re: Пожалуйста помогите найти ошибку в программе для avr.

Сообщение astrgan »

При создание проекта в avr studio 4 выбрал симуляцию меги 128.
При проверки выдаются ошибки где заношу значения командой out в регистры счетчика.
Поменял rjmp на jmp, теже ошибки.
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: Пожалуйста помогите найти ошибку в программе для avr.

Сообщение Gudd-Head »

astrgan писал(а):При проверки выдаются ошибки где заношу значения командой out в регистры счетчика.
:facepalm:
Не достреливает дотуда OUT, надо через LDS/STS как ко всей области ОЗУ обращаться.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3872
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Re: Пожалуйста помогите найти ошибку в программе для avr.

Сообщение Engineer_Keen »

astrgan писал(а):При проверки выдаются ошибки где заношу значения командой out в регистры счетчика.
А говорили не можете понять в чем проблема, я поэтому и спросил компилируется ли код. Как исправлять вам сказали.
astrgan писал(а):Поменял rjmp на jmp, теже ошибки.
Естественно те же, вы же их не исправляли, JMP/RJMP тут не при чем.
astrgan
Встал на лапы
Сообщения: 103
Зарегистрирован: Чт мар 08, 2012 01:13:30

Re: Пожалуйста помогите найти ошибку в программе для avr.

Сообщение astrgan »

Всем большое спасибо
astrgan
Встал на лапы
Сообщения: 103
Зарегистрирован: Чт мар 08, 2012 01:13:30

Re: Пожалуйста помогите найти ошибку в программе для avr.

Сообщение astrgan »

Еще раз извините за глупые вопросы.
astrgan
Встал на лапы
Сообщения: 103
Зарегистрирован: Чт мар 08, 2012 01:13:30

Re: Пожалуйста помогите найти ошибку в программе для avr.

Сообщение astrgan »

Теперь проблемы с массивом.
появляются ошибки когда использую команду LPM для помещения значения из массива в регистр. Причем с первым массивом вроде проблем нет, а со вторым и третим выдаются ошибки.
C:\AVR\pwm 3\pwm.asm(46): error: Wrong number of operands

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

.include "m128def.inc"

	
.CSEG
	JMP VECT_END

MAS1: .DB 0x1A,0x2A,0x3A,0x4A
MAS2: .DB 0x1B,0x2B,0x3B,0x4B
MAS3: .DB 0x1C,0x2C,0x3C,0x4C


.ORG $0034      ;Вектор прерывания таймера T1 при совпадении
	JMP SINOUTA
.ORG $0036
	JMP SINOUTB
.ORG $0038

	JMP SINOUTC    ;Адрес подпрограммы обработки прерывания

VECT_END:
	


	LDI ZL,LOW(MAS1*2)
	LDI ZH,HIGH(MAS1*2)
	LDI YL,LOW(MAS2*2)
	LDI YH,HIGH(MAS2*2)
	LDI XL,LOW(MAS3*2)
	LDI XH,HIGH(MAS3*2)
;***** инициализация стека

	ldi r19,0x04	
	out	SPH,r19    
	ldi r19,0x5F
	out	SPL,r19
;***** инициализация таймера


	LDI r20,0		
	STS OCR3AH, r20		;в регистр совпадений таймера T1
	LPM r21,Z+
	STS OCR3AL, r21		;в регистр совпадений таймера T1

	LDI r20,0		
	STS OCR3BH, r20		;в регистр совпадений таймера T1
	LPM r23,Y+
	STS OCR3BL, r23		;в регистр совпадений таймера T1

	LDI r20,0		
	STS OCR3CH, r20		;в регистр совпадений таймера T1
	LPM r25,X+	
	STS OCR3CL, r25		;в регистр совпадений таймера T1




	LDI R16,0b01010101
	STS TCCR3A,R16

	LDI R17,0b00001001
	STS TCCR3B,R17

	LDI R18, 0b00000000
	STS TIMSK,R18
	LDI R25,0b00011010
	STS ETIMSK,R25
	SEI


LOOP:
	JMP loop
	
SINOUTA:

	CLI
	LDI R16,0b00000000
	STS TCCR3A,R16

	LDI R17,0b00000000
	STS TCCR3B,R17
	


	LDI r20,0		
	STS OCR3BH, r20		;в регистр совпадений таймера T1
	LPM r21,Y+	
	STS OCR3BL, r21		;в регистр совпадений таймера T1


	
	LDI R16,0b01010101
	STS TCCR3A,R16

	LDI R17,0b00001001
	STS TCCR3B,R17

	RETI

SINOUTB:
	CLI
	LDI R16,0b00000000
	STS TCCR3A,R16

	LDI R17,0b00000000
	STS TCCR3B,R17
	


	LDI r20,0		
	STS OCR3AH, r20		;в регистр совпадений таймера T1
	LPM r22,Z+	
	STS OCR3AL, r22		;в регистр совпадений таймера T1


	
	LDI R16,0b01010101
	STS TCCR3A,R16

	LDI R17,0b00001001
	STS TCCR3B,R17

	RETI

SINOUTC:
	CLI
	LDI R16,0b00000000
	STS TCCR3A,R16

	LDI R17,0b00000000
	STS TCCR3B,R17
	


	LDI r20,0		
	STS OCR3CH, r20		;в регистр совпадений таймера T1
	LPM r23,X+	
	STS OCR3CL, r23		;в регистр совпадений таймера T1


	
	LDI R16,0b01010101
	STS TCCR3A,R16

	LDI R17,0b00001001
	STS TCCR3B,R17

	RETI
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: Пожалуйста помогите найти ошибку в программе для avr.

Сообщение Gudd-Head »

1. astrgan, вы читали правила форума???
2. Пометили бы место, на которое ругается компилятор.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Аватара пользователя
ILYAUL
Держит паяльник хвостом
Сообщения: 906
Зарегистрирован: Ср мар 28, 2012 21:45:24
Откуда: ВО

Re: Пожалуйста помогите найти ошибку в программе для avr.

Сообщение ILYAUL »

Gudd-Head писал(а): 2. Пометили бы место, на которое ругается компилятор.
Да тут прозрачно всё, но не думаю , что надо давать прямой ответ на - почему? Ответ легко ищется в "шпаргалках ....." на этом форуме или в литературе или help STUDIO. Зато запомнится на всю жизнь.
astrgan
Встал на лапы
Сообщения: 103
Зарегистрирован: Чт мар 08, 2012 01:13:30

Re: Пожалуйста помогите найти ошибку в программе для avr.

Сообщение astrgan »

ок буду искать
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»