PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : I-Flag stört ADC und Timer



LC-HC
28.08.2006, 00:49
Hi,
ich habe folgendes problem mit dem AT90CAN:
Ich verwende neben dem timer den adc in meinem aktuellen projekt. Alles läuft soweit, wird jedoch der timer initialisiert und das globale interrupt-enable flag gesetzt, laufen keine interruptgenerierenden Einrichtungen (ADC, DAC, UART) mehr. Per DEBUG LED konnte ich aber überprüfen, dass der komplette Code korrekt durchlaufen wird. Nach intensiver und erfolgloser suche im datenblatt bin ich nun wieder hier im forum gelandet, da ich wieder mal nicht weiter weiß. Hat schon jemand etwas von dem problem gehört ? Kann es an den Fuse-bits liegen ?

mfg,

LC

Vitis
28.08.2006, 02:34
In welcher Programmiersprache codest du ?

JanB
28.08.2006, 08:00
Hallo,
wenn ein Interrupt ausgelöst wurde, wird kein weiterer zugelassen,
solange nicht der erste per RETI-Befehl beendet wurde,
oder durch SEI explizit die Interupts wieder eingeschaltet werden.

Gruß Jan

LC-HC
28.08.2006, 10:01
Hi und danke erstmal für die antworten.
Hier mal der Code. Wie gesagt, müsste der Timer0 doch jetzt mit einem
takt von fosc/256 hochzählen, bis der zählerstand überläuft... passiert aber nicht. Muss ich noch was an den fusebits einstellen, um die interrupts korrekt nutzen zu können ?




#define TIMER0_INT _VECTOR(0x0022)


void main (void)
{
DDRA |= (1<<1);


TCCR0A = 0x04;
TIMSK0 = 0x01;
sei();


for(;;)
{
}
}


ISR(TIMER0_INT)
{
PORTA ^= (1<<1);
}


mfg,

LC