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

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

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

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

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

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

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

Закрытая тема
Опции темы
Непрочитано 06.04.2008, 13:01   #1
Gonchar
Временная регистрация
 
Регистрация: 30.06.2005
Адрес: Санкт-Петербург
Сообщений: 73
Сказал спасибо: 2
Сказали Спасибо 11 раз(а) в 11 сообщении(ях)
Gonchar на пути к лучшему
По умолчанию Проблема с ШИМ в attiny2313

Не могу понять почему при установке режима ШИМ он не запускается.
Таймер 1
Режим-Fast PWM
Модуль счета-регистр OCR1A, т.е. установка битов в регистрах TCCR1A и TCCR1B(WGM13:WGM10)все=1
Инвертированный ШИМ, т.е. COM1A1=1 и COM1A0=1
Реклама:
Gonchar вне форума  
Непрочитано 06.04.2008, 13:16   #2
TEHb
Почётный гражданин KAZUS.RU
 
Аватар для TEHb
 
Регистрация: 27.06.2005
Сообщений: 1,389
Сказал спасибо: 19
Сказали Спасибо 210 раз(а) в 156 сообщении(ях)
TEHb на пути к лучшему
По умолчанию Re: Проблема с ШИМ в attiny2313

Сообщение от Gonchar
Не могу понять почему при установке режима ШИМ он не запускается.
Таймер 1
Режим-Fast PWM
Модуль счета-регистр OCR1A, т.е. установка битов в регистрах TCCR1A и TCCR1B(WGM13:WGM10)все=1
Инвертированный ШИМ, т.е. COM1A1=1 и COM1A0=1
Вот мой тестовый пример - он работает на реальной железке.

Код:
#include ‹inttypes.h›
#include ‹avr/io.h›
#include ‹avr/interrupt.h›
#include ‹avr/sleep.h›

/*ISR(TIM0_COMPA_vect)
 { PORTB ^= 0x10;
 	OCR0A-=4;
 }*/

int main(void)
 { // Enable pull-ups
   MCUCR &= ~(1 ‹‹ PUD);
	PORTA = 0x00;
	PORTB = 0x00;
	// PortB is output
	DDRA = 0xFF;
	DDRB = 0xFF;
   // Clear timer
   TCNT1 = 0;
   
   // Set Comparator values
   OCR1A = 0x8000;
   OCR1B = 0x1000;

   // Set Timer mode
   TCCR1A = (1 ‹‹ COM0A1) | (0 ‹‹ COM0A0) | (1 ‹‹ COM0B1) | (0 ‹‹ COM0B0) | (0 ‹‹ COM0B1) | (1 ‹‹ WGM11) | (0 ‹‹ WGM10);
   TCCR1B = (0 ‹‹ ICNC1) | (0 ‹‹ ICES1) | (1 ‹‹ WGM13) | (1 ‹‹ WGM12) | (0 ‹‹ CS12) | (0 ‹‹ CS11) | (1 ‹‹ CS10);

   ICR1 = 0xFFFF;
   
   while (1)
    {   
	 }
   return 0;
 }
TEHb вне форума  
Непрочитано 13.04.2008, 15:20   #3
Gonchar
Временная регистрация
 
Регистрация: 30.06.2005
Адрес: Санкт-Петербург
Сообщений: 73
Сказал спасибо: 2
Сказали Спасибо 11 раз(а) в 11 сообщении(ях)
Gonchar на пути к лучшему
По умолчанию Кто подскажет, что неправильно с программой

include "tn2313def.inc"


.def tmp16=r16
.def tmp28=r28
.def tmp29=r29



.cseg
.org 0 rjmp RESET; External Pin, Power-on Reset, Brown-out Reset,and Watchdog Reset
.org 1 nop ;rjmp INT0; External Interrupt Request 0
.org 2 nop ;rjmp INT1; External Interrupt Request 1
.org 3 nop ;rjmp TIMER1 CAPT; Timer/Counter1 Capture Event
.org 4 nop ;rjmp TIMER1COMPA; Timer/Counter1 Compare Match A
.org 5 nop ;rjmp TIMER1OVF; Timer/Counter1 Overflow
.org 6 nop ;rjmp TIMER0 OVF; Timer/Counter0 Overflow
.org 7 nop ;rjmp USART0, RXC; USART0, Rx Complete
.org 8 nop ;rjmp USART0, UDRE; USART0 Data Register Empty
.org 9 nop ;rjmp USART0, TXC; USART0, Tx Complete
.org 10 nop ;rjmp ANA_COMP; Analog Comparator
.org 11 nop ;rjmp PCINT; Pin Change Interrupt
.org 12 nop ;rjmp TIMER1 COMPB; Timer/Counter1 Compare Match B
.org 13 nop ;rjmp TIMER0 COMPA; Timer/Counter0 Compare Match A
.org 14 nop ;rjmp TIMER0 COMPB; Timer/Counter0 Compare Match B
.org 15 nop ;rjmp USI START; USI Start Condition
.org 16 nop ;rjmp USI OVERFLOW; USI Overflow
.org 17 nop ;rjmp EE READY; EEPROM Ready
.org 18 nop ;rjmp WDT OVERFLOW; Watchdog Timer Overflow

;************************************************* ****************************

reset:ldi tmp16,low(RAMEND)
out spl,tmp16
ldi tmp16,(1‹‹PB3)
out DDRB,tmp16
ldi tmp16,high(0)
out TCNT1H,tmp16
ldi tmp16,low(0)
out TCNT1L,tmp16
ldi tmp29,high(10000)
out OCR1AH,tmp29
ldi tmp28,low(10000)
out OCR1AL,tmp28
ldi tmp16,(1‹‹COM1A1)|(1‹‹COM1A0)|(1‹‹WGM11)|(1‹‹WGM10 )
out TCCR1A,tmp16
ldi tmp16,(1‹‹WGM13)|(1‹‹WGM12)|(0‹‹CS12)|(0‹‹CS11)|(1 ‹‹CS10)
out TCCR1B,tmp16

;************************************************* ****************************


main:
rjmp main


Контроллер должен формировать ШИМ,
а получается какая то ерунда
Gonchar вне форума  
Непрочитано 13.04.2008, 16:28   #4
TEHb
Почётный гражданин KAZUS.RU
 
Аватар для TEHb
 
Регистрация: 27.06.2005
Сообщений: 1,389
Сказал спасибо: 19
Сказали Спасибо 210 раз(а) в 156 сообщении(ях)
TEHb на пути к лучшему
По умолчанию

Конкретно не разбирался, вот диагностика работы модели - может чем поможет:

-- Прилагается рисунок: --

TEHb вне форума  
Непрочитано 13.04.2008, 17:25   #5
TEHb
Почётный гражданин KAZUS.RU
 
Аватар для TEHb
 
Регистрация: 27.06.2005
Сообщений: 1,389
Сказал спасибо: 19
Сказали Спасибо 210 раз(а) в 156 сообщении(ях)
TEHb на пути к лучшему
По умолчанию

А. Ну вот всё ясно. У таймера задан TOP=OCR1A, он же управляет ножкой по сравнению. Кстати, в каком логическом состоянии находится выход контроллера? У меня в модели в 1.
TEHb вне форума  
Непрочитано 13.04.2008, 17:26   #6
Gonchar
Временная регистрация
 
Регистрация: 30.06.2005
Адрес: Санкт-Петербург
Сообщений: 73
Сказал спасибо: 2
Сказали Спасибо 11 раз(а) в 11 сообщении(ях)
Gonchar на пути к лучшему
По умолчанию

Здесь то вроде понятно, но не ясно что мне делать
Gonchar вне форума  
Непрочитано 13.04.2008, 17:29   #7
Gonchar
Временная регистрация
 
Регистрация: 30.06.2005
Адрес: Санкт-Петербург
Сообщений: 73
Сказал спасибо: 2
Сказали Спасибо 11 раз(а) в 11 сообщении(ях)
Gonchar на пути к лучшему
По умолчанию

А причем тут логический уровень?
Gonchar вне форума  
Непрочитано 13.04.2008, 19:39   #8
TEHb
Почётный гражданин KAZUS.RU
 
Аватар для TEHb
 
Регистрация: 27.06.2005
Сообщений: 1,389
Сказал спасибо: 19
Сказали Спасибо 210 раз(а) в 156 сообщении(ях)
TEHb на пути к лучшему
По умолчанию

Так какая задача-то? Сделать выход ШИМ с регулируемой частотой и скважностью? Тада нужно делать:
разрешить выход на OC1B, запретить выход на OC1A;
COM1A = 0;
COM1B = 3;
в OCR1A устанавливать частоту;
в OCR1B устанавливать скважность (д.б. меньше чем OCR1A).
Выход ШИМ будет на OC1B.

Если же нужна постоянная частота с двумя каналами ШИМ - то использовать другой режим ШИМ.

Значение выхода меня интересовало только для того, чтобы узнать насколько моя модель адекватна в граничных условиях. А, в любом случае - проверю на реальной железке...
TEHb вне форума  
Непрочитано 13.04.2008, 19:58   #9
Gonchar
Временная регистрация
 
Регистрация: 30.06.2005
Адрес: Санкт-Петербург
Сообщений: 73
Сказал спасибо: 2
Сказали Спасибо 11 раз(а) в 11 сообщении(ях)
Gonchar на пути к лучшему
По умолчанию

Нет у меня задача другая. Мне надо чтобы при совпадении счетного регистра TCNT1 и регистра сравнения OCR1A происходило измнение значения вывода, но только до TOP. Все это при фиксированной частоте.
Gonchar вне форума  
Непрочитано 13.04.2008, 22:30   #10
TEHb
Почётный гражданин KAZUS.RU
 
Аватар для TEHb
 
Регистрация: 27.06.2005
Сообщений: 1,389
Сказал спасибо: 19
Сказали Спасибо 210 раз(а) в 156 сообщении(ях)
TEHb на пути к лучшему
По умолчанию

Ну, тогда можно установить WGM=14 а не 15 (TCCR1A.WGM10=0).
В этом режиме в качестве TOP будет использоваться ICR1, но надо помнить что если сработает Input Capture - в него занесётся текущее значение TCNT1.

По другому пользовать полный (16-разрядный) таймер не получится.
TEHb вне форума  
Закрытая тема

Закладки


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с ATtiny2313 kvark85 Микроконтроллеры, АЦП, память и т.д 28 26.02.2009 14:34
!!! Проблема с организацией ШИМ для полумоста !!! hubble Микроконтроллеры, АЦП, память и т.д 28 12.09.2008 17:34
AT90S2313 vs Attiny2313-20 Edward_tlt Микроконтроллеры, АЦП, память и т.д 68 20.03.2008 23:11
ШИМ АВР проблема Zemlyanov Микроконтроллеры, АЦП, память и т.д 14 11.02.2007 20:44
Проблема с USART в ATTiny2313 Фокс Микроконтроллеры, АЦП, память и т.д 4 09.04.2005 20:02


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


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