Resource icon

Algoritmi onde Schedino 2018-02-26

richardino

Membro attivo
22 Settembre 2015
23
10
3
Non li usate. Sono sbagliati!!! la prof. mi ha bocciato perché ho usato quello qui riportato sull’onda quadra... ha detto che era confuso, e che l’onda poteva essere semplicemente generata con un for che suddivideva i casi in cui l’indice era pari o dispari. Ad esempio:

for(int i =0 ; i<N; i++){
if (i%2==0){
LUT=0;
}
else
LUT=4095;
}

L’alternativa era con un flag, ma va bene anche così. Questo è il corretto algoritmo per avere in memoria il vettore di elementi a partire dal quale generare poi l’onda quadra col DAC. Il periodo lo impostate col timer. State attenti al fatto che UN PERIODO INTERO corrisponde ad un valore BASSO+ALTO dell’onda:

ONDA_QUADRA.jpg

Ergo, se l’onda deve avere periodo 3, il timer lo dovete impostare alla metà: 1,5. In questo modo convertendo due campioni (per convertire il primo ci mette un tempo t1 = 1,5 s, per il secondo un tempo t2 = 1,5 s) avrete che il periodo totale dell’onda sarà proprio 3. Sono tutte cose che nel corso non sono state mai spiegate, e vanno date per scontato. Io le ho capite perché sono andato a chiedere chiarimenti. Quindi ci tenevo a condividere la mia esperienza con voi in modo che non commettiate i miei stessi errori.
 
Ultima modifica da un moderatore:
  • Like
Reactions: sab and poel

John_Frusciante

Moderatore
Staff Forum
Utente Premium
31 Maggio 2015
187
58
28
Non li usate. Sono sbagliati!!! la prof. mi ha bocciato perché ho usato quello qui riportato sull’onda quadra... ha detto che era confuso, e che l’onda poteva essere semplicemente generata con un for che suddivideva i casi in cui l’indice era pari o dispari. Ad esempio:

for(int i =0 ; i<N; i++){
if (i%2==0){
LUT=0;
}
else
LUT=4095;
}


L’alternativa era con un flag, ma va bene anche così. Questo è il corretto algoritmo per avere in memoria il vettore di elementi a partire dal quale generare poi l’onda quadra col DAC. Il periodo lo impostate col timer. State attenti al fatto che UN PERIODO INTERO corrisponde ad un valore BASSO+ALTO dell’onda:

Guarda allegato 2275

Ergo, se l’onda deve avere periodo 3, il timer lo dovete impostare alla metà: 1,5. In questo modo convertendo due campioni (per convertire il primo ci mette un tempo t1 = 1,5 s, per il secondo un tempo t2 = 1,5 s) avrete che il periodo totale dell’onda sarà proprio 3. Sono tutte cose che nel corso non sono state mai spiegate, e vanno date per scontato. Io le ho capite perché sono andato a chiedere chiarimenti. Quindi ci tenevo a condividere la mia esperienza con voi in modo che non commettiate i miei stessi errori.
Caro riccardo, mi dispiace che sia andata così, però l algoritmo funziona, poi purtroppo a lei non piace, ma se lo stampi ti rendi conto che come fai tu è più un'onda alternata (0-1-0-1)che un'onda quadra. Veramente sono mortificato perchè ci ho lavorato su sta cosa, molti banalmente lo inizializzavano a mano ( cioè facendo v [0]=0;v [1]=0;v [2]=4095;v [3]=4095)
 
  • Like
Reactions: poel

Seguici su Facebook