#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[i]) PORTD&=~(1<<i);
if (t>=l[i]) 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);
}
}
Нужно чтоб поочередно загорались и гасли. а тут получается что все немного но светятся
Подскажите в чем ошибка
- Реклама
Re: Подскажите в чем ошибка
Задержка в каких единицах?..
Вот и посчитайте. Люди не мухи.
Вот и посчитайте. Люди не мухи.
Re: Подскажите в чем ошибка
а можете привети правильный пример чтоб было от чего оттолкнутьсяя и понять ошибки 
-
kobzar
- Грызет канифоль
- Сообщения: 278
- Зарегистрирован: Вт дек 03, 2013 11:04:04
- Откуда: Киев
- Контактная информация:
Re: Подскажите в чем ошибка
delay_us(200); >>_delay_ms(200);
Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости
Re: Подскажите в чем ошибка
Если всетодиоды немного горят и все разом, значит они все загораются и гаснут. Просто это происходит с очень большой скоростью. Поэтому ты видишь слабое горение. Сделай паузу побольше в миллисекундах, как написано выше.
Кот должен прожить жизнь без сожаления.
- Реклама

