Gut , ich bin zu dem ergebnis gekommen, das mein takt zu langsam ist um den Ton so zu erzeugen, wie ich es ursprünglich vor hatte.
Insgesammt sind es 12 Töne, die ich erzeugen möchte, wäre es eine idee, für jeden ton eine eigene funktion zu schreiben und die dann in inline assembler zu implementieren?
z.B. den Ton 2000Hz, wie müsste ich da vorgehen?
sowas in der art:
Code:
void ton(void) {
for(i; i<dauer;i++) {
asm volatile ("sbi PORTD, 7");
asm volatile ("nop");
...
asm volatile ("nop");
asm volatile ("cbi PORTD, 7");
asm volatile ("nop");
...
asm volatile ("nop");
}
}
Da müsste man das ja dann nur ausrechnen, wieviele nops man braucht 
(werden dann wohl einige sein)
oder hat noch jemand eine andere idee?...
EDIT²:
Hat sich erledigt, habs mit assembler und for-schleifen gemacht 
nach ein bisschen feintuning funktionierts wunderbar.
Lesezeichen