Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
22.11.2007, 15:33
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Сообщение от retcom
|
В два раза не получается.
Можно делить только на 8-, 64-, 256- и 1024-.
|
Да, я тоже в даташит заглянул и увидел (и приписал уже). Ну, так есть же и другие параметры. В самом крайнем случае можно в прерывании вписывать в счетчик нужное значение, хотя, это некрасиво - можно применять только, если аппаратно нужной частоты не добиться. Комбинаторикой ты уж, плиз, сам займись.
|
|
|
|
22.11.2007, 15:41
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
... что-то там не очень-то получается подобрать...
Ну, тогда остается одно - оставив прескейлер равным 1024, в начале обработчика загружать в TCNT0 половину его счетного интервала - 128, он тогда будет досчитывать до нуля в два раза быстрее.
|
|
|
|
22.11.2007, 15:56
|
|
Вид на жительство
Регистрация: 27.07.2006
Сообщений: 308
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Делаю:
Код:
|
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
TCNT0=0x80;
PINB.0 = 1;
}
DDRB=0x01;
TCCR0B=0x05;
TCNT0=0xB2;
TIMSK0=0x01; |
Получили 50 Гц. Спасибо!
|
|
|
|
22.11.2007, 16:09
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Сообщение от retcom
|
Получили 50 Гц. Спасибо!
|
Ага, только убери вот это - "TCNT0=0xB2;", от него проку, как от козла молока...
|
|
|
|
23.11.2007, 14:52
|
|
Вид на жительство
Регистрация: 27.07.2006
Сообщений: 308
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Цитата:
|
убери вот это - 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;//ШИМ величина |
На ножках нет вообще никаких сигналов.
|
|
|
|
23.11.2007, 15:42
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Сообщение от retcom
|
OCR0A=0x00;
|
А если туда 0х80 прописать?
P.S. Опять вижу - "TCNT0=0xB8;//dec 184", можешь объяснить сокровенный смысл этого оператора? Ты его везде ставишь, наверное, есть какой-то толк от этого...?
|
|
|
|
23.11.2007, 16:42
|
|
Вид на жительство
Регистрация: 27.07.2006
Сообщений: 308
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Цитата:
|
А если туда 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 кнопками? Я уже помираю.
|
|
|
|
23.11.2007, 17:34
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Сообщение от 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. Есть подозрение, что раздел описания таймеров ты прочитал невнимательно... может повторить?
|
|
|
|
23.11.2007, 18:01
|
|
Вид на жительство
Регистрация: 27.07.2006
Сообщений: 308
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Я уже опух. Пожалейте меня!
Я понимаю 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ШИМ сигнал?
|
|
|
|
23.11.2007, 20:24
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
|
Если бы ты делал для связки компилятор симулятор и выкладывал архив с проектом к вопросам - то помочь тебе было бы легче ИМХО.
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
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.
|
|