Volker S. schrieb:
> __delay_us ist keine Funktion sondern ein Makro.
> Es ist nicht möglich eine Variable zu übergeben...
Ah, danke für den Hinweis, allerdings funktioniert es so auch nicht :(
1 | void playFreq(short delayTime, int howLong){
|
2 | for(int n = 0; n < howLong; n++){
|
3 | DAC1CON1 = DAC1CON1++;
|
4 | for(int d = 0; d < delayTime; d++){
|
5 | asm("nop");
|
6 | }
|
7 | }
|
8 | }
|
9 |
|
10 | void main(void) {
|
11 | initDAC();
|
12 |
|
13 | while(1){
|
14 | playFreq(8,4000);
|
15 | playFreq(16,4000);
|
16 | playFreq(32,4000);
|
17 | }
|
18 | }
|
Volker S. schrieb:
> Warum wird der Ton eigentlich nicht mit einer PWM erzeugt?
Hab ich mir nicht überlegt, aber wäre wahrscheinlich sinnvoller, da man
dort die Periode einstellen kann, oder?
Ich hatte vor, ein analoges Tonsignal einzulesen und dann über den DAC
wieder auszugeben, ich bin mir nicht sicher, ob das realisierbar ist?
Ich steige aber nicht durch, warum der oben gezeigte Code nicht
funktioniert :(