Datum: 17.04.2008 12:58
Hallo, ich arbeite mich gerade in PIC's mit Assembler ein. Ich möchte einen Interrupt durch einen Timer0 Overflow erkennen, sorry für die Anfängerfrage: Aber wie kann ich sehen wann ein Interrupt mit einem Overflow stattgefunden hat, gibt es da ein bestimmtes Register wo ein Flag gesetzt wird ? Ich sehe nur ein INTCON-Register mit dem TOIF-Flag, ist es zufällig dieses Flag oder gibt es ein anderes im Status-Register ? Ich denke mal zum initialisieren wird dies hier ja ausreichen:
banksel OPTION_REG bsf OPTION_REG,INTEDG bcf INTCON,INTF bsf INTCON,INTE bsf INTCON,TOIE ;bsf INTCON,TOIF ;muss das hier gesetzt werden ? bcf STATUS, RP0 |
Danke im Voraus Gruß
Datum: 17.04.2008 13:44
Hallo genau das: INTCON,TOIF zeigt an, wenn ein Timer-Ereignis stattgefunden hat, also nicht setzen, sondern zurücksetzen und warten bis es gesetzt wurde. Im Interruptbetrieb wird beim Setzen dieses Flags der Interrupt ausgelöst. Gerhard
Datum: 17.04.2008 13:54
TMR1IF oder TMR0IF sind die bits, die gesetzt werden.
bsp:
interrupt serverX( void)
{
int_save_registers
if (TMR1IF) // T1 übergelaufen?
{
TMR1IF = 0;
T1OSCEN = 0;
TMR1CS = 0;
TMR1H = 238; //Counterregister befüllen(16 bit timer aus 2
Byte
TMR1L = 120;
TMR1ON = 1;
GIE = 1; // Interrupts erlauben
PEIE = 1;
TMR1IE = 1; // Interrupt von T1 erlauben
TMR1IF = 0; // Overflowbit rücksetzen!!!!!!!
if (!sleep_mode)
{
send_protocol();
}
}
int_restore_registers
} // Interrupt-Routine zu ende
Datum: 17.04.2008 13:59
@ fragliche begründung: Was denn nun? C oder ASM? T0 oder T1 ?!? @ Wolf: Ja, T0IF ist das Overflow-Bit! Kann ich also auch nur bestätigen! lass die zeile weg, da das ja ein Overflow-bit ist, welches auch nur bei einem Overflow gesetzt werden soll, sonst wäre es ja sinnfrei! denk an das Rücksetzen im Interrupt!
Datum: 17.04.2008 14:13
Super! Danke für eure schnelle Antwort, es klappt jetzt :-) Grüße
Antwort schreiben
Die Angabe einer Email-Adresse ist freiwillig. Wenn Sie automatisch per Email über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.
Wichtige Regeln - erst lesen, dann posten!
- Suchfunktion und Betreffsuche benutzen - vielleicht gibt es schon einen ähnlichen Beitrag
- Aussagekräftigen Betreff wählen
- Im Betreff angeben um welchen Controllertyp es geht (AVR, PIC, ...)
- Groß- und Kleinschreibung verwenden
- Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang
- JPEG-Dateien (.jpg) nur für Fotos und Scans verwenden
- Schaltpläne, Screenshots usw. als PNG oder GIF anhängen
Formatierung (mehr Informationen...)
- [c]C-Code[/c]
- [avrasm]AVR-Assembler-Code[/avrasm]
- [pre]vorformatierter Text (z.B. Code in anderen Sprachen)[/pre]
- [math]Formel in LaTeX-Syntax[/math]
- [[Titel]] - Link zu Artikel