Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту


 
Опции темы

Просветите, пожалуйста, по ШИМу

Непрочитано 11.05.2018, 16:46  
-vitalik-
Вид на жительство
 
Аватар для -vitalik-
 
Регистрация: 29.03.2009
Адрес: Бровары, Украина
Сообщений: 325
Сказал спасибо: 1,486
Сказали Спасибо 82 раз(а) в 46 сообщении(ях)
-vitalik- на пути к лучшему
По умолчанию Просветите, пожалуйста, по ШИМу

Добрый день,
задачка очень простая: через АЦП считываем значение с потенциометра и передаем его в ШИМ.
Сделал так:
Код:
        while(1)
                {
                if (ADCON0.GO == 0) { Voltage = ADRESH; ADCON0.GO = 1;}
                CCPR1L = Voltage;
        }
но значение ШИМа постоянно "колбасит" в раене нуля.
Добавил в цикл delay_ms(100), заработало более-менее стабильно. но осцилограмка периодически дергалась.
Как надо - заработало только в таком виде:
Код:
        while(1)
                {
                if (ADCON0.GO == 0) { Voltage = ADRESH; ADCON0.GO = 1;}

                PWMvalue = Voltage;
                
                if (PWMvalue != PWMold) {CCPR1L = PWMvalue; PWMold = PWMvalue;}
                }
        }
Вопрос: в регистр CCPR1L нельзя часто писАть? Или это глюк кмпилятора/симулятора?

Использован PIC12F683, компилятор MicroC, симулятор с осциллографом - Proteus.
Инициализация проца:
Код:
        OPTION_REG = 0b10000000; //PullUP disabled, Scaller to TMR0 (1:2)
        INTCON = 0b10100000; //Interrupt, TMR0
        OSCCON = 0b01100001; //4MHz, Internal
        TRISIO = 0b00111000;
        ADCON0 = 0b00001111; //Data in ADRESH, Ref Vdd, AN3, ADC run and enabled
        ANSEL = 0b01011000; //Fosc/16, AN3
        CMCON0 = 0b00000111; //Disable comparator
        CCP1CON = 0b00001110; //PWM, active LOW
        PR2 = 255;
        T2CON = 0b01111101; //for PWM, postscaller 16, prescaller 4
Реклама:
-vitalik- вне форума  
Непрочитано 11.05.2018, 19:26  
pasha_zv
Прописка
 
Аватар для pasha_zv
 
Регистрация: 14.12.2006
Адрес: Ставрополь - Донское
Сообщений: 266
Сказал спасибо: 118
Сказали Спасибо 197 раз(а) в 81 сообщении(ях)
pasha_zv на пути к лучшему
По умолчанию Re: Просветите, пожалуйста, по ШИМу

а не перезапускается ли ШИМ при записи?
покури датащит
pasha_zv вне форума  
Непрочитано 11.05.2018, 19:37  
индюк
Гуру портала
 
Аватар для индюк
 
Регистрация: 17.07.2010
Адрес: мурмурляндия
Сообщений: 11,124
Сказал спасибо: 202
Сказали Спасибо 3,284 раз(а) в 2,150 сообщении(ях)
индюк на пути к лучшему
По умолчанию Re: Просветите, пожалуйста, по ШИМу

Вот поэтому в стм32 теневой регистр есть. Оно там записывается только в нулевой момент
__________________
кагмаподэ магмаподэ
индюк вне форума  
Непрочитано 11.05.2018, 22:05  
STM32F0
Заблокирован
 
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
STM32F0 на пути к лучшему
По умолчанию Re: Просветите, пожалуйста, по ШИМу

Вечно тебя то в тень, то в темноту тянет.
Там дело в прелоад, включён он или выключен. Эта фишка есть во многих МК, не только в СТМ, в новых ПИКах и Мегах тоже есть. В старых нет и в документации это отражено - при быстрой смене значений будут глитчи.
STM32F0 вне форума  
Непрочитано 11.05.2018, 22:49  
DmitriyVDN
Гражданин KAZUS.RUN
 
Регистрация: 10.06.2010
Сообщений: 598
Сказал спасибо: 224
Сказали Спасибо 235 раз(а) в 154 сообщении(ях)
DmitriyVDN на пути к лучшему
По умолчанию Re: Просветите, пожалуйста, по ШИМу

я дико извиняюсь, но
1. скважность ШИМ заносится из регистра CCPR1Н данные в него попадают в начале цикла ШИМ из регистра CCPR1L так шо претензии к модулю ССР мимо кассы.
2. шо там у ТС за потенциометр одному богу известно, и даже если оный в рамках дозволенных ДШ 10кОм , задержку перед преобразованием на перезаряд емкости отсутствующую у ТС никто не отменял, в ДШ есть формула расчета.
3. + шумы на входе АЦП , а никакого ЦФ в коде ТСа не наблюдаетцо
DmitriyVDN вне форума  
Непрочитано 12.05.2018, 00:33  
STM32F0
Заблокирован
 
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
STM32F0 на пути к лучшему
По умолчанию Re: Просветите, пожалуйста, по ШИМу

Это все легко определяется записью и анализом значений АЦП и выводом тестовой таблицы через ШИМ.
STM32F0 вне форума  
Сказали "Спасибо" STM32F0
mike-y-k (12.05.2018)
Непрочитано 12.05.2018, 03:58  
mike-y-k
Модератор
 
Регистрация: 04.08.2010
Адрес: Москва СЗАО/МО
Сообщений: 12,276
Сказал спасибо: 11,858
Сказали Спасибо 4,158 раз(а) в 3,176 сообщении(ях)
mike-y-k на пути к лучшему
По умолчанию Re: Просветите, пожалуйста, по ШИМу

А именно потенциометр в этой схеме столь категорично обязателен?
При его замене на энкодер обработка сильно упростится.
DAC нужен там, где нет ему альтернативы.
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
mike-y-k вне форума  
Непрочитано 12.05.2018, 20:43  
-vitalik-
Вид на жительство
 
Аватар для -vitalik-
 
Регистрация: 29.03.2009
Адрес: Бровары, Украина
Сообщений: 325
Сказал спасибо: 1,486
Сказали Спасибо 82 раз(а) в 46 сообщении(ях)
-vitalik- на пути к лучшему
По умолчанию Re: Просветите, пожалуйста, по ШИМу

Всем спасибо за советы. Даташит читал, говорят, что в CCPR1L можно писать в любой момент. Про АЦП и шумы - тож не в счет, ибо просто строка CCPR1L := 50; прямо в цикле while уже даёт каку.
До этого делал таким же макаром с PIC16F876 (всмысле, многократная запись в CCPR), работает без проблем.
Так что куплю проц и попробую, как будет в реале
-vitalik- вне форума  
Непрочитано 12.05.2018, 21:05  
andron007
Прописка
 
Регистрация: 19.02.2008
Адрес: г. Иркутск
Сообщений: 278
Сказал спасибо: 220
Сказали Спасибо 172 раз(а) в 80 сообщении(ях)
andron007 на пути к лучшему
По умолчанию Re: Просветите, пожалуйста, по ШИМу

У Pic12f683 c модулем CCP регулярно непонятки происходят.
andron007 вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите пожалуйста определить транзистор в реноваторе tarabukinivan Электроника - это просто 62 06.04.2017 17:27
Экранирование проектора. Проясните пожалуйста Lis63 Отвлекитесь, эмбеддеры! 15 16.07.2014 20:03
Помогите, пожалуйста, с PICом и дисплеем VaL_KX Proteus 4 15.11.2010 22:33
Поможите пожалуйста с литературой на тему сбор данных. ArtUrl1986 Микроконтроллеры, АЦП, память и т.д 0 05.05.2009 02:27
Помогите, пожалуйста создать Счётчик Гейгера ArtUrl1986 Измерительное оборудование 15 05.04.2007 11:28


Часовой пояс GMT +4, время: 19:22.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.