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

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

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

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

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

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

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

 
Опции темы
Непрочитано 10.03.2012, 20:15  
SAHA_T
Прописка
 
Регистрация: 23.07.2007
Сообщений: 209
Сказал спасибо: 109
Сказали Спасибо 1 раз в 1 сообщении
SAHA_T на пути к лучшему
По умолчанию Re: И снова ШИМ

dosikus я знаю что Вы спецы но каждый ведь с такого к я начинал точней с самых низов

Так что пройдет время и я тебе перешиголяю и буду я тебе помогать а не ты мне
Реклама:
SAHA_T вне форума  
Непрочитано 10.03.2012, 20:49  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: И снова ШИМ

SAHA_T, без обид
Но когда ты поймешь в чем дело...
Короче вникай, спрашивай .
Сразу говорю могут быть ошибки , так как правил наспех и без проверки.

Код:
   #define TMR	65380L	//0xFF64 : 78 мкс (при тактовой 16МГц и делителе  : 1 такт 128-разрядного ШИМ
#define sbi(p,m) ((p) |= 1‹‹(m))	//установить бит m порта p
#define cbi(p,m) ((p) &= ~(1‹‹(m)))	//сбросить бит m порта p


#define PWM_PORTC_MASK    0xC3
#define PWM_PORTD_MASK    0xE0



volatile unsigned char PWM_buffer[16] ;



void delay_ms(int n)
{
int i;
for(i=0;i‹n;i++){ _delay_ms(1);}
}



//Прерывание по переполнению таймера 1
    ISR(SIG_OVERFLOW1)
    {
    static unsigned char Tic;
    static unsigned char PWM_portA;
    static unsigned char PWM_portD;
    static unsigned char PWM_portD;
    
    
    TCNT1 = TMR;	//начальное значение таймера
    PORTA=PWM_portA;
    PWM_portD|=PORTD&~PWM_PORTD_MASK;
    PORTD=PWM_portD;
    PWM_portC|=PORTC&~PWM_PORTC_MASK;
    PORTC=PWM_portC;
    
    if((Tic++)›=128) Tic=0;
    PWM_portA=0;
    PWM_portC=0;
    PWM_portD=0;
    
    
        // Канал 0
        if (Tic ‹ PWM_buffer[0])PWM_portA|=0x01;
        if (Tic ‹ PWM_buffer[1])PWM_portA|=0x02;
        if (Tic ‹ PWM_buffer[2])PWM_portA|=0x04;
        if (Tic ‹ PWM_buffer[3])PWM_portA|=0x08;
        if (Tic ‹ PWM_buffer[4])PWM_portA|=0x10;
        if (Tic ‹ PWM_buffer[5])PWM_portA|=0x20;
        if (Tic ‹ PWM_buffer[6])PWM_portA|=0x40;
        if (Tic ‹ PWM_buffer[7])PWM_portA|=0x80;
       
        
        // Канал 8 - здесь переходим к следующему порту
        if (Tic ‹ PWM_buffer[8])PWM_portC|=0x80;
        if (Tic ‹ PWM_buffer[9])PWM_portC|=0x40;
        if (Tic ‹ PWM_buffer[10])PWM_portC|=0x01;
        if (Tic ‹ PWM_buffer[11])PWM_portD|=0x80;
        if (Tic ‹ PWM_buffer[12])PWM_portD|=0x20;
        if (Tic ‹ PWM_buffer[13])PWM_portD|=0x40;
        if (Tic ‹ PWM_buffer[14])PWM_portC|=0x02;
        
     

    
}

//************************************************** *
// Начало программы
//************************************************** *
int main(void)
{

unsigned char Counter_chanel=0;
unsigned char PWM_value=0;
DDRA=0xFF;	//порты - на выход
DDRC=0xFF;
DDRD=0xFF;

//DDRC=0xFF;
PORTA=0x00;
PORTC=0x00;
PORTD=0x00;

delay_ms(1000);

//DDRA=0xFF; 

//PORTC=0x0;
//Kanal_0 = 0;
n=5;	//задержка в мс между шагами яркости
q=0;

nn=1; // гашение
mm=2; //гашение
m=50;	//задержка в мс между "кадрами"

TCNT1 = TMR;	 //начальное значение счетчика

TIMSK &= ~(1‹‹TOIE1);	//запрещаем Ovf1
cli();	 //запрещаем прерывания

TIMSK |= 1‹‹TOIE1;	 //Разрешить Ovf1

*/
TCCR1B |= 0x2;	 //включить таймер 1 с делителем 8

sei();	 //разрешить прерывания

while(1)
{

     for(Counter_chanel=0;Counter_chanel‹16;Counter_chanel++)
     {
          for(PWM_value=0;PWM_value‹128;PWM_value++)
           {
            PWM_buffer[Counter_chanel]=PWM_value;
            delay_ms(n);
          }	
          delay_ms(m);
    }
delay_ms(3000);

//	*/
//
//Гашение


}	


}
__________________
Осторожно , злой кот

Последний раз редактировалось dosikus; 10.03.2012 в 20:52.
dosikus вне форума  
Непрочитано 10.03.2012, 20:55  
SAHA_T
Прописка
 
Регистрация: 23.07.2007
Сообщений: 209
Сказал спасибо: 109
Сказали Спасибо 1 раз в 1 сообщении
SAHA_T на пути к лучшему
По умолчанию Re: И снова ШИМ

Млин как все сложно
SAHA_T вне форума  
Непрочитано 10.03.2012, 20:56  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: И снова ШИМ

Сообщение от SAHA_T Посмотреть сообщение
Млин как все сложно
Спрашивай по порядку , разжуем...
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 10.03.2012, 21:02  
SAHA_T
Прописка
 
Регистрация: 23.07.2007
Сообщений: 209
Сказал спасибо: 109
Сказали Спасибо 1 раз в 1 сообщении
SAHA_T на пути к лучшему
По умолчанию Re: И снова ШИМ

#define PWM_PORTC_MASK 0xC3 195
#define PWM_PORTD_MASK 0xE0 224 что это за переменные ? и значения откуда такие ?

PWM_portD|=PORTD&~PWM_PORTD_MASK; это вообще страшная запись

сейчас еще посмотрю
SAHA_T вне форума  
Непрочитано 10.03.2012, 21:09  
SAHA_T
Прописка
 
Регистрация: 23.07.2007
Сообщений: 209
Сказал спасибо: 109
Сказали Спасибо 1 раз в 1 сообщении
SAHA_T на пути к лучшему
По умолчанию Re: И снова ШИМ

я уже ошибку нашел
SAHA_T вне форума  
Непрочитано 10.03.2012, 21:15  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: И снова ШИМ

Сообщение от SAHA_T Посмотреть сообщение
#define PWM_PORTC_MASK 0xC3 195
#define PWM_PORTD_MASK 0xE0 224 что это за переменные ? и значения откуда такие ?

PWM_portD|=PORTD&~PWM_PORTD_MASK; это вообще страшная запись

сейчас еще посмотрю
Это не переменные , это константы маски для портов .
Что бы биты, не участвующие в процедуре, не портились.
Собственно "страшная запись" это и делает..
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 10.03.2012, 21:20  
SAHA_T
Прописка
 
Регистрация: 23.07.2007
Сообщений: 209
Сказал спасибо: 109
Сказали Спасибо 1 раз в 1 сообщении
SAHA_T на пути к лучшему
По умолчанию Re: И снова ШИМ

Тогда для порта А как будет выглядеть ?
#define PWM_PORTA_MASK ?

PORTA=PWM_portA;
PWM_portA|=PORTA&~PWM_PORTD_MASK;


Эти маски как они пишутся я просто не могу понять откуда 0xC3 195 и 0xE0 224 какое значение будет для А порта. Объясни плиз как считаются эти числа .
SAHA_T вне форума  
Непрочитано 10.03.2012, 21:24  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: И снова ШИМ

Сообщение от SAHA_T Посмотреть сообщение
Тогда для порта А как будет выглядеть ?
#define PWM_PORTA_MASK ?
Ну, ну . А подумать ? У тебя же порт А целиком используется ...
А вычисляются так - ставишь те биты которые используются в 1.
Например У тебя порт С используются биты 7,6,1,0 - 0b11000011 0xC3
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 10.03.2012, 21:26  
SAHA_T
Прописка
 
Регистрация: 23.07.2007
Сообщений: 209
Сказал спасибо: 109
Сказали Спасибо 1 раз в 1 сообщении
SAHA_T на пути к лучшему
По умолчанию Re: И снова ШИМ

я только что сам об этом подумал и пересчитал на калькуляторе, только я не понял почему порта а не написал типа 0xFF или это не нужно ?
SAHA_T вне форума  
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Снова о коллекционировании. Roshens Делимся опытом 0 13.12.2010 19:43
СНОВА ЖКИ Gladkih Микроконтроллеры, АЦП, память и т.д 0 27.12.2009 23:48
И снова блютуз! Haulpak Ремонт оргтехники 0 10.03.2009 05:06
Снова DNA1001 R666 Информация по радиокомпонентам 0 25.01.2008 16:39
И снова температура ua_gruzin Поиск схем. Делимся схемами 0 14.02.2007 01:18


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


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