Do you have a question? Post it now! No Registration Necessary

Re: besoin aide CNA R2R 16 bits...
On Jul 16, 5:59 pm, "GzavSnap"
<zx81.pas.de.spam.ordi5.chez.free.en.france>

Attends : si son CNA 8 bits fonctionne,
son CNA 16 bits doit fonctionner aussi.
Vede, voici un test pour lever le doute qui subsiste entre
le fichier WAV et le CNA 16 bits, en testant juste le CNA :
Un bout de code avec une variable non signee sur 16 bits,
un compteur que tu incrementes a chaque tour de boucle.
Ecris ses MSB et LSB vers le CNA : en sortie tu dois avoir
une dent de scie bien lineaire, sinon c'est ton CNA qui deconne.
void main(void)
{
unsigned int u 3D% 0; // compteur
// ... les inits de ton PIC
while(1) // forever
{
PORTD 3D% u >> 8; // MSB
PORTC 3D% u & 0xFF; // LSB
u++; // increment du compteur
// ajoute une une tempo ici ...
}
}
<zx81.pas.de.spam.ordi5.chez.free.en.france>

Attends : si son CNA 8 bits fonctionne,
son CNA 16 bits doit fonctionner aussi.
Vede, voici un test pour lever le doute qui subsiste entre
le fichier WAV et le CNA 16 bits, en testant juste le CNA :
Un bout de code avec une variable non signee sur 16 bits,
un compteur que tu incrementes a chaque tour de boucle.
Ecris ses MSB et LSB vers le CNA : en sortie tu dois avoir
une dent de scie bien lineaire, sinon c'est ton CNA qui deconne.
void main(void)
{
unsigned int u 3D% 0; // compteur
// ... les inits de ton PIC
while(1) // forever
{
PORTD 3D% u >> 8; // MSB
PORTC 3D% u & 0xFF; // LSB
u++; // increment du compteur
// ajoute une une tempo ici ...
}
}

une sortie parasitée ? aussi oscillo ! (was Re: besoin aide CNA R2R 16 bit s...)

<snip>
Je pense qu'un souci majeur de Vede est justement qu'il n'a
pas d'oscilloscope, sinon ce serait rE9%solu depuis longtemps.
ahhhhh qu'est-ce que j'ai pu m'emmerder avant d'acheter mon tektro d'occa=
sion !
--20%
http://ygdes.com / http://yasep.org

Re: une sortie parasitée ? aussi oscillo ! (was Re: besoin aide CNA R2R 16 bits...)

Pas d'oscillo ?
Bon, une autre solution : une tempo elevee dans la boucle, pour avoir
le temps de voir evoluer lentement la tension en sortie du CNA avec
un voltmetre. La tension doit augmenter lineairement, puis retomber
au minimum lors du passage du compteur de 65535 a zero.
Ou encore : reboucler la sortie du CNA vers un CAN,
et par soft comparer la valeur du CAN avec la valeur
ecrite sur le CNA ... pour toute valeur de 0 a 65535.

Re: besoin aide CNA R2R 16 bits...
Jean-Christophe, le 16/07/2009 a écrit :

C'est effectivement limpide. Un signal audio de la vraie vie à valeur
moyenne nulle échatillonné en complément à 2. Si c'est effectivement ça
qui se passe, ce qu'il faut faire est évident. Il faut ajouter 0x8000 à
la valeur, sans se préoccuper de la retenue. Si l'outil de calcul est
basé sur des mots de 8 bits, il suffit d'ajouter 0x80 (10000000b) à
l'octet de poids fort. Tout ceci revient à inverser le bit de poids
fort du mot de 16 bits, donc le bit de poids fort de l'octet de poids
fort. Visuellement, l'addition correspond à "monter" le signal de
32767, avec effet "compteur kilométrique" (65535 + 1 = 0, etc.).
L'inversion correpond à "échanger" la bande 0 .. 32767 et la bande
32768 .. 65535.
Pour inverser un bit, on peut utiliser un XOR (OU exclusif) avec 0x8000
ou 0x80.

C'est effectivement limpide. Un signal audio de la vraie vie à valeur
moyenne nulle échatillonné en complément à 2. Si c'est effectivement ça
qui se passe, ce qu'il faut faire est évident. Il faut ajouter 0x8000 à
la valeur, sans se préoccuper de la retenue. Si l'outil de calcul est
basé sur des mots de 8 bits, il suffit d'ajouter 0x80 (10000000b) à
l'octet de poids fort. Tout ceci revient à inverser le bit de poids
fort du mot de 16 bits, donc le bit de poids fort de l'octet de poids
fort. Visuellement, l'addition correspond à "monter" le signal de
32767, avec effet "compteur kilométrique" (65535 + 1 = 0, etc.).
L'inversion correpond à "échanger" la bande 0 .. 32767 et la bande
32768 .. 65535.
Pour inverser un bit, on peut utiliser un XOR (OU exclusif) avec 0x8000
ou 0x80.
--
Pierre Maurette
Pierre Maurette
Site Timeline
- » transistors basiques
- — Next thread in » Electronics (French)
-
- » tension des filaments
- — Previous thread in » Electronics (French)
-
- » Richter ou Merkel ?
- — Newest thread in » Electronics (French)
-
- » [OT] Neostrada
- — The site's Newest Thread. Posted in » Electronics (Polish)
-
- » Richter ou Merkel ?
- — The site's Last Updated Thread. Posted in » Electronics (French)
-