besoin aide CNA R2R 16 bits... - Page 2

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

Translate This Thread From French to

Threaded View
Re: besoin aide CNA R2R 16 bits...

Quoted text here. Click to load it

Intel/Motorola ... je devine une inversion MSB/LSB, aka BigEndian ?

Quoted text here. Click to load it

Il fait le fier ... ils sont commeu ca, les Toulousaings !

Re: besoin aide CNA R2R 16 bits...
Quoted text here. Click to load it



Exactement :) en plus le CNA était un 15 bits, et j'en étais à mes débuts
d'éléctronicien (en BTS II) d'où un petit gratage de tête en regle. Mais
c'était amusant :)

Quoted text here. Click to load it


Curieuse idée que d'ignorer la bonne réponse. Il devrait animer un jeu
télévisé ce garçon, ça serait amusant :)

Antoine



Re: besoin aide CNA R2R 16 bits...

Quoted text here. Click to load it


Et ca forme l'esprit ...

Quoted text here. Click to load it

Parce-qu'il n'a pas encore compris que c'est la bonne reponse,
il s'est plante en convertissant le complement a 2 en non-signe.
Tous sur UseNet demain pour la suite de l'episode ... peut-etre.

Quoted text here. Click to load it

On ne sait pas ce qu'il fait comme metier,
mais on sait deja ce qu'il ne fait pas ;-)

Re: besoin aide CNA R2R 16 bits...
Bonsoir E0% tous,

bon ben E7%a ne fonctionne pas encore ;O]
j'ai pourtant tE9%stE9% en manipulant les octets
msb et lsb dans tous les sens...

je pense que je suis pas au point au
niveau de la conversion unsigned>signed...
me suis inspirE9% de ces formules:
http://sub0.developpez.com/FormatWAV/Make8ST_16ST.htm

le code donne E7%a:
      ' dE9%clarations des variables
     dim caracter, mymsb, mylsb as byte
     dim data as longint

      ' je rE9%cupE9%re les 2 octets
      Mmc_Fat_Read(caracter)
      mymsb 3D% caracter
      Mmc_Fat_Read(caracter)
      mylsb 3D% caracter

      ' que je transforme en longint (data 16 bits)
      data 3D% mymsb * $FF
      data 3D% data + mylsb

      ' que je transforme en 16bits signE9%s?
      data 3D% data + $8000
      if data >3D% $10000 then
           data 3D% data - $10000
      end if

      ' je rE9%cupE9%re mes 2 octets dans le 16bits
      mymsb 3D% data DIV $FF
      mylsb 3D% data MOD $FF

      ' and play ;O]
        PORTD3D%mymsb
        PORTB3D%mylsb

voilE0%....
merci si vous avez une idE9%e...
sur une erreur de conversion unsigned>signed...
ou autre...erreur...
vede
;O]











Re: besoin aide CNA R2R 16 bits...
Bonsoir,

Quoted text here. Click to load it

Ce serait plutôt
         data = mymsb * $100

Quoted text here. Click to load it

Et sur ces deux, une question se pose : est-ce que mymsb sont bien
interprétés comme des valeurs non-signées ? Si c'est interprété comme
des valeurs signées, ça va faire n'importe quoi.

Quoted text here. Click to load it

Ça, ça me semble bon.

Quoted text here. Click to load it

Et là, ça serait plutôt
         mymsb = data DIV $100
         mylsb = data MOD $100

Quoted text here. Click to load it

Sinon, il reste les problèmes électroniques, comme le manque de
linéarité avec des résistances classiques (même des 1 %), ou le
changement non synchrone de PORTB et PORTD...


Bonne nuit,

Nicolas

Re: besoin aide CNA R2R 16 bits...
Quoted text here. Click to load it
oh mon dieu :-/

oui je sais, je rE2%le alors que j'ai aussi E9%crit du code comme E7%a
dans ma jeunesse. Mais j'ai vite appris que E7%a n'E9%tait pas viable ...=


Quoted text here. Click to load it
ouh lE0% dE9%jE0% E7%a a dE9%jE0% l'air bien lent...

Aussi, je vois que tu charges d'abord le MSB,
donc en format BIG ENDIAN, as-tu essayE9% d'inverser l'ordre ?
tu as dit "oui" prE9%cE9%demment mais pas comment.

Quoted text here. Click to load it
naaaaaannn !
ouinnnnnn....
c'est affreux :-/

donc tu passes par une variable de taille diffE9%rente,
sur laquelle tu fais des opE9%rations arithmE9%tiques LOURDES
pour ton pauvre PIC qui n'est pas fait pour E7%a,
en plus tu lui demandes de travailler sur 32 bits alors que
16 devraient suffire... et encore !

Quoted text here. Click to load it

Comme dit avant : changer d'abord le LSB.

Ensuite : toute conversion est inutile.
Tu remarqueras, en faisant les expE9%riences sur papier
que la seule chose qui distingue un entier signE9% d'un
non signE9%, c'est JUSTE le MSB ...
tout ce que tu as E0% faire c'est d'inverser sa valeur :-D

en gros :

  Mmc_Fat_Read(caracter)
  mylsb 3D% caracter   ' LSB first : little endian
  Mmc_Fat_Read(caracter)
  mymsb 3D% caracter xor $80 ' note : character + $80 devrait aussi fonct=
ionner, c'est strictement la mEA%me chose dans ce cas.
  PORTB3D%mylsb
  PORTD3D%mymsb

Disclaimer : non testE9%, peut faire pleuvoir des poireaux,
ou entendre des bruits sataniques dans le chaos sonore
gE9%nE9%rE9%, enfin bref, c'est juste des suggestions.
J'espE8%re au moins que E7%a fait avancer le schmilblick :-)

bon courage,
Quoted text here. Click to load it
yg

--20%
http://ygdes.com / http://yasep.org

Re: besoin aide CNA R2R 16 bits...
Quoted text here. Click to load it

Bonsoir E0% tous,

bon ben...;O[

et :
- non je n'ai pas encore tentE9% la transformation de chaque
octet en Little vers Big Endian...mais juste des inversion
msb-lsb des 2 octets des 16bits (mot)...

et
- je viens d'essayer :

Quoted text here. Click to load it

sans succE9%s (bouillie...reconnaissable...)...

je continue demain,
et vous tiens au jus,
bon'nuit,
vede
;O]


Re: besoin aide CNA R2R 16 bits...

Quoted text here. Click to load it

Oui : une bonne idee serait de laisser
tomber le Basic pour le C ou l'ASM ...

Bon, voila ton code sans les bugs,
avec des variables *non signees* :

 Mmc_Fat_Read(mymsb) ' read MSB
 Mmc_Fat_Read(mylsb) ' read LSB
 data 3D% mymsb ' conversion 8 bits vers 16 bits
 data 3D% (data * $100) + mylsb ' concatenation
 if data >3D% $8000 then
    data  3D% $FFFF - data ' conversion
 end if
 mymsb 3D% data DIV $100 ' deconcatenation
 mylsb 3D% data MOD $100 ' deconcatenation
 PORTD 3D% mymsb ' ecriture CNA
 PORTB 3D% mylsb ' ecriture CNA


Quoted text here. Click to load it


Essaye ca (declare les variables en non-signe)

void WriteCna(void)
{
unsigned char msb, lsb; // 8 bits
unsigned int n; // sample 16 bits

// lecture d'un sample WAV 16 bits mono
   Mmc_Fat_Read(msb); // MSB
   Mmc_Fat_Read(lsb); // LSB

// concatenation
   n  3D% ( ((unsigned int)(msb)) << 8 ) | (unsigned int)(lsb);

// conversion
   if ( n > 0x7FFF )  n 3D% 0xFFFF - n;

// deconcatenation avec cast implicite
   msb 3D% n >> 8; // MSB
   lsb 3D% n & 0xFF; // LSB

// ecriture sur le CNA
   PORTD 3D% msb; // ecrit le MSB vers le CNA
   PORTB 3D% lsb; // ecrit le LSB vers le CNA
}


Il y a + speed, mais ca c'est du code pedagogique !

Re: besoin aide CNA R2R 16 bits...
vede a ecrit

Quoted text here. Click to load it
C'est peut etre aussi un probleme de PIC, faut voir la provenance mdr
Quoted text here. Click to load it

je crois que là tu es sur un probleme decomposable de determination,
ton probleme est sur la sortie physique
l'ideal est de bypasser les "strates"
- avant de t'obstiner à lire la SD est ce qu'une simple lecture d'un
tout petit echantillon wav extrait est correcte vue à l'oscillo ?

- pour caracteriser le probleme eventuel du à la quantification, il y a
aussi la possibilité de degrader la resolution numerique
8->10->12->14->16

- utiliser un vrai wav de test 50 100 300 1000 3000 5000 10k 20k Hz
pour eventuellement determiner simplement à l'oreille la bande foireuse

Rvl



Re: besoin aide CNA R2R 16 bits...
Bonjour E0% tous

Quoted text here. Click to load it
c'est un 18F452 que j'ai trouvE9% un matin dans la bal de ma copine ;O]

Quoted text here. Click to load it
le .wav est nickel, la lecture SD aussi (d'ailleurs E7%a fonctionne avec
des fichiers 8bits/16Khz)

Quoted text here. Click to load it
si E7%a continue c'est ce que je ferais...

comme vous l'aurez tous remarquE9% j'ai quelques
difficultE9%s avec la manipulation des bits ;O]

bon je m'y remet,
et vous tiens au jus,
vede
;O]







Re: besoin aide CNA R2R 16 bits...

Quoted text here. Click to load it


Euh ... et si tu demandais a ta copine ?

(desole, je vais effacer mon message ... oops, trop tard ;-)

Re: besoin aide CNA R2R 16 bits...

Quoted text here. Click to load it

grrr ... je crois que tu est sourd :
http://cjoint.com/data/hqn0DvzPFB_s.gif

Re: besoin aide CNA R2R 16 bits...
vede se fendait de cette prose :

Quoted text here. Click to load it

Tu as essayé de jouer un wav 8 bits sur l'octet poids fort ? (ou poids
faible si tu étais en poids fort ?)

--
LeLapin

Re: besoin aide CNA R2R 16 bits...
vede a ecrit
Quoted text here. Click to load it
alors l'origine semble fiable ;o)

Quoted text here. Click to load it

Puisque tu semble etre satisfait du R2R en wav 8 bits sur un seul port
out, j'essaierai pour une levée de doute sur pb synchro de distribuer
le meme signal (wav) 8 bits sur les 2 ports prevus pour le 16 bits en
ne connectant le reseau R2R que sur les bits odd ou even des 2 ports
(ou autre config)
Rvl



Re: besoin aide CNA R2R 16 bits...
Quoted text here. Click to load it
je plussoie allE8%grement.

Quoted text here. Click to load it
yg


--20%
http://ygdes.com / http://yasep.org

Re: besoin aide CNA R2R 16 bits...
whygee a ecrit
Quoted text here. Click to load it

j'espere que vede à bien pensé à utiliser 2 ports de sortie de meme
techno et pas des ports avec des technos differentes mixée
Rvl



Re: besoin aide CNA R2R 16 bits...
Quoted text here. Click to load it

hmmmm je pense E0% un truc con :
son PIC aurait-il des pE9%riphE9%riques multiplexE9%s avec les broches de=
 son DAC ?
si le code d'initialisation est mauvaise alors les bits en sortie sont ma=
uvais,
ce qui se vE9%rifie facilement avec des LEDs ou un voltmE8%tre.

Quoted text here. Click to load it
yg

--20%
http://ygdes.com / http://yasep.org

Re: besoin aide CNA R2R 16 bits...
Quoted text here. Click to load it

Bonjour E0% tous,

bon ben E7%a y est, E7%a fonctionne ;O]
avec le schE9%ma R2R prE9%sentE9% dE9%s le dE9%but
http://vede.free.fr/electronique/r2r16b.gif

et le code:
    Mmc_Fat_Read(caracter)
    mlsb 3D% caracter
    Mmc_Fat_Read(caracter)
    mmsb 3D% caracter xor 0x80
    PORTB 3D% mmsb
    PORTD 3D% mlsb

"bizarrement", il faut envoyer le msb sur le portB...

mais bon, sans E7%a, la qualitE9% n'est pas vraiment
au rendez vous...la restitution est mEA%me moins
bonne qu'avec un fichier en 8 bits...notamment
E0% cause de la "faible" vitesse de mon PIC (40Mhz)
et de la lourdeur de la librairie SPI-FAT-SD...

encore merci E0% tous pour vos contributions,
qui m'ont permis d'y arriver ;O]

bon'soirE9%e,
vede
;O]

Re: besoin aide CNA R2R 16 bits...
vede se fendait de cette prose :

Quoted text here. Click to load it

Tout ça pour ça... ;)

--
LeLapin

Re: besoin aide CNA R2R 16 bits...
Bonsoir E0% tous,

Quoted text here. Click to load it
ben oui....je peux rigoler?

en 17xx on m'aurait dit, textuellement :
achE9%te un ane ;O]

vede
:O]

Site Timeline