Dreiecksgeneratoren gibt es wie Sand am Meer und jede funktioniert anders. Welchen meinst DU denn?
Nahezu perfekt? Was soll das sein?
Der Tiny an sich kann das nicht. Nur in Verbindung mit einem DAWandler.
Aber selbst dann ist das kaum möglich bei dieser Frequenz, denn:
Um einen Wert nach dem anderen an den DA Wandler zu liefern, braucht es schätzungsweise runde 50 Takte in C. D.h Du kannst 20MHz/50=400kHz entsprechend 400k mal einen Wert erhöhen / erniedrigen. Wenn Du jetzt 200kHz Rechteckspannung haben willst, dann bleiben genau 2 Werte dafür übrig. D h, Du hast ein Rechtecksignal !!!
Mit effizienter Programierung oder noch besser Assembler, schaffst Du es vielleicht, auf 10-20Takte runter zu kommen. Dann hättest Du immerhin 5Werte pro Dreieck. Aber perfekt ist was anderes, also vergiss es.
Ohne zusätzliche Hardware geht das nicht und mit macht es eigentlich schon keinen Sinn mehr. Dann kannst Du gleich einen Dreicksgenerator benutzen oder mit OPs bauen.
Gruß