Как видно из схемы только 1 красный светодиод включен через резистор, а остальные без резисторов.
Проблема в том что изначально светодиоды горели ярко, но потом (после очередного запуска) стали гореть ели ели заметно.
при питании 3-4В напряжение на выводах порта составляет 2,5В. При этом ШИМ работает и светодиоды плавно загораются (но не ярко).
Уважаемые гуру скажите в чём дело ????
Если включил светодиоды без резисторов и спалил порты, тогда они или должны постоянно гореть или не гореть, НО они управляются программным ШИМом. т.е. получается порты целые ?
И как так выходит что порт на котором изначально светодиод был с резистором сейчас тоже тускло горит ????
Пробовал заливать другую программу PORTB.4=1; - всеровно тускло светиться !!!
Прилагаю текст программы:
Код: Выделить всё
#include <tiny13.h>
#include <delay.h>
#include <sleep.h>
// Declare your global variables here
unsigned char i,j,k;
// External Interrupt 0 service routine
interrupt [EXT_INT0] void ext_int0_isr(void)
{
delay_ms(10);
if (k==1) {
k=0;
}
else
{
k=1;
}
}
void main(void)
{
GIMSK=0b01000000;
MCUCR=0b00000000;
GIFR=0b00000000;
DDRB=0b0000000;
PORTB=0;
// Global enable interrupts
#asm("sei")
k=1;
while (1)
{
if (k==0)
{ PORTB=0;
sleep_enable();
// powerdown ();
#asm ("sleep");
}
else
{ // PORTB.0=0;
sleep_disable();
}
for(i=0; i<=60; i++)
{
PORTB.0=1;
PORTB.4=0;
j=60-i;
while (1<=j)
{ j=j-1;;
delay_us(80);
}
PORTB.0=0;
PORTB.4=1;
j=0;
while (j<=i)
{ j=j+1;
delay_us(80);
}
}
delay_ms(600);
for(i=0; i<=60; i++)
{
PORTB.4=1;
PORTB.2=0;
j=60-i;
while (1<=j)
{ j=j-1;;
delay_us(80);
}
PORTB.4=0;
PORTB.2=1;
j=0;
while (j<=i)
{ j=j+1;
delay_us(80);
}
}
delay_ms(800);
for(i=0; i<=60; i++)
{
PORTB.2=1;
PORTB.3=0;
j=60-i;
while (1<=j)
{ j=j-1;;
delay_us(80);
}
PORTB.2=0;
PORTB.3=1;
j=0;
while (j<=i)
{ j=j+1;
delay_us(80);
}
}
delay_ms(800);
for(i=0; i<=60; i++)
{
PORTB.3=1;
PORTB.0=0;
j=60-i;
while (1<=j)
{ j=j-1;;
delay_us(80);
}
PORTB.3=0;
PORTB.0=1;
j=0;
while (j<=i)
{ j=j+1;
delay_us(80);
}
}
delay_ms(800);
};
}
