Forum: Mikrocontroller und Digitale Elektronik Pic24FJ256GB110 interrupt von Timer1 mit CCS-Compiler


von the0816noob (Gast)


Lesenswert?

Hallo

Ich versuche gerade mit dem Timer1 meines PIC einen Interrupt 
auszulösen. Unten folgt nun die Initialisierung des Interrupts und des 
Timers. Ich habe wohl irgendwas vergessen, habe aber keine Ahnung was. 
Kann jemand helfen?

#include "24FJ128GA010.h"

int8 test

#INT_TIMER1
inttimer1()
  {
  test++;
  }


void main()
        {
  setup_timer1(TMR_INTERNAL|TMR_DIV_BY_256); //Timer1 starten
  PR1H=0x88;                                 //endwert festlegen

  enable_interrupts(INT_TIMER1);             //interrupt einschalten
        while(TRUE);
        }

von Sascha F. (sascha_focus) Benutzerseite


Lesenswert?

Hallo,

kenne den CCS nicht.
Aber beim C30 sieht es so aus:

void  INIT_TIMER1(void)
{
  T1CONbits.TON=0;            // Timer 1 zum einstellen sperren
  T1CONbits.TCS=0;            // intern Clock
  T1CONbits.TGATE=0;            // Gates Timer Mode aus
  T1CONbits.TCKPS=0b11;          // CLK/256
  TMR1=0x00;
  PR1=624;                //29491200/256=115200 /10-1

  IPC0bits.T1IP=0x01;
  IFS0bits.T1IF=0;
  IEC0bits.T1IE=1;
  Counter=0;
  T1CONbits.TON=1;
}

void _attribute_ ((interrupt,no_auto_psv)) _T1Interrupt(void)
{
  IFS0bits.T1IF = 0;
}

Gruß Sascha

von Sascha F. (sascha_focus) Benutzerseite


Lesenswert?

Achso:

while(TRUE)
    {
    }

Gruß Sascha

von Peter Diener (Gast)


Lesenswert?

Hallo,

general interrupt enable wird nirgends gesetzt.

Grüße,

Peter

von Sascha F. (sascha_focus) Benutzerseite


Lesenswert?

Peter Diener wrote:
> Hallo,
>
> general interrupt enable wird nirgends gesetzt.
>
> Grüße,
>
> Peter

Wäre mir neu, das der PIC24F es hat. Hatte es auch gedacht, da 
vorkenntnisse beim PIC18. Aber man findet es nicht im Datenblatt oder in
den Refernz-Guides.

Gruß Sascha

von the0816noob (Gast)


Lesenswert?

Hallo zusammen

Endlich funktioniert mein Interrupt. Das Problem lag daran das der 
Compiler ein falsches Bit 1 setzte, und somit einen falsch Interrupt 
aktivierte.

Vielen Dank für die Hilfe.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.