Voila j'ai fait des tests et effectivement la valeur de moyenne semble etrange comme vous pouvez le voir sur la capture.
Voici mes declarations des variables
data unsigned int moyenne; //data pour liberer mem
unsigned int type_volume; //2205
unsigned long moyenne2; //2405 CAG moyenne2 = a * log10(moyenne/b)+c;
int a = 25;
float b = 0.001;
int c =-77;
double temp;
char env_choice; //0805
char range_choice; //2805
int seuil_bas; //2805
int seuil_haut; //2805
int seuil_bas0;
int seuil_haut0;
int seuil_bas1;
int seuil_haut1;
int seuil_bas2;
int seuil_haut2;
int ss; //2805
double result; //2805
unsigned char Val_lue; //2805
extern void CF_operations7 (void);
J'ai eu aussi un autre petit soucis c'est le fait que ma config du CAG je voudrais l'enregistrer dans l'EEPROM mais lorsque je reverifie les valeurs stockées je m'aperçoit qu'il y a un decalage j'ai les valeurs des seuils hauts en place des seuils bas.
Voici mon code je crois avoir compris l'erreur comm on fait un write byte, la valeur max est normalement de 255 est comme je stocke un entier, une valeur superieur à 255 ça reagit mal. Mais comment pourrais je faire je voudrais creer un tableau d'entier mais dans l'EEPROM et y placer mes valeurs est ce possible et comment ?
Voici mon code de configuration manuel du CAG dans l'EEPROM :
// D : Change environnement's mode
if (STR_IN[31]==0x44)
{
int varrepeat =0;
printf("*Environnement's mode*\n\r");
printf("0: LOW LEVEL\n\r");
printf("1: HIGH LEVEL\n\r");
printf("2: NORMAL LEVEL\n\r");
printf("3: DEFAULT AGC CONTROL LEVEL\n\r");
printf(" Please select first your environnement's mode\n :");
do {
env_choice=getchar();
switch(env_choice) {
case '0':
type_volume=0;
varrepeat =1;
break;
case '1':
type_volume=1;
varrepeat =1;
break;
case '2':
type_volume=2;
varrepeat =1;
break;
case '3':
type_volume=3;
varrepeat =1;
break;
default :
printf("\n Please enter a correct number:");
}
}while (varrepeat==0);
EEP2408_ADDRESS = 0x61; //addresse du type_volume environnement //2905
EEP2408_VALUE = type_volume;
EEP2408_write_byte(EEP2408_ADDRESS,EEP2408_VALUE);
if(env_choice!=3)
{
printf("\n The environnement's sound range is between 0 to 770 !\n"); //2805
printf("Now you must select your Hysteresis range\n");
if(env_choice=='0')
printf("\n For this choice of level, the default low limit is 80, the high limit is 200\n :");
else if(env_choice=='1')
printf("\n For this choice of level, the default low limit is 600, the high limit is 770\n :");
if(env_choice=='2')
printf("\n For this choice of level, the default low limit is 300, the high limit is 500\n");
printf("Enter a your low limit value : \n");
scanf("%i",&seuil_bas);
printf("Enter a your high limit value : \n");
scanf("%i",&seuil_haut);
if(env_choice=='0') //2905
{
EEP2408_ADDRESS = 0x62; //addresse du seuil_bas niveau 0
seuil_bas0=seuil_bas;
EEP2408_VALUE = seuil_bas0;
EEP2408_write_byte(EEP2408_ADDRESS,EEP2408_VALUE);
EEP2408_ADDRESS = 0x63; //addresse du seuil_haut niveau 0
seuil_bas0=seuil_haut;
EEP2408_VALUE = seuil_haut0;
EEP2408_write_byte(EEP2408_ADDRESS,EEP2408_VALUE);
}
else if(env_choice=='1') //2905
{
EEP2408_ADDRESS = 0x64; //addresse du seuil_bas niveau 1
seuil_bas1=seuil_bas;
EEP2408_VALUE = seuil_bas1;
EEP2408_write_byte(EEP2408_ADDRESS,EEP2408_VALUE);
EEP2408_ADDRESS = 0x65; //addresse du seuil_haut niveau 1
seuil_bas1=seuil_haut;
EEP2408_VALUE = seuil_haut1;
EEP2408_write_byte(EEP2408_ADDRESS,EEP2408_VALUE);
}
if(env_choice=='2') //2905
{
EEP2408_ADDRESS = 0x66; //addresse du seuil_bas niveau 2
seuil_bas2=seuil_bas;
EEP2408_VALUE = seuil_bas2;
EEP2408_write_byte(EEP2408_ADDRESS,EEP2408_VALUE);
EEP2408_ADDRESS = 0x67; //addresse du seuil_haut niveau 2
seuil_bas2=seuil_haut;
EEP2408_VALUE = seuil_haut2;
EEP2408_write_byte(EEP2408_ADDRESS,EEP2408_VALUE);
}
} //2905
printf("\n-> Please press any key to exit\n");
for (j=0;j<32;j++) STR_IN[j]=STR_IN[j+1];
STR_IN[31]=getchar0();
printf("%c\n",STR_IN[31]);
}
Ainsi que ma capture:
AUTOMATIC MODE: SWITCH 2 OFF
*MANUAL MODE: SWITCH 2 ON*
Would you like to enter in administrator mode (Y/N) ?
You must enter a password :
abcd
You are in administrator mode
RAD>>PA ON
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
LSP driver off
samples[0] = 3
samples[j] = 0
samples[j] = 0
samples[j] = 0
samples[j] = 0
samples[j] = 0
samples[j] = 0
samples[j] = 0
samples[j] = 0
samples[j] = 0
samples[j] = 0
VRAI moyenne sur echantillons de 10: 0
Valeur de a (en prcent i): 25
Valeur de b (en prcent f): 0.001000
Valeur de c (en prcent i): -77
Valeur de moyenne (en prcent ui): 0i
Valeur de result (en prcent lf): 0000000
Valeur de temp (en prcent lf): 0000000
Moyenne en dB: NaN
Valeur de moyenne (apres moyenne =moyenne/b;): 0i
Valeur de temp (apres temp = log10(moyenne);): -INF
Valeur de temp (apres temp = a*temp+c;): NaN
Moyenne en dB version2 : NaN
Volumecag= 26
MANUAL MODE
Menu: press ?
MANUAL MODE... ADC value = 0 volume = 23h
samples[0] = 3D
samples[j] = 0
samples[j] = 0
samples[j] = 0
samples[j] = 0
samples[j] = 0
samples[j] = 0
samples[j] = 0
samples[j] = 0
samples[j] = 0
samples[j] = 3
VRAI moyenne sur echantillons de 10: 0
Valeur de a (en prcent i): 25
Valeur de b (en prcent f): 0.001000
Valeur de c (en prcent i): -77
Valeur de moyenne (en prcent ui): 0i
Valeur de result (en prcent lf): NaN
Valeur de temp (en prcent lf): NaN
Moyenne en dB: NaN
Valeur de moyenne (apres moyenne =moyenne/b;): 0i
Valeur de temp (apres temp = log10(moyenne);): -INF
Valeur de temp (apres temp = a*temp+c;): NaN
Moyenne en dB version2 : NaN
Volumecag= 26
MANUAL MODE... ADC value = 0 volume = 23h
samples[0] = 77
samples[j] = 0
samples[j] = 0
samples[j] = 0
samples[j] = 0
samples[j] = 0
samples[j] = 0
samples[j] = 0
samples[j] = 0
samples[j] = 3
samples[j] = 3D
VRAI moyenne sur echantillons de 10: 6
Valeur de a (en prcent i): 25
Valeur de b (en prcent f): 0.001000
Valeur de c (en prcent i): -77
Valeur de moyenne (en prcent ui): 6i
Valeur de result (en prcent lf): NaN
Valeur de temp (en prcent lf): NaN
Moyenne en dB: 17453780
Valeur de moyenne (apres moyenne =moyenne/b;): 5999i
Valeur de temp (apres temp = log10(moyenne);): 3778079
Valeur de temp (apres temp = a*temp+c;): 17451970
Moyenne en dB version2 : 17451970
Volumecag= 26
MANUAL MODE... ADC value = 5999 volume = 23h
samples[0] = FF
samples[j] = 0
samples[j] = 0
samples[j] = 0
samples[j] = 0
samples[j] = 0
samples[j] = 0
samples[j] = 0
samples[j] = 3
samples[j] = 3D
samples[j] = 77
VRAI moyenne sur echantillons de 10: 18
Valeur de a (en prcent i): 25
Valeur de b (en prcent f): 0.001000
Valeur de c (en prcent i): -77
Valeur de moyenne (en prcent ui): 18i
Valeur de result (en prcent lf): 17453780
Valeur de temp (en prcent lf): 17451970
Moyenne en dB: 29381820
Valeur de moyenne (apres moyenne =moyenne/b;): 18000i
Valeur de temp (apres temp = log10(moyenne);): 4255273
Valeur de temp (apres temp = a*temp+c;): 29381820
Moyenne en dB version2 : 29381820
Volumecag= 26
MANUAL MODE... ADC value = 18000 volume = 23h
samples[0] = C7
samples[j] = 0
samples[j] = 0
samples[j] = 0
samples[j] = 0
samples[j] = 0
samples[j] = 0
samples[j] = 3
samples[j] = 3D
samples[j] = 77
samples[j] = FF
VRAI moyenne sur echantillons de 10: 43
Valeur de a (en prcent i): 25
Valeur de b (en prcent f): 0.001000
Valeur de c (en prcent i): -77
Valeur de moyenne (en prcent ui): 43i
Valeur de result (en prcent lf): 29381820
Valeur de temp (en prcent lf): 29381820
Moyenne en dB: 38836720
Valeur de moyenne (apres moyenne =moyenne/b;): 42999i
Valeur de temp (apres temp = log10(moyenne);): 4633459
Valeur de temp (apres temp = a*temp+c;): 38836460
Moyenne en dB version2 : 38836460
Volumecag= 2C
MANUAL MODE... ADC value = -22537 volume = 23h
samples[0] = 7F
samples[j] = 0
samples[j] = 0
samples[j] = 0
samples[j] = 0
samples[j] = 0
samples[j] = 3
samples[j] = 3D
samples[j] = 77
samples[j] = FF
samples[j] = C7
VRAI moyenne sur echantillons de 10: 63
Valeur de a (en prcent i): 25
Valeur de b (en prcent f): 0.001000
Valeur de c (en prcent i): -77
Valeur de moyenne (en prcent ui): 63i
Valeur de result (en prcent lf): 38836720
Valeur de temp (en prcent lf): 38836460
Moyenne en dB: 42983520
Valeur de moyenne (apres moyenne =moyenne/b;): 62999i
Valeur de temp (apres temp = log10(moyenne);): 4799334
Valeur de temp (apres temp = a*temp+c;): 42983340
Moyenne en dB version2 : 42983340
Volumecag= 2C
MANUAL MODE... ADC value = -2537 volume = 23h
....
?
MENU
M: Menu MP3
a: Tree and choice of file
b: Play the track
c: Play the track with a Gong
O: Mute PA
P: Unmute PA
C: Check environnement's mode
D: Change environnement's mode
I: Mute TEA6320
U: Unmute TEA6320
Y: CF RESET = 1
T: CF RESET = 0
W: Write EEPROM AND ALL VOLUME CONTROL
Q: To Change Priority
r: Read appropriate proporties
p: Mode Pause
m: Change user's mode
-> Please press a key
C
The type of volume is NORMAL LEVEL
The low limit is: 2656 the high limit is: 28672
-> Please press any key to exit
samples[0] = 7F
samples[j] = E3
samples[j] = E7
samples[j] = 27C
samples[j] = 183
samples[j] = 7F
samples[j] = 30F
samples[j] = 1F
samples[j] = 7C
samples[j] = 380
samples[j] = C
VRAI moyenne sur echantillons de 10: 345
Valeur de a (en prcent i): 25
Valeur de b (en prcent f): 0.001000
Valeur de c (en prcent i): -77
Valeur de moyenne (en prcent ui): 345i
Valeur de result (en prcent lf): 61786260
Valeur de temp (en prcent lf): 34301950
Moyenne en dB: 61445480
Valeur de moyenne (apres moyenne =moyenne/b;): 17319i
Valeur de temp (apres temp = log10(moyenne);): 4238523
Valeur de temp (apres temp = a*temp+c;): 28963070
Moyenne en dB version2 : 28963070
Volumecag= 2C
MANUAL MODE... ADC value = 17319 volume = 23h
samples[0] = 4F
samples[j] = E7
samples[j] = 27C
samples[j] = 183
samples[j] = 7F
samples[j] = 30F
samples[j] = 1F
samples[j] = 7C
samples[j] = 380
samples[j] = C
samples[j] = 7F
VRAI moyenne sur echantillons de 10: 335
Valeur de a (en prcent i): 25
Valeur de b (en prcent f): 0.001000
Valeur de c (en prcent i): -77
Valeur de moyenne (en prcent ui): 335i
Valeur de result (en prcent lf): 61445480
Valeur de temp (en prcent lf): 28963070
Moyenne en dB: 61126130
Valeur de moyenne (apres moyenne =moyenne/b;): 7319i
Valeur de temp (apres temp = log10(moyenne);): 3864452
Valeur de temp (apres temp = a*temp+c;): 19611290
Moyenne en dB version2 : 19611290
Volumecag= 2C
MANUAL MODE... ADC value = 7319 volume = 23h
samples[0] = 4F
samples[j] = 27C
samples[j] = 183
samples[j] = 7F
samples[j] = 30F
samples[j] = 1F
samples[j] = 7C
samples[j] = 380
samples[j] = C
samples[j] = 7F
samples[j] = 4F
VRAI moyenne sur echantillons de 10: 320
Valeur de a (en prcent i): 25
Valeur de b (en prcent f): 0.001000
Valeur de c (en prcent i): -77
Valeur de moyenne (en prcent ui): 320i
Valeur de result (en prcent lf): 61126130
Valeur de temp (en prcent lf): 19611290
Moyenne en dB: 60628750
Valeur de moyenne (apres moyenne =moyenne/b;): 57856i
Valeur de temp (apres temp = log10(moyenne);): 4762349
Valeur de temp (apres temp = a*temp+c;): 42058720
Moyenne en dB version2 : 42058720
Volumecag= 2C
?
MENU
M: Menu MP3
a: Tree and choice of file
b: Play the track
c: Play the track with a Gong
O: Mute PA
P: Unmute PA
C: Check environnement's mode
D: Change environnement's mode
I: Mute TEA6320
U: Unmute TEA6320
Y: CF RESET = 1
T: CF RESET = 0
W: Write EEPROM AND ALL VOLUME CONTROL
Q: To Change Priority
r: Read appropriate proporties
p: Mode Pause
m: Change user's mode
-> Please press a key
D
*Environnement's mode*
0: LOW LEVEL
1: HIGH LEVEL
2: NORMAL LEVEL
3: DEFAULT AGC CONTROL LEVEL
Please select first your environnement's mode
:
Please enter a correct number:2
The environnement's sound range is between 0 to 770 !
Now you must select your Hysteresis range
For this choice of level, the default low limit is 300, the high limit is 500
Enter a your low limit value :
310
Enter a your high limit value :
490
-> Please press any key to exit
samples[0] = 3F
samples[j] = 183
samples[j] = 7F
samples[j] = 30F
samples[j] = 1F
samples[j] = 7C
samples[j] = 380
samples[j] = C
samples[j] = 7F
samples[j] = 4F
samples[j] = 4F
VRAI moyenne sur echantillons de 10: 264
Valeur de a (en prcent i): 25
Valeur de b (en prcent f): 0.001000
Valeur de c (en prcent i): -77
Valeur de moyenne (en prcent ui): 264i
Valeur de result (en prcent lf): 60628750
Valeur de temp (en prcent lf): 42058720
Moyenne en dB: 58540100
Valeur de moyenne (apres moyenne =moyenne/b;): 1856i
Valeur de temp (apres temp = log10(moyenne);): 3268578
Valeur de temp (apres temp = a*temp+c;): 4714455
Moyenne en dB version2 : 4714455
Volumecag= 2C
MANUAL MODE... ADC value = 1856 volume = 23h
samples[0] = 4F
samples[j] = 7F
samples[j] = 30F
samples[j] = 1F
samples[j] = 7C
samples[j] = 380
samples[j] = C
samples[j] = 7F
samples[j] = 4F
samples[j] = 4F
samples[j] = 3F
VRAI moyenne sur echantillons de 10: 232
Valeur de a (en prcent i): 25
Valeur de b (en prcent f): 0.001000
Valeur de c (en prcent i): -77
Valeur de moyenne (en prcent ui): 232i
Valeur de result (en prcent lf): 58540100
Valeur de temp (en prcent lf): 4714455
Moyenne en dB: 57137210
Valeur de moyenne (apres moyenne =moyenne/b;): 35391i
Valeur de temp (apres temp = log10(moyenne);): 4548893
Valeur de temp (apres temp = a*temp+c;): 36722340
Moyenne en dB version2 : 36722340
Volumecag= 2C
MANUAL MODE... ADC value = -30145 volume = 23h
samples[0] = 4F
samples[j] = 30F
samples[j] = 1F
samples[j] = 7C
samples[j] = 380
samples[j] = C
samples[j] = 7F
samples[j] = 4F
samples[j] = 4F
samples[j] = 3F
samples[j] = 4F
VRAI moyenne sur echantillons de 10: 227
Valeur de a (en prcent i): 25
Valeur de b (en prcent f): 0.001000
Valeur de c (en prcent i): -77
Valeur de moyenne (en prcent ui): 227i
Valeur de result (en prcent lf): 57137210
Valeur de temp (en prcent lf): 36722340
Moyenne en dB: 56900650
Valeur de moyenne (apres moyenne =moyenne/b;): 30391i
Valeur de temp (apres temp = log10(moyenne);): 4482745
Valeur de temp (apres temp = a*temp+c;): 35068630
Moyenne en dB version2 : 35068630
Volumecag= 2C
MANUAL MODE... ADC value = 30391 volume = 23h
samples[0] = 7C
samples[j] = 1F
samples[j] = 7C
samples[j] = 380
samples[j] = C
samples[j] = 7F
samples[j] = 4F
samples[j] = 4F
samples[j] = 3F
samples[j] = 4F
samples[j] = 4F
VRAI moyenne sur echantillons de 10: 156
Valeur de a (en prcent i): 25
Valeur de b (en prcent f): 0.001000
Valeur de c (en prcent i): -77
Valeur de moyenne (en prcent ui): 156i
Valeur de result (en prcent lf): 56900650
Valeur de temp (en prcent lf): 35068630
Moyenne en dB: 52828130
Valeur de moyenne (apres moyenne =moyenne/b;): 24928i
Valeur de temp (apres temp = log10(moyenne);): 4396688
Valeur de temp (apres temp = a*temp+c;): 32917190
Moyenne en dB version2 : 32917190
Volumecag= 2C
?
MENU
M: Menu MP3
a: Tree and choice of file
b: Play the track
c: Play the track with a Gong
O: Mute PA
P: Unmute PA
C: Check environnement's mode
D: Change environnement's mode
I: Mute TEA6320
U: Unmute TEA6320
Y: CF RESET = 1
T: CF RESET = 0
W: Write EEPROM AND ALL VOLUME CONTROL
Q: To Change Priority
r: Read appropriate proporties
p: Mode Pause
m: Change user's mode
-> Please press a key
C
The type of volume is NORMAL LEVEL
The low limit is: 490 the high limit is: 28672
-> Please press any key to exit
Merci