Software Interrupt bei pic18F458

Gast #514892
Lesenswert?

Hi,

ich habe folgende Frage:
Bietet der 18F458 Software Interrupts?

Habe es im Moment so gelöst, dass ich einen Interrupt aktiviere (z.B. 
INT0) und diesen per Software setze.

Finde das UNSCHÖN. Hätte gerne Software IRs, die ich bequem setzen und 
rücksetzen kann und trotzdem alle I/O IRs nutzbar bleiben.

Im Datenblatt habe ich leider nix darüber gefunden.


Gruß O'
Gast #514949
Lesenswert?

So könnte ein selber gebastelter SoftwareIR aussehen:

Void call_SWIR(char IRNr)
{
    // Deactivate Interrupts
    INTCONbits.GIEH = 0x00;
    INTCONbits.GIEL = 0x00;

    switch(IRNr)
    {
  case1:
         // CODE
       // …….
       break;
  default:
       break;
    }

    // Reactivate Interrupts
    INTCONbits.GIEH = 0x01;
    INTCONbits.GIEL = 0x01;
}


Gruß Steff
Gast #514970
Lesenswert?

Hi,

danke für die Antworten.
Habe n bissel nachgeforscht (C18 Users Gide)

Wenn ichs richtig verstanden habe übernimmt die ISR das Deaktivieren der 
Interrupts und letztendliche Reaktivieren beim Verlassen.

Das bedeutet, dass ich meine SoftwareIRs wie folt realisieren könnte:

Struktur strctSWIR erstellen mit x gewünschten IR_Status_Bits.

Im Code:

..
..
..
strctSWIR.SWIR1 = 0x01;
high_isr();
..
..

In der high_ISR frage ich einfach strctSWIR.SWIR1 ab, so wie ich die 
I/O-Interrupts auch abfrage.

Müsste funktionieren oder?


Gruß O'

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren