Код: Выделить всё
#include <mega8.h>
#include <delay.h>
int rps=0;
int pr=0;
interrupt[TIM0_OVF]void timer0_overflow(void)
{
TCNT0=(0);
if (pr==30)
{
if (rps<17) { PORTC.1=1 } // zajigaem led esli rps<17
else { PORTC.1=0};
rps=0;
pr=0;
PORTC.2=1;
}
else
{pr=pr+1;PORTC.2=0;}
}
interrupt[EXT_INT1]void ext_int1(void)
{rps=(rps+1);}
void main()
{
DDRC = 0xff;//0xff = 0b11111111 все выводы порта A сконфигурировать как выходы
DDRD=0x00;
PORTD=0xff;
TCCR0=0x05;
TCNT0=(0);
TIFR=0;
TIMSK=0x02;
GIMSK=0x80;
MCUCR=0x09;
#asm
sei
#endasm
while(1)
{
}
// 1000 rpm eto 17 rpsec
Добавил строчки для отладки, чтобы смотреть зажжет ЛЕД если рпс меньше 17 или нет. ЛЕДы на протеусе не горят. Может код кривой?


