Interrupt Frage

  • 1
  • 2
  • Seite 2 von 2
miparo
PowerUser
Avatar
Geschlecht:
Herkunft: Germany
Alter: 60
Beiträge: 1015
Dabei seit: 09 / 2007
Betreff:

Re: Interrupt Frage

 · 
Gepostet: 29.05.2026 - 18:08 Uhr  ·  #9
Hi Frank,
auf einem Port gehts auch, sollte etwas so tun:
Natürlich kein PortIntC define mehr nötig

Code

{ Const Declarations }
const
  PIN1_bm: byte = 2;
  PIN2_bm: byte = 4;
  PIN3_bm: byte = 6;

Var
    IntLastState: byte;

procedure PortInt1Init;
const
  PinMask: byte = (PIN1_bm or PIN2_bm or PIN3_bm);
begin
  PORTC.DIRCLR:= PinMask;   // Input
  PIN1CTRLC:= $18;               // PullUp, bothedges
  PIN2CTRLC:= $18;
  PIN3CTRLC:= $18;
  INT1MASKC:= PinMask;      // Bitmask Pin 1,2,3
  INTCTRLC:= 1;
  INTFLAGSC:= 2;
  PMICCTRL:= 1;             //  Low Level Interrupt Executing bit mask.
  IntLastState:= PinC;
end;


procedure PORTC_INT1;             // Interrupt CallBack
var
  currState, XorState : byte;
begin
  currState:= PinC;
  XorState:= currState xor IntLastState;

  // PinC.1
  if (XorState and PIN1_bm) > 0 then
    if (currState and PIN1_bm) > 0 then  // wenn State benötigt wird 
       // steigende Flanke

    else
      // fallende Flanke
    endif;
  endif;

  // PinC.2
  if (XorState and PIN2_bm) > 0 then
    // if (currState and PIN2_bm) > 0 then
  endif;

  // PinC.3
  if (XorState and PIN3_bm) > 0 then

  endif;
  IntLastState:= currState;
end;



///  ---- main 
  EnableInts($87);
  BeepOut(2000, 5);
  PortInt1Init();
....



miparo
TheBeginner
Schreiberling
Avatar
Geschlecht: keine Angabe
Herkunft: Wunsiedel Bayern
Alter: 69
Beiträge: 792
Dabei seit: 06 / 2013
Betreff:

Re: Interrupt Frage

 · 
Gepostet: 29.05.2026 - 19:34 Uhr  ·  #10
Ich Danke dir, kann ich Morgen mal testen, aber nicht mehr heute.

Ich melde mich wieder.


Gruß Frank
miparo
PowerUser
Avatar
Geschlecht:
Herkunft: Germany
Alter: 60
Beiträge: 1015
Dabei seit: 09 / 2007
Betreff:

Re: Interrupt Frage

 · 
Gepostet: 30.05.2026 - 00:23 Uhr  ·  #11
Habs allerdings noch nicht getestet, ansonsten mal im Debugger schauen, ob Int1 dann on ist aber so tudelt es beim Xmega .
PortInt macht nichts anderes aktiviert allderdings nur einen Pin.
  • 1
  • 2
  • Seite 2 von 2
Gewählte Zitate für Mehrfachzitierung:   0

Registrierte in diesem Topic

Aktuell kein registrierter in diesem Bereich

Die Statistik zeigt, wer in den letzten 5 Minuten online war. Erneuerung alle 90 Sekunden.
MySQL Queries: 15 · Cache Hits: 14   66   80 · Page-Gen-Time: 0.021431s · Speichernutzung: 2 MB · GZIP: ein · Viewport: SMXL-HiDPI