Нужна помощь в программировании ШИМ (PWM).
-
culibin 100
- Встал на лапы
- Сообщения: 88
- Зарегистрирован: Ср апр 29, 2009 10:35:56
- Откуда: кр. лиман украина
Re: Нужна помощь в программировании ШИМ (PWM).
доброго времени суток граждане коты если не трудно помогите пните куда надо .
хочу замутить регулировку напряжения с помощью шим , мне надо менять напряжение на варикапе
я так понимаю можно при помощи шим открывать или закрывать транзистор и как следствие будет меняться напряжение .(предел от 0 до 6 вольт на выходе ) я не могу въехать как заставить работать мк с шим . пытаюсь писать на асме мк мега 16 как работает таймер на счет внутренних импульсов разобрался .заранее спасибо
хочу замутить регулировку напряжения с помощью шим , мне надо менять напряжение на варикапе
я так понимаю можно при помощи шим открывать или закрывать транзистор и как следствие будет меняться напряжение .(предел от 0 до 6 вольт на выходе ) я не могу въехать как заставить работать мк с шим . пытаюсь писать на асме мк мега 16 как работает таймер на счет внутренних импульсов разобрался .заранее спасибо
-
Junior2010
- Родился
- Сообщения: 12
- Зарегистрирован: Сб апр 10, 2010 14:19:22
Re: Нужна помощь в программировании ШИМ (PWM).
Здравствуйте!
У меня почти такая же поблема, есть мк - tn2313, необходимо организовать ШИМ, только мне необходимо это осуществить на асемблере в AVR studio. Если есть готовая программа буду очень признателен, или хотя бы тыкнете носом где это подробно написано. В книгах искал, в интернете тоже, но все равно мне не понятно((( помогите, объясните новичку пожалуйста.
У меня почти такая же поблема, есть мк - tn2313, необходимо организовать ШИМ, только мне необходимо это осуществить на асемблере в AVR studio. Если есть готовая программа буду очень признателен, или хотя бы тыкнете носом где это подробно написано. В книгах искал, в интернете тоже, но все равно мне не понятно((( помогите, объясните новичку пожалуйста.
-
culibin 100
- Встал на лапы
- Сообщения: 88
- Зарегистрирован: Ср апр 29, 2009 10:35:56
- Откуда: кр. лиман украина
Re: Нужна помощь в программировании ШИМ (PWM).
я не стал заморачиваться можно сделать проста резистивный цап и комутировать свободным портом замыкать пины на массу образуя своеобразный делитель и получить на выходе напругу правда немного ступенчато если пределы большие а так пойдет это называется аналоговый цап в инете натыкался и не раз
-
Junior2010
- Родился
- Сообщения: 12
- Зарегистрирован: Сб апр 10, 2010 14:19:22
Re: Нужна помощь в программировании ШИМ (PWM).
culibin 100 для меня это пока сложновато. Все таки надеюсь, что кто нибудь отзавется на мою просьбу.
-
culibin 100
- Встал на лапы
- Сообщения: 88
- Зарегистрирован: Ср апр 29, 2009 10:35:56
- Откуда: кр. лиман украина
Re: Нужна помощь в программировании ШИМ (PWM).
там все просто включено последовательно куча резюков вверху на плюс внизу на массу а соединения к портам http://www.google.com.ua/search?hl=ru&c ... 5&gs_rfai=
гугль рулит там все просто только разберись хотя мне самому некоторые вещи туго доходят
на асме могу чего то подсказать что знаю ,сам недавно юзаю.
эмулятор вм-лаб 3.12
гугль рулит там все просто только разберись хотя мне самому некоторые вещи туго доходят
на асме могу чего то подсказать что знаю ,сам недавно юзаю.
эмулятор вм-лаб 3.12
-
Junior2010
- Родился
- Сообщения: 12
- Зарегистрирован: Сб апр 10, 2010 14:19:22
Re: Нужна помощь в программировании ШИМ (PWM).
Со схемой то я разберусь, мне бы вот про написание программы хотелось услышать.
-
culibin 100
- Встал на лапы
- Сообщения: 88
- Зарегистрирован: Ср апр 29, 2009 10:35:56
- Откуда: кр. лиман украина
Re: Нужна помощь в программировании ШИМ (PWM).
опиши свое устройство что будет прицеплено к портам и что должен делать мк
-
Junior2010
- Родился
- Сообщения: 12
- Зарегистрирован: Сб апр 10, 2010 14:19:22
Re: Нужна помощь в программировании ШИМ (PWM).
БУдет микроконтроллер, который тактируется внутренним RC - генератором и как вот реализовать ШИМ на микроконтроллере я понять не могу??? Я все пересмотрел но так и не допирает до меня. В нете нашел пару прог но они с ошибками я не стал заморачиваться и удалил их...
-
culibin 100
- Встал на лапы
- Сообщения: 88
- Зарегистрирован: Ср апр 29, 2009 10:35:56
- Откуда: кр. лиман украина
Re: Нужна помощь в программировании ШИМ (PWM).
как давно ты занимаешся програмированием ?
решил значит все таки делать на шиме регулировку
на резюках проще ацп прога будет совсем маленькая зато паять хватит вдоволь если надо могу скинуть пару книжек там по тине есть че погядеть
решил значит все таки делать на шиме регулировку
на резюках проще ацп прога будет совсем маленькая зато паять хватит вдоволь если надо могу скинуть пару книжек там по тине есть че погядеть
Re: Нужна помощь в программировании ШИМ (PWM).
Junior2010 Посмотри здесь. Вся работа реализована на ШИМ.
viewtopic.php?f=2&t=26785
viewtopic.php?f=2&t=26785
-
culibin 100
- Встал на лапы
- Сообщения: 88
- Зарегистрирован: Ср апр 29, 2009 10:35:56
- Откуда: кр. лиман украина
Re: Нужна помощь в программировании ШИМ (PWM).
Junior2010 вот пример цапа на резисторах глянь если интересно
-
Junior2010
- Родился
- Сообщения: 12
- Зарегистрирован: Сб апр 10, 2010 14:19:22
Re: Нужна помощь в программировании ШИМ (PWM).
покапался в нете нашел ШИМ, но мне кажеться что это не то... выкладываю текст программы, ах да еще она с ошибкой стека, я догнать не могу, что за ошибка. Может подскажет то это или не то и в чем ошибка.
; Atmega8, crystal 1MHZ (internal)
; Timer Counter 1
; Fast PWM & ADC
.include "m8def.inc"
.def wreg =R16
.def duration =R17
.def wreg2 =R18
init:
ldi wreg,low(RAMEND)
out SPL,wreg
ldi wreg,high(RAMEND) ; Stack Pointer = $45F
out SPH,wreg
cli ; запретить прерывания
ldi wreg, 0b10000011 ; Вкл. Ацп, Однокр. преобр., Прерывание запрещено, СК/8 (125 kHz)
out ADCSR, wreg
ldi wreg, 0b01101110 ; AVcc, Внеш. конд. на Aref, Выравн. по лев. краю, channel 1.23V bg
out ADMUX, wreg
rcall adc_convert
;******************* TIMER1 ***********************
ldi wreg,0x00
out PORTB,wreg ; Запись 0 в порт
ldi wreg,0b00000010 ; PortB.1 (OC1A) - Output
out DDRB,wreg
ldi wreg, 0b10000001 ; неинв. 8 битный ШИМ
out TCCR1A, wreg
ldi wreg, 0b00001001 ; CK/1
out TCCR1B, wreg
ldi wreg, 0b00000000
out TIMSK, wreg
main:
ldi wreg, 250 ; 25mS
rcall delay
ldi wreg, 0b01100101 ; ADC Channel 5 (PortC.5 ; pin 28)
rcall adc_convert
ldi wreg2, 0x00
out OCR1AH, wreg2
out OCR1AL, wreg
rjmp main
;*********************** DELAYS **************************
delay: ; 0.1mS * wreg
ldi duration, 24
cycle:
nop
dec duration
brne cycle
dec wreg
brne delay
ret
;********************** AD CONVERTION *******************
adc_convert:
out ADMUX, wreg ; wreg contains channel
sbi ADCSR, ADSC ; Start Convertion
sbic ADCSR , ADSC
rjmp PC-1
in wreg, ADCL ; просто формальность (первым всегда читается ADCL)
in wreg, ADCH ; wreg contains result
ret
; Atmega8, crystal 1MHZ (internal)
; Timer Counter 1
; Fast PWM & ADC
.include "m8def.inc"
.def wreg =R16
.def duration =R17
.def wreg2 =R18
init:
ldi wreg,low(RAMEND)
out SPL,wreg
ldi wreg,high(RAMEND) ; Stack Pointer = $45F
out SPH,wreg
cli ; запретить прерывания
ldi wreg, 0b10000011 ; Вкл. Ацп, Однокр. преобр., Прерывание запрещено, СК/8 (125 kHz)
out ADCSR, wreg
ldi wreg, 0b01101110 ; AVcc, Внеш. конд. на Aref, Выравн. по лев. краю, channel 1.23V bg
out ADMUX, wreg
rcall adc_convert
;******************* TIMER1 ***********************
ldi wreg,0x00
out PORTB,wreg ; Запись 0 в порт
ldi wreg,0b00000010 ; PortB.1 (OC1A) - Output
out DDRB,wreg
ldi wreg, 0b10000001 ; неинв. 8 битный ШИМ
out TCCR1A, wreg
ldi wreg, 0b00001001 ; CK/1
out TCCR1B, wreg
ldi wreg, 0b00000000
out TIMSK, wreg
main:
ldi wreg, 250 ; 25mS
rcall delay
ldi wreg, 0b01100101 ; ADC Channel 5 (PortC.5 ; pin 28)
rcall adc_convert
ldi wreg2, 0x00
out OCR1AH, wreg2
out OCR1AL, wreg
rjmp main
;*********************** DELAYS **************************
delay: ; 0.1mS * wreg
ldi duration, 24
cycle:
nop
dec duration
brne cycle
dec wreg
brne delay
ret
;********************** AD CONVERTION *******************
adc_convert:
out ADMUX, wreg ; wreg contains channel
sbi ADCSR, ADSC ; Start Convertion
sbic ADCSR , ADSC
rjmp PC-1
in wreg, ADCL ; просто формальность (первым всегда читается ADCL)
in wreg, ADCH ; wreg contains result
ret
-
Junior2010
- Родился
- Сообщения: 12
- Зарегистрирован: Сб апр 10, 2010 14:19:22
Re: Нужна помощь в программировании ШИМ (PWM).
Ну что ни кто не поможет?
-
Junior2010
- Родился
- Сообщения: 12
- Зарегистрирован: Сб апр 10, 2010 14:19:22
Re: Нужна помощь в программировании ШИМ (PWM).
Ну что ни кто не поможет?
Re: Нужна помощь в программировании ШИМ (PWM).
1) не видно инициализации векторов прерываний
2) стек по даташиту инициализируется так (незнаю имеет ли очередность записи в регистры стека, но в даташите сначала в старший):
RESET: ldi r16,high(RAMEND)
out SPH,r16
ldi r16,low(RAMEND)
out SPL,r16
sei
2) стек по даташиту инициализируется так (незнаю имеет ли очередность записи в регистры стека, но в даташите сначала в старший):
RESET: ldi r16,high(RAMEND)
out SPH,r16
ldi r16,low(RAMEND)
out SPL,r16
sei
-
Junior2010
- Родился
- Сообщения: 12
- Зарегистрирован: Сб апр 10, 2010 14:19:22
Re: Нужна помощь в программировании ШИМ (PWM).
Alexeus, а больше ошибок нету? ОСтальное все правильно? Подойдет это программа?
-
Junior2010
- Родился
- Сообщения: 12
- Зарегистрирован: Сб апр 10, 2010 14:19:22
Re: Нужна помощь в программировании ШИМ (PWM).
Снова я ))) Вообще я пишу эту програмульку к зачету, сегодня показал ее своему преподу и он сказал что программа абсолютно не подходит ((( На мой вопрос, что конкретно не то он сказал: "Ты должен был ввести цифровой сигнал с какими то определенными параметрами, а на выходе получить ШИМ и все" я так и не понял в чем моя ошибка... Помогите пожалуйста завтра перездача, а я так и не могу понять что делать...
-
Junior2010
- Родился
- Сообщения: 12
- Зарегистрирован: Сб апр 10, 2010 14:19:22
Re: Нужна помощь в программировании ШИМ (PWM).
Просматриваю тему постоянно и вижу что кто то постоянно ее читает, а ответить то что трудно!!!!!!!!
- Meteor
- Друг Кота
- Сообщения: 3961
- Зарегистрирован: Пн июл 13, 2009 14:37:39
- Откуда: Московская область, наукоград.....
- Контактная информация:
Re: Нужна помощь в программировании ШИМ (PWM).
Насколько понимаю суть проблемы, необходимо:
1) "избавиться" от подпрограммы запроса данных с АЦП.
2) Выделить порт под задание кода ШИМ.
3) Написать кусок кода чтения данных с порта в п.2.
4) Ввести в качестве параметра полученные данные из п 3 в регистр OCRi
5) Проверить работу.
6) Сдать зачет
7) Проставиться котам
.....
1) "избавиться" от подпрограммы запроса данных с АЦП.
2) Выделить порт под задание кода ШИМ.
3) Написать кусок кода чтения данных с порта в п.2.
4) Ввести в качестве параметра полученные данные из п 3 в регистр OCRi
5) Проверить работу.
6) Сдать зачет
7) Проставиться котам
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже