Gast
#398078
Hallo.
ich bin grad fast am verzweifeln an einer phasenanschnittsteuerung.
früher hatte ich in der software folgendes gemacht, sobald ein INT
(Nulldurchgang) ausgelöst wurde:
for (int i = 0; i < Time;i++)
_delay_us(30);
danach hab ich den triac gezündet.
Nun kann ihc das leider nicht mahr machen, da die Software
umfangreicher geworde ist und der code nur zeit verschwendet. Dann hab
ich mir gedacht ich mach die verzögerung einfach durch einen timer.
Also hab ich obrigen code einfach durch folgendes ersetzt:
TCCR1B = (1<<CS11) | (1<<CS10);
TCNT1 = 65000;
TIMSK |= (1<<TOIE1);
SIGNAL (SIG_OVERFLOW1)
{
TIMSK &= ~(1<<TOIE1);
TriacZunden();
}
das ganze funktionert aber nicht...der Triac züdet bei manchen werten
von TCNT1 garnicht, bei manchen nach kurzerzeit und bei wieder anderen
sofort...und dass völlig durcheinander.
normal müsste dass doch genauso möglich sein als die erste
veriante...oder hab ich da n denkfehler ?
Gruß