Hallo Zusammen,
ich hätte da mal ne Frage bezüglich Hardware-Interrupts. Es heißt ja, daß der Code in einem IRQ möglichst kurz sein soll, aber leider ist "kurz" eine recht ungenaue Aussage. Konkret: Kann ich einen Touch-Controller via I²C in der Interrupt-Routine abfragen oder sollte ich das eher nicht machen?
Import ...., PCIntD;
Define
PCintDmask = $08; { IRQ PINS --> PD3 / für Touch }
PCintDedge = $08; { rising edge PortD,3 }
.....
Procedure PCIntD3; // externer Interrupt an D3
Begin // Touch betätigt
Touch:=true;
TLED:=1;
End PCIntD3;
--- o d e r ---
Procedure PCIntD3; // externer Interrupt an D3
Begin // Touch betätigt
TWIinpE(TWITouch,TouchRxData);
Touch:=true;
TLED:=1;
End PCIntD3;
Gruss
Harry
ich hätte da mal ne Frage bezüglich Hardware-Interrupts. Es heißt ja, daß der Code in einem IRQ möglichst kurz sein soll, aber leider ist "kurz" eine recht ungenaue Aussage. Konkret: Kann ich einen Touch-Controller via I²C in der Interrupt-Routine abfragen oder sollte ich das eher nicht machen?
Code
Import ...., PCIntD;
Define
PCintDmask = $08; { IRQ PINS --> PD3 / für Touch }
PCintDedge = $08; { rising edge PortD,3 }
.....
Procedure PCIntD3; // externer Interrupt an D3
Begin // Touch betätigt
Touch:=true;
TLED:=1;
End PCIntD3;
--- o d e r ---
Procedure PCIntD3; // externer Interrupt an D3
Begin // Touch betätigt
TWIinpE(TWITouch,TouchRxData);
Touch:=true;
TLED:=1;
End PCIntD3;
Gruss
Harry