Страница 161 из 400

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Ср окт 17, 2012 13:35:24
Челюскин
Переделал прошивку, проверил в протеусе - все нормально, 100, 75, 50, 25% показывает на осциллографе. Прошил в реале - так же горят постоянно, сейчас сделал с изменяющейся скважностью - тоже самое. Скажите, а фильтр обязательно нужен для ШИМа, а то я диоды напрямую припаял к МК?

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Ср окт 17, 2012 13:36:28
ploop
Фильтр - нет, а резисторы обязательно.
Кстати, глаз воспринимает яркость нелинейно. От 50% до 100% почти не заметите разницы. Проверяйте 5%-10%-20%, где-то в этих пределах.

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Ср окт 17, 2012 13:45:12
Челюскин
ploop писал(а):резисторы обязательно.
сейчас припаяю, номинал 150 Ом пойдет - или меньше? (ШИМ всё-таки, а не постоянка...)
глаз воспринимает яркость нелинейно. От 50% до 100% почти не заметите разницы.
А вот это ново - на заметку возьму. Спасибо.

з.ы. а какие (если кто знает) все-таки примерные длительности и периоды импульсов для диодов быть должны, чтобы заметно было?

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Ср окт 17, 2012 13:52:47
Engineer_Keen
Челюскин писал(а):сейчас припаяю, номинал 150 Ом пойдет - или меньше? (ШИМ всё-таки, а не постоянка...)
Питание 5В? Тогда пойдет, и не меньше! И не путайте ШИМ и динамическую индикацию, во втором случае ток идет через диод всегда только долю периода, а в случае ШИМ - может быть и постоянно (99% периода).
Челюскин писал(а):з.ы. а какие (если кто знает) все-таки примерные длительности и периоды импульсов для диодов быть должны, чтобы заметно было?
Что заметно?

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Ср окт 17, 2012 13:54:38
ploop
з.ы. а какие (если кто знает) все-таки примерные длительности и периоды импульсов для диодов быть должны, чтобы заметно было?
эээ... частота ШИМ?
Чтобы незаметно (даже при боковом движении глаз/девайса) надо брать более 500Гц.

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Ср окт 17, 2012 14:13:58
Челюскин
ploop писал(а): чтобы незаметно... надо брать более 500Гц.
Ясно. Но так понял - без резистора не получиться... ладно - буду работать. Спасибо за советы Engineer_Keen и ploop.

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Ср окт 17, 2012 14:25:20
ploop
Получится, но можно выжечь порт МК. Почитайте про питание светодиодов (не важно от чего)

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Ср окт 17, 2012 14:37:08
gauss
Alexeyslav, а можно ли в РОН считать данные только из нужного бита?
Например:

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

in temp,PC0

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Ср окт 17, 2012 14:38:50
ploop
И что должно быть, по вашему, в temp? :)
Можно считать и выделить его (побитовое AND), затем сравнить с нулём.

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Ср окт 17, 2012 14:39:34
Arlleex
Нельзя так.
Можно сначала загрузить данные из всего регистра порта данных, а потом выделить нужный бит.

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Ср окт 17, 2012 14:41:28
Gudd-Head
ploop писал(а):И что должно быть, по вашему, в temp?
Видимо, 7 старых бит, и один новый :)

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Ср окт 17, 2012 14:43:38
gauss
Допустим, в одном регистре 0b01010101
В другом 0b01100011
Применив and между этими регистрами, мы получим 0b01000001, я правильно понял?

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Ср окт 17, 2012 14:44:49
Gudd-Head
gauss писал(а):я правильно понял?
А у вас Студия 4-я есть?

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Ср окт 17, 2012 14:45:17
gauss
Шестая
Я правильно понял оператор and?

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Ср окт 17, 2012 14:50:22
Gudd-Head
Полагаю, в ней тоже есть симулятор, и вы можете проверить своё предположение на практике, если не знаете законов булевой алгебры.

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Ср окт 17, 2012 14:53:07
gauss
Не проходили, увы :(
Только что поковырял вики - понял, что все правильно понял!

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Ср окт 17, 2012 15:53:18
petrenko
gauss писал(а):Alexeyslav, а можно ли в РОН считать данные только из нужного бита?
Например:

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

in temp,PC0
В AVR не получится, а вот в разных вариантах мк, производных от семейства intel_MCS-51 получится ! Перебегайте к нам, к предпочитателям MCS-51 , в них ещё и DIVide и MULtiply есть. :wink:
Предпочитатели AVR , извините, пожалуйста, не выдержал, похвалил 51/52-е.

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Ср окт 17, 2012 16:00:05
ploop
Предпочитатели AVR , извините, пожалуйста, не выдержал, похвалил 51/52-е.
Да ничего страшного, просто про название темы не забывайте :)
Только что поковырял вики - понял, что все правильно понял!
Не совсем. Если поняли, что такое булева алгебра, но нужно еще понять, как её применить. Подсказываю: после операции у вас все биты должны быть равны нулю, а один (нужный) - равен чему равен. Если он тоже будет ноль, то и весь регистр будет ноль, а если он будет в единице, то и регистр будет НЕ ноль. А вот между чем и чем должна быть эта операция предлагаю подумать (или погуглить, ключевое слово "маска")

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Ср окт 17, 2012 16:59:01
xkp
xkp на 152 странице писал(а):следующим вопросом станет время, точнее, как можно точнее измерить ширину импульса. можно даже и не в секундах или миллисекундах, а в условных еденицах.
испытания сказали что программный подсчет не подходит, маленькая частота выборки. решено использовать аппаратный режим захвата на MEGA32, работающей на кварце 24 МГц.
но и тут заморочки. что то мне кажется что что-то тут не так... можно же как то проще замерить ширину импульса?
Спойлер

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

.INCLUDE "m32def.inc"
.def tmp		=r16
.def tmp0		=r17

.CSEG
.ORG $2a
reset:
	ldi tmp,low(ramend)
	out spl,tmp
	ldi tmp,high(ramend)
	out sph,tmp
	sei
	ldi tmp,$41
	out tccr1b,tmp
	ldi tmp,$20
	out timsk,tmp

main:
	nop
	rjmp main

TIM1_CAPT:
	in tmp,tccr1b
	sbrc tmp,ices1
	rjmp onn
	clr tmp
	out tcnt1l,tmp
	out tcnt1h,tmp

	in tmp,tccr1b
	ori tmp,(1<<ices1)
	out tccr1b,tmp
	rjmp out_tim
onn:
;	in r18,icr1l
;	in r19,icr1h
	in tmp,tccr1b
	andi tmp,$ff-(1<<ices1)
	out tccr1b,tmp
out_tim:
	reti
.CSEG
.ORG $0
	jmp RESET ; Reset Handler
	reti	;jmp EXT_INT0 ; IRQ0 Handler
	nop
	reti	;jmp EXT_INT1 ; IRQ1 Handler
	nop
	reti	;jmp EXT_INT2 ; IRQ2 Handler
	nop
	reti	;jmp TIM2_COMP ; Timer2 Compare Handler
	nop
	reti	;jmp TIM2_OVF ; Timer2 Overflow Handler
	nop
rjmp TIM1_CAPT ; Timer1 Capture Handler
	nop
	reti	;jmp TIM1_COMPA ; Timer1 CompareA Handler
	nop
	reti	;jmp TIM1_COMPB ; Timer1 CompareB Handler
	nop
	reti	;jmp TIM1_OVF ; Timer1 Overflow Handler
	nop
	reti	;jmp TIM0_COMP ; Timer0 Compare Handler
	nop
reti;rjmp TIM0_OVF ; Timer0 Overflow Handler
	nop
	reti	;jmp SPI_STC ; SPI Transfer Complete Handler
	nop
	reti	;jmp USART_RXC ; USART RX Complete Handler
	nop
	reti	;jmp USART_UDRE ; UDR Empty Handler
	nop
	reti	;jmp USART_TXC ; USART TX Complete Handler
	nop
	reti	;jmp ADC ; ADC Conversion Complete Handler
	nop
	reti	;jmp EE_RDY ; EEPROM Ready Handler
	nop
	reti	;jmp ANA_COMP ; Analog Comparator Handler
	nop
	reti	;jmp TWI ; Two-wire Serial Interface Handler
	nop
	reti	;jmp SPM_RDY ; Store Program Memory Ready Handler
	nop
.exit

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Ср окт 17, 2012 20:41:53
gauss
ploop писал(а):Если поняли, что такое булева алгебра, но нужно еще понять, как её применить.
Вчера реализовал с помощью логических сдвигов - неудобно, но работает.
Сегодня буду ковырять...