Gast
#123634
Hallo, ich will einen Dimmer bauen. Dafür teste ich gerade meine Nulldurchgangskennung. Die Hardware scheint soweit zu funktionieren, aber ich habe ein Problem bei der Auswertung im AVR. Ich habe folgenden Code: ... static volatile uint_8t k; SIGNAL(SIG_INTERRUPT0) { k++; if (k==100) {k=0;} if (k<50) {sbi(PORTC,PC5);} else {cbi(PORTC,PC5);} } ... und in main(): ... sbi(DDRC,PC5); sbi(DDRC,PC4); sbi(MCUCR,ISC01); cbi(MCUCR,ISC00); enable_external_int (1<<INT0); asm volatile ("sei"); ... Mit anderen Worten: es soll auf die fallende Flanke getriggert werden, eine LED an PORTC5 soll sichtbar blinken. Nun, das tut sie nicht. Sie leuchtet. Jetzt habe ich durch verschiedene Versuche herausbekommen, dass der AVR sich resetet, wenn ich die SIGNAL() Funktion durchlaufen lasse. Also, wenn ich das "sei" oder das enable_external_int herausnehme, tut der AVR was er soll. Eine SIGNAL(__vector_default) Funktion ist ebenfalls vorhanden. Was hab ich noch alles beachtet? Abblockkondensatoren sind da, ich habe alle GND und Vcc / AVcc beschaltet, das sollte es also nicht sein. Was hab ich noch übersehen? Danke, s