Hi,
ich bin Anfänger und versuch grad ein kleines Programm mit ein Interrupt zuschreiben.Will aber nicht funktionieren hab schon alles mögliche ausprobiert und kann den Fehler einfach nicht finden.Das Programm soll bei einem Signal an PinD.2 ein Interrupt auslösen und in diesem soll eine LED eingeschaltet werden.
program Interrupts;
{$NOSHADOW}
{ $WG} {global Warnings off}
Device = mega8, VCC=5;
{ $BOOTRST $00C00} {Reset Jump to $00C00}
Define_Fuses
Override_Fuses;
NoteBook = A;
COMport = USB;
LockBits0 = [];
FuseBits0 = [];
FuseBits1 = [];
Import SysTick ;
From System Import ;
Define
ProcClock = 8000000; {Hertz}
SysTick = 10; {msec}
StackSize = $0032, iData;
FrameSize = $0032, iData;
Implementation
{$IDATA}
{--------------------------------------------------------------}
{ Type Declarations }
type
{--------------------------------------------------------------}
{ Const Declarations }
{--------------------------------------------------------------}
{ Var Declarations }
{$IDATA}
var
{--------------------------------------------------------------}
{ functions }
procedure InitPorts;
begin
DDRD := %01100000; //set PinD.5/6 as output
GICR := %11000000; //INT0/INT1 activation
MCUCR:= %00001111; //The rising edge of INT1/INT0 generates an interrupt request
GIMSK:= %11000000;
end InitPorts;
Interrupt INT0;
begin
PortD.5:=1;
PinD.5:=1;
end;
{--------------------------------------------------------------}
{ Main Program }
{$IDATA}
begin
InitPorts;
EnableInts;
loop
nop;
endloop;
end Interrupts. //Programm heißt Interrupts
tilo
ich bin Anfänger und versuch grad ein kleines Programm mit ein Interrupt zuschreiben.Will aber nicht funktionieren hab schon alles mögliche ausprobiert und kann den Fehler einfach nicht finden.Das Programm soll bei einem Signal an PinD.2 ein Interrupt auslösen und in diesem soll eine LED eingeschaltet werden.
Code
program Interrupts;
{$NOSHADOW}
{ $WG} {global Warnings off}
Device = mega8, VCC=5;
{ $BOOTRST $00C00} {Reset Jump to $00C00}
Define_Fuses
Override_Fuses;
NoteBook = A;
COMport = USB;
LockBits0 = [];
FuseBits0 = [];
FuseBits1 = [];
Import SysTick ;
From System Import ;
Define
ProcClock = 8000000; {Hertz}
SysTick = 10; {msec}
StackSize = $0032, iData;
FrameSize = $0032, iData;
Implementation
{$IDATA}
{--------------------------------------------------------------}
{ Type Declarations }
type
{--------------------------------------------------------------}
{ Const Declarations }
{--------------------------------------------------------------}
{ Var Declarations }
{$IDATA}
var
{--------------------------------------------------------------}
{ functions }
procedure InitPorts;
begin
DDRD := %01100000; //set PinD.5/6 as output
GICR := %11000000; //INT0/INT1 activation
MCUCR:= %00001111; //The rising edge of INT1/INT0 generates an interrupt request
GIMSK:= %11000000;
end InitPorts;
Interrupt INT0;
begin
PortD.5:=1;
PinD.5:=1;
end;
{--------------------------------------------------------------}
{ Main Program }
{$IDATA}
begin
InitPorts;
EnableInts;
loop
nop;
endloop;
end Interrupts. //Programm heißt Interrupts
tilo