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

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

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

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

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

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

AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR...

Закрытая тема
Опции темы
Непрочитано 14.08.2012, 22:20   #11
Alecsej
Вид на жительство
 
Регистрация: 10.08.2005
Сообщений: 385
Сказал спасибо: 0
Сказали Спасибо 161 раз(а) в 140 сообщении(ях)
Alecsej на пути к лучшему
По умолчанию Re: ATMega8515, заШИМить все порты вывода

Low-Jitter Multi-Channel PWM Software
• Подходит для любого AVR ® со свободным 8-разрядным таймером
• Не накапливаемое дрожание + / - 0,015% от базовой частоты
• До 24 каналов ШИМ с использованием поставляемого кода
• Для управления интенсивностью ламп, скоростью двигателя постоянного тока и т.д.
• Весь исходный код написан на C


"… – и она перешла на японский; на устаревшем английском трудно объяснить современные технические вещи, ..."

Генетические связи японского языка не до конца выяснены. Выделяются два слоя лексики, один из которых имеет параллели в алтайских языках, другой — в австронезийских языках; вероятнее, исконен алтайский слой.
Реклама:

Последний раз редактировалось Alecsej; 14.08.2012 в 22:49.
Alecsej вне форума  
Непрочитано 14.08.2012, 22:55   #12
niXto
Почётный гражданин KAZUS.RU
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: ATMega8515, заШИМить все порты вывода

Сообщение от gary2007 Посмотреть сообщение
только заметны кратковременные вспышки яркости при приеме данных и смене цифр, на малых уровнях яркости, но видно от этого не уйти. Прием данных сравнительно медленный у меня.
Делай подпрограмму прерываний приема и смены цифр максимально короткими - в идеале чтобы она гарантированно выполнялась за половину периода таймера, тогда все будет идеально как на моем видео. Переноси все вычисления из прерываний в основной код программы
niXto вне форума  
Непрочитано 14.08.2012, 23:22   #13
alvadep
Почётный гражданин KAZUS.RU
 
Регистрация: 05.05.2011
Адрес: Харьков
Сообщений: 5,049
Сказал спасибо: 592
Сказали Спасибо 3,968 раз(а) в 1,826 сообщении(ях)
alvadep на пути к лучшему
По умолчанию Re: ATMega8515, заШИМить все порты вывода

Сообщение от gary2007 Посмотреть сообщение
В общем, сделал на прерываниях, все работает, только заметны кратковременные вспышки яркости при приеме данных и смене цифр, на малых уровнях яркости, но видно от этого не уйти. Прием данных сравнительно медленный у меня.
У Вас на прерываниях еще что-то висит кроме ШИМа для индикатора?

Если прерывание одно, то такого не должно быть. Если прерываний несколько, то может быть. Выход один, как предложил niXto, делать обработчик прерываний максимально коротким. Я бы добавил, что это касается прерываний не связанных с индикацией. Или разрешать в таких обработчиках вложенные прерывания.

Последний раз редактировалось alvadep; 14.08.2012 в 23:45.
alvadep вне форума  
Непрочитано 14.08.2012, 23:35   #14
jump
Почётный гражданин KAZUS.RU
 
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 7,981
Сказал спасибо: 0
Сказали Спасибо 4,941 раз(а) в 2,370 сообщении(ях)
jump на пути к лучшему
По умолчанию Re: ATMega8515, заШИМить все порты вывода

gary2007,
как вариант - синхронный процесс на таймере с прерыванием и с частотой в 2раза выше приема данных, USART опрашивать поллингом флага (можно в прерывании от таймера), математику выверить по тактам и разместить в теле программы между прерываниями от таймера, расчленив на части (для длинных вычислений)
опять, похоже, стела
jump вне форума  
Непрочитано 14.08.2012, 23:35   #15
gary2007
Почётный гражданин KAZUS.RU
 
Аватар для gary2007
 
Регистрация: 24.09.2007
Адрес: Полтава, UA
Сообщений: 2,450
Сказал спасибо: 376
Сказали Спасибо 1,060 раз(а) в 624 сообщении(ях)
gary2007 на пути к лучшему
По умолчанию Re: ATMega8515, заШИМить все порты вывода

Будем думать, у меня прием занимает минимум 126 мс. Либо ускорять, либо смириться... Посмотрим на больших табло, когда они будут готовы. Если ШЕФ будет морщиться, тогда будем ускоряться!
Сообщение от Alecsej Посмотреть сообщение
"… – и она перешла на японский; на устаревшем английском трудно объяснить современные технические вещи, ..."
Там у нас есть ветки для приколов. В прикольные дни, хороший прикол, да под хорошую закуску, да с хорошими друзьями самое ТО... а тут - нет, выглядит как издевка.

Сообщение от alvadep Посмотреть сообщение
У Вас на прерываниях еще что-то висит кроме ШИМа для индикатора?
Нет, прерывания не использовал.

jump Вы просто провидец!
__________________
Мелочи не решают главного. Они решают всё!

Последний раз редактировалось gary2007; 14.08.2012 в 23:41.
gary2007 вне форума  
Непрочитано 14.08.2012, 23:59   #16
alvadep
Почётный гражданин KAZUS.RU
 
Регистрация: 05.05.2011
Адрес: Харьков
Сообщений: 5,049
Сказал спасибо: 592
Сказали Спасибо 3,968 раз(а) в 1,826 сообщении(ях)
alvadep на пути к лучшему
По умолчанию Re: ATMega8515, заШИМить все порты вывода

Сообщение от gary2007 Посмотреть сообщение
Нет, прерывания не использовал.
Ответил в предыдущем своем посте.

P.S. При одном обработчике, да и при числе градаций 16 такое может быть, только если что-то не корректно составленно в программе.
alvadep вне форума  
Непрочитано 15.08.2012, 01:13   #17
gary2007
Почётный гражданин KAZUS.RU
 
Аватар для gary2007
 
Регистрация: 24.09.2007
Адрес: Полтава, UA
Сообщений: 2,450
Сказал спасибо: 376
Сказали Спасибо 1,060 раз(а) в 624 сообщении(ях)
gary2007 на пути к лучшему
По умолчанию Re: ATMega8515, заШИМить все порты вывода

А ведь вы правы!
Что-то не так, ведь я не запрещаю прерывания когда идет прием... прерывания по сравнению и переполнению таймера свободно отрабатывают в это время, им никто не мешает нормально шимить.
__________________
Мелочи не решают главного. Они решают всё!
gary2007 вне форума  
Непрочитано 15.08.2012, 09:09   #18
Someone
Гражданин KAZUS.RU
 
Регистрация: 16.06.2005
Сообщений: 944
Сказал спасибо: 25
Сказали Спасибо 174 раз(а) в 123 сообщении(ях)
Someone на пути к лучшему
По умолчанию Re: ATMega8515, заШИМить все порты вывода

Сообщение от gary2007 Посмотреть сообщение
Все работает, вопрос в том как программно cделать то-же самое, т.е без схемы на ключе?
Если уж используешь улн-ки, то проще и использовать что-то вроде MAX7219.

Последний раз редактировалось Someone; 15.08.2012 в 09:14.
Someone вне форума  
Непрочитано 15.08.2012, 09:14   #19
makakus
Почётный гражданин KAZUS.RU
 
Регистрация: 08.10.2007
Сообщений: 2,760
Сказал спасибо: 1,105
Сказали Спасибо 1,037 раз(а) в 569 сообщении(ях)
makakus на пути к лучшему
По умолчанию Re: ATMega8515, заШИМить все порты вывода

Я бы сделал так.
(Приоритет прерываний ровно такой в какой последовательности они идут в векторах, таймер2 и таймер1 более приоритетны, чем UART. )

В прерывании по приёму байта запись этого байта в память, наращивание счётчика принятых байт и всё. Фоновая программа смотрит на счётчик байт или признак конца пакета и обрабатывает.

В прерывании таймера по сравнению: выключить индикатор. Прерывание по переполнению: включить - по 4 команды out port,register.


Если подмигивает, значит, что-то не так с циклами. Вы не останавливаете таймер?
Вы запрещаете прерывания при записи в регистры OCRh,OCRl? Потому что прерывание может произойти между записью в OCRh и OCRl.
Ещё может быть, что перезагрузка OCR происходит на более низкое значение. Если, например, TCNT=100, OCR=120 и вы записываете в OCR 80 то прерывания в момент TCNT=120 не произойдёт, т.к. OCR уже 80. И следующее прерывание будет только после переполнения счётчика. Так происходит в режиме fast pwm, в других режимах таймера регистры OCR обновляются в момент переполнения. В общем, тут поищите.

Лучше всего обновлять OCR в прерывании по переполнению, тупо переписывая каждый раз из регистров / памяти. Туда писать значение, принятое из команды: так вы полностью развяжете временнЫе циклы приёма команды и яркости.

Глаз очень чувствителен к этим вспышкам светодиодов: изменение периода на 1/512 уже хорошо заметно, намучился с этим.

Последний раз редактировалось makakus; 15.08.2012 в 09:34.
makakus вне форума  
Непрочитано 15.08.2012, 10:54   #20
gary2007
Почётный гражданин KAZUS.RU
 
Аватар для gary2007
 
Регистрация: 24.09.2007
Адрес: Полтава, UA
Сообщений: 2,450
Сказал спасибо: 376
Сказали Спасибо 1,060 раз(а) в 624 сообщении(ях)
gary2007 на пути к лучшему
По умолчанию Re: ATMega8515, заШИМить все порты вывода

Сообщение от makakus Посмотреть сообщение
Вы не останавливаете таймер?
Нет, я только обнуляю предделитель таймера Т0 для более точных замеров фронтов. В atmega8515 всего два таймера Т0 и Т1, 8-ми и 16-ти бит.
Таймер 0 меряет фронты импульсов приемной посылки. Прием сделан без использования прерываний, в main проверяется установка пина и если пришел "высокий" переход в процедуру приема, дешифрации, индикации. На Т1 сделан 8 бит фаст ШИМ, на него же вчера написал два обработчика прерываний, по совпадению и переполнению.
Накосячил скорее всего в инициализации таймера 1, буду разбираться.
__________________
Мелочи не решают главного. Они решают всё!
gary2007 вне форума  
Закрытая тема

Закладки


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
PIC16F887A переключить все порты в цифровые i/o old_z Микроконтроллеры, АЦП, память и т.д 47 21.12.2011 02:04
Порты ввода/вывода AT90USB162 Archer07 Микроконтроллеры, АЦП, память и т.д 4 01.08.2011 11:05
Отрубились все порты на материнке omicron5 Ремонт оргтехники 9 06.05.2011 17:48
uart atmega8515 bass1981 Микроконтроллеры, АЦП, память и т.д 2 30.04.2011 20:27
AT90S8515 и ATmega8515 R_V_A Микроконтроллеры, АЦП, память и т.д 6 12.09.2006 18:22


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


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot