Gast
#4208818
Hallo zusammen,
ich wollte mal mit einem pic18f2550 einen zähler programmieren (Mplab
8.92, c18 complier).
dieser zähler soll durch zwei taster auf bzw. abwärtszählen und jeweils
den zählerwert mit einer led anzeigen.
mein problem ist, dass wenn ich von 2 auf 3 zählen will die 3. led nur
solange leuchtet bis der taster losgelassen wird... von 1 auf 2
funktioniert es aber.
Hat jemand eine idee was der fehler sein könnte?
#include "p18cxxx.h"
#include "delays.h"
#pragma config OSC=HS, PWRT=ON, WDT=OFF, PBAD=DIG, LVP=OFF
int i=1;
void delay100ms (void)
{ long int x; for (x=0;x<28000;x++); }
void main (void)
{
TRISB = 0b00000011;
TRISC = 0b00000000;
while(1)
{
if ((PORTBbits.RB0 == 1) && (i<3))
{
delay100ms();
if (PORTBbits.RB0 == 1)
{
i++;
}
}
if ((PORTBbits.RB1 == 1) && (i>1))
{
delay100ms();
if (PORTBbits.RB1 == 1)
{
i--;
}
}
if (i==1)
{
PORTBbits.RB2 = 1;
}
else
{
PORTBbits.RB2 = 0;
}
if (i==2)
{
PORTBbits.RB3 = 1;
}
else
{
PORTBbits.RB3 = 0;
}
if (i==3)
{
PORTBbits.RB4 = 1;
}
else
{
PORTBbits.RB4 = 0;
}
}
}
mfg