

procedure Interrupt;
begin
if TestBit(INTCON, RBIF) = 1 then
begin
New := (PORTB and %11000000);
if New <> Old then
begin
bInc := (New.7 xor Old.6);
bValueChanged := true;
Old := New;
end;
ClearBit(INTCON, RBIF);
end;
end;
begin
while true do
begin
Delay_ms(1);
if bValueChanged then
begin
if bInc thenbegin
PORTA.0 := true; // led D1 allumée
inc(Value); // augmentation valeurend
elsebegin
PORTA.0 := false; // led D1 éteinte
dec(Value); // diminution valeurend;
bValueChanged := false;
end
else
nop;
end;
end;