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

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

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

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

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

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

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 22.11.2007, 15:33  
tempora
Почётный гражданин KAZUS.RU
 
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию

Сообщение от retcom
В два раза не получается.
Можно делить только на 8-, 64-, 256- и 1024-.
Да, я тоже в даташит заглянул и увидел (и приписал уже). Ну, так есть же и другие параметры. В самом крайнем случае можно в прерывании вписывать в счетчик нужное значение, хотя, это некрасиво - можно применять только, если аппаратно нужной частоты не добиться. Комбинаторикой ты уж, плиз, сам займись.
Реклама:
tempora вне форума  
Непрочитано 22.11.2007, 15:41  
tempora
Почётный гражданин KAZUS.RU
 
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию

... что-то там не очень-то получается подобрать...
Ну, тогда остается одно - оставив прескейлер равным 1024, в начале обработчика загружать в TCNT0 половину его счетного интервала - 128, он тогда будет досчитывать до нуля в два раза быстрее.
tempora вне форума  
Непрочитано 22.11.2007, 15:56  
retcom
Вид на жительство
 
Регистрация: 27.07.2006
Сообщений: 308
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
retcom на пути к лучшему
По умолчанию

Делаю:
Код:
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
TCNT0=0x80;
PINB.0 = 1;
}

DDRB=0x01;

TCCR0B=0x05;
TCNT0=0xB2;

TIMSK0=0x01;
Получили 50 Гц. Спасибо!
retcom вне форума  
Непрочитано 22.11.2007, 16:09  
tempora
Почётный гражданин KAZUS.RU
 
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию

Сообщение от retcom
Получили 50 Гц. Спасибо!
Ага, только убери вот это - "TCNT0=0xB2;", от него проку, как от козла молока...
tempora вне форума  
Непрочитано 23.11.2007, 14:52  
retcom
Вид на жительство
 
Регистрация: 27.07.2006
Сообщений: 308
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
retcom на пути к лучшему
По умолчанию

Цитата:
убери вот это - TCNT0=0xB2;
Убрал. Все работает.

Делаю 2ШИМ. Опять по ДШ. 50 Гц. Величина ШИМа в OCR0A/B.

Код:
//Clock frequency     : 3,686400 MHz
DDRD=0x60;//ножки PD5/6 выходы

TCCR0A=0xA3;//0b10100011
TCCR0B=0x0D;//00001101

TCNT0=0xB8;//dec 184

OCR0A=0x00;
OCR0B=0xFF;//ШИМ величина
На ножках нет вообще никаких сигналов.
retcom вне форума  
Непрочитано 23.11.2007, 15:42  
tempora
Почётный гражданин KAZUS.RU
 
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию

Сообщение от retcom
OCR0A=0x00;
А если туда 0х80 прописать?

P.S. Опять вижу - "TCNT0=0xB8;//dec 184", можешь объяснить сокровенный смысл этого оператора? Ты его везде ставишь, наверное, есть какой-то толк от этого...?
tempora вне форума  
Непрочитано 23.11.2007, 16:42  
retcom
Вид на жительство
 
Регистрация: 27.07.2006
Сообщений: 308
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
retcom на пути к лучшему
По умолчанию

Цитата:
А если туда 0х80 прописать?
Прописываю.
Цитата:
Опять вижу - "TCNT0=0xB8;//dec 184", можешь объяснить сокровенный смысл этого оператора? Ты его везде ставишь, наверное, есть какой-то толк от этого...?
Я таким образом хочу добится частоты ШИМ 50 Гц. (TCNT0=0xB8 вместе с clk/1024 и начальной частотой 3686400 Гц.)

Полностью код (Для Т0):

Код:
//Clock frequency     : 3,686400 MHz

DDRD=0x60;

TCCR0A=0xA3;
TCCR0B=0x0D;
TCNT0=0xB8;
OCR0A=0x80;
OCR0B=0x00;
В итоге получаем:

На экране осцилла, для PD5 - над линией появились точки, с периодичностью 3 клетки. Для PD6 - постоянный единичный сигнал.

Установка осцилла 5 мс.

Как же мне все таки сделать, чтоб скважностью ШИМ можно было управлять 2 кнопками? Я уже помираю.
retcom вне форума  
Непрочитано 23.11.2007, 17:34  
tempora
Почётный гражданин KAZUS.RU
 
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию

Сообщение от retcom
Полностью код (Для Т0):
[pre]//Clock frequency : 3,686400 MHz
DDRD=0x60;
TCCR0A=0xA3;
TCCR0B=0x0D;
TCNT0=0xB8;
OCR0A=0x80;
OCR0B=0x00;[/pre]
Постой, постой, какая-то тут путаница получилась - все инструкции в приведенном куске кода имеют смысл для этапа инициализации... кроме записи в ТКНТ0. Я думал, что приведенный кусок и есть процедура инициализации, а запись в счетчик делается по ошибке. Если же весь этот кусок кода принадлежит обработчику прерывания от Таймера0, то что там делают инструкции инициализации этого таймера?
Сообщение от retcom
Для PD6 - постоянный единичный сигнал.
Я про шестую ногу и забыл - а что ты на ней хотел получить-то?
Сообщение от retcom
Как же ..., чтоб скважностью ШИМ можно было управлять 2 кнопками?
Привет горячий - ты же уже "поуправлял" только что - OCR0A сменил с нуля на 128, как я сказал, и скважность изменилась; теперь меняй эту величину кнопками и вот тебе счастье, что не нравится-то?

P.S. Есть подозрение, что раздел описания таймеров ты прочитал невнимательно... может повторить?
tempora вне форума  
Непрочитано 23.11.2007, 18:01  
retcom
Вид на жительство
 
Регистрация: 27.07.2006
Сообщений: 308
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
retcom на пути к лучшему
По умолчанию

Я уже опух. Пожалейте меня!
Я понимаю 2ШИМ, это когда на PD5 - 1 в то время, когда на PD6 - 0. И все это меняется с частотой например 50 Гц, плюс протекание импульса можно увеличивать-уменьшать, увеличивая-уменьшая скважность.
Это не так?
Вот такой код:

Код:
Clock frequency     : 3,686400 MHz

DDRD=0x60;

TCCR0A=0xA3;
TCCR0B=0x0D;
TCNT0=0xB8;
OCR0A=0x80;
OCR0B=0xFF;
Устанавливает 2ШИМ на PD5-PD6?
Тогда что представляет собой 2ШИМ сигнал?
retcom вне форума  
Непрочитано 23.11.2007, 20:24  
avr123-nm-ru
Почётный гражданин KAZUS.RU
 
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
avr123-nm-ru на пути к лучшему
По умолчанию

Если бы ты делал для связки компилятор симулятор и выкладывал архив с проектом к вопросам - то помочь тебе было бы легче ИМХО.
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
avr123-nm-ru вне форума  
 

Закладки
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
CVAVR while и таймер kr11507 Микроконтроллеры, АЦП, память и т.д 10 13.12.2008 21:29
Таймер на 5 часов alecsandr27 Автоматика и аппаратура связи 6 11.10.2008 20:25
Часы - таймер s5s5 Микроконтроллеры, АЦП, память и т.д 5 16.05.2008 11:36
Таймер Serq Автоматика и аппаратура связи 18 27.11.2007 18:32
Таймер dem9968 Делимся опытом 1 03.02.2005 09:03


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


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