Atmega 128 неполучается заставить работать выход OC2

Обсуждаем контроллеры компании Atmel.
Ответить
gibiri
Первый раз сказал Мяу!
Сообщения: 24
Зарегистрирован: Сб июн 16, 2012 07:20:55

Atmega 128 неполучается заставить работать выход OC2

Сообщение gibiri »

Здравствуйте.
Хотел сделать чтобы один таймер тактировал другой, но что-то не получается.
В чем может быть проблема?

Изображение
842x542(179.73 kB)

Загрузить фото

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

.include "m128def.inc"

;
.def  temp  =r16
.def index_1 = R8
.def index_2 = R9
.def index_3 = R10
.def index	= r7
	
	RJMP VECT_END
.org OVF3addr
	rjmp	over_a	


over_a:
	ldi ZL,low(MAS1<<1)
	ldi ZH,high(MAS1<<1)
	ADD ZL,index_1
	adc ZH,Index
	lpm
	sts OCR3AL,R0
	inc index_1
	cp  index_1,r14
	brne over_b
	clr index_1
over_b:
	ldi ZL,low(MAS1<<1)
	ldi ZH,high(MAS1<<1)
	ADD ZL,index_2
	adc ZH,index
	lpm
	sts OCR3BL,R0
	inc index_2
	cp  index_2,r14
	brne over_c
	clr index_2
over_c:
	ldi ZL,low(MAS1<<1)
	ldi ZH,high(MAS1<<1)
	ADD ZL,index_3
	adc ZH,Index
	lpm
	sts OCR3CL,R0
	inc index_3
	cp index_3,r14
	brne quit_over
	clr index_3
quit_over:
	reti


VECT_END:
	LDI r19,HIGH(RamEnd)
	OUT   SPH,r19
	LDI r19,LOW(RamEnd)
	OUT   SPL,r19
	
	LDI R16,0b11111111
	OUT DDRE,R16


  	clr index
	CLR index_1
	ldi r16,33
	mov index_2,r16
 	ldi r16,66
 	mov index_3,r16
	LDI R16,100
	MOV R14,R16
	CLR  R11

	LDI R18, 0b00000000
	STS TIMSK,R18
	ldi r25, (1<<TOIE3)
	STS ETIMSK,R25
	LDI R16,(1<<COM3A1) | (1<<COM3B1) | (1<<COM3C1) | (1<<WGM30)
	STS TCCR3A,R16

	LDI R17,(1<<CS31) | (1<<CS32) | (1<<WGM32)
	STS TCCR3B,R17

	LDI R16,0b11111111
	OUT DDRB,R16

	LDI R16,3
	out OCR2,R16

	LDI R17,(1<<COM20) | (1<<WGM21) | (1<<CS20)
	out TCCR2,R17

	SEI




LOOP:
	RJMP LOOP

MAS1:
.db 135,143,151,159,167,174,182,189,196,... (масив из 100 эл.)
Вложения
PWM CHASTOTA.zip
(37 КБ) 183 скачивания
Последний раз редактировалось gibiri Сб авг 04, 2012 04:44:07, всего редактировалось 1 раз.
Реклама
gibiri
Первый раз сказал Мяу!
Сообщения: 24
Зарегистрирован: Сб июн 16, 2012 07:20:55

Re: Atmega 128 неполучается заставить работать выход OC2

Сообщение gibiri »

Я правильно настроил таймер для тактирования от внешнего источника?

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

   LDI R16,(1<<COM3A1) | (1<<COM3B1) | (1<<COM3C1) | (1<<WGM30)
   STS TCCR3A,R16

   LDI R17,(1<<CS31) | (1<<CS32) | (1<<WGM32)
   STS TCCR3B,R17
Тактирование T3 осуществляется через PD6/T1 ?
Реклама
Аватара пользователя
radio-kot
Собутыльник Кота
Сообщения: 2584
Зарегистрирован: Вт сен 14, 2010 10:27:19

Re: Atmega 128 неполучается заставить работать выход OC2

Сообщение radio-kot »

надо ножку выходом назначить. А лучше код мастером сделать - тогда будет работать точно.
Будете проходить мимо- проходите!
gibiri
Первый раз сказал Мяу!
Сообщения: 24
Зарегистрирован: Сб июн 16, 2012 07:20:55

Re: Atmega 128 неполучается заставить работать выход OC2

Сообщение gibiri »

radio-kot писал(а):надо ножку выходом назначить. А лучше код мастером сделать - тогда будет работать точно.
PB7/OC2 ?
Я назначил:

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

   LDI R16,0b11111111
   OUT DDRB,R16
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
radio-kot
Собутыльник Кота
Сообщения: 2584
Зарегистрирован: Вт сен 14, 2010 10:27:19

Re: Atmega 128 неполучается заставить работать выход OC2

Сообщение radio-kot »

код мастером сделать - тогда будет работать точно.
Будете проходить мимо- проходите!
Реклама
gibiri
Первый раз сказал Мяу!
Сообщения: 24
Зарегистрирован: Сб июн 16, 2012 07:20:55

Re: Atmega 128 неполучается заставить работать выход OC2

Сообщение gibiri »

radio-kot писал(а):код мастером сделать - тогда будет работать точно.
Это на CodeVisionAVR?
Я пока только ассемблер знаю.
Реклама
gibiri
Первый раз сказал Мяу!
Сообщения: 24
Зарегистрирован: Сб июн 16, 2012 07:20:55

Re: Atmega 128 неполучается заставить работать выход OC2

Сообщение gibiri »

А от какой ноги осуществляется тактирование Т3?
Аватара пользователя
zero648
Вымогатель припоя
Сообщения: 650
Зарегистрирован: Пн июн 18, 2012 12:01:04
Откуда: Челябинская область, Копейск

Re: Atmega 128 неполучается заставить работать выход OC2

Сообщение zero648 »

gibiri писал(а):А от какой ноги осуществляется тактирование Т3?
Что-то мне подсказывает, что это нога PE6/T3/INT6
astrgan
Встал на лапы
Сообщения: 103
Зарегистрирован: Чт мар 08, 2012 01:13:30

Re: Atmega 128 неполучается заставить работать выход OC2

Сообщение astrgan »

Хмм
Последний раз редактировалось astrgan Вс авг 05, 2012 12:52:59, всего редактировалось 1 раз.
Аватара пользователя
zero648
Вымогатель припоя
Сообщения: 650
Зарегистрирован: Пн июн 18, 2012 12:01:04
Откуда: Челябинская область, Копейск

Re: Atmega 128 неполучается заставить работать выход OC2

Сообщение zero648 »

Во-первых выход ОС2 работает, во-вторых куда такие конденсаторы здоровые, аж на 10мкф? И провод перекинуть надо на РЕ6, смотри картинку:

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

Re: Atmega 128 неполучается заставить работать выход OC2

Сообщение astrgan »

отлично
Последний раз редактировалось astrgan Вс авг 05, 2012 12:53:57, всего редактировалось 1 раз.
Аватара пользователя
zero648
Вымогатель припоя
Сообщения: 650
Зарегистрирован: Пн июн 18, 2012 12:01:04
Откуда: Челябинская область, Копейск

Re: Atmega 128 неполучается заставить работать выход OC2

Сообщение zero648 »

Просто кондеры такой емкости гасят импульсы, на 22pF вполне достаточно, можно чуть побольше.
Аватара пользователя
radio-kot
Собутыльник Кота
Сообщения: 2584
Зарегистрирован: Вт сен 14, 2010 10:27:19

Re: Atmega 128 неполучается заставить работать выход OC2

Сообщение radio-kot »

gibiri писал(а):Это на CodeVisionAVR?
Я пока только ассемблер знаю.
Самое время на Си начать. Это легко и быстро +работает.
Будете проходить мимо- проходите!
astrgan
Встал на лапы
Сообщения: 103
Зарегистрирован: Чт мар 08, 2012 01:13:30

Re: Atmega 128 неполучается заставить работать выход OC2

Сообщение astrgan »

Proteus-у можно доверять?
Если я буду смотреть как меняется частота в Proteus, то в реальном устройстве будет также или не очень?

P.S.
Настоящий осциллограф щас не достану.
Аватара пользователя
radio-kot
Собутыльник Кота
Сообщения: 2584
Зарегистрирован: Вт сен 14, 2010 10:27:19

Re: Atmega 128 неполучается заставить работать выход OC2

Сообщение radio-kot »

Скорей да чем нет. Можете перепровериь еще в авр студии и в vmlab
Будете проходить мимо- проходите!
Аватара пользователя
zero648
Вымогатель припоя
Сообщения: 650
Зарегистрирован: Пн июн 18, 2012 12:01:04
Откуда: Челябинская область, Копейск

Re: Atmega 128 неполучается заставить работать выход OC2

Сообщение zero648 »

В протеусе на осциллографе кликаешь кнопку cursor, то можно измерить время одного периода, если отметить начало и конец периода, так и посчитаь частоту.
astrgan
Встал на лапы
Сообщения: 103
Зарегистрирован: Чт мар 08, 2012 01:13:30

Re: Atmega 128 неполучается заставить работать выход OC2

Сообщение astrgan »

zero648 писал(а):В протеусе на осциллографе кликаешь кнопку cursor, то можно измерить время одного периода, если отметить начало и конец периода, так и посчитаь частоту.
Спасибо.
Аватара пользователя
zero648
Вымогатель припоя
Сообщения: 650
Зарегистрирован: Пн июн 18, 2012 12:01:04
Откуда: Челябинская область, Копейск

Re: Atmega 128 неполучается заставить работать выход OC2

Сообщение zero648 »

Кстати сказать, при моделировании в протеусе, на трех ШИМах наблюдаются провалы при максимальной ширине импульса, в константах МАS1 поменял значение 255 на 254 и стало гуд.
astrgan
Встал на лапы
Сообщения: 103
Зарегистрирован: Чт мар 08, 2012 01:13:30

Re: Atmega 128 неполучается заставить работать выход OC2

Сообщение astrgan »

zero648 писал(а):Кстати сказать, при моделировании в протеусе, на трех ШИМах наблюдаются провалы при максимальной ширине импульса, в константах МАS1 поменял значение 255 на 254 и стало гуд.
Иии еще раз большое СПАСИБО!
Ответить

Вернуться в «AVR»