Сразу скажу, я только учусь. Написал код бегущих светодиодов, проблема в кнопке! при первом нажатии светодиоды (10шт) включаются, бегущий режим работает как задумано, но на повторные нажатия, которые должны привести к выключению светодиодов (остановке), ничего не происходит... они бегут без остановки((( кнопка на ноге RA2, пик 16f84a
#include <xc.h>
// CONFIG
#pragma config FOSC = HS // Oscillator Selection bits (HS oscillator)
#pragma config WDTE = OFF // Watchdog Timer (WDT disabled)
#pragma config PWRTE = ON // Power-up Timer Enable bit (Power-up Timer is enabled)
#pragma config CP = OFF // Code Protection bit (Code protection disabled)
#ifndef _XTAL_FREQ
#define _XTAL_FREQ 4000000
#endif
void pauza(void);
void nop(void);
unsigned char NAG;
void pauza(void)
{
__delay_ms(30);
}
void nop(void)
{
if(RA2==0)
{__delay_ms(10);
if(RA2==0&&NAG==0)
NAG=1;
}
else
{
if(RA2==0&&NAG==1)
NAG=0;
}
}
void main(void)
{
TRISB=0;
PORTB=0;
TRISA=0b11111100;
PORTA=0b00000000;
while(1)
{
nop();
if(NAG==1)
{
PORTB=0b00000001;
pauza();
PORTB=0b00000010;
pauza();
PORTB=0b00000100;
pauza();
PORTB=0b00001000;
pauza();
PORTB=0b00010000;
pauza();
PORTB=0b00100000;
pauza();
PORTB=0b01000000;
pauza();
PORTB=0b10000000;
pauza();
PORTB=0b00000000;
PORTA=0b00000001;
pauza();
PORTA=0b00000010;
pauza();
PORTA=0b00000000;
}
}
}
__eeprom.d __eeprom.i __eeprom.p1 memoryfile.xml test.X.production.cmf test.X.production.elf test.X.production.hex test.X.production.hxl test.X.production.lst test.X.production.map test.X.production.mum test.X.production.o test.X.production.rlf test.X.production.sdb test.X.production.sym