ГлавнаяРегистрацияВход Сайт Сокола Сергея Пятница, 03.05.2024, 02:24
  Звук через PWM - Страница 2 - Форум Приветствую Вас Гость | RSS

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 2 из 4
  • «
  • 1
  • 2
  • 3
  • 4
  • »
Форум » Основной форум сайта » Общее » Звук через PWM (Воспроизведение звука)
Звук через PWM
miminoДата: Четверг, 11.04.2013, 23:28 | Сообщение # 16
Полковник
Группа: Администраторы
Сообщений: 227
Репутация: 101
Статус: Offline
О! Поздравляю!
Все таки метод проб и ошибок рулит smile
 
AVRикДата: Воскресенье, 14.04.2013, 23:12 | Сообщение # 17
Лейтенант
Группа: Проверенные
Сообщений: 73
Репутация: 0
Статус: Offline
ДА !!!!!!!!!!:) smile :)

Добавлено (14.04.2013, 23:12)
---------------------------------------------
Сергей !
Вопросик появился, если у контроллера нет емкостей
фильтрации по +5 вольтам, 10 мкФ, 0,1 мкФ, возможны
сбои в работе контроллера. Например, единица в порт  и т. д.?

Сообщение отредактировал AVRик - Пятница, 12.04.2013, 08:33
 
miminoДата: Воскресенье, 14.04.2013, 23:44 | Сообщение # 18
Полковник
Группа: Администраторы
Сообщений: 227
Репутация: 101
Статус: Offline
Честно говоря, даже не знаю. Я всегда использовал хоть какую-то, но емкость. А изменение состояния портов может быть вызвано отсутствием подтягивающих сопротивлений.
 
AVRикДата: Понедельник, 15.04.2013, 22:48 | Сообщение # 19
Лейтенант
Группа: Проверенные
Сообщений: 73
Репутация: 0
Статус: Offline
Сергей !!!
Ломаю голову не первый день над модулем программы.
Суть такова, к порту B5 подлючена кнопка задача её такова,
при нажатии не её установить в PORTB,2 единицу. При повторном
нажатии сбросить эту единицу в этом  PORTB,2.
Пробовал разные варианты, в AVR Studio всё четко работает,
как только записываю в контроллер ATtiny-13 происходит мистика
ничего не работает ....
Привожу модуль программного кода ниже, это один вариант
из множества, но не один в контроллере не заработал.
 
 
main:
nop
sbic PINB,5        ;Если РВ5=0 (кнопка нажата), пропустить след. строку
rjmp main ; pin_change          ;Возврат к началу цикла
rcall delay         ;Вызов подпрограммы задержки на дребезг контактов
wait1:                 ;Цикл ожидания, пока нажата кнопка
sbis PINB,5        ;Если РВ5=1 (кнопка отпущена), пропустить след. строку
rjmp wait1           ;иначе перейти к началу цикла ожидания
rcall delay         ;Вызов подпрограммы задержки на дребезг контактов
cpi r23,4
brsh dim   ;Если больше или равно, то переходим
cpi r23,4     ;Сравниваем значение регистра r16 c 25
brlo dim1        ;Если меньше, то переходим
nop
dim1:
cbi PORTB,2
ldi r23,(1<<2)   ;Загрузка в r23 единицы в 2 бит
rjmp exit2
dim:
sbi PORTB,2
clr r23
exit2:
cbi PORTB,4         ;Сбросить 4-й бит в регистре PORTB (реле разомкнуто)
rjmp main          ;Возврат к началу цикла
 
miminoДата: Вторник, 16.04.2013, 21:07 | Сообщение # 20
Полковник
Группа: Администраторы
Сообщений: 227
Репутация: 101
Статус: Offline
Владимир, почитайте четвертый шаг http://sokolsp.at.ua/publ....-1-0-15
Там не такая же задача?
 
AVRикДата: Вторник, 16.04.2013, 23:35 | Сообщение # 21
Лейтенант
Группа: Проверенные
Сообщений: 73
Репутация: 0
Статус: Offline
Сергей, скопировал код с 4 задания, светодиод горит при включении питания
контроллера. Нажимаю кнопку диод тухнет, при отпускании кнопки сразу загорается, что-то вообще заморочился с этим.
 
miminoДата: Четверг, 18.04.2013, 00:17 | Сообщение # 22
Полковник
Группа: Администраторы
Сообщений: 227
Репутация: 101
Статус: Offline
Владимир, не знаю... Код рабочий, я все проверял.

Кстати, завтра я уезжаю несколько недель, где буду вне интернета, так что не обижайтесь, если я не отвечаю. Я не игнорирую, просто меня тут нет.
 
AVRикДата: Воскресенье, 21.04.2013, 15:54 | Сообщение # 23
Лейтенант
Группа: Проверенные
Сообщений: 73
Репутация: 0
Статус: Offline
Сергей !
Причину, я определил. Все дело в PB5, в описании других
контроллеров было написано, что некоторые порты не могут
работать на вход. В ATtiny 13 - это скорей всего PB5.
 
miminoДата: Среда, 08.05.2013, 14:03 | Сообщение # 24
Полковник
Группа: Администраторы
Сообщений: 227
Репутация: 101
Статус: Offline
Владимир!
Да, Вы правы. РВ5 - это вход сброса, он не работает как обычный порт ввода-вывода
 
AVRикДата: Четверг, 09.05.2013, 12:04 | Сообщение # 25
Лейтенант
Группа: Проверенные
Сообщений: 73
Репутация: 0
Статус: Offline
Сергей !!!
Возник банальный вопрос, у меня не работает задержка

ldi r22,255   ;Загрузка значения в регистр r23

ldi r23,255   ;Загрузка значения в регистр r24

ldi r24,255   ;Загрузка значения в регистр r25

ldi r25,255

del2:

subi r22,1   ;Вычитание 1 из регистра r23

subi r23,1   ;Вычитание 1 из регистра r24

subi r24,1

sbci r25,0   ;Вычитание 0 из регистра r25 с учетом переноса

brcc del2   ;Если не было переноса вернуться к метке del2sbros:    ;Начало подпрограммы задержки

ldi r22,255   ;Загрузка значения в регистр r23

ldi r23,255   ;Загрузка значения в регистр r24

ldi r24,255   ;Загрузка значения в регистр r25

ldi r25,255

del2:

subi r22,1   ;Вычитание 1 из регистра r23

subi r23,1   ;Вычитание 1 из регистра r24

subi r24,1

sbci r25,0   ;Вычитание 0 из регистра r25 с учетом переноса

brcc del2   ;Если не было переноса вернуться к метке del2




ldi r22,255   ;Загрузка значения в регистр r23

ldi r23,255   ;Загрузка значения в регистр r24

ldi r24,255   ;Загрузка значения в регистр r25

ldi r25,255

del2:

subi r22,1   ;Вычитание 1 из регистра r23

subi r23,1   ;Вычитание 1 из регистра r24

subi r24,1

sbci r25,0   ;Вычитание 0 из регистра r25 с учетом переноса

brcc del2   ;Если не было переноса вернуться к метке del2sbros:    ;Начало подпрограммы задержки

ldi r22,255   ;Загрузка значения в регистр r23

ldi r23,255   ;Загрузка значения в регистр r24

ldi r24,255   ;Загрузка значения в регистр r25

ldi r25,255

del2:

subi r22,1   ;Вычитание 1 из регистра r23

subi r23,1   ;Вычитание 1 из регистра r24

subi r24,1

sbci r25,0   ;Вычитание 0 из регистра r25 с учетом переноса

brcc del2   ;Если не было переноса вернуться к метке del2




ret

вроде бы все как обычно контроллер ATtiny 13A, программный модуль вызывается подпрограмно в теле программы. Задействовано одно прерывание по преобразованию АЦП.
Хочу получить задержку несколько секунд, но не получется. Регистров делал разное количество,
и загружал разными байтами.
Мне кажется причина в прерывании АЦП ?

Добавлено (09.05.2013, 12:04)
---------------------------------------------
Какой - то глюк сервера не могу отформатировать вопрос.


Сообщение отредактировал AVRик - Пятница, 10.05.2013, 11:22
 
miminoДата: Четверг, 09.05.2013, 13:19 | Сообщение # 26
Полковник
Группа: Администраторы
Сообщений: 227
Репутация: 101
Статус: Offline
Владимир, Вы не забыли стек инициализировать?
И что происходит при выполнении Вашей подпрограммы?
 
AVRикДата: Пятница, 10.05.2013, 10:39 | Сообщение # 27
Лейтенант
Группа: Проверенные
Сообщений: 73
Репутация: 0
Статус: Offline
Сергей, начало программы выглядит так:

.include "tn13Adef.inc" ; Присоединение файла описаний
.list
.eseg    ; Выбор сегмента EEPROM памяти
.org 0x08
.cseg     ; Выбор сегмента программного кода
.org 0                  ; Задание нулевого адреса старта программы
rjmp reset              ; Безусловный переход к метке reset
.org 9                  ;Задание адреса прерывания по окончанию преобразования АЦП
rjmp ADC_complete       ;Безусловный переход к метке ADC_complete

reset:             ;Начало раздела инициализации контроллера
ldi r16,RAMEND     ;Загрузка в регистр r16 адреса верхней границы ОЗУ
out SPL, r16       ;Копирование значения из r16 в регистр указателя стека SPL
ldi r16,(1<<DDB0|1<<DDB1|1<<DDB4)  ;Загрузка в r16 единицы в0, 2 и 5 биты
out DDRB,r16       ;Переключение выводов PB4 на выход
ldi r16,(1<<ADLAR|1<<MUX0|1<<MUX1);См. описание программы
out ADMUX,r16     ;Копирование из r16 в ADMUX
ldi r16,(1<<ADEN|1<<ADSC|1<<ADATE|1<<ADIE|1<<ADPS2);См.опис.
out ADCSRA,r16    ;Копирование из r16 в ADCSRA
ldi r16,(1<<WGM00|1<<COM0A1|1<<COM0A0);Fast PWM
out TCCR0A,r16   ;с включением OC0A при совпадении с регистром OCR0A
ldi r16,(1<<CS01);Загрузка в регистра r16 единицы в бит CS01
out TCCR0B,r16   ;Установка делителя тактовой частоты таймера 0 равным 8
;ldi r16,(1<<WDTIF|1<<WDE|1<<WDP2|1<<WDP1|1<<WDP0) ; Задержка 2 секунды
;out WDTCR,r16  ; Включение сторожевого таймера
;ldi r16,(0<<PB1|0<<PB2)
sei

Подрограмма должна произвести задержку (5 сек.), включения питания датчиков дыма после
сброса тревоги, нажатием кнопки.

Да, ещё хотел задействовать сторожевой таймер от зацикливания программы, но
таймер делал свое дело четко, сброс через каждые 2 секунды.
Надо его как-то настроить, тоесть включение по какому-то событию.
Но пока не понял, как это сделать ?


Сообщение отредактировал AVRик - Пятница, 10.05.2013, 16:15
 
miminoДата: Пятница, 10.05.2013, 23:15 | Сообщение # 28
Полковник
Группа: Администраторы
Сообщений: 227
Репутация: 101
Статус: Offline
Владимир, не понимаю, вроде все как надо. Вы нигде больше те регистры не используете, которые в задержке принимают участие? А насчет сторожевого таймера, сам не делал, но насколько я знаю, его надо инициализировать, а потом по ходу программы сбрасывать, причем время сброса должно быть меньше 2 секунд, чтоб он не успел сбросить контроллер
 
AVRикДата: Суббота, 01.06.2013, 17:44 | Сообщение # 29
Лейтенант
Группа: Проверенные
Сообщений: 73
Репутация: 0
Статус: Offline
Я ещё проверю регистры, может где-то двойное использование.
Спасибо Сергей за совет.

Добавлено (01.06.2013, 17:44)
---------------------------------------------
Добрый вечер Сергей!
Вопросик появился. В схеме используется порт ADC3, но если на его вход  не подается напряжение с делителя, то контроллер ATtiny 13 не работает, но стоить подать питание на делитель, то все работает. Вход АЦП используется один. Как избежать этого пока не придумал.

 
miminoДата: Суббота, 01.06.2013, 19:40 | Сообщение # 30
Полковник
Группа: Администраторы
Сообщений: 227
Репутация: 101
Статус: Offline
Добрый вечер!

Что значит "не работает"? Вообще ничего не происходит? Вы правильно сконфигурировали АЦП?
 
Форум » Основной форум сайта » Общее » Звук через PWM (Воспроизведение звука)
  • Страница 2 из 4
  • «
  • 1
  • 2
  • 3
  • 4
  • »
Поиск:

 

Copyright MyCorp © 2024
Бесплатный конструктор сайтов - uCoz