Hallo,

warum das ganze im Hauptprogramm laufen lassen?

Falls der verwendete AVR eine Time-Compare-Unit besitzt (z.B. in Timer2)...
46 ins Timer-Compare Register laden.

Config Timer2 = Timer, Prescale = 8, Compare = Toggle(*), Clear Timer = 1
OCR2 = 46
(*) toggelt OC2-Pin, andere Pins im OC-Int toggeln.


Falls nicht, Timer mit 256-46 voreinstellen und den Portpin in der Overflow-Interruptroutine toggeln.

On Timer0 OVF_Int
Config Timer0 = Timer, Prescale = 8
Timer0 = 210
...

OVF_Int:
Timer0 = 210
Toggle PortX.Y
Return


Ist nur eine Überlegung, getestet hab ich das nicht.

Ciao,
Werner