Страница 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, а можно ли в РОН считать данные только из нужного бита?
Например:
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, а можно ли в РОН считать данные только из нужного бита?
Например:
В AVR не получится, а вот в разных вариантах мк, производных от семейства intel_MCS-51 получится ! Перебегайте к нам, к предпочитателям MCS-51 , в них ещё и DIVide и MULtiply есть.
Предпочитатели 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 писал(а):Если поняли, что такое булева алгебра, но нужно еще понять, как её применить.
Вчера реализовал с помощью логических сдвигов - неудобно, но работает.
Сегодня буду ковырять...