Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
10.03.2012, 22:46
|
|
Прописка
Регистрация: 23.07.2007
Сообщений: 209
Сказал спасибо: 109
Сказали Спасибо 1 раз в 1 сообщении
|
Re: И снова ШИМ
все горят только тут ты скобку забыл поставить
if((Tic++)›=12 Tic=0;
вот так
if((Tic++)›=12) Tic=0;
не понимаю зачем это условие и почему до 12-ти ?
|
|
|
|
10.03.2012, 22:47
|
|
Прописка
Регистрация: 23.07.2007
Сообщений: 209
Сказал спасибо: 109
Сказали Спасибо 1 раз в 1 сообщении
|
Re: И снова ШИМ
а так там 128 нужно ну вот пол яркости и светится как и было до этого
|
|
|
|
10.03.2012, 22:49
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: И снова ШИМ
Отлично . А восьмерку форум снес .
Сейчас еще код дам посмотрим .
Кстати что за компилятор ? И какая размерность int в нем ?
__________________
Осторожно , злой кот
|
|
|
|
10.03.2012, 22:49
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: И снова ШИМ
Отлично . А восьмерку форум снес .
Сейчас еще код дам посмотрим .
Кстати что за компилятор ? И какая размерность int в нем ?
__________________
Осторожно , злой кот
|
|
|
|
10.03.2012, 22:51
|
|
Прописка
Регистрация: 23.07.2007
Сообщений: 209
Сказал спасибо: 109
Сказали Спасибо 1 раз в 1 сообщении
|
Re: И снова ШИМ
сек проверю, но поимоему я ее объявил потом после того что вылезло сейчас проверю
|
|
|
|
10.03.2012, 22:53
|
|
Прописка
Регистрация: 23.07.2007
Сообщений: 209
Сказал спасибо: 109
Сказали Спасибо 1 раз в 1 сообщении
|
Re: И снова ШИМ
результат тот же
|
|
|
|
10.03.2012, 22:54
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: И снова ШИМ
Проверяй ...
Код:
|
#define TMR 65380L //0xFF64 : 78 мкс (при тактовой 16МГц и делителе : 1 такт 128-разрядного ШИМ
#define PWM_PORTC_MASK 0xC3
#define PWM_PORTD_MASK 0xE0
volatile unsigned char PWM_buffer[16] ;
//Прерывание по переполнению таймера 1
ISR(SIG_OVERFLOW1)
{
static unsigned char Tic;
static unsigned char PWM_portA;
static unsigned char PWM_portD;
static unsigned char PWM_portC;
TCNT1 = TMR; //начальное значение таймера
PORTA=PWM_portA;
// PWM_portA|=PORTA&~PWM_PORTD_MASK;
PORTC=PWM_portC;
PWM_portC|=PORTC&~PWM_PORTC_MASK;
PORTD=PWM_portD;
PWM_portD|=PORTD&~PWM_PORTC_MASK;
if((Tic++)›=12 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;
PORTA=0x00;
PORTC=0x00;
PORTD=0x00;
_delay_ms(1000);
TCNT1 = TMR; //начальное значение счетчика
TIMSK &= ~(1‹‹TOIE1); //запрещаем Ovf1
cli(); //запрещаем прерывания
TIMSK |= 1‹‹TOIE1; //Разрешить Ovf1
TCCR1B |= 0x2; //включить таймер 1 с делителем 8
sei(); //разрешить прерывания
while(1)
{
for(Counter_chanel=0;Counter_chanel‹14;Counter_chanel++)
{
for(PWM_value=0;PWM_value‹128;PWM_value++)
{
PWM_buffer[Counter_chanel]=PWM_value;
_delay_ms(5);
}
_delay_ms(50);
}
while(1);
}
} |
__________________
Осторожно , злой кот
Последний раз редактировалось dosikus; 10.03.2012 в 22:59.
|
|
|
|
10.03.2012, 22:59
|
|
Прописка
Регистрация: 23.07.2007
Сообщений: 209
Сказал спасибо: 109
Сказали Спасибо 1 раз в 1 сообщении
|
Re: И снова ШИМ
тоже самое почему то дальше 4-й буквы не хочет идти и так же моргания 12-13-14 при поджиге 3-й буквы
|
|
|
|
10.03.2012, 23:01
|
|
Прописка
Регистрация: 23.07.2007
Сообщений: 209
Сказал спасибо: 109
Сказали Спасибо 1 раз в 1 сообщении
|
Re: И снова ШИМ
почему то массив не определяется, походу что то с определение переменных, мож как то по другому Counter_chanel обозначить
|
|
|
|
10.03.2012, 23:02
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: И снова ШИМ
SAHA_T, Компилятор то какой ? Ошибки выложи .
__________________
Осторожно , злой кот
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 14:14.
|
|