помогите с моей програмой там счетчик импульсов и управление светодиодом старт и стоп включение и выключение светодиода програмируется 4 кнопками все работает токо одна проблема нада что бы счетчик работал независимо, а сечас у меня при нажатии кнопок установки включения и выключения светодиода останавливается счетчик импульсов. вот мой код на си
Код
#include <mega8.h>
#asm
.equ lcd_port=0x18
#endasm
#include <lcd.h>
#include <stdio.h>
#include <delay.h>
unsigned char lcd_buffer[33];//масив длс лсд
unsigned char imp;//перем для хранения счетчика импульсов
eeprom unsigned char st,sp;//переменная для данных старт и стоп вкл и выкл светодиода
void main(void)
{
PORTB=0x00;
DDRB=0x00;
PORTC=0x7F;
DDRC=0x00;
PORTD=0x00;
DDRD=0xFF;
ACSR=0x80;
lcd_init(16);
while (1)
{
if(PINC.2==0)//кнопка увиличения импульса включения светодиода
{
delay_ms(220);
st++;
}
if(PINC.3==0)//кнопка для уменшения имп включения светодиода
{
while(PINC.3==0);
st--;
}
if(PINC.4==0)//кнопка для увиличения импульса выключения светодиода
{
while(PINC.4==0);
sp++;
}
if(PINC.5==0)//кнопка для уменшения импульса выключения светодиода
{
while(PINC.5==0);
sp--;
}
sprintf(lcd_buffer,"IMPULS=%d\nStart=%d Stop=%d",imp,st,sp,);//зопись в масив данных для вывода на лсд
lcd_clear();
lcd_puts(lcd_buffer);//вывод масива на лсд
if(PINC.0==0)//счетчик импульсов
{
while(PINC.0==0);
imp++;
}
while(PINC.1==0)//сброс счетчика
{
imp=0;
}
if(imp==st)//управление светодиодом
{
PORTD.0=1;
}
if(PIND.0==1)
{
if(imp==sp)
{
PORTD.0=0;
}
}
};