Подскажите в чем ошибка

Обсуждаем контроллеры компании Atmel.
Ответить
grega1
Родился
Сообщения: 4
Зарегистрирован: Пн янв 27, 2014 16:58:43

Подскажите в чем ошибка

Сообщение grega1 »

#include <mega48.h>
#include <delay.h>

char l[8]={0,0,0,0,0,0,0,0};
char l2[8]={0,0,0,0,0,0,0,0};

char t=0;
char ln=0;
char i;
char tb[16]={7,10,11,12,13,14,15,17,20,24,29,45,70,100,140,180};
char tn=0;

interrupt [TIM0_OVF] void timer0_ovf_isr(void) {
if (t==0) {
PORTD=0x3f;

PORTC=0x3f;
}
for (i=0;i<8;i++) {
if (t>=l) PORTD&=~(1<<i);

if (t>=l) PORTC&=~(1<<i);
}
t++;
}


void main(void) {
char n;
#pragma optsize-
CLKPR=0x60;
CLKPR=0x00;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif

PORTB=0x00;
DDRB=0x00;
PORTC=0x00;
DDRC=0x00;
PORTD=0x00;
DDRD=0x00;

TCCR0A=0x00;
TCCR0B=0x01;
TCNT0=0x00;
OCR0A=0x00;
OCR0B=0x00;

TIMSK0=0x01;

#asm("sei")

while (1) {
l2[ln]=15;

for (n=0;n<8;n++) {
if (l2[n]>0&&n!=ln) l2[n]--;
}

for (n=0;n<8;n++) l[n]=tb[l2[n]];

tn++;
if (tn==5) {
ln++;
if (ln>7) ln=0;
tn=0;
}

delay_us(200);

}
}


Нужно чтоб поочередно загорались и гасли. а тут получается что все немного но светятся
Реклама
Шурики
Вымогатель припоя
Сообщения: 506
Зарегистрирован: Пн авг 31, 2009 22:10:50
Откуда: СК

Re: Подскажите в чем ошибка

Сообщение Шурики »

Задержка в каких единицах?..
Вот и посчитайте. Люди не мухи.
Реклама
grega1
Родился
Сообщения: 4
Зарегистрирован: Пн янв 27, 2014 16:58:43

Re: Подскажите в чем ошибка

Сообщение grega1 »

а можете привети правильный пример чтоб было от чего оттолкнутьсяя и понять ошибки :shock:
kobzar
Грызет канифоль
Сообщения: 278
Зарегистрирован: Вт дек 03, 2013 11:04:04
Откуда: Киев
Контактная информация:

Re: Подскажите в чем ошибка

Сообщение kobzar »

delay_us(200); >>_delay_ms(200);
Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
DruidCat
Встал на лапы
Сообщения: 116
Зарегистрирован: Чт май 03, 2012 06:27:23
Откуда: Челябинск

Re: Подскажите в чем ошибка

Сообщение DruidCat »

Если всетодиоды немного горят и все разом, значит они все загораются и гаснут. Просто это происходит с очень большой скоростью. Поэтому ты видишь слабое горение. Сделай паузу побольше в миллисекундах, как написано выше.
Кот должен прожить жизнь без сожаления.
Реклама
Ответить

Вернуться в «AVR»